機能要望 > フロント機能 > カテゴリ毎に説明文と画像を作成 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
NADEMO |
投稿日時: 2009/10/14 14:34
対応状況: −−−
|
常連 登録日: 2009/10/5 居住地: 品川 投稿: 50 |
カテゴリ毎に説明文と画像を作成 以前このフォーラムで話されていた題名ですが、私もやってみようと思い、カゴラボを見ながらやってみました。
管理画面は設定できているのですが、題名の下の説明文を入力するところが登録されません。 入力した後に登録ボタンを押してもデータが消えてしまうのです。 なぜでしょうか。 それと、CSSの設定なのですが、左に画像、右に詳細と楽天のような表示方法をとりたいのですが、products.cssの商品一覧に追加すればよいのでしょうか。そのときのタイトルは.category_infoでよいのでしょうか・・・。 初歩的な質問ですみません。 下記にはこの表記はどうしたらよいのかと悩んだ箇所を掲載します。たぶんここがおかしいはずです。 ?/html/products/list.phpに追記 ● 59行目辺り($objQueryの直下) $objQuery = new SC_Query(); $objPage->category_info = $objQuery->get("dtb_category", "category_info", "category_id = ?", array($category_id)); $count = $objQuery->count("dtb_best_products", "category_id = ?", array($category_id)); と以上のようにブログでは指定してありましたが、私のlist.phpには59行もなく、objQueryの表記もありません。 なので上記3行を追加してみたのですが、反映されないみたいです。 ちなみに私のEC-CUBEはバージョン2.4.1です。 どなたかご教授願えませんでしょうか。 カゴラボのブログはここです
|
kishik |
投稿日時: 2009/10/14 14:57
対応状況: −−−
|
仙人 登録日: 2009/4/3 居住地: 東京 投稿: 382 |
Re: カテゴリ毎に説明文と画像を作成 どこをどこまでやって、何はやっていないのかがよくわからない状態です。
○カゴラボの文章を読んで理解する ○その後に質問内容の見えない部分を推測する というステップを踏まねばならず、回答をつけにくい状況だと思います。。 少し整理して、必要ならスレッドを分けて、再度書き直されてみるともっとレスが付きやすくなると思いますよ。 ----- カスタマイズ承ります http://ec-cube-mall.jp/ http://ec-cube.ec-orange2.jp/ http://wiki.ec-orange2.jp/ |
NADEMO |
投稿日時: 2009/10/14 15:33
対応状況: −−−
|
常連 登録日: 2009/10/5 居住地: 品川 投稿: 50 |
Re: カテゴリ毎に説明文と画像を作成 そうですね。
すみませんでした。 まず、カゴラボさんのブログに書いてあるように、 ?データベースの追加 ?/data/Smarty/templates/admin/products/category.tplの追記 ?/html/admin/products/category.phpに追記 ここまでは終わっています。 管理画面でカテゴリ管理を確認したところ、形は出来ていました。 しかし、ここで説明文が登録されないという事態が起きたのです。 ?〜?に関してはきちんと出来ていると思います。 ?/html/products/list.phpに追記 この追記をしようとlist.phpを開けたら、ほとんど空の状態だったので、どこに追記??となってしまったのです。 このカゴラボさんのシステムは素晴らしいものだと思うので、是非取り入れたいのでよろしくお願いします。
|
NADEMO |
投稿日時: 2009/10/14 15:39
対応状況: −−−
|
常連 登録日: 2009/10/5 居住地: 品川 投稿: 50 |
category.tplはこんな感じです 変更内容を載せます。まずはcategpry.tplです。
いかがでしょうか。 <!--▼画面右--> <td width="428" valign="top"> <span class="red12"><!--{$arrErr.category_name}--></span> <input type="text" name="category_name" value="<!--{$arrForm.category_name|escape}-->" size="30" class="box30" maxlength="<!--{$smarty.const.STEXT_LEN}-->"/> <input type="submit" name="button" value="登録" onclick="fnModeSubmit('edit','','');"/><span class="red10"> (上限<!--{$smarty.const.STEXT_LEN}-->文字)</span> 【ココから下です。】 <textarea name="category_info" cols="80" rows="10"><!--{$arrForm.category_info|escape}--></textarea><br /> <!--{if $arrForm.level != "1" && $arrForm.parent_category_id != "0"}--><input type="checkbox" name="info_flg" id="info_flg" value="1"<!--{if $arrForm.info_flg}--> checked="checked"<!--{/if}--> /><label for="info_flg" class="fs10n">親カテゴリの説明を引き継ぐ</label> <!--{/if}--><span class="red10"> (上限<!--{$smarty.const.LLTEXT_LEN}-->文字)</span> 【ここまでです。】 <table width="428" border="0" cellspacing="0" cellpadding="0" summary=" "> <tr><td height="15"></td></tr> </table>
|
NADEMO |
投稿日時: 2009/10/14 15:47
対応状況: −−−
|
常連 登録日: 2009/10/5 居住地: 品川 投稿: 50 |
category.phpはこんな感じです。 /**
* Page のプロセス. * * @return void */ function process() { $conn = new SC_DBConn(); $objView = new SC_AdminView(); $objSess = new SC_Session(); $objDb = new SC_Helper_DB_Ex(); // 認証可否の判定 SC_Utils_Ex::sfIsSuccess($objSess); 【中略】 case 'pre_edit': // 編集項目のカテゴリ名をDBより取得する。 //$oquery = new SC_Query();//以下に変更 $oquery = new SC_Query(); $where = "category_id = ?"; //$cat_name = $oquery->get("dtb_category", "category_name", $where, array($_POST['category_id'])); $col = "category_name, category_info, info_flg, level"; $arrRet = $objQuery->select($col, "dtb_category", $where, array($_POST['category_id'])); // 入力項目にカテゴリ名を入力する。 //$objPage->arrForm['category_name'] = $cat_name; //以下に変更 $objPage->arrForm['category_name'] = $arrRet[0]['category_name']; $objPage->arrForm['category_info'] = $arrRet[0]['category_info']; $objPage->arrForm['info_flg'] = $arrRet[0]['info_flg']; $objPage->arrForm['level'] = $arrRet[0]['level']; // POSTデータを引き継ぐ $this->arrForm['category_id'] = $_POST['category_id']; break; case 'delete': $objQuery = new SC_Query(); // 子カテゴリのチェック $where = "parent_category_id = ? AND del_flg = 0"; 【中略】 // 入力データを渡す。 $sqlval = $this->objFormParam->getHashArray(); $sqlval['create_date'] = "Now()"; $sqlval['update_date'] = "Now()"; $sqlval['creator_id'] = $_SESSION['member_id']; $sqlval['parent_category_id'] = $parent_category_id; $sqlval['rank'] = $rank; $sqlval['level'] = $level; //追記:親の設定を引き継ぐ時 if($sqlval['info_flg']) { $sqlval['category_info'] = IfGetParentInfo($objQuery, $parent_category_id); } // INSERTの実行 $objQuery->insert("dtb_category", $sqlval); $objQuery->commit(); // トランザクションの終了 } // カテゴリの編集 function lfUpdateCat($category_id) { $objQuery = new SC_Query(); // 入力データを渡す。 $sqlval = $this->objFormParam->getHashArray(); $sqlval['update_date'] = "Now()"; $where = "category_id = ?"; //追記:親の設定を引き継ぐ時 if($sqlval['info_flg']) { $sqlval['category_info'] = IfGetParentInfo($objQuery, $parent_category_id); } $objQuery->update("dtb_category", $sqlval, $where, array($category_id)); } // カテゴリの取得 function lfGetCat($parent_category_id) { $objQuery = new SC_Query(); if($parent_category_id == "") { $parent_category_id = '0'; } $col = "category_id, category_name, level, rank"; $where = "del_flg = 0 AND parent_category_id = ?"; $objQuery->setoption("ORDER BY rank DESC"); $arrRet = $objQuery->select($col, "dtb_category", $where, array($parent_category_id)); return $arrRet; } /* パラメータ情報の初期化 */ function lfInitParam() { $this->objFormParam->addParam("カテゴリ名", "category_name", STEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); $objFormParam->addParam("カテゴリ情報", "category_info", LLTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); $objFormParam->addParam("引き継ぎ", "info_flg", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); } 【中略】 // 追記:親のcategory_infoを取得する function lfGetParentInfo($objQuery, $pid) { $where = "category_id = ?"; $parent_info = $objQuery->get("dtb_category", "category_info", $where, array($pid)); return $parent_info; } ?>
|
NADEMO |
投稿日時: 2009/10/14 15:51
対応状況: −−−
|
常連 登録日: 2009/10/5 居住地: 品川 投稿: 50 |
list.phpはこんな感じです。 <?php
// {{{ requires require_once("../require.php"); require_once(CLASS_EX_PATH . "page_extends/products/LC_Page_Products_List_Ex.php"); // }}} // {{{ generate page $objPage = new LC_Page_Products_List_Ex(); register_shutdown_function(array($objPage, "destroy")); $objPage->init(); $objPage->process(); 【当初はこの上部まででした】 【下記追記しました】 $objQuery = new SC_Query(); $objPage->category_info = $objQuery->get("dtb_category", "category_info", "category_id = ?", array($category_id)); $count = $objQuery->count("dtb_best_products", "category_id = ?", array($category_id)); ?>
|
kishik |
投稿日時: 2009/10/14 16:07
対応状況: −−−
|
仙人 登録日: 2009/4/3 居住地: 東京 投稿: 382 |
Re: list.phpはこんな感じです。 ソースを全部チェックしてほしい、という内容に見えてしまいますが。。
基本的にみなさんボランティアでの回答ですので、 もう少しご自分で原因を絞ってからご質問されるのがいいかと思います。 偉そうなことを書いてしまいまして、申し訳ありません。 またはカゴラボさんに直接お問合せ頂くといいかもしれません。 ----- カスタマイズ承ります http://ec-cube-mall.jp/ http://ec-cube.ec-orange2.jp/ http://wiki.ec-orange2.jp/ |
NADEMO |
投稿日時: 2009/10/14 16:14
対応状況: 解決済
|
常連 登録日: 2009/10/5 居住地: 品川 投稿: 50 |
Re: list.phpはこんな感じです。 そんなつもりはなかったのですが。
他の方法を試してみます。 この投稿はこれで削除します。 ありがとうございました。m(_ _)m
|
tao_s |
投稿日時: 2009/10/14 21:42
対応状況: −−−
|
仙人 登録日: 2008/8/20 居住地: 東京 投稿: 799 |
Re: list.phpはこんな感じです。 ちょっと違いますが、dtb_categoryにカラム一個足して、カテゴリ毎にテンプレート自体を切り替えるカスタマイズをしてみました。
EC-CUBEの商品カテゴリ毎にテンプレートを切り替える ご参考までに
|
homan |
投稿日時: 2009/10/15 0:00
対応状況: −−−
|
仙人 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: list.phpはこんな感じです。 カゴラボブログの持ち主です。
見てくださっているとよいのですが・・・ (登場が遅くて皆さんにご迷惑おかけいたしました。申し訳ありません) > NADEMOさん そのブログはEC-CUBE1系時代の物なので、 EC-CUBE2系のお話であれば以下の記事をご参照ください。 http://www.eccube-school.jp/products/detail43.html (全てのページを見るには、無料の会員登録が必要です) 上記の記事はPostgreSQLを意識して書いていますので、 MySQLの場合は若干異なる可能性があります。 その辺の環境はどのようになっていますか? 日頃の業務の関係ですぐにお答できると断言できませんが、 私が書いた記事に関しての問合せは、 とりあえずEC-CUBEの学校の問合せフォームより投稿ください。 https://www.eccube-school.jp/contact/index.php
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |