リソースやウェブリンクを新規作成する際、
イベント「OnDocFormPrerender」でプラグインを起動し、使用するテンプレートを切り替えても、
編集画面上のテンプレート変数は、デフォルトテンプレートのものになります。
具体的には、プラグイン「SwitchDefaultTemplate」
http://www.hikidas.com/hikidas/modx_res ... te.ja.html
を使用して、
新規作成時の使用テンプレートが、条件によって自動的に切り替わり、入力欄も切り替わるはずが、
上記のように、テンプレート変数が切り替わらないという現象が起こっています。
調べたところ、
manager/actions/document/mutate_content/functions.php
の関数「getTmplvars」が、
パラメータを変えて呼び出しても、2回目以降は常に無視するため、
テンプレート変数が切り替わらないということがわかりました。
対処法として、
manager/actions/document/mutate_content/functions.php
8行目~11行目の
コード: 全て選択
static $tmplVars = null;
if($tmplVars!==null) {
return $tmplVars;
}
この箇所を
コード: 全て選択
static $tmplVars = null;
static $last_docid = null;
static $last_template_id = null;
static $last_docgrp = null;
if($tmplVars!==null && $last_docid==$docid && $last_template_id==$template_id && $last_docgrp==$docgrp) {
return $tmplVars;
}
$last_docid = $docid;
$last_template_id = $template_id;
$last_docgrp = $docgrp;
パラメータが変わった場合は、無視せず、処理を行うようにしました。
この変更による副作用があるかどうかはわかっていません。