次のようなルートがあります。
resources.router.routes.home.route = /:state/:city
resources.router.routes.home.defaults.module = default
resources.router.routes.home.defaults.controller = index
resources.router.routes.home.defaults.action = index
resources.router.routes.home.defaults.state = ''
resources.router.routes.home.defaults.city = ''
そして、私のサイトからのほとんどのリンクには、次のような 2 つのパラメーター (都道府県と市区町村) が必要です。
www.mysite.com/sp/sao-paulo/establishments
www.mysite.com/sp/sao-paulo/establishment-name
www.mysite.com/sp/sao-paulo/establishments-category
ユーザーが自分の Web サイトにアクセスしたときに、この 2 つのパラメーターが既に設定されているかどうかを確認する必要があります。そうでない場合は、都市を選択するときに特定のページにリダイレクトします。
これを達成する最善の方法は、プラグインを作成することだと思います。プラグインは既に開始しています。
class App_Controller_Plugin_CheckCity extends Zend_Controller_Plugin_Abstract {
protected $_session;
public function preDispatch(Zend_Controller_Request_Abstract $request) {
$this->_session = new Zend_Session_Namespace('locationInformation');
if (!isset($this->_session->state) || !isset($this->_session->city)) {
// ...
} else {
// ...
}
}
}
問題は、それを行う方法が正確にわからないことであり、これが本当に最善の方法であるかどうかです。
これは正しいパスですか?そうでない場合、問題を解決するにはどうすればよいですか? はいの場合、このプラグインには他に何が必要ですか?
私は自分自身を明確にしたことを願っています。助けていただければ幸いです。
ありがとうございました。