MODx:Dittoについて

参考: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); 		}

をコメントアウトする必要がある。