制作者 | mystral-kk - geeklog AT mystral-kk DOT net |
---|---|
バージョン | 2.0.0 |
公開日 | 2012-06-11 |
Dataproxyプラグインは、Geeklogのコンテンツ取得代行・キャッシュ管理を行うプラグインです(キャッシュ管理機能はまだ実装されていません)。通常、各プラグインが管理するデータを取得するには、それぞれSQLを組み立て、権限チェックを追加するなどの手順を踏む必要がありますが、Dataproxyプラグインを使用すれば、簡単な手順と統一されたインターフェースでコンテンツを取り出すことができます。
ご注意:Dataproxyプラグインはまだ開発初期の段階のため、下記のAPIは変更される可能性があります。
Dataproxyプラグインでは、コンテンツを提供する機能・プラグインをデータソースとして位置づけています。現時点でサポートされているデータソースは次の通りです。article, comments, trackbackは常に利用できます。
また、各データソースは階層的なカテゴリを持っています(staticpagesなどにはありません)。各階層にある具体的なコンテンツをアイテムと呼びます。
Dataproxyプラグインがインストールされ、有効になっていれば、次の1行を記述するだけでDataproxyプラグインが提供するAPIを利用できます。
$uidはデータを取得するユーザーのID($_USER['uid'])です。デフォルト値は1(ゲストユーザーの扱い)です。全データを取得する必要がある場合は、0を指定します。
Dataproxyクラスは実際にデータを取得するdpxyDriverクラスの生成・管理を担当します。現在有効になっているプラグインを認識し、必要なdpxyDriverクラスのインスタンスを作成します。
Dataproxyプラグインでサポートされているデータソース名の配列を返します。
Dataproxyプラグインで現在有効になっているデータソース名の配列を返します。サポートされているデータソースについては、上記をご覧ください。
文字列をHTMLとして出力できるようエスケープします。
以下のメンバーは、データソースオブジェクト(:dpxyDriverクラス)へのリファレンスになっています。
dpxyDriverクラスは各コンテンツのデータ・メタデータを実際に取り出すデータソースドライバーの親クラスです。Dataproxyクラスが管理しますので、ユーザーがデータソースドライバーをインスタンス化する必要はありません。
各プラグインのユーザーに見えるトップページのURIを返します。staticpagesプラグインなどのようにトップページがない場合は、FALSEを返します。
親カテゴリ$pidの下にあるすべての子カテゴリのメタデータを配列で返します。配列の要素は以下のようになっています。ルートカテゴリの場合は、$pidにFALSEを指定して呼び出します。多言語機能を有効にしたサイトで$all_langsにTRUEを指定すると、カレントユーザーの言語IDを無視します。Googleサイトマップなどを作成する場合に有効です。
データソースが持つすべてのカテゴリのメタデータを配列で返します。配列の要素は、getChildCategories()と同じです。多言語機能を有効にしたサイトで$all_langsにTRUEを指定すると、カレントユーザーの言語IDを無視します。Googleサイトマップなどを作成する場合に有効です。
親カテゴリ$pidの下にあるすべてのアイテムのメタデータを配列で返します。配列の要素は以下のようになっています。ルートカテゴリの場合は、$pidにFALSEを指定して呼び出します。多言語機能を有効にしたサイトで$all_langsにTRUEを指定すると、カレントユーザーの言語IDを無視します。Googleサイトマップなどを作成する場合に有効です。
$idで指定されたIDを持つアイテム1個分のメタデータと生データを配列で返します。配列の要素は以下のようになっています。
データソースが持つすべてのアイテムのメタデータを配列で返します。配列の要素は、getItems()と同じです。多言語機能を有効にしたサイトで$all_langsにTRUEを指定すると、カレントユーザーの言語IDを無視します。Googleサイトマップなどを作成する場合に有効です。
文字列をHTMLとして出力できるようエスケープします。
$strをUTF-8に変換します。
与えられたURIからXSSの可能性のあるコードを取り除きます。
例1. 記事のメタデータを全て(カレントユーザーの言語のみ)取り出す
例1. 記事のメタデータを全て(すべての言語)取り出す。
例2. 静的ページのメタデータを全て取り出す
例3. 'foo'カテゴリの記事のメタデータを全て取り出す
例4. 記事IDが'bar'の記事のデータを取り出す
例5. 全データソースのアイテムのメタデータを全て取り出す
バージョン | 公開日 | 変更点 |
---|---|---|
2.0.0 | 2012-06-11 | Singletonパターンを用いて、Dataproxyクラスを書き直しました。 |
1.0.3 | 2007-12-26 | getChildCategories(), getAllCategories(), getAllCategoriesAsLinks(), getItemById(), getItems(), getItemsAsLinks), getAllItems()で、$all_langsパラメーター(オプション)を追加しました。 |
1.0.0 | 2007-11-04 | 初期バージョン |