ページ 11

OnDocFormPrerenderでの使用するテンプレート切り替え(1.0.13J-r1))  【解決済み】

Posted: 2014年6月25日(水) 16:25
by kazuike
-----
MODXのバージョン:1.0.13J-r1
-----

「SwitchDefaultTemplate」
http://forum.modx.jp/viewtopic.php?f=54&t=536
という、
リソース編集画面を開く際に、
設定したルールに従って使用するテンプレートを切り替えるというプラグインを作っていますが、
これが、MODX1.0.13J-r1では効かなくなっています。

イベント「OnDocFormPrerender」でひっかけて、

コード: 全て選択

$content['template'] = $dtmpl;
のように使用するテンプレートを切り替えているのですが、
どうも「$content」は使われなくなっているようですね。

代わりに「$docObject->template」に値を入れれば良いのか?と思ってやってみましたが、
これも違うようです。

「OnDocFormPrerender」のプラグインの中で、
MODX1.0.13J-r1で、使用するテンプレートを切り替えるには、
どのようにすれば良いでしょうか?

MODXでは、編集項目を切り替える単位がテンプレート単位ですので、
テンプレートの切替は、ユーザビリティ上、かなり重要な要素になっています。

特定のコンテンツでは、ユーザにテンプレートを選ばせず、
例えば、以下のような構造を自動的に作るように設定していたりします。
コンテンツのルート
└カテゴリー
 └詳細

以上、よろしくお願いいたします。

Re: OnDocFormPrerenderでの使用するテンプレート切り替え(1.0.13J-r1))

Posted: 2014年6月25日(水) 16:36
by kazuike
すみません。解決しました。
kazuike さんが書きました: 代わりに「$docObject->template」に値を入れれば良いのか?と思ってやってみましたが、
これも違うようです。
こちらのミスで、「$docObject」のglobal宣言が抜けていました。
「$docObject->template」に値を入れればOKでした。
お騒がせしました。

Re: OnDocFormPrerenderでの使用するテンプレート切り替え(1.0.13J-r1))

Posted: 2014年6月25日(水) 17:25
by yama

Re: OnDocFormPrerenderでの使用するテンプレート切り替え(1.0.13J-r1))

Posted: 2014年6月25日(水) 17:28
by kazuike
「SwitchDefaultTemplate」のMODX1.0.13J以降の仕様変更対応版をアップしました。
http://www.hikidas.com/hikidas/modx_res ... te.ja.html

Re: OnDocFormPrerenderでの使用するテンプレート切り替え(1.0.13J-r1))

Posted: 2014年6月25日(水) 18:54
by yama
何かスマートな形で割り込めるアイデアがあるといいのですが。
$modx->event->params['content']->template=xx;
または
$modx->event->params['template']=xx;
リファレンスでアクセスするようにして、上記のような形で書き換えるように改善することもできると思います。