Home > Internet > Movabletype > MT4iを少しいじってみた

MT4iを少しいじってみた

これまた大分昔の話(6/15 つまり「PowerCMSセミナー」があった日)だけど、セミナー終わってネクスト・コナン(別名打ち上げ[ぶっちゃけて言うと飲み会])に向けてのチャージング中、まーしー君とお話してて「[N]ネタフルの携帯版(ネタフルズ)良いよねぇ」とか話していて、それを引きずっていた関係で、チマチマとMT4iのCGI部分や、3.08X1をベースにテンプレートを弄ったりしてました。

もっともMT4iを使っている関係で、MySQLが吹っ飛んだ間は、公開出来てませんでしたけれども。

うごくひと2の上級版を使う

なかのひとの携帯用というのが理解しやすいと思うんですが、「無料の携帯アクセス解析「うごくひと2」: 商用利用可」というのがあります。最近2になったばかりです。

「なかのひと」や「Google Analytics」「トラックワード」などは、他人から自サイトがどう捉えられているかを理解する、重要な情報源だったりしますが、この「うごくひと2」携帯による様々なアクセス情報が得られる訳です。

「うごくひと2」は実際にコードを貼ろうとすると解りますが、「通常版」と「上級版」があり、「検索キーワード」や「参照元分析」などが使えるかどうかが違っています。

この「上級版」はリファラー情報などを受け渡すために「PHP」「ROR」「Perl」のいずれかの言語を使わなくてはならなくなっています。

MT4iの場合「通常版」ならテンプレートのみを修正して埋め込みが出来ますが、「上級版」を使おうと思ったらCGI自身の修正も必要になります。(それともうまい方法あるのかしら?)

まぁ、誰か同じことを考えているだろうとググってみたら、見つけました。

なるほどUH2に格納して、<TMPL_VAR NAME="UH2"> で出力する訳ですね。
さて、まんま使おうと試してみたんですけど、2点ほどうまくいかない処がありました。

一つはページの文字コード指定部分。

また解析対象サイトが UTF-8 ではない場合は「ch=UTF-8」の部分を変更して文字コードを指定してください。(Shift-JIS の場合は「ch=SJIS」、EUC の場合は「ch=EUC」、JIS の場合は「ch=JIS」)

WolaWola mobile ver. : HTML 貼り付けタグ [うごくひと2]:(2009年7月20日 22:08:13)

MT4iはページをShift-JISで出力するので、ここは「ch=UTF-8」ではなく「ch=SJIS」になる筈です。

もう一つは最後のURLをエンコードしている部分。

どうも、ここでリンクからページを表示する(ページ間を遷移する)時に、エラーが発生します。

少し眺めてみて、ここはイメージ要素のURLを作っている部分であり、別にエスケープ処理する必要は無いんじゃないかと思い、エスケープ部分外してみました。(ヤマカンだけど)とりあえず、それで問題なく動作しているみたいです。

どちらかというとエスケープ処理が必要なのは、テンプレート側に書いた<TMPL_VAR NAME="ENTRY_TITLE">や<TMPL_VAR NAME="BLOG_TITLE">みたいな気がします。でも多分、見てないけど対処済みなんだろうな。

という訳で、「sub _tmpl_common 」内に追記する内容は以下になりました。

    # Ugokuhito2
    my $UH2q = new CGI;
    my $UH2url = "http://b14.ugo2.jp/?u=XXXXXXX&amp;h=xxxxxx&amp;guid=ON&amp;ut=1&amp;qM=".uri_escape($UH2q->referer()."|Az|".$UH2q->server_port())."|".uri_escape($UH2q->server_name())."|".uri_escape($UH2q->url(-absolute => 1))."|P|&amp;ch=SJIS&amp;sb=";
    $tmpl->param(UH2 => $UH2url);

なお「use URI::Escape qw(uri_escape);」はCGIの行頭、他の宣言している部分と一緒の所に、「use CGI;」はすでに宣言済みなので削除しました。

テンプレート部分はとりあえずそのままで良いようです。

ちなみに、この部分のコードは MT4i 3.08 も MT4i 3.1a でも一緒なので同じように修正すればいい筈です。

モバイルサイトマップ

ググってる途中で見つけた情報で、モバイル用にサイトマップを作るというのがありました。

さらに色々調べてみると、どうやらPCサイト用のサイトマップと非常に似通っているが、細かいところで違いがあるみたいです。

へぇー、なるほど。「面倒だから一つにならないのかな?」とか思いましたが、そういう訳にはいかないんですね。

という訳で、MT4i用モバイルサイトマップを生成するMTMLを書いてみました。

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0">
<url>
<loc><MTApplyModifier encode_xml="1">「MT4iCGIのURL」?id=<$MTBlogID$></MTApplyModifier></loc>
<mobile:mobile/>
<lastmod><$MTDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></lastmod>
<priority>0.7</priority>
</url>
<MTEntries lastn="65535"><url>
<loc><MTApplyModifier encode_xml="1">「MT4iCGIのURL」?id=<$MTBlogID$>&mode=ainori&eid=<$MTEntryID$></MTApplyModifier></loc>
<mobile:mobile/>
<lastmod><$MTEntryModifiedDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></lastmod>
<priority>1.0</priority>
</url>
</MTEntries>
<MTCategories><url>
<loc><MTApplyModifier encode_xml="1">「MT4iCGIのURL」?id=<$MTBlogID$>&cat=<$MTCategoryID$></MTApplyModifier></loc>
<mobile:mobile/>
<MTEntries lastn="1" sort_by="modified_on"><lastmod><$MTEntryModifiedDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></lastmod></MTEntries>
<priority>0.7</priority>
</url>
</MTCategories>
</urlset>

「MT4iCGIのURL」をMTApplyModifierで囲っているのは好みの問題です。エンコードしたURLを直接記入するなら必要ありません。

断わっておきますが、携帯からの確認は自分の携帯(Softbankの814T)でしか行ってません。他のキャリアで問題が発生している可能性もあります。

作ってみたのは良いけれど、実はこれってどこに置くべきなのかとか、色々迷ってます。普通に考えれば、MT4iCGIの上位URLなら問題ないと思うのですが、良い置き場所というのが、なかなか思いつきません。それと「robots.txt」に対してどう書くべきなのかとか、疑問がいっぱいです。
PCサイトのサイトマップと、どうやって同居させるのか、知ってる方いませんか?もしかして複数行書けば良いだけだったりして・・・嫌な感じ

他にも絵文字対応と、サイト内リンク時の確認のバイパス対応をしてみました。

追記:こんな風に更新Ping送れるようにならないかな。

MT4.261だと、MT4iの検索が効かない様な気がする。検索ワードに引っかからない。

Trackback:(1)

TrackBack URL for this entry.(1)
Listed below are links to weblogs that reference
MT4iを少しいじってみた from WolaWola
ADDRESS CLUB thumbs「MT4iでうごくひと2の上級版機能を使ってみよう・改」 from ADDRESS CLUB 2009-08-26 (水) 20:38:42

このエントリーは 「MT4iでうごくひと2の上級版機能を使ってみよう(2009年5月20日)」 の改定記事です MT4iを少しいじってみた(WolaWo...
[詳しくはトラックバック元サイトで]

Comments:(6)

45shiki.net`s user-pic OpenIDAuthed 45shiki.net said July 25, 2009 10:24 PM | ReplyThis!

更新Pingじゃないですが、サイトマップの更新はHTTPリクエストで可能ですよね。
そこでwgetやcurlをcronで定期的に実行する、ってのはどうですかね。

サイトマップの同居はrobots.txtに複数行で良いんじゃないですかね。
少なくともリクエストヘッダーでモバイルサイトマップを判別するGoogleに関してはそれで問題ないはずです。
Google以外はせめてモバイルサイトマップを理解できるのかだけでもわかればよいのですけど。
誰か身を削って実験してませんかね。
誰か身を削って実験しませんかね。

4n5さん、確かに「wgetやcurlをcronで定期的に実行する」もありですね。
ただその後、サイトマップの種類は違うけれど、同じように扱われる(サイトマップ登録してみたら)のが確認できたのと、複数サイトマップをrobots.txtに複数行書いていいってのは解ったので、更新Pingも同じエンドポイントじゃないかと期待してるんですよ。
>誰か身を削って実験しませんかね。
ぐっ・・・ドクロ
ボヤく前に試せと・・・・ごもっとも

45shiki.net`s user-pic OpenIDAuthed 45shiki.net replied for oscar's comment July 26, 2009 4:48 PM | ReplyThis!

ところで、Comment Subscribeって動いてますか?
一度もメールが届かないのです。
まあ、変てこなメルアドなんで不正診断されてるのかな、とか思ってたんですけど。
ふと、プレビュー経由の投稿だと機能しないのかなって思っ……じ、自分で試すべきなのか…

4n5さんのコメントに対して、私へのメールは送られてきましたよ。
OpenIDなんかの認証使うとメールアドレスとかの入力がHiddenになりますよね。
これが関係してるような気がしてるんですが。
4n5さんの認証をmt_authorでのぞくと「・・・・」となってますが、これで届きますか?
でも、認証使った時に動作しないんじゃ問題だよな・・・ドクロ
何か対応が必要そうですね。指摘してもらってありがとうございます。
>プレビュー経由の投稿だと機能しないのかな
組み込み忘れてないか確認します汗

45shiki.net`s user-pic OpenIDAuthed 45shiki.net replied for oscar's comment July 26, 2009 11:10 PM | ReplyThis!

キャー、アドは全部隠してねんハート

> これで届きますか?
日常的にメールのやり取りはできてます。
ちゃんと作る時にRFCで「@前の最小バイト」が決められていない事を調べましたよ(グレーゾーン?)
それでも、登録システムで弾かれる事は時々あります。
そういう所はシステムの規模が中小の所で、「Google」とか「はてな」みたいに大規模な所の方がちゃんと登録できますね。
何だかんだ言いながらも、自分のMTにはこのアドレスで登録してあります。
そしてMTは正規のサービスを提供してくれます。

ちなみに、メールアドレスのためだけにサブドメインを作成しています。
独自ドメインだからできる贅沢だと思います。

> 4n5さんのコメントに対して、私へのメールは送られてきましたよ。
システム管理者とコメントユーザーのサービス格差?

恥ずかしい話だけど、原因判明。
そもそもプレビュー用のテンプレートに手を入れてなかったわな・・・ドクロ
すいません。自分が滅多に使わないから忘れていた。直しときます。

スクリプトの読み込みが完了していません。

メールフォーム(Javascriptを使用していません)や、twitter.pngTwitter経由のCommentでもReplyいたします。ただし返信はブログのコメントとして行う事もあります。

Comment Form

QuickTagsHere

EmoticonHere

(入力しない場合「Anonymous」で代替されます)
(公開はされませんが、Gravatarアイコンの取得や、Comment Subscribeの送信先アドレスとして使われます)
(入力すると、コメント表示でユーザー名にリンクが貼られます)
(この情報は、JavascriptによりCookieに保存されます。)

NotifyMail Powered by Comment Subscribe

はてブコメント:

Home > Internet > Movabletype > MT4iを少しいじってみた

AjaxSearch
(5)
(6)

別ページに遷移します。

Powered by 暴想&Dakiny/DigiClo

Tag Cloud

Style References

OpenID accepted here

Accepted OpenID
OpenID認証に対応しています

OpenIDについて

Feeds
Link Status
Read Together
  • LOADING...

ブログ/RSS/キーワードAPI - sidetools

In One

なかのひと

位置情報ブログパーツ「なかのひと」

Links
Powered By

Return to page top