バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
seasoft
投稿日時: 2009/4/30 13:15
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
共通クラス内で「フロント機能」 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
居住地:
投稿: 7367
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
居住地:
投稿: 7367
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定
> ふと思ったんですが、
> 裏で定数にセットするにしても、
> 何か
> setAdminOperation(Bool)
> isAdminOperation()
> みたいな
> メソッドとして実装した方が、
> 拡張時に便利かもしれませんね。

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


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


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

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

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

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


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

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


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

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 には実装されていたとは思いますが、、、う〜ん


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

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


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

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


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,635名です
総投稿数は109,884件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2311
5
umebius
2085
6
yuh
1819
7
h_tanaka
1635
8
red
1569
9
mcontact
1263
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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