上記では、年度表記を自動更新するスニペットを作りました。
コード: 全て選択
<?php
return date('Y');
?>
情報系のページに「2010年5月時点の情報です」などと付記することがありますが、これも基本的には同じで
コード: 全て選択
<?php
return date('Y年n月');
?>
どちらも機能がほとんど同じなので、まとめてしまうことができます。違うのは「Y」と「Y年n月」だけです。なので、この部分だけを外部から必要に応じて与えることにすればよいのです。外枠のデザインはサイト全体で共通で、中身(コンテンツ)だけを編集対象とするテンプレートの考え方に似てますね。
どうするか。回答を書きます。
コード: 全て選択
<?php
return date($format);
?>
コード: 全て選択
[[現在日時?format=Y年n月]]時点の情報です
コード: 全て選択
Copyright [[現在日時?format=Y]]
「現在日時?format=Y年n月」のformatの値「Y年n月」を、
スニペットコール内で$formatとして参照することができます。あとはphpの教科書どおり。MODx独自の関数などはいっさい使いません。
「現在日時?format=Y年n月」という書式は、URLのクエリ文字列に似ています。
http://forum.modx.jp/viewtopic.php?f=16&t=294
今見ているトピックだと上記のようになっているはずですが、これは16番目のフォーラムの293番目のトピックを表示せよというコマンドそのものです。URLクエリまたはクエリストリングなどと呼ばれます。「パラメータをGETで与える」などと表現することもあります。
ということは、
コード: 全て選択
<?php
$format=Y年n月;
return date($format);
?>
(※スニペット編集画面の「既定のプロパティ」で設定することもできます)
ちなみにスニペットというのはもともとは「切れ端」「断片」という意味です。DittoやWayfinderくらいになると切れ端どころか大風呂敷レベルですが、MODxの開発が始まった頃はこのくらいの数行程度の小さなスニペットがフォーラムに数多く集積されて、フォーラム参加者同士でにぎわってました。小さなスニペットを書くことは、MODxの楽しさの原点のひとつと言えます。多機能なスニペットの使い方を習得する以前に、基本的なphpの文法を学んでスニペットを手作りしてみるのも面白いです。