「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
アクセスカウンタープラグイン(その4)
アクセスカウンターでは、数字を画像化して表示することが多いです。
↓アクセスカウンターの画像表示の例
そこで、今日はアクセスカウンターを画像化して表示する方法を解説します。
1.SplitStringプラグインのインストール
まず、拙作のSplitStringプラグインをダウンロードして、Movable Typeにインストールします。
SplitStringプラグインは以下からダウンロードすることができます。
プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。
また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。
Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。
ダウンロードしたファイルに「SplitString.pl」のファイル名をつけて保存し、そのファイルをMovable Typeの「plugins」ディレクトリにアップロードします。
2.SplitStringプラグインとアクセスカウンタープラグインを組み合わせる
SplitStringプラグインは、任意の文字列を1文字ずつ出力する働きをします。
これを利用して、アクセスカウンターの数値を1桁ずつ出力し、それをimgタグに変換することで、アクセスカウンターを画像化して表示することができます。
数値をx桁にして表示し、かつ値が0の桁には「0」を表示するようにしたいとします。
また、数値の画像に「0.gif」~「9.gif」のファイル名をつけて、Blogの出力先ディレクトリにアップロードしてあるものとします。
その場合、以下のようにタグを組むことで、数値を画像にして出力することができます。
<MTSetVarBlock name="○○"><$数値を出力するMTのタグ sprintf="%0xd"$></MTSetVarBlock> <MTSplitString name="○○"><img src="<$MTBlogURL$><$MTSplitStringChar$>.gif" alt="<$MTSplitStringChar$>" /></MTSplitString>
MTSetVarBlockタグの「name="○○"」の箇所には、数値を一時的に記憶しておくための変数の名前を指定します。
変数名は自分で決めます。
また、「数値を出力するMTのタグ」の箇所には、アクセスカウンター関連のタグを入れます。
そして、「sprintf="%0xd"」で数値の桁数を指定します。例えば、6桁で出力するなら「sprintf="%06d"」とします。
3.タグの組み合わせ例
一昨日のエントリーで、アクセスカウンターを表示するためのテンプレート・モジュールの例を紹介しました。
そのテンプレート・モジュールを書き換えれば、アクセス数を画像で表示することができます。
以下のリストは、Blog全体/今日/昨日/ページのアクセス数を画像で表示する例です。
Blog全体のアクセス数は8桁、今日と昨日のアクセス数は4桁、ページのアクセス数は6桁で表示するようにしています。
<MTAccessCounterAdd> <ul class="module-list"> <li class="module-list-item">Blog全体<br /><MTSetVarBlock name="blog_access_count"><$MTBlogAccessCount sprintf="%08d"></MTSetVarBlock><MTSplitString name="blog_access_count"><img src="<$MTBlogURL$><$MTSplitStringChar$>.gif" alt="<$MTSplitStringChar$>" /></MTSplitString></li> <li class="module-list-item">今日<br /><MTSetVarBlock name="blog_today_access_count"><$MTBlogTodayAccessCount sprintf="%04d"></MTSetVarBlock><MTSplitString name="blog_today_access_count"><img src="<$MTBlogURL$><$MTSplitStringChar$>.gif" alt="<$MTSplitStringChar$>" /></MTSplitString></li> <li class="module-list-item">昨日<br /><MTSetVarBlock name="blog_yesterday_access_count"><$MTBlogYesterdayAccessCount sprintf="%04d"></MTSetVarBlock><MTSplitString name="blog_yesterday_access_count"><img src="<$MTBlogURL$><$MTSplitStringChar$>.gif" alt="<$MTSplitStringChar$>" /></MTSplitString></li> <li class="module-list-item">このページ<br /><MTSetVarBlock name="page_access_count"><$MTPageAccessCount sprintf="%06d"></MTSetVarBlock><MTSplitString name="page_access_count"><img src="<$MTBlogURL$><$MTSplitStringChar$>.gif" alt="<$MTSplitStringChar$>" /></MTSplitString></li> </ul>