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

質問全般・改善要望
Kenny
メンバー
メンバー
記事: 144
登録日時: 2011年5月28日(土) 13:41

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

投稿記事by Kenny » 2017年7月06日(木) 16:26

MODXバージョン 1.0.19J
PHPのバージョン 7.1.2
データベースのバージョン 5.6.23-log

お世話になります。

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

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

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

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

}
アバター
hisato
メンバー
メンバー
記事: 68
登録日時: 2012年8月18日(土) 20:21

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

投稿記事by hisato » 2017年7月06日(木) 19:13

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

コード: 全て選択

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

コード: 全て選択

$tid = $modx->getDocument($modx->event->params['id'])['template'];
if ($tid == '1') {
 // Location
}
アバター
yama
管理人
記事: 2879
登録日時: 2009年7月29日(水) 02:50

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

投稿記事by yama » 2017年7月06日(木) 21:25

フォローありがとうございます。実際のところは、$_POSTや$_GETなどのスーパーグローバル変数を書き換えるのは行儀がよくないかなと思うので、なるべくやらないようにしてます。なので、安直に$_POST['template']で読み取ってもらってもいいかな?と思います。
Kenny
メンバー
メンバー
記事: 144
登録日時: 2011年5月28日(土) 13:41

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

投稿記事by Kenny » 2017年7月07日(金) 11:34

hisato様

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

Yama様

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