参考:http://d.hatena.ne.jp/m-mitsuki/searchdiary?word=*%5BMODx%5D
詳しくは公式サイト内マニュアル。
日本語使用前提とする場合、コールする前に下処理が必要。
リソース管理→スニペット→Dittoを選択、
$language = (isset($language))? $language : "english";
の部分を
$language = (isset($language))? $language : "japanese-utf8";
に変更。
システム運用をUTF8以外で行っていた場合、それらに変更すればいいけれども、根本的にMODxをUTF8以外で運用するのはかなり不安。
なので、CGIと直接絡むなどの場合以外はUTF8で運用するのが良いようだ。
基本コールは
[[Ditto? &tpl=`XXX` &parents=`10,20,30`]]
もしくは
[!Ditto? &tpl=`XXX` &parents=`10,20,30`!]
以下パラメータ補足。
tpl …Dittoで取得したデータを吐き出す形式を、チャンクから指定。
parents …データを取得するフォルダをIDで指定。カンマ区切りで複数指定可。
format …出力フォーマットを指定。他に「rss」「atom」「xml」などがあるので、RSS出力などにも利用できる。
depth …データを取得する深さを指定。省略した場合は1。その場合、parentsで指定したID直下1階層分しかデータを取得しない。
display …取得するサマリを指定。省略した場合は3。「all」指定も可能。…「取得する」ではなく「表示する」か?
total …取得する件数を指定。省略した場合はall。その場合、parentsで指定したフォルダ内、depthで指定した深さ内すべての記事を取得する。
sortDir …ソートの順。ASCは昇順、DESCは降順。省略した場合はDESC。
sortby …ソートキーの指定。createdon(作成日)、editedon(更新日)、pub_date(公開日)、pagetitle(ページタイトル)が指定できる。省略した場合は作成日。
removeChunk …ドキュメント内のチャンクを削除するかどうか。チャンクコードを指定する。省略した場合は「false」(しない)。コメント表示のチャンクが「comment」だった場合、commentと指定するとページ内のコメント表示部分のチャンクを削除して取得するので、ブログ風ページなどの新着に便利。
noResults …表示するドキュメントがない場合の表示内容。チャンクを指定することもできる。省略した場合、$_lang[‘no_entries`] が使用される。
start …省略した場合は0。5と設定した場合、取得したデータの5番目以降から表示される。
dateSource …[+date+]で表示する日付を指定。createdon、editedon、pub_dateの3つ。省略した場合は作成日。
dateFormat …[+date+]で表示する日付のフォーマットを指定。PHPのデータ関数に対するフォーマットが使える。
パラメータ:dateFormatで日本語を使うと、文字化けする。(2007年=%Y年など)
これを回避するには、/assets/snippets/ditto/classes/ditto.class.inc.php,line925-927
if ($modx->config["modx_charset"] == "UTF-8") { $dt = utf8_encode($dt); }
をコメントアウトする必要がある。