PowerCMS™
2025年1月1日購入分よりライセンスの価格を改定いたします。
[ブログ] PowerCMS 6 でのアップデートまとめ を追加しました。
[よくあるご質問] システムログに「タスクを実行するために必要なロックを獲得できませんでした」というログが残っている を追加しました。
[よくあるご質問] 特定のシステムログに絞って確認できますか? を追加しました。
ホーム > ドキュメント > PowerCMS > 5 > スタンダード版 > DynamicMTML >

こちらは旧バージョン PowerCMS 5 のマニュアルです。最新版のマニュアルにつきましては PowerCMS ドキュメント を参照してください。

テンプレートタグ

アドオン・プラグイン

ブロックタグ

MTDynamicMTML

静的ファイルを出力するテンプレートに記載した場合、開始タグと終了タグを含むこのブロックは内容が処理されずそのままファイルに出力されます。このブロックの内部に記述してファイルに残った MTML はダイナミックパブリッシングによってビルド処理されます。

このタグおよび MTRawMTML タグをダイナミック MTML 静的出力 (PHP による静的ビルド)の際に有効化するためにはテンプレート内でユニークな値を (最初の) モディファイア「id」で指定してください (Smarty のテンプレートで id が必要となるため、インクルードされたテンプレート内では利用できません)。

MTNonDynamicMTML
静的ファイル出力のテンプレートに記載した場合、このタグの中のテキストをビルドした結果を <MTNonDynamicMTML></MTNonDynamicMTML> で囲んだ形でファイルに出力されます。このタグの中身はダイナミックパブリッシング処理される時には出力されず、DB へのアクセスに失敗した時等に ( MT::get_instance に失敗した時) に出力されます。
MTRawMTML

このブロックタグで囲まれたブロックは再構築時に処理されず、テンプレートがそのまま出力されます。このタグによりテンプレートの一部を出力して部分的に動的にページを処理させることが簡単にできるようになります。

静的ファイル出力のテンプレートにのみ記載できます。

MTBuildRecurs

コメント確認等の CGI によって動的生成された画面において、 MTMTL タグで出力されたテンプレートタグを再度処理して出力できます。

<MTBuildRecurs>
  <MTML tag="MTIfUserAgent" params='wants="keitai"'>
    携帯用コンテンツ
  <MTML tag="MTElse">
    PC用コンテンツ
  <MTML tag="/MTElse">
  <MTML tag="/MTIfUserAgent">
</MTBuildRecurs>

通常 MTML タグを CGI の画面で利用する必要はありませんが、DynamicMTML を利用するページと同じテンプレートモジュールを参照するような場合には CGI の画面で MTML タグを利用する事になります。CGI の画面では MTML タグは動作せず、そのような場合には MTBuildRecurs タグを利用する必要があります。

MTML タグを利用せずにテンプレートが記述できる場合には MTBuildRecurs タグを利用する必要はありません。

<MTIfUserAgent wants="keitai">
  携帯用コンテンツ
<MTElse>
  PC用コンテンツ
<MTElse>
</MTIfUserAgent>
MTCommentOut
ブロックタグの中身を HTML のコメントタグでコメントアウトします。invisible モディファイアを指定した場合、 MTIgnore と同様に何も出力されません。
MTCommentStrip
MTCommentOut とは逆にブロックタグの文字列「<!—」及び「—>」をすべて削除して出力します。この2つのタグを利用することで、静的な HTML を Adobe Dreamweaver 等で編集する際にテンプレートタグの代わりにダミーの HTML を配置し、サーバー上では動的にテンプレートタグを処理させる (逆に動的処理の際はダミーの HTML を削除する (隠す)) ことが可能になります。
MTIfLogin
アクセスしてきたユーザーが PowerCMS にログイン状態であるかどうかを判別します。このタグによってログイン状態のユーザーにだけ限定された情報を見せることができるようになります (このタグを使う場合、ブログのダイナミックパブリッシング設定で「ビルド結果をキャッシュする」を Off にする必要があります)。このタグの中では MTAuthor 関連のタグが利用できます。
MTClientAuthorBlock
ユーザーがログインしている場合に、ブロックタグ内でそのユーザーのコンテクストをセットします。ユーザーによって設定されたコンテンツをユーザー毎に表示させることが可能になります (このタグを使う場合、ブログのダイナミックパブリッシング設定で「ビルド結果をキャッシュする」を Off にする必要があります)。
MTLoginAuthorCTX
MTClientAuthorBlock のエイリアスです。
MTEntryCategoryBlock
エントリーの主カテゴリのコンテキストをセットします。
MTIfUserHasPermission
ユーザーがログインしている時、ユーザーが permission モディファイアで指定した権限 (例: comment) を持っている時に出力されます。
MTIfUserAgent
  • wants モディファイア、like モディファイアを指定してユーザーエージェント情報による分岐を行います。
  • wants モディファイアに Keitai を指定すると docomo または au、SoftBank の場合に出力されます。
  • wants モディファイアに Smartphone を指定すると Android または BlackBerry、iPhone、iPod touch、iPad、Palm、Opera Mini の場合に出力されます。Smartphone を指定する場合に exclude="Tablet" を指定するとユーザーエージェントに Mobile を含むものを除外して出力します。
  • wants モディファイアに Tablet を指定するとユーザーエージェントに Mobile を含まない Smartphone 端末の場合に出力します。( wants="Smartphone" exclude="Tablet" と同等の動作になります)
  • like モディファイアを指定した場合、ユーザーエージェント 文字列にその値が含まれる場合に出力されます。

    <MTIfUserAgent wants="keitai">
      docomo または au、SoftBank の携帯電話からアクセスした場合に出力されます。
    </MTIfUserAgent>
    <MTIfUserAgent wants="SmartPhone">
      Android または BlackBerry、iPhone、iPod touch、iPad、Palm、Opera Mini からアクセスした場合に出力されます。
    </MTIfUserAgent>
    <MTIfUserAgent like="Safari">
      ユーザーエージェント文字列に「Safari」が含まれている場合に出力されます。
    </MTIfUserAgent>
MTQueryLoop

key モディファイアで指定したクエリー文字列の配列を var[key] にセットしてループ出力します。

<MTQueryLoop key="foo" glue=", ">
  <mt: name="key" escape="html"/>
</MTQueryLoop>

このテンプレートはリクエストが /path?foo[]=bar&foo[]=buz の時「bar, buz」を出力します。

MTQueryVars

クエリー文字列の配列を var[key]var[value] にセットしてループ出力します。

<MTQueryVars glue=", ">
  <mt: name="key" escape="html"/> => <mt: name="value" escape="html"/>
</MTQueryVars>

このテンプレートはリクエストが /path?foo=bar&bar=buz の時「foo => bar, bar => buz」を出力します。

MTSplitVars
text モディファイアで指定した文字列を delimiter モディファイアで指定した文字列で分割して var[value] にセットしてループ出力します。value は name モディファイアで指定可能です
MTSetQueryVars

リクエストのクエリー文字列を にセットします。

<MTSetQueryVars>
  <mt: name="foo" escape="html"/>, <mt: name="bar" escape="html"/>
</MTSetQueryVars>

このテンプレートはリクエストが /path?foo=1&bar=2 の時「1, 2」を出力します。

MTReferralKeywords

検索エンジンの仕様変更により、検索キーワードが取得できなくなりました。そのため、正しく動作しない可能性があります。

Google 検索や Bing、Yahoo! 検索、goo ウェブ検索からの流入の際に検索されたキーワードの配列を var[keyword] にセットしてループ出力します。

MTSearchEntries

target で指定したカラムに query 文字列を含むエントリーを出力します。カラム名を省略した場合はタイトルと本文、続き、概要及びキーワードが対象となります。

operator (省略時は LIKE) を指定することで検索条件を指定できます。

例えば operator="=" target="title" query="PowerCMS" はタイトルが「PowerCMS」と完全一致するエントリーをロードします。

コンテクスト (MTVar) にセットされる値

  • __first__: ループの最初
  • __counter__: ループの何回目か
  • __odd__: 奇数回目の出力
  • __even__: 偶数回目の出力
  • __last__: ループの最後

指定できるモディファイア

  • query: 検索文字列。
  • blog_id: Blog の ID
  • include_blogs: 対象とするブログ ID を列記 (カンマ区切り) または all children siblings が指定可能です
  • exclude_blogs: 対象外とするブログ ID を列記 (カンマ区切り) します
  • target: 検索対象とするカラムを指定します
  • operator: SQL の条件式を記載します。デフォルトは LIKE です
  • class: entry (既定値) もしくは page
  • category: カテゴリ名
  • category_id: カテゴリ ID
  • tag: タグ
  • status: 数字もしくは * (すべて)
  • sort_by: 表示順に指定するカラム名
  • sort_order: 表示順 (descend もしくは ascend)
  • lastn: 表示数
  • offset: 何件目から読み込むかを示すオフセット値
  • unique: 同じテンプレート内で使用した MTSearchEntries ブロックで出力したエントリーを除いて出力します
  • not_entry_id: ID を指定した単一のエントリーを除いて出力します

ファンクションタグ

MTML (スタティック専用)

静的ファイル出力のテンプレートにのみ記載できます。tag モディファイアで指定した テンプレートタグに params モディファイアで指定したパラメタを付けてテンプレートとして出力します。 は PowerCMS 5 マニュアル を出力します。MTDynamicMTML を使わず部分的にテンプレートタグを出力したい場合、ブロックタグの開始タグ、終了タグだけを静的に出力する場合などに利用できます。

<MTML tag="MTIfUserHasPermission" params='permission="comment"'>
  <MTBlogName escape="html">にコメントできます。
<MTML tag="MTElse">
  <MTBlogName escape="html">にコメントできません。
<MTML tag="/MTIfUserHasPermission">

このテンプレートは下記のように出力され、ダイナミックパブリッシング時に処理されます。

<MTIfUserHasPermission permission="comment">
  [ブログ名]にコメントできます。
<MTElse>
  [ブログ名]にコメントできません。
</MTIfUserHasPermission>

MTML は CGI が生成する動的な画面では動作しません。CGI の動的な画面で利用するには MTBuildRecurs を併せて利用する必要があります。

MTMTML / MTRawMTMLTag
MTML のエイリアスです。
MTQuery
リクエストに付与されたクエリ文字列を取得します。取得したいクエリーは key モディファイアで指定します。<$MTQuery key="search"$> とすることで /foo.html?search=bar リクエストから 「bar」を取得できます。
MTReferralKeyword
Google 検索または Bing、Yahoo! 検索、goo ウェブ検索からの流入の際 に検索されたフレーズを出力します。
MTUserAgent
ブラウザから送られるユーザーエージェント文字列を返します。raw モディファイアを指定すると文字列をそのまま出力します。詳細については $app->get_agent() の項を参照してください。
MTCurrentArchiveURL
現在のページの URL からクエリ文字列を削除して出力します。
MTCurrentArchiveFile
現在のページのサーバー上の絶対パスを出力します。
MTEntryStatusInt
エントリーのステータスを数字で返します。
MTAuthorLanguage
ユーザーの言語 (例: ja) を出力します。
MTTrans

phrase モディファイア及び params モディファイアに指定されたフレーズとパラメータを元に現在のユーザーの言語に応じて翻訳された文字列を出力します。

PluginName/php/l10n/以下に l10n_ja.php (または他の言語) ファイルを設置し、連想配列 $Lexicon にテーブルを登録することで言語ファイルを拡張することができます。

MTRand
min モディファイアと max モディファイアを指定して乱数を出力します。

モディファイア

highlightingsearchword

検索エンジンの仕様変更により、検索キーワードが取得できなくなりました。そのため、正しく動作しない可能性があります。

Google, bing, MSN, Yahoo!, gooからの流入の際に検索されたキーワードを渡されたパラメタの class 名を付けた strong タグでマークアップします。

<$MTEntryBody highlightingsearchword="match-words"$>

* 検索キーワードが <strong class="match-words"></strong> でマークアップされます。

make_seo_basename
文字列から URL に利用できる文字のみを先頭から指定文字分抽出して URL エンコードした文字列 basenameを返します。URL に利用できない文字はアンダースコア ( _ ) に置換されます。
<$MTEntryTitle make_seo_basename="50"$>

*「PowerCMSへようこそ」 =>「PowerCMS%e3%81%b8%e3%82%88%e3%81%86%e3%81%93%e3%81%9d」

trimwhitespace
空白文字を削除してソースコードを軽量化します。
intval
文字列を数値化します。

お問い合わせ

お問い合わせフォームがご利用できない場合は、以下のメールアドレスからも受け付けております。
contact@alfasado.jp

製品資料ダウンロード

パンフレットデータ、提案用資料などがダウンロードできます。