- 2009-07-20 (月) 23:11
- MovableType


- 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&h=xxxxxx&guid=ON&ut=1&qM=".uri_escape($UH2q->referer()."|Az|".$UH2q->server_port())."|".uri_escape($UH2q->server_name())."|".uri_escape($UH2q->url(-absolute => 1))."|P|&ch=SJIS&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の検索が効かない様な気がする。検索ワードに引っかからない。
- Newer >: サイトマップ作ってみた
- < Older: 会社辞めます
- « Older in MovableType: Movable Type 4.3 Beta試してみた
Trackback:(1)
- TrackBack URL for this entry.(1)
- Listed below are links to weblogs that reference
- MT4iを少しいじってみた from WolaWola
「MT4iでうごくひと2の上級版機能を使ってみよう・改」 from ADDRESS CLUB 2009-08-26 (水) 20:38:42
このエントリーは 「MT4iでうごくひと2の上級版機能を使ってみよう(2009年5月20日)」 の改定記事です MT4iを少しいじってみた(WolaWo...
[詳しくはトラックバック元サイトで]
Comments:(6)
-
said
July 25, 2009 10:24 PM
|
ReplyThis!
-
更新Pingじゃないですが、サイトマップの更新はHTTPリクエストで可能ですよね。
そこでwgetやcurlをcronで定期的に実行する、ってのはどうですかね。サイトマップの同居はrobots.txtに複数行で良いんじゃないですかね。
少なくともリクエストヘッダーでモバイルサイトマップを判別するGoogleに関してはそれで問題ないはずです。
Google以外はせめてモバイルサイトマップを理解できるのかだけでもわかればよいのですけど。
誰か身を削って実験してませんかね。
誰か身を削って実験しませんかね。 -
replied for 45shiki.net's comment
July 25, 2009 10:59 PM
|
ReplyThis!
-
4n5さん、確かに「wgetやcurlをcronで定期的に実行する」もありですね。
ただその後、サイトマップの種類は違うけれど、同じように扱われる(サイトマップ登録してみたら)のが確認できたのと、複数サイトマップをrobots.txtに複数行書いていいってのは解ったので、更新Pingも同じエンドポイントじゃないかと期待してるんですよ。
>誰か身を削って実験しませんかね。
ぐっ・・・
ボヤく前に試せと・・・・ごもっとも -
replied for oscar's comment
July 26, 2009 4:48 PM
|
ReplyThis!
-
ところで、Comment Subscribeって動いてますか?
一度もメールが届かないのです。
まあ、変てこなメルアドなんで不正診断されてるのかな、とか思ってたんですけど。
ふと、プレビュー経由の投稿だと機能しないのかなって思っ……じ、自分で試すべきなのか
-
replied for 45shiki.net's comment
July 26, 2009 6:27 PM
|
ReplyThis!
-
4n5さんのコメントに対して、私へのメールは送られてきましたよ。
OpenIDなんかの認証使うとメールアドレスとかの入力がHiddenになりますよね。
これが関係してるような気がしてるんですが。
4n5さんの認証をmt_authorでのぞくと「・・・・」となってますが、これで届きますか?
でも、認証使った時に動作しないんじゃ問題だよな・・・
何か対応が必要そうですね。指摘してもらってありがとうございます。
>プレビュー経由の投稿だと機能しないのかな
組み込み忘れてないか確認します
-
replied for oscar's comment
July 26, 2009 11:10 PM
|
ReplyThis!
-
キャー、アドは全部隠してねん

> これで届きますか?
日常的にメールのやり取りはできてます。
ちゃんと作る時にRFCで「@前の最小バイト」が決められていない事を調べましたよ(グレーゾーン?)
それでも、登録システムで弾かれる事は時々あります。
そういう所はシステムの規模が中小の所で、「Google」とか「はてな」みたいに大規模な所の方がちゃんと登録できますね。
何だかんだ言いながらも、自分のMTにはこのアドレスで登録してあります。
そしてMTは正規のサービスを提供してくれます。ちなみに、メールアドレスのためだけにサブドメインを作成しています。
独自ドメインだからできる贅沢だと思います。> 4n5さんのコメントに対して、私へのメールは送られてきましたよ。
システム管理者とコメントユーザーのサービス格差
-
replied for 45shiki.net's comment
July 26, 2009 11:26 PM
|
ReplyThis!
-
恥ずかしい話だけど、原因判明。
そもそもプレビュー用のテンプレートに手を入れてなかったわな・・・
すいません。自分が滅多に使わないから忘れていた。直しときます。
-
-
-
-
-





スクリプトの読み込みが完了していません。
メールフォーム(Javascriptを使用していません)や、
Twitter経由のCommentでもReplyいたします。ただし返信はブログのコメントとして行う事もあります。