バージョン選択

フォーラム

メニュー

オンライン状況

38 人のユーザが現在オンラインです。 (10 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 38
もっと...

サイト内検索

質問 > その他 > 共通クラス内で「フロント機能」 or 「管理機能」の判定

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
seasoft
投稿日時: 2009/4/30 13:15
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7333
共通クラス内で「フロント機能」 or 「管理機能」の判定
共通クラス(たとえば \data\class\helper\ 配下)で、「フロント機能」 or 「管理機能」のどちらから呼ばれているかをスマートに判定する方法がありましたら教えてください。

「スマートに」とは、URL や 呼び出し元のパスを解析するような方法ではなく、さほどのロジックを書かずに済ませられる範囲といった意味合いです。


現状で無いようでしたら、定数として持たせようかなと考えています。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

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
居住地:
投稿: 7333
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定
セッションと言いますと、セッション変数でしょうか?
判定に使えそうな配列要素がありますか?


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

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
居住地:
投稿: 7333
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定
> ふと思ったんですが、
> 裏で定数にセットするにしても、
> 何か
> setAdminOperation(Bool)
> isAdminOperation()
> みたいな
> メソッドとして実装した方が、
> 拡張時に便利かもしれませんね。

そうですね。
実際、フロントではPC・モバイルの判定も容易に行えると便利なケースがあるかなと考えています。
追加実装するなら、1定数複数値でセットして、判定用のメソッドを用意する方向を考えています。


とりあえずは継続して、冒頭の件につきまして情報をお持ちの方からの書き込みをお待ちしております。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

tao_s
投稿日時: 2009/4/30 23:19
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 794
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定
うろ覚えですが、確か管理画面にログインしている時は、セッション変数内かページオブジェクトに「user_id」か「login_id」みたいな名前で管理画面へのログイン情報を持っていたと思います。
「どのメニューから呼ばれているか」はわかりませんが、管理画面の任意のPageクラスのprocess()内で
print_r($_SESSION);
print_r($this);

として表示されるものを確認してみてはいかがでしょうか?
seasoft
投稿日時: 2009/4/30 23:22
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7333
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定
セッション変数だと、(管理機能でログインしていると)フロント側でも同じ要素が取得できるのではないかなと予測しています。また、管理機能でログインしていない場合に取得できない懸念もあります。

とはいえ、確信は無いので、一度試してみようと思います。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

seasoft
投稿日時: 2009/4/30 23:27
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7333
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定
やはり、フロント機能と管理機能でセッション変数の配列要素は同一でした。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

tao_s
投稿日時: 2009/4/30 23:32
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 794
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定
あと使えそうなのはinit()内で設定される。
$this->tpl_subnoとか$this->tpl_subtitleとかでしょうか?

それかget_class()でクラス名から判断するとか?

「簡単に」が難しいですね
seasoft
投稿日時: 2009/4/30 23:43
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7333
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定
> $this->tpl_subnoとか$this->tpl_subtitleとかでしょうか?

冒頭に書きましたとおり、共通クラス内で取得したいのですよね。
常に $this を渡すというルールを追加するのは酷かなぁ。


> それかget_class()でクラス名から判断するとか?

これも、共通クラス内だとストレートには無理ですよね。
参照をたどれば可能ですが、結構規模の大きなロジックになってしまいそうです。
たしか、PEAR には実装されていたとは思いますが、、、う〜ん


> 「簡単に」が難しいですね

深い一言ですね。
プログラムの世界って、「簡単」の背景に「隠れた複雑」が存在していることが多いですよね。
フレームワークなんかは、その極みですね。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

(1) 2 3 4 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン



統計情報

総メンバー数は74,626名です
総投稿数は104,055件です

投稿数ランキング

1
seasoft
7333
2
468
3217
3
AMUAMU
2712
4
nanasess
2202
5
umebius
2074
6
yuh
1664
7
red
1498
8
h_tanaka
1188
9
tsuji
942
10
fukap
907
11
shutta
835
12
tao_s
794
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.