ページ 11

テンプレート「A」での新規作成&保存の場合は「~~~」へ遷移

Posted: 2017年7月06日(木) 16:26
by Kenny
MODXバージョン 1.0.19J
PHPのバージョン 7.1.2
データベースのバージョン 5.6.23-log

お世話になります。

前回、「新規リソースを作成し、保存させた後、ダッシュボードページへ遷移させたい」をさらに進化させたく…
http://forum.modx.jp/viewtopic.php?f=32&t=1766

例えば、テンプレート「A」での新規作成&保存の場合は「~~~」へ遷移…とさせたい場合、以下のようにしてみたのですが、当然動きません。
こういうことは可能でしょうか。

if('A' == $modx->documentObject['template']){

header('Location:~~~');
exit;

}

テンプレート「A」での新規作成&保存の場合は「~~~」へ遷移

Posted: 2017年7月06日(木) 19:13
by hisato
イベントでリソースの情報は渡してないようなのでこんな感じでテンプレートのIDを取得出来ると思います。
$_POSTで直接取得できますが他のプラグインとかで状態が変わってる可能性もあるのでなるべくAPIを通したほうが良いかも?

コード: 全て選択

$modx->getDocument($modx->event->params['id'])['template']

コード: 全て選択

$tid = $modx->getDocument($modx->event->params['id'])['template'];
if ($tid == '1') {
 // Location
}

テンプレート「A」での新規作成&保存の場合は「~~~」へ遷移

Posted: 2017年7月06日(木) 21:25
by yama
フォローありがとうございます。実際のところは、$_POSTや$_GETなどのスーパーグローバル変数を書き換えるのは行儀がよくないかなと思うので、なるべくやらないようにしてます。なので、安直に$_POST['template']で読み取ってもらってもいいかな?と思います。

テンプレート「A」での新規作成&保存の場合は「~~~」へ遷移  【解決済み】

Posted: 2017年7月07日(金) 11:34
by Kenny
hisato様

ご説明戴きありがとうございます。
昨夜、早速自分のシステムに入れてみたのですが、どうしても動かず、デモサイトの方で試すとすんなり動きました。
多分私のシステムは複雑な事になっているからかもしれません。。
この様な書き方もできるんですね。勉強になりました。
有難うございました!

Yama様

いつも有難うございます!
$_POST['template']では、デモサイトでも私のシステムでも動くようになりました。
有難うございます。
こんなに簡単な記述ですんなり動くんですね。
更に応用していけそうです。
有難うございました!