”変更を保存" もしくは "変更を破棄"を行った際の次アクセスURL

2015年7月21日 at 8:09

”変更を保存" もしくは "変更を破棄"を行った際の次アクセスURLはどのように決定しているかお教えいただけませんでしょうか。

特定のアクセスにおいて、ヘッダー情報にあるURLをすべて置換する
仕組みを導入しておりますがconcrete5にて”編集を終了(鉛筆マーク)"→”変更を保存" もしくは "変更を破棄"の場合にその置換が働きません。
ヘッダー以外の部分でURL決定をされているのではないかと考えています。

バージョン情報は下記です。
Concrete5: 5.7.4.2
MySQL: 5.6.25

タグ:

Re: ”変更を保存" もしくは "変更を破棄"を行った際の次アクセスURL

2015年8月6日 at 8:38
こちらの件、いかがでしょうか。

ご回答頂けない場合はその旨ご連絡頂けませんでしょうか。
 

Re: ”変更を保存" もしくは "変更を破棄"を行った際の次アクセスURL

2015年8月6日 at 10:39
どうも。

ちょっと長い回答ができないので、取り急ぎ。

そこら辺の挙動ですが、
ざっくりとした説明ですが、
編集中のページ cID 情報を元に、その cID に移動するというような挙動になっています。

header を通じてリダイレクトはかけていないので、
header の置き換えでは対応できませんね。

「変更を保存」、変更を破棄のところのコードを直接書き換えていただくことになります。

/concrete/controllers/panel/page/check_in.php

/application/controllers/panel/page/check_in.php
にコピー

2行目の
namespace Concrete\Controller\Panel\Page;

namespace Application\Controller\Panel\Page;
に変更

115行目の
$pr->setRedirectURL(Loader::helper('navigation')->getLinkToCollection($nc, true));
で、リダイレクト先を設定しているので、
そこを変更するとできるのではないかとおもいます。

ちょっと、動作とエラーチェックしていないのですが、お試しください。


フォーラムで、1週間以上回答がなければ、見逃されている可能性があるので、今回のように回答を催促していただけると助かります。
 

Re: ”変更を保存" もしくは "変更を破棄"を行った際の次アクセスURL

2015年8月7日 at 8:36
ご連絡ありがとうございます。

該当箇所を変更することでリダイレクト先のURLが変更可能なことは確認できました。

ただ、すべてのアクセスを別のURLにリダイレクトしたいわけではなく、
特定の経路から来たアクセスのみURLを変換したいため、これでは想定通りのアクセスになりませんでした。

できればリダイレクト方式をヘッダーに書き込む形に変更したいのですが可能でしょうか。
 

Re: ”変更を保存" もしくは "変更を破棄"を行った際の次アクセスURL

2015年8月8日 at 9:31
リダイレクト方式をヘッダーに書き込み形式は、今回は答えれないですね。
On Page Publish イベントを使うとか、そういうことが想像できますが、
お伝えした方法のほうが実装が簡単で処理も重くないです。

さきほどお伝えしたところに、判定プログラムを加えれば、条件にあったURLのみリダイレクト先を変えるという処理が書けるので。
 

Re: ”変更を保存" もしくは "変更を破棄"を行った際の次アクセスURL

2015年8月10日 at 7:46
ご連絡ありがとうございます。

条件判定によりリダイレクト先を分ける処理を組み込むことは可能です。
ただ、運用を考えるとURL変換処理はなるべく統一したいのでヘッダーへの書き込みで
実装したかったのですが、難しいということであれば仕方ありませんので、
他の方法を検討したいと思います。

ご回答ありがとうございました。