SQLを利用してアイテムを表示するプラグインです。
注意
このプラグインは未テストです。
スキンを編集できるユーザーはこのプラグインを通じて任意のSQLを実行することができます。
ダウンロード
インストール
ダウンロードしたアーカイヴを展開して、Nucleusのpluginsディレクトリに放り込んで管理画面からインストールしてください。
使用法
プラグインオプションは存在しません。すべての指定はスキン変数で行います。
スキン変数<%SQLItem%>では4種類のパラメータが有効です。それぞれの登場順は固定になっています。
| 名前 | 説明 | 例 | |
|---|---|---|---|
| 記述 | 意味 | ||
| テンプレート名 | アイテムの表示に用いるテンプレート名です。省略不可。 | default/index | "default/index"というテンプレートを使用します。 |
| 最大表示件数/オフセット | 最大で何個のアイテムを表示するかの設定を数字で行います。表示件数の後にカッコつきで数字を指定すると、それはオフセットの指定として扱われます。省略可。省略した場合、最大表示件数は10件です。 | 10(5) | 最大表示件数は10件。オフセットは5件。 |
| フラグ | さまざまな設定を行います。詳しくは後述します。省略可。 | (後述) | (後述) |
| SQL | 表示するアイテムIDを指定するSQLを指定します。アイテムIDが一番最初の列として返ってくる必要があります。詳しくは後述します。省略不可。 | (後述) | (後述) |
SQLの指定
表示するアイテムはSQLで指定します。指定されたSQLは実行前に以下のルールに従って変換されます。
- SQL中のコンマ(,)が", "に置換されます。
- "{{{"と"}}}"で挟まれた部分が数値に変換されます。
- "$$$"で挟まれた部分をテーブル名と判断し、SQLプリフィックスが付加されます。
- "@@@"で挟まれた部分にmysql_real_escape_stringまたはmysql_escape_stringが適用されます。
SELECT i.inumber FROM $$$item$$$ AS i WHERE (i.inumber % 10) = 0
のようにテーブル名を"$$$"で囲むことによってSQLプリフィックスを意識せずにSQLを記述することができます。
アイテムの表示順もこのSQLの実行結果に依存します。
フラグの指定
現在6個のフラグが用意されています。フラグには対応する文字があり、それを記述すればフラグが有効に、しなければ無効になります。
| 文字 | 効果 |
|---|---|
| b | ブログ絞込みです。ブログに対応したページが表示されている場合、アイテムの所属ブログによる絞込みを行います。 |
| c | カテゴリ絞込みです。カテゴリに対応したページが表示されている場合、アイテムの所属カテゴリによる絞込みを行います。 |
| d | ドラフト表示許可です。 |
| f | 未来の日付で投稿されているアイテムに対する表示許可です。 |
| o | SQLの結果順ではなく、アイテムの投稿日時順でソートします。 |
| r | ソートの順序を逆にします。 |
記述例
<%SQLItem(default/index, SELECT i.inumber FROM $$$item$$$ AS i, $$$category$$$ AS c WHERE i.icat = c.catid AND c.cname LIKE 'Nucleus%' ORDER BY i.ititle)%>
省略可能な件数・フラグを省略しています。