Serendipityのプラグインを作る

2007/03/25 | SNS/CMS/ブログ

仕事でSerendipityを使っている(使い始めた)。しかしまだブログツールの領域は出ていない(ポータルにまでは至らない)。それでも、素人さんのクライアントさんにはこの程度でも十分な場合も多い。
今回Serendipityで作っているサイトに認証機能を導入することになった。正確には、認証そのものは前から必要だった。しかしそれは単に.htaccessからBASIC認証するだけだった。今回はケータイからでも一部閲覧できるようにする必要があり、かつ閲覧ONLY(記事投稿権限なし)な人もいるので、諸般カスタマイズして作ることにした。
SerendipityにはプラグインでBASIC認証を組み込むものが用意されている(HTTP-Authentication)。他にLDAP認証できるプラグインもあるが、別途LDAP環境を構築する必要があるのでこちらはNG。今回はHTTP-Authenticationをカスタマイズして作っていくことにした。

■仕様
○SerendipityのAuthorとは別管理(テーブルを別途作成)
○テーブルに保存するデータ(ユーザ情報)は別機能で作成(こちらはcakePHPで)
○ログイン時に投稿権限があるかどうかチェックし、権限がある場合は自動的にSerendipityのAuthorログイン情報も取得して同時にログイン

つまり別テーブルでユーザ管理し、特定のユーザには別途権限を持たせ、そのユーザがログインしたときには、Serendipityの管理画面にも自動でログインさせる、ということになる。
まだまだ諸般作りこみは必要だが(ソースを修正しないとちょっと無理)、動くレベルにはなってくれた。そこでプラグインを作るときに必要になりそうなことを、現在わかっている範囲でメモしておく(基本的な書式については割愛し、「これ何だろ」と思ったところだけメモ)。

○function introspect()
基本情報(作者とかバージョンとか)をセットするための関数かな。

○function introspect_config_item()
プラグインで、ユーザに情報を登録されその情報に基づいてプラグインを動作させる場合に、管理画面に入力画面を表示させるわけだが、その画面を作成する際に使う。管理画面で入力された情報はデータベース内のserendipity_configというテーブルに書き込まれる。
ちなみに書き込まれた情報を呼び出すときは「$this->get_config(変数名)」などとして取り出す。

これだけを理解できればいいのかな、と思う。後は追加したい機能に類似したプラグインを探し、それをハックするのが手っ取り早い。最初から作る場合は・・・もう少し勉強は必要。

SerendipityをCMSとして使うためのプラグイン(その1)

2007/03/24 | SNS/CMS/ブログ

最近MovableTypeにはまり気味だが、思いとどまってSerendipityにも少し力を入れてみる。MovableTypeは個人利用では1ライセンス無料で利用できるけど、それ以外は有料。やっぱり余計なところに気を遣わないでいい(ライセンス問題)、オープンソースなSerendipityをうまく活用したい。
ということで、CMS利用で使えそうなプラグイン(および使える)をピックアップしてみることにする。

○アナウンスエントリ一覧(Announce entries)
 更新pingを送信するため。「ping」という言葉が説明にも出てこないので、わかりにくい・・・。
○カテゴリの割り当て(Category Assignment)
 記事に複数のカテゴリを割り当てる。記事を多面的に検索できるので便利。
○Post via XML-RPC
 XML-RPC経由でブログを操作する。外部ライブラリを作る際に便利。
○お問い合わせフォーム(Contact Form)
 メールフォームを設置できる。
○よくある質問と回答(Frequently Asked Question)
 FAQを作成できる。
○GuestBook
 掲示板を設置できる。
○Newsbox
○Start Page Category
 トップページに特定カテゴリの記事一覧を表示できる。

その他、気がついたときに逐次・・・。

やっぱりMTは最強かも

2007/03/09 | SNS/CMS/ブログ

以前serendipityの記事を書いたときに「MTに一矢報いたい」などと書いた。これはどうやら相当難しい。
最近MovableType絡みの仕事を請けた(といってもカスタマイズするわけではなくXML-RPCインターフェースの開発)。で、これを機会に久々にMovableTypeを自分でもインストールして使ってみることにした。

まず結論だが他のブログツールでは、ちょっとかないそうにない。当然といえば当然なのだが、ブログツールのデファクトスタンダード。ずいぶん先行している。まずインターフェースが秀逸。一度使い始めると他のブログの管理ツールはどうしてもしょぼく見えてしまう。
でも一番すごいのは、デザインの自由度だろう。以前からわかっていたことだけど、もうMTはブログツールではない。完全なCMSなのだ。デファクトになったが故、利用者も広くドキュメントも豊富。テンプレートも優れたものが多い。当面MTの時代は続くだろう。

しかしCMSとしての利用ならserendipityでも出来そうな気がする。PHPの手軽さもあるからモジュールの開発も出来るはずだし、無理をしてソースを読めば如何様にもカスタマイズできる(はず)。

MTのすごさにも触れたけど、なんとなくserendipityもがんばろうかな、と思った一日でした(両方使ってサイトを立ち上げてみようと思う)。

トラックバックping

2007/02/07 | SNS/CMS/ブログ

serendipityで記事投稿の画面にはトラックバックURLを入力するところがなかった。気にもしていなかったが、記事を投稿して初めてわかった。
記事中にURLリンクの記載(<a href=”>)があったらそのURLがトラックバックを受け付けているかどうか検査して、受け付けている場合はトラックバックpingを送信するということになっているようだ。
いかにも正統派な機能。でもきっとプラグインを探れば、いくらでもトラックバックできるようなのがあると思う。

でも初心者にとってはいいこと。意識しなくてもトラックバックが使えるのだから。これが本来のトラックバックのあるべき姿なのだから、ブログサービス業者は見習って欲しいもんだ。

ping送信先

2007/02/06 | SNS/CMS/ブログ

Serendipityの更新ping送信は、プラグインをインストールすることで実現できる、というのは以前に書いた。インストールするとデフォルトでいくつかのping送信先が設定してある。この設定のうち必要ないものを削除したり、常に利用したい送信先がある場合は、設定ファイルに記述しておくと楽になる。
設定ファイルは以下の場所にある。

(インストールしたディレクトリ)/plugins/serendipity_event_weblogping/

この中のservicesdb_ja.inc.phpというファイルに配列形式で記述されているので、これを適宜修正すればよい。使用言語によってファイルが分けられているんだ・・・。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net