質問 > その他 > 共通クラス内で「フロント機能」 or 「管理機能」の判定 |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
seasoft |
投稿日時: 2009/4/30 13:15
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
共通クラス内で「フロント機能」 or 「管理機能」の判定 共通クラス(たとえば \data\class\helper\ 配下)で、「フロント機能」 or 「管理機能」のどちらから呼ばれているかをスマートに判定する方法がありましたら教えてください。
「スマートに」とは、URL や 呼び出し元のパスを解析するような方法ではなく、さほどのロジックを書かずに済ませられる範囲といった意味合いです。 現状で無いようでしたら、定数として持たせようかなと考えています。
|
kishik |
投稿日時: 2009/4/30 14:27
対応状況: −−−
|
仙人 登録日: 2009/4/3 居住地: 東京 投稿: 382 |
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定 URLを使わないなら、
セッションを使うくらいしか すぐには思い付かないですね。。。 ----- http://ec-cube-mall.jp/ http://ec-cube.ec-orange2.jp/ http://wiki.ec-orange2.jp/ |
seasoft |
投稿日時: 2009/4/30 15:01
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定 セッションと言いますと、セッション変数でしょうか?
判定に使えそうな配列要素がありますか?
|
kishik |
投稿日時: 2009/4/30 15:24
対応状況: −−−
|
仙人 登録日: 2009/4/3 居住地: 東京 投稿: 382 |
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定 あ、いえ、
セッション変数として自作する という意味でした。 しかしよく考えると自作するなら 新たに定数で持たせるのと変わりないですね。 ふと思ったんですが、 裏で定数にセットするにしても、 何か setAdminOperation(Bool) isAdminOperation() みたいな メソッドとして実装した方が、 拡張時に便利かもしれませんね。 ----- http://ec-cube-mall.jp/ http://ec-cube.ec-orange2.jp/ http://wiki.ec-orange2.jp/ |
seasoft |
投稿日時: 2009/4/30 15:36
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定 > ふと思ったんですが、
> 裏で定数にセットするにしても、 > 何か > setAdminOperation(Bool) > isAdminOperation() > みたいな > メソッドとして実装した方が、 > 拡張時に便利かもしれませんね。 そうですね。 実際、フロントではPC・モバイルの判定も容易に行えると便利なケースがあるかなと考えています。 追加実装するなら、1定数複数値でセットして、判定用のメソッドを用意する方向を考えています。 とりあえずは継続して、冒頭の件につきまして情報をお持ちの方からの書き込みをお待ちしております。
|
tao_s |
投稿日時: 2009/4/30 23:19
対応状況: −−−
|
仙人 登録日: 2008/8/20 居住地: 東京 投稿: 799 |
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定 うろ覚えですが、確か管理画面にログインしている時は、セッション変数内かページオブジェクトに「user_id」か「login_id」みたいな名前で管理画面へのログイン情報を持っていたと思います。
「どのメニューから呼ばれているか」はわかりませんが、管理画面の任意のPageクラスのprocess()内で
として表示されるものを確認してみてはいかがでしょうか? |
seasoft |
投稿日時: 2009/4/30 23:22
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定 セッション変数だと、(管理機能でログインしていると)フロント側でも同じ要素が取得できるのではないかなと予測しています。また、管理機能でログインしていない場合に取得できない懸念もあります。
とはいえ、確信は無いので、一度試してみようと思います。
|
seasoft |
投稿日時: 2009/4/30 23:27
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定 やはり、フロント機能と管理機能でセッション変数の配列要素は同一でした。
|
tao_s |
投稿日時: 2009/4/30 23:32
対応状況: −−−
|
仙人 登録日: 2008/8/20 居住地: 東京 投稿: 799 |
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定 あと使えそうなのはinit()内で設定される。
$this->tpl_subnoとか$this->tpl_subtitleとかでしょうか? それかget_class()でクラス名から判断するとか? 「簡単に」が難しいですね |
seasoft |
投稿日時: 2009/4/30 23:43
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定 > $this->tpl_subnoとか$this->tpl_subtitleとかでしょうか?
冒頭に書きましたとおり、共通クラス内で取得したいのですよね。 常に $this を渡すというルールを追加するのは酷かなぁ。 > それかget_class()でクラス名から判断するとか? これも、共通クラス内だとストレートには無理ですよね。 参照をたどれば可能ですが、結構規模の大きなロジックになってしまいそうです。 たしか、PEAR には実装されていたとは思いますが、、、う〜ん > 「簡単に」が難しいですね 深い一言ですね。 プログラムの世界って、「簡単」の背景に「隠れた複雑」が存在していることが多いですよね。 フレームワークなんかは、その極みですね。
|
(1) 2 3 4 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |