先日紹介した ATND アドオン を GitHub で公開しました。
ATND イベントの ID を入力すると、ATND API から情報を取得してきます。
取得したデータは、xsltprocessor で処理して、整形後表示します。xsl ファイルで、xml フォーマットから(xml に限らない)別のフォーマットに変換する方法を指定します。
xsl ファイルは、当初は管理画面から設定できる方法を検討していました。しかし、セキュリティ面での検証に確信が持てなかったので、ブロック内に view.xsl ファイルを置く、という形にしました。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8" indent="no"
omit-xml-declaration="yes" media-type="text/html"/>
<xsl:template match="/">
<xsl:value-of select="hash/events/event/title"/><br />
Attendees<br />
<xsl:for-each select ="hash/events/event/users/user">
<xsl:value-of select="nickname"/><br />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
キャッシュ機能についても、http://www.concrete5.org/api/Blocks/ContentBlockController.html を参考に、controller.php に記述しました。
protected $btCacheBlockRecord = true; protected $btCacheBlockOutput = true; protected $btCacheBlockOutputOnPost = true; protected $btCacheBlockOutputForRegisteredUsers = true; protected $btCacheBlockOutputLifetime = 300;
GPL ライセンスで公開しています。controller.php にライセンス条項を記載してあります。