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

質問全般・改善要望
返信する
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

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

投稿記事 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では、編集項目を切り替える単位がテンプレート単位ですので、
テンプレートの切替は、ユーザビリティ上、かなり重要な要素になっています。

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

以上、よろしくお願いいたします。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

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

投稿記事 by kazuike »

すみません。解決しました。
kazuike さんが書きました: 代わりに「$docObject->template」に値を入れれば良いのか?と思ってやってみましたが、
これも違うようです。
こちらのミスで、「$docObject」のglobal宣言が抜けていました。
「$docObject->template」に値を入れればOKでした。
お騒がせしました。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

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

投稿記事 by yama »

kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

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

投稿記事 by kazuike »

「SwitchDefaultTemplate」のMODX1.0.13J以降の仕様変更対応版をアップしました。
http://www.hikidas.com/hikidas/modx_res ... te.ja.html
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

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

投稿記事 by yama »

何かスマートな形で割り込めるアイデアがあるといいのですが。
$modx->event->params['content']->template=xx;
または
$modx->event->params['template']=xx;
リファレンスでアクセスするようにして、上記のような形で書き換えるように改善することもできると思います。
返信する