dopvSTAR* 導入メモ
Category : Memo
Movable Type 対応のアクセス解析ツール「dopvSTAR*」を導入しました。
Movable Type と相性がよいということで導入してみたのですが、いくつか気付いたことが。
- よくある「カテゴリの説明で日本語表記」を前提としているが、ウチは関係ない(英語表記のみ、カテゴリの説明は説明として使用)
- ログ取得の書式サンプルそのままだと、XHTML1.0のValidationに通らない
- 月別アーカイブと日別アーカイブを別に説明しているが、テンプレートは同一のもの(一つの日付アーカイブテンプレート)を使用
- SSIでテキストカウンタを使いたいけれど、その方法が明示されていない
ということで、その辺りを調査し実際に解決していったので、覚え書きとして残しておきます。
(MovableTypeのアクセス解析 [楽]を参考にしました。)
導入環境
- OS
- Mac OS X v10.4.7
- Webサーバ
- Apache 2.0.x+Perl5.8.7
(xampp for Mac OS X v0.5 使用) - Movable Type 3.2-ja-2
- dopvSTAR* 0089
前準備(MovableType)
SSIを使用するにあたり、httpd.confにて XBitHack on を設定したので、吐き出す HTMLファイル に実行属性を付ける必要あり。
mt-config.cgiの以下の箇所を変更:
- 187行目あたり
- # HTMLUmask 0022
↓
HTMLUmask 0000 - 201行目あたり
- # HTMLPerms 0777
↓
HTMLPerms 0777
dopvSTAR* インストール
(詳細略)
dopvSTAR* 初期設定(dsi.pl 編集)
- 528行目あたり
- $INI{'mt_dir'} = '(適切なmtへの絶対パス)';
- 531行目あたり
- $INI{'mt_cfg'} = 'mt-config.cgi'; # ←MT3.2なので変更無し
- 535行目あたり
- $INI{'mt_cate'} = 0; # ←カテゴリ名の変換を行わないので「0」に設定
インデックステンプレートへのログ取得・カウンタ出力タグ記述
適切なところに以下を記述:
<div class="side-counter side"> <script type="text/javascript" language="JavaScript"> <!-- //===== ログ取得CGIへのパス(相対パスもしくはURL) var pa = "<$MTBlogURL$>ds/dsw.cgi"; //===== ページ名(半角英数文字のみ) var pg = "INDEX"; //===== 出力タイプ(g=グラフィックカウンタ, m=gifロゴ, n=出力ナシ) var p = "n"; //===== カウントアップしないなら "no" var cnt = ""; document.write('<a href="http://tech.bayashi.net/" title="技林/CGI">'); var a="&&"; var pf=navigator.platform; var lng=navigator.language; var swh=screen.width+"x"+screen.height; var cd=screen.colorDepth; var pd=screen.pixelDepth; var rf=document.referrer; document.write("<img src='"+pa+"?xx=",new Date().getSeconds(),a+"cnt="+cnt+a+"p="+p+a+"md=j"+a+"pg="+pg+a+"pf="+pf+a+"lng="+lng+a+"swh="+swh+a+"cd="+cd+a+"pd="+pd+a+"rf="+rf+"' alt='' border='0' />"); document.write('</a>'); // --> </script> <noscript> <a href="http://tech.bayashi.net/" title="技林/CGI"><img src="<$MTBlogURL$>ds/dsw.cgi?p=n&&md=nj&&pg=INDEX" alt="" border="0" /></a> </noscript> <!--#include virtual="/ds/dsw.cgi?p=t&&count=total&&md=s" --><br /> Y: <!--#include virtual="/ds/dsw.cgi?p=t&&count=yesterday&&md=s" --> / T: <!--#include virtual="/ds/dsw.cgi?p=t&&count=today&&md=s" --> <!--#include virtual="/ds/dsw.cgi?p=n&&md=s&&pg=INDEX&&bot=1&&cnt=no" --> </div>
※ 参考にしたサンプルとの相違点
- <script>~</script><noscript>~</noscript> 全体を <a href="...">~</a> でくくっていたのを、内部に記述するよう変更
- JavaScriptコメント中に「-」(ハイフン)が2つ以上続く箇所が存在するので、「=」に置き換え
- URL中に「&」がそのまま現れている箇所(SSIによるCGI呼び出し除く)をHTMLエンコード(「&」に置き換え)
- カウンタをSSIによるテキストカウンタに(dsw.cgi?p=t&&count=*****&&md=s")
カテゴリーアーカイブテンプレートへのログ取得タグ記述
上記インデックステンプレートへの記述を参考に、pgの設定を以下のように記述:
var pg = "<$MTArchiveTitle$>";
※カテゴリー名に半角英数字しか使用しておらず、カテゴリーの説明で日本語置き換えをしていないので、これだけで充分。
日付アーカイブテンプレートへのログ取得タグ記述
拙作の二つのプラグイン(DateSlashedFilter、Span)を使用し、以下のように記述:
var pg = "<$MTBlogID$>_<MTSpan encode_url="1"><$MTArchiveTitle date_slashed="1"$></MTSpan>";
※日付形式をスラッシュ区切りにして、URLエンコード(「/」を「%2F」に変換)。
→こうすることで、月別アーカイブか日別アーカイブかに寄らず同様の形式でページ指定ができる。
※※ドキュメントには「ページ名に使用できるのは半角英数字と『-』と『_』のみ」とありますが、このようにURLエンコードすることでほかの文字も有効になっちゃいます。
エントリーアーカイブテンプレートへのログ取得タグ記述
以下のように記述(サンプル通り):
var pg = "<$MTBlogID$>_<$MTEntryID pad="1"$>";
以上。
取り敢えず、これで期待通りに動いています。





コメントする