a-blog cms で ATNDもジュールを作ってみる その4(モジュールID化の方法)
その1 で a-blog cms のモジュールは用意できてしまっていますが、そのモジュールの設定をブラウザ上からできるようにするというのが今回の目標となります。a-blog cms のカスタムフィールドが分かる人であれば、簡単に管理ページを新規に作成する事が可能となります。
モジュールの名前から管理ページのアドレスやファイル名は自動的に決められてくる事になります。今回のモジュール名は Api_Atnd_EventsUsers という名前になっていますので、似たモジュールでどういう感じなのかを調べてみる事にします。
サイト内検索をシステム標準のモノを使うのではなく、YahooのApiを利用して検索した結果をモジュールで表示できるようにしたものです。
モジュール名:Api_Yahoo_WebSearch
管理ページのURL:http://設置先/bid/1/admin/config_api_yahoo_web-search/
テンプレート:/themes/system/admin/config/api/yahoo/web-search.html
a-blog cms には、Ajax を利用してページを表示後に、別のコンテンツを読み込む事ができる post include という機能が標準で実装されています。これを利用すると、その1 で問題になっていたキャッシュ部分が少し改善させる事が可能になります。
では、なぜ post include 機能を利用するとキャッシュの問題を少し改善する事ができるのでしょう?
ココのサイドに参加状況をお知らせできるように ATNDの出欠確認APIを利用して a-blog cms 用のオリジナルモジュールの作り方を書いてみようと思います。以下のようなリクエストで今回の表示に必要なXML情報を取得する事が可能です。
詳しくはAPI側の説明をご覧下さい。
テンプレートファイルには、API から取得可能な情報を変数として設定し、目的の表示ができるように記述します。
<!-- BEGIN_MODULE Api_Atnd_EventsUsers --> <div> <h3><a href="{event_url}">{title}</a></h3> <p>参加者:{accepted}人 / 定員:{limit}人</p> <p><!-- BEGIN user:loop --> <a href="{twitter_id}" target="_blank"><img src="{twitter_img}" width="30" height="30" alt="{nickname}" /></a> <!-- END user:loop --></p> <p><a href="{event_url}/entry/new">このイベントに参加登録する</a></p> </div> <!-- END_MODULE Api_Atnd_EventsUsers -->