バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

その他

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tao_s
投稿日時: 2009/5/1 2:26
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 799
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定
引用:
\html\admin\require.php
でセットしようと考えています。

↑が一番素直ですね
seasoft
投稿日時: 2009/5/1 1:56
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定
既存の実装では無理で、新規変数などで追加実装する場合、
\html\require.php
\html\mobile\require.php
\html\admin\require.php
でセットしようと考えています。


とりあえずは継続して、既存の実装範囲で判定する方法につきまして情報をお待ちしております。


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

tao_s
投稿日時: 2009/5/1 1:24
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 799
Re: 共通クラス内で「フロント機能」 or 「管理機能」の判定
ちょっと色々考えてみました。

要件がわからないので正しいやり方かどうかは置いておいて、
/data/class/SC_View.php
のSC_AdminView()がコールされた時に適当な変数をグローバル宣言するか、定数をdefineするのが一番書くコードが少なさそうです。

あとはSC_AdminView()で
$this->_smarty->template_dir = TEMPLATE_ADMIN_DIR;

とされているので、管理画面かどうか調べたいページで
if($this->_smarty->template_dir == TEMPLATE_ADMIN_DIR)

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

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


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

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


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

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


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


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

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

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


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

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


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


----------------
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/
« 1 2 (3) 4 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,980名です
総投稿数は110,019件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
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.