MixedObjectsプラグインを利用すると複数のモデルのオブジェクトを1つにマージしてループ出力することができます。このプラグインは次のバージョンにて提供する予定のものですが、こちらから先行してダンロード( MixedObjects.zip (7.9KB) )していただけます。
mt:mixedobjects
models 属性または params属性のキーに指定した複数のモデルのオブジェクトを1つにマージしてループ出力します。
models 属性または params属性のどちらかが必須です。params属性を省略した時、読み込まれるのは idカラムとプライマリカラムの値、sort_by属性指定のあるときはそのカラムとなります。
このタグは LivePreview には対応していません。
予約変数
タグ属性
ハッシュでモデル名とカラム名を指定する時、カラム名'id'は省略可能です。
<li>
( : ID )
</a>
</li>
または、
<li>
( : ID )
</a>
</li>
この時、発行されるSQLは以下のようになります(システムスコープのビューの場合)。
(SELECT entry_id,entry_title,entry_published_on,'entry' AS table_name FROM mt_entry WHERE entry_rev_type=0 AND entry_status=4 AND entry_workspace_id = 0)
UNION
(SELECT page_id,page_title,page_published_on,'page' AS table_name FROM mt_page WHERE page_rev_type=0 AND page_status=4 AND page_workspace_id = 0)
UNION
(SELECT asset_id,asset_label,asset_published_on,'asset' AS table_name FROM mt_asset WHERE asset_rev_type=0 AND asset_status=4 AND asset_workspace_id = 0)
ORDER BY entry_published_on DESC LIMIT 5
各モデルをフィルタ指定する条件をモデルに対して1つずつ conditions 属性で渡すことができます。
キーにモデル名、値に「カラム名,条件,フィルタする値」を指定した配列(ハッシュ)として渡してください。
〜
条件 | 説明 |
---|---|
ct(like) | Contains (含む) |
nc | Not Contains (含まない) |
gt | Greater Than (より大きい) |
lt | Less Than (より小さい) |
ge | Greater than or Equal (以上) |
le | Less than or Equal (以下) |
eq | Equal (等しい) |
ne | Not Equal (等しくない) |
bw | Begin with (から始まる) |
ew | End with (で終わる) |