PowerCMS Xでこれやるときどうしたらいいのメモ
PowerCMS Xで主にビュー(テンプレート)を書くときの社内向けTips集です。公式のドキュメントになくて調べたり、メーカーに確認した内容などを掲載します。
この記事は2020年5月の執筆ですが、製品自体の更新頻度が非常に高く、鮮度がすぐ落ちる可能性があります。賞味期限にはご注意ください。
属性・モディファイア
replaceでhtmlタグを変換したい
View
<mt:setvarblock name="br"><br></mt:setvarblock>
<mt:EntryTitle replace="'$br',' '">
ステータスが○○のオブジェクトを表示/非表示にしたい
View
<mt:entries include_draft> // 下書きを含む
<mt:entries status="0"> // 下書きのみ
<mt:entries status_not="0"> // 下書きを除く
<mt:entries status_lt="3"> // レビュー以下のみ
文字数を取得したい、けどcount_charactersがない?
View
<mt:var name="foo" count_characters> // NG
<mt:var name="foo" count_chars> // OK
if文
複数の値のいずれかと同値の場合の分岐を作りたい
View
<mt:if name="foo" like="bar|baz">...</mt:if> // NG
<mt:if name="foo" match="bar|baz">...</mt:if> // OK
elseifで同じ変数に対して比較する分岐を作りたい
View
<mt:if name="foo" eq="bar">
...
<mt:elseif eq="baz"> // NG
...
<mt:elseif name="foo" eq="baz"> // OK
...
変数操作
配列の値を$で展開したい
View
<mt:Entries keyword="$request.keyword">... // NG
<mt:var name="request.keyword" setvar="keyword">
<mt:Entries keyword="$keyword">... // OK
変数名を変数で指定したい
View
<mt:setvar name="foo" value="bar">
<mt:setvar name="baz" value="foo">
<mt:var name="$baz"> // bar
+1したい
View
<mt:var name="foo" increment setvar="foo"> // +1
<mt:var name="foo" increment="2" setvar="foo"> // +2
<mt:var name="foo" decrement setvar="foo"> // -1
変数の値を初期化したい
View
<mt:setvar name="foo"> // NG
<mt:setvar name="foo" value=""> // OK
このページのURLを出力したい
View
<mt:CanonicalURL> // NG
<mt:var name="current_archive_url"> // OK
タグの出力値を一度変数に格納して…というのが面倒
View
<mt:Entries>
<mt:var name="id"> // <mt:entryid>と同値
</mt:Entries>
URLマップ
年別アーカイブ・月別アーカイブを作りたい
アーカイブ種別:インデックス
コンテナ:対象のモデル
再構築トリガー:設定不要 // コンテナ指定すると更新したオブジェクトの関係する年だけ更新する
日付ベース:年別
特定のカラムの値に応じて詳細ページを出力するかどうか制御したい
<mt:if tag="entryflag"><mt:entrybasename>.html</mt:if>
その他
あるカラムの値が「空かどうか」を条件に抽出したい
View
<mt:Entries cols="id,keywords">
<mt:if tag="entrykeywords">
<mt:entryid setvar="entry_id">
<mt:setvar name="entry_ids" value="$entry_id" function=" push">
</mt:if>
</mt:Entries>
<mt:Entries ids="$entry_ids">
</mt:Entries>
バッチで全体の再構築をしたい
cd path/to/powercmsx; sudo -u apache php ./tools/rebuildFiles.php archive