バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 管理者画面カテゴリーの$arrCatVal

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
bio
投稿日時: 2013/3/13 16:07
対応状況: −−−
一人前
登録日: 2013/3/13
居住地:
投稿: 81
管理者画面カテゴリーの$arrCatVal
はじめまして、おせわになります。
どうか宜しくお願いします。

管理者画面/商品管理/商品登録でカテゴリーを選択(登録)する時に使用されるtplファイルは
Data/Smarty/templates/admin/products/product.tpl内にある以下の記述だと思うのですが、

<th>商品カテゴリ<span class="attention"> *</span></th>
・・・・・・・・・・・・
<!--{html_options values=$arrCatVal output=$arrCatOut selected=$arrForm.category_id}-->
・・・・・・・・・・・・
</tr>

その中にある$arrCatValはどのファイルのどうゆうロジックで決定されるのでしょうか。




[EC-CUBE] 2.11.5
[レンタルサーバ] ファーストEC-Cubeサーバ-
[OS] Linux
[PHP] PHP 5.2.17
[データベース] MySQL 5.0.67
[WEBサーバ] apache2.2.x
[ブラウザ] IE8

namahage
投稿日時: 2013/3/13 16:21
対応状況: −−−
長老
登録日: 2013/2/28
居住地: 大阪
投稿: 198
Re: 管理者画面カテゴリーの$arrCatVal
data\class\pages\admin\products\LC_Page_Admin_Products_Product.php

のsfGetLevelCatListという関数だと思います。


ソースコードを追いかける際は、
商品登録画面のURLがadmin/products/product.phpとなっているので、まずこのphpファイルを見てみましょう。
その中に、LC_Page_Admin_Products_Product_Exのインスタンスを生成してinitとprocessという関数がコールされます。
LC_Page_Admin_Products_Product_Exを開いてください。
こちらには何の処理も書いていないと思いますので、extendsに記述されている親クラスのLC_Page_Admin_Products_Productを見てみましょう。
といった感じでソースコードを追いかけてみてください。

dkazuto
投稿日時: 2013/3/13 16:25
対応状況: −−−
一人前
登録日: 2012/5/10
居住地:
投稿: 95
Re: 管理者画面カテゴリーの$arrCatVal
bio様

お世話になります。

$arrCatValにはカテゴリテーブル(dtb_category)からランク順にcategory_idを格納していっています。

実際にこのデータを生成する部分は
/data/class/helper/SC_Helper_DB.php
の469行目あたりの sfGetLevelCatList というメソッドで記述されています。

このメソッドないではdtb_categoryからカテゴリIDとカテゴリ名を順に取得し、
規定の文字形式に合わせて出力するというロジックが記載されています。

以上、ご参考になればと思います。

namahage
投稿日時: 2013/3/13 18:02
対応状況: −−−
長老
登録日: 2013/2/28
居住地: 大阪
投稿: 198
Re: 管理者画面カテゴリーの$arrCatVal
言葉たらずでした。
dkazutoさんのおっしゃる通り、
data\class\pages\admin\products\LC_Page_Admin_Products_Product.php

のlfSetViewParam_InputPageという関数内で、SC_Helper_DBのsfGetLevelCatListという関数をコールしている箇所だと思います。
bio
投稿日時: 2013/3/15 17:32
対応状況: −−−
一人前
登録日: 2013/3/13
居住地:
投稿: 81
Re: 管理者画面カテゴリーの$arrCatVal
Namahage様、dkazuto様、

ご返信頂きまして誠にありがとうございます。同時にとても有用な情報を提供いただき感謝します。

正しく探していた関数はsfGetLevelCatListであり、
それはSC_Helper_DB.phpと LC_Page_Admin_Products_Product.php内で相互連関しているのですね。

いろいろ試しておりましたがご質問させて頂きたいことがございます。
管理者画面/商品管理/商品登録、または商品マスターから更新をかける際に、どちらの機能とも商品確認画面(confirm.tpl)へ行き着きます。

その商品確認画面から完了画面(complete.tpl)に到着する時に必要とされる、カテゴリID(category_id)のカテゴリ名称(category_name)をDBに登録するいうロジックが書かれているのは、どのファイルのどの箇所かお教えて頂けませんでしょうか。
namahage
投稿日時: 2013/3/15 21:07
対応状況: −−−
長老
登録日: 2013/2/28
居住地: 大阪
投稿: 198
Re: 管理者画面カテゴリーの$arrCatVal
data\class\pages\admin\products\LC_Page_Admin_Products_Product.phpのaction関数内をみてください。

こちらで、
switch($mode) {
case 'pre_edit':
〜 省略

というソースコードがあると思います。

Confirm.tpl内に
<input type="hidden" name="mode" value="complete" />
と定義されていますので、
今回の場合だとComplete内の処理が走ります。

そこから判断できるのは、
lfRegistProductという関数内で、SC_Helper_DBのupdateProductCategoriesという関数をコールしている箇所だと思います。
その中で、delete、insertでアップデートが実行されています。

なんにせよ、ソースを一度追ってみてください。
bio
投稿日時: 2013/3/21 17:37
対応状況: −−−
一人前
登録日: 2013/3/13
居住地:
投稿: 81
Re: 管理者画面カテゴリーの$arrCatVal
Namahage様、dkazuto様、

お世話になっております。

completeから始まり、lfRegistProductという関数を経由し、SC_Helper_DBのupdateProductCategoriesで実際のinsertを実行しているということですね。


これからはいろいろと関連づけて追求していくことにいたします。
流れがよくわかり、大変よい勉強になりました。

eccube非常に面白いですね。

本当にありがとうございます。



スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は89,234名です
総投稿数は110,052件です

投稿数ランキング

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