アルファサード有限会社ではPower CMS for MTをはじめとした自社製品の開発・保守を担当いただくプログラマ(Perl/PHP)正社員を募集しています(求人ページ)。

2009年10月17日
各種グループの情報を取得するObjectGroupsプラグイン

Power CMS for MTの強力なグループ機能を利用すれば、ブログ記事/ウェブページ/カテゴリ/フォルダ/ブログ(あるいはそれらの混在)をドラッグ&ドロップでグループ化し、表示順を自由に指定できます。

オブジェクト・グループの編集画面(クリックで拡大)

この機能をさらに活かすために、登録されているグループを順番に取得するブロックタグ(プラグイン)を作成しましたので公開します(Power CMS for MTが必要です)。

※現在のところスタティック・パブリッシング専用です

インストール

OptionPluginsの中のObjectGroupプラグインをインストールして有効にし、ObjectGroupプラグインまたはPowerCMSプラグインディレクトリにダウンロードしたObjectGroupsプラグインを設置してください。

テンプレートタグ

各グループを取り出すブロック・タグ
  • MTEntryGroups(エントリーグループ(MTItemGroupEntries))
  • MTCategoryGroups(カテゴリーグループ(MTItemGroupCategories))
  • MTBlogGroups(ブログ・グループ(MTItemGroupBlogs))
  • MTObjectGroups(オブジェクトグループ(MTObjectGroupItems))
各ブロック・タグで指定できるモディファイア
  • blog_id('0'を指定するとシステムメニューで作成したグループを、'*'を指定するとすべてのブログを対象にします)
  • blog_ids(カンマ区切り)
  • lastn(出力件数)
  • sort_by(ソート順/デフォルトではID)
  • sort_order(ascend-昇順/descend-降順)
各ループの最初/最後を判別するブロック・タグ
  • MTEntryGroupsHeader(MTEntryGroupsFooter)
  • MTCategoryGroupsHeader(MTCategoryGroupsFooter)
  • MTBlogGroupsHeader(MTBlogGroupsFooter)
  • MTObjectGroupsHeader(MTObjectGroupsFooter)
各ループの中でグループの情報を取得するファンクション・タグ
  • MTGroupName(グループの名称)
  • MTItemCount(グループに登録されているアイテム数)

テンプレート

以下のテンプレートでは、ObjectGroupの名前とアイテム数を出力します。

<MTObjectGroups blog_ids="1,3">
<MTObjectGroupsHeader>
<table border="1">
    </MTObjectGroupsHeader>
    <tr>
        <td>
            <$MTGroupName$></td>
        <td>
            <$MTItemCount$></td>
    </tr>
    <MTObjectGroupsFooter>
</table>
</MTObjectGroupsFooter>
</MTObjectGroups>

具体的には、以下のようにすることで各グループのループを順番に取り出すことができます。取得したグループ名をSetVarしてグループを特定します。こちらもObjectGroupの例です。

<MTObjectGroups blog_ids="1,3">
    <$MTGroupName setvar="GroupName"$>
    <MTObjectGroupItems name="$GroupName">
        グループのアイテムを順番に出力...
    </MTObjectGroupItems>
</MTObjectGroups>

カテゴリー:テンプレート作成Tipsプラグイン

トラックバック

このエントリーのTBPingURL:
http://powercms.alfasado.net/mte/mt-tb-powercms.cgi/51

コメントを投稿する

TypeKey IDを使ってサインインしてください。

(初めてコメント投稿される方は、承認が必要になることがあります。承認されるまではコメントは表示されませんのでご了承ください)

  • Alfasado
Alfasado