うわーん!何か書こうにも愚痴っぽいネタしか無いよドラえもーん!なりきりキャラ新ジャンル・病んデレごっこでもやろうかと思ったのですが、どこにもオモロくなる要素が無いのでボツでございます。
お茶濁し色全開ですが、今回はMovableTypeサイトをモバイルで閲覧可能にする「MT4i」に、携帯アクセス解析の「うごくひと2」の上級版機能を実装するメモなどを。
「うごくひと2」は株式会社ユーザーローカル様が先月に大バージョンアップした携帯サイト用アクセス解析ツールです。前バージョンから各種機能が大幅にアップして、グラフィカルなレポート満載の、大変ユニークかつ素晴らしい物となっています。ユーザー登録するだけで、無料で利用できるのもありがたいです。
このツールをMT4iで利用する場合、もっとも簡単なのはうごくひと2のマイページにログイン後、「HTMLタグ発行」のページから得られる「通常版」のタグを、「(MT4iディレクトリ)/tmpl/footer.tmpl」の適当なところに貼り付けるだけ。アップロード後にアクセスしてみて、フッター部分に「うごくひと」の画像が表示されていれば設置完了です。
ただし、うごくひと2の「HTMLタグ発行ページ」にも注意書きとして書かれてある通り、上記のみの設置だと「検索キーワード」や「参照元分析」などの機能は利用できません。うごくひとは2になってマーベラスなレポート機能を提供してくれているのに、これでは勿体ない。
ならば「上級版」のタグを実装してみることにしましょう。MT4iはperlで書かれていますので、「Perlのコード」を拝借することにします。
▼サンプル
use URI::Escape qw(uri_escape);
use CGI;
my $UH2q = new CGI;
my $UH2url = "http://b14.ugo2.jp/?u=XXXXXX&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=UTF-8&sb=".uri_escape("[page title]");
print '<img src="'.$UH2url.'" width="1" height="1" alt="携帯アクセス解析" border="0" />';※「XXXXXX」部分はユーザー・サイト毎に異なるので、ユーザー・サイト登録後、うごくひと2のマイページから取得した値の物を使用してください
まずは「(MT4iディレクトリ)/index.cgi」をエディタで開き、(多分)3900行目付近にある
##################################################
# Sub _Tmpl_Common - Fill the common parameter.
##################################################
sub _tmpl_common {
の箇所を探します。MT4iが生成するページのほとんどはこのサブルーチンを通過して各種変数がテンプレートに渡される仕組みになっています。ので、上記で得たコードを一部修正してここに貼り付けます。
use URI::Escape qw(uri_escape);
use CGI;
my $UH2q = new CGI;
my $UH2url = "http://b14.ugo2.jp/?u=XXXXXX&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=UTF-8&sb=".uri_escape("[page title]");
print '<img src="'.$UH2url.'" width="1" height="1" alt="携帯アクセス解析" border="0" />';
まず上記の赤文字部分を削除して、
$tmpl->param(UH2 => encode("shiftjis",decode("euc-jp",$UH2url)));
を追加し、
return $tmpl;
の直前に挿入します。
・
・
・
# Emoticon
$tmpl = __emoticon($tmpl);use URI::Escape qw(uri_escape);
use CGI;
my $UH2q = new CGI;
my $UH2url = "http://b14.ugo2.jp/?u=XXXXXX&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=shiftjis&sb=";
$tmpl->param(UH2 => encode("shiftjis",decode("euc-jp",$UH2url)));return $tmpl;
こんなかんじ。
次に、「(MT4iディレクトリ)/tmpl/footer.tmpl」を開き、「うごくひと」の画像が表示されても良いところに
<a href="http://ugo2.jp/m/"><img src="<TMPL_VAR NAME="UH2"><TMPL_IF NAME="MODE_INDIVIDUAL"><TMPL_VAR NAME="ENTRY_TITLE">:</TMPL_IF><TMPL_VAR NAME="BLOG_TITLE">"></a>
を挿入します。ソース全体は
<p>
<center>
Powered by<br>
<TMPL_UNLESS NAME="ADMIN_MODE"><a href="http://hazama.nu/pukiwiki/?MT4i"></TMPL_UNLESS>MT4i <TMPL_VAR NAME="VERSION"><TMPL_UNLESS NAME="ADMIN_MODE"></a></TMPL_UNLESS>
</center>
</p>
<p align="center">
<!-- ugo -->
<a href="http://ugo2.jp/m/"><img src="<TMPL_VAR NAME="UH2"><TMPL_IF NAME="MODE_INDIVIDUAL"><TMPL_VAR NAME="ENTRY_TITLE">:</TMPL_IF><TMPL_VAR NAME="BLOG_TITLE">"></a>
<!-- ugo end -->
</p></body>
</html>
こんなかんじ。
できあがった2つのファイルをそれぞれアップロードして、PCでアクセスします。フッターのイメージした位置に「うごくひと」の画像が表示されていたら、第一段階はクリア。次はページのソースを確認します。
フッター部分の「<img src="http://b14.ugo2.jp/?u=...」で始まるタグの末尾、「sb=」直後にTOPページの場合はblogのタイトル、各記事ページの場合はエントリーのタイトル:blogのタイトルが表示されていたらOKです。
長くなりますが、
<a href="http://ugo2.jp/m/"><img src="<TMPL_VAR NAME="UH2"><TMPL_IF NAME="MODE_INDIVIDUAL"><TMPL_VAR NAME="ENTRY_TITLE">:</TMPL_IF><TMPL_VAR NAME="BLOG_TITLE">"></a>
部分を
<a href="http://ugo2.jp/m/"><img src="<TMPL_VAR NAME="UH2"><TMPL_IF NAME="MODE_INDIVIDUAL"><TMPL_VAR NAME="ENTRY_TITLE">:</TMPL_IF><TMPL_IF NAME="MODE_INDIVIDUAL_RCM"><TMPL_VAR NAME="ENTRY_TITLE">:</TMPL_IF><TMPL_IF NAME="MODE_COMMENT"><TMPL_VAR NAME="ENTRY_TITLE">へのコメント:</TMPL_IF><TMPL_IF NAME="MODE_COMMENT_RCM"><TMPL_VAR NAME="ENTRY_TITLE">へのコメント:</TMPL_IF><TMPL_IF NAME="MODE_COMMENTFORM"><TMPL_VAR NAME="ENTRY_TITLE">へのコメント投稿:</TMPL_IF><TMPL_IF NAME="MODE_COMMENTFORM_RCM"><TMPL_VAR NAME="ENTRY_TITLE">へのコメント投稿:</TMPL_IF><TMPL_IF NAME="MODE_TRACKBACK">このEntryへの最近のトラックバック:</TMPL_IF><TMPL_VAR NAME="BLOG_TITLE">"></a>
などとすれば、コメントページやコメント投稿画面などでも、閲覧ページ名が詳細に記録されるようになる...と思います。...というのは、うごくひと2のHTMLタグ発行ページの最後にも書かれてあるように、「※perl は検証中です。」ということらしく、どうやらまだ動作が完全では無いっぽく小生もイマイチ正しい動作がどういう事なのか、把握しきれていないのですよ。

コメント (7)
やってみましたが。。
v2.25の
# Sub Htmlout - HTMLの出力
サブルーチン内で最初に現れる$dataの直前に、
my $UH2q = new CGI;~decode("euc-jp",$UH2url)));
を追加、
同サブルーチン内の最後から2番目のelse内の$dataに通常版コード
を貼り付けています。
use URI::Escape qw(uri_escape);
は、サブルーチン内ではなく、冒頭の30行目
に追加しました。
しかし、やはりエラーになりました。
投稿者: ナカムラ | 2009年9月 7日 17:08
日時: 2009年9月 7日 17:08
ナカムラさま
こんにちは。エラーメッセージなどを見てみないと何とも言えないのですが、
sub htmlout{
のはじめの方に
my $UH2q = new CGI; my $UH2url = "http://b14.ugo2.jp/?u=XXXXXX&h=XXXXXX&guid=ON&ut=1&qM=".uri_escape($UH2q->referer())."|Az|".uri_escape($UH2q->server_port())."|".uri_escape($UH2q->server_name())."|".uri_escape($UH2q->url(-absolute => 1))."|P|&ch=UTF-8&sb=".uri_escape("[page title]");
を書いて、
$data .= "<a href=\"http://hazama.nu/pukiwiki/?MT4i\">MT4i v$version</a><br><img src="'.$UH2url.'" width="1" height="1" alt="携帯アクセス解析" border="0" />";
としてみるとどうでしょうか?
投稿者: 穂谷屋 | 2009年9月 7日 17:38
日時: 2009年9月 7日 17:38
度々ありがとうございます。
src="'.$UH2url.'"
とすると、urlの両端に「.」(ドット)が表示されてしまい、うごくひと2の画像が出ませんでしたが、
src=\"$UH2url\"
とすると、携帯で見ても表示されるし、ソース
をみても両端の「.」はなく、
とりあえずはうまく行ったようです。
ありがとうございました。
画像が表示されたので、高機能版の集計結果が表示される
と思いますが、時間が経ったら解析を見てみます。
楽しみです。まずは、中間報告とします。
投稿者: ナカムラ | 2009年9月 7日 18:50
日時: 2009年9月 7日 18:50
うごくひとの解析を見てみました。
これまでUnknownとして表示されていたのが、
ちゃんとブログurl/mt4i.cgiとして表示されるようになりました。ありがとうございました。
ところで、だんだん欲が出てきてしまうのですが、
携帯ブログのソースを見てみると、どのブログでも、また、どの記事も、
「うごくひと」画像のsrcは同じものになっています。(今のところ、[page title]に入れた内容になっています)
この部分をブログ毎、記事毎に変化させることは、v2.25では出来ないでしょうか?
それとも、src=\"$UH2url\"
としてしまったことに原因があるのでしょうか?
投稿者: ナカムラ | 2009年9月 7日 22:29
日時: 2009年9月 7日 22:29
ナカムラさま
こんばんは。 まずは動作の第一歩、おめでとうございます。
[page title]の部分には、ソースの上のほうで処理されている、例えば「単一ページの描画(?)」等の中にある、「$entry_title(?)」などをurlエンコードして、「$entry_title_e」などと別の変数にして用意して、[page title]の代わりに$entry_title_eを代入してやれば、ページ毎のタイトルが反映されるようになると思います。
説明がわかりにくくてすみません;;
各種ページを生成する箇所にて、<title>タグを生成している箇所がありますので、その変数をエンコードして、うごくひと用の変数とする、ってな手順です。
投稿者: 穂谷屋 | 2009年9月 7日 22:39
日時: 2009年9月 7日 22:39
ありがとうございます。
ウーン、ここまでくるとプログラムの知識がない私にはちょっとムリかも。。。。
もう少し「学力」を着けてから、頂いたコメントを指針に取り組んで見ます。
出来たら、また報告して、お知恵を拝借させていただきたいと思います。
投稿者: ナカムラ | 2009年9月 7日 23:18
日時: 2009年9月 7日 23:18
ナカムラさま
こんばんは。まったくもって上手く説明できなくて申し訳ないです。
私のほうでもまた、ソースを見てヒントにできそうな箇所を挙げてみたいと思います。
投稿者: 穂谷屋 | 2009年9月 7日 23:28
日時: 2009年9月 7日 23:28