a-blog cms で ATNDもジュールを作ってみる その3(管理ページでのID設定)

その1 で a-blog cms のモジュールは用意できてしまっていますが、そのモジュールの設定をブラウザ上からできるようにするというのが今回の目標となります。a-blog cms のカスタムフィールドが分かる人であれば、簡単に管理ページを新規に作成する事が可能となります。

モジュールの名前から管理ページのアドレスやファイル名は自動的に決められてくる事になります。今回のモジュール名は Api_Atnd_EventsUsers という名前になっていますので、似たモジュールでどういう感じなのかを調べてみる事にします。

Yahooウェブ検索 ( Api_Yahoo_WebSearch ) を例に見てみましょう

サイト内検索をシステム標準のモノを使うのではなく、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 で ATNDモジュールを作ってみる その2(post_includeの活用)

a-blog cms には、Ajax を利用してページを表示後に、別のコンテンツを読み込む事ができる post include という機能が標準で実装されています。これを利用すると、その1 で問題になっていたキャッシュ部分が少し改善させる事が可能になります。

では、なぜ post include 機能を利用するとキャッシュの問題を少し改善する事ができるのでしょう?

  1. サーバ上に作成される各ページのキャッシュにはATNDモジュールは無い状態でキャッシュされる事になります。
  2. ATNDモジュール部分の小さなパーツは、単体でキャッシュされる事になります。

a-blog cms で ATNDモジュールを作ってみる その1

ココのサイドに参加状況をお知らせできるように ATNDの出欠確認APIを利用して a-blog cms 用のオリジナルモジュールの作り方を書いてみようと思います。以下のようなリクエストで今回の表示に必要なXML情報を取得する事が可能です。

http://api.atnd.org/events/users/?event_id=17440

詳しくは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 -->