主なパラメータ
&config
目的: よく使うパラメータセットをconfigurationファイルとしてまとめておき、必要に応じて呼び出すことができます。
Values : default.config.php in ditto/configs folder
デフォルト値 : default (中身が空のdefault.config.phpを読み込んでます)
使い方 : [[Ditto?config=config名]]
Notes : /assets/snippets/ditto/configs/ ディレクトリ内にconfig名.config.php として配置します。このファイルは普通のphpファイルとして機能しますので、各パラメータの値を動的に生成するような使い方もできます。
&dateFormat
目的: [+date+]プレースホルダの出力形式を指定します。
Values : PHPの strftime() 関数の書式を用います。
Default : 何も指定しない場合は languageファイルで指定された書式が用いられます。
使い方 : [[Ditto?dateFormat=%Y年%m月%d日]]
Notes : [+date+]プレースホルダではなく[+createdon+]や[+editedon+]を使う場合はPHxモディファイアを通せば同じように使えます。たとえば[+createdon:date=`%Y年%m月%d日`+]というふうに記述します。
&dateSource
目的: [+date+]プレースホルダと関連付けるフィールドを指定します。
Values : [*createdon*] [*publishedon*] [*editedon*] [*任意のテンプレート変数*]から選べます。
デフォルト値 : createdon
使い方 : [[Ditto?dateSource=editedon]]
Notes : 値がUNIX timestamp形式で管理されているフィールドを指定する必要があります。そのため、テンプレート変数を指定する場合はUnixtimeウィジェットを設定してください。
&debug
目的: デバッグコンソールを使えるようにします(どういうものかは、試してみると分かります)。文字化けのバグがありますが、MODX1.0.5J-r8で修正されました。
Values : 0,1
使い方 : [[Ditto?debug=1]]
Default : 0
&depth
目的: 取得対象とするリソースの階層数を指定。Wayfinderの&levelパラメータに相当します。デフォルトでは直下の1階層のみを取得します。
Values : 正の整数
Default : 1
使い方 : [[Ditto?depth=3]]
Notes : 0をセットすると階層無限です
&display
目的: 取得したリソースのうち、何件を表示するかを指定します。ページング制御をしている時に、ページあたり何件を表示するかを指定するパラメータです。
Values : 整数値または「all」
使い方 : [[Ditto?display=10]]
Default : all
&ditto_base
Ditto本体ファイルを置いているディレクトリを設定します。改造したDitto本体を使いたい場合にこのパラメータを用います。
Default : [(base_path)]assets/snippets/ditto/
使い方 : [[Ditto?ditto_base=assets/snippets/ditto_custom/]]
Notes :末尾をスラッシュで閉じてください。(MODXのパス指定は基本的にスラッシュで閉じるスタイルです)
&documents
目的: 一覧表示したいリソースを静的に指定します。リソースIDはコンマで区切って複数指定します。このパラメータを指定すると&parentsの指定は無効になります。また、メニューの表示・非表示に関係なく取得します。
Values : IDをコンマで区切って指定します
Default : ブランク(指定なし)
使い方 : [[Ditto?documents=3,7,8]]
Notes : &parentsの指定を無視します
&extenders
エクステンダーを組み込んでDittoの機能を拡張します。追加したい機能をこのパラメータで指定します。
Values : コンマで区切られた名前のリスト
Default : ブランク
使い方 : [[Ditto?extenders=summary,request]]
Notes : extendersフォルダ内のファイル名は <name>.extender.inc.php
&format
目的: 出力フォーマットの指定。プリセット型のconfig・パターンの組み合わせのようなもので、ここでパラメータを指定するだけで、必要な出力を得ることができます。通常のDittoコールと違って、ヘッダ・フッタに相当するブロックの出力も行ないます。
Values : `html`,`json`,`xml`,`atom`,`rss`
Default : `html`
デフォルトは「html」になっていますが、
<?php
$header = "";
$footer = "";
?>
「html」フォーマットの実際の処理は上記のような空処理になっており、何も指定していないのと同等です。
&hiddenFields
目的: Dittoのテンプレートパーサーが処理できないネストされたプレースホルダなどのフィールドを取得できるようにします
Values : コンマで区切られたフィールド名およびテンプレート変数名のリスト
Default : ブランク
Notes : (このパラメータについてはまだ調査していません)
&hideFolders
目的: 子リソースを持つリソースを非表示にします
Values : 1,0
Default : 0
&hidePrivate
目的: ゲストまたはユーザーに表示許可がないリソースを表示しません
Values : 1,0
Default : 1
&id
目的: ページ内で複数のDittoインスタンスを実行する場合は、各インスタンスにIDを割り当てて処理を区別する必要があります。
Values : 半角英数字およびアンダーバーで構成される文字列
Default : ブランク
Notes : 大文字小文字を区別します。
&keywords
目的: MODXのグローバル設定でMETAタグ機能を有効にしている場合、keyword属性を取得します。
Values : 1,0
Default : 0
Notes : MODX本体のMETAタグ機能は1.0.15Jで廃止されました。そのため当パラメータは動作しません。
&language
目的: 取得対象リソースがなかった場合の「記事はありません」や、ページ分割機能を有効にした場合の「戻る」「次へ」などで用いるDitto言語ファイルを指定します。デバッグメッセージ・エラーメッセージもこれに含まれます。
Values : &ditto_base/langフォルダ内の対応するファイルを持つ任意の言語名
Default : `english`
Notes : 日付の前置詞などに影響しますが、月の名前の言語には影響しません(これはシステム設定によるものです)
&localFilterDelimiter
目的: 各フィルタ文字列内の個々のパラメータを区切るために使用されるデリミタ
Values : フィルタ自体に使用されていない任意の文字
Default : コンマ
Notes : フィルタ文字列内にコンマが含まれる場合に必要です
&noResults
目的: 結果がない場合に表示するテキストまたはチャンク
Values : チャンク名またはテキスト
Default : 言語ファイルの$_lang['no_documents']エントリー
Notes : 「記事はありません。」
&orderBy
目的: 結果を並べ替える順序と方向
Values : コンマで区切られたリスト
Default : `createdon DESC`
Sample: `editedon desc, id desc`
Notes : &sortByおよび&sortDirが指定されててるばあいは、それらを上書きします。
&parents
目的: データを取得するドキュメントおよびサブフォルダを含むドキュメントのID
Values : コンマで区切られたIDのリスト
Default : 現在のドキュメント
Notes : &startIdを上書きします(単一値のみ指定可能でした)
&phx
目的: 組み込みのPHx関数を使用
Values : 0,1
Default : 1
&queryLimit
目的: データベースから取得するドキュメントの数(MySQLのLIMITと同じ)
Values : 正の整数
Default : 0
Notes : 0は「すべてを取得」を示します。&whereパラメータと併用します
&randomize
目的: 出力の順序をランダムにする
Values : 1,0
Default : 0
Notes : キャッシュの問題に注意してください!
&removeChunk
目的: コンテンツから削除するチャンクの名前
Values : コンマで区切られたリスト
Default : ブランク
Notes : (このパラメータについてはまだ調査していません)
&save
目的:
Dittoが自らの出力のために取得する各パラメータ値を、他のスニペットで用いることができるようにプレースホルダに代入します。オブジェクトとして代入するため、通常の[+プレースホルダ+]でアクセスすることはできません。
$modx->placeholdersのprint_rを行なうスニペットを仮に作って、saveパラメータの値を0-3に設定して出力の違いを見ることでそれぞれの処理を確認できます。
Ditto単体では難しい複雑なパターン出力を実装したい場合は、&save=3をセットし、Dittoで取得した値を他のスニペットで処理するとよいでしょう。慣れればDittoを拡張APIのように用いることができます。
取得したリソースの値は
$modx->getPlaceholder('ditto_resource')または$modx->placeholders['ditto_resource']
で参照できます(&save=2または3)。
Values : 0(代入しない),1(取得したリソース情報以外を代入),2(全て代入),3(全て代入・Ditto自体の出力はオフ)
Default : 0
Notes : (このパラメータについてはまだ調査していません)
http://forums.modx.com/thread/42554/#dis-post-246265
http://forums.modx.com/thread/41824/#dis-post-242521
使い方の実例
&seeThruUnpub
目的: 非公開フォルダを透過してその子リソースを取得する(&depth > 1の場合)
Values : 1,0
Default : 0
&showInMenuOnly
目的: メニューに表示されているリソースのみを表示
Values : 1,0
Default : 0
&showPublishedOnly
目的: 公開されたリソースのみを表示
Values : 1,0
Default : 1
&start
目的: 結果からスキップするドキュメントの数
Values : 正の整数
Default : 0
&tagData
目的: タグ情報を含むフィールド
Values : ドキュメントフィールドまたはテンプレート変数
Default : ブランク
Notes : これを設定すると、自動的にタグ付けエクステンダーが追加されます
&total
目的: データベースから取得するドキュメントの数
Values : 数値または`all`
Default : `all`
&where
目的: カスタムMySQL WHEREステートメント(フォルダまたはドキュメントベースの取得の代わりに使用)