質問 > フロント機能 > 管理者画面カテゴリーの$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非常に面白いですね。 本当にありがとうございます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |