質問 > フロント機能 > 商品項目の追加について |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
futaba |
投稿日時: 2012/9/22 17:48
対応状況: −−−
|
新米 登録日: 2012/9/3 居住地: 投稿: 2 |
商品項目の追加について ------------------------------------------------------------------------------------------
[EC-CUBE] 2.12.2 [PHP] 5.3.8 [MySQL] 5.5.16 ------------------------------------------------------------------------------------------ 商品登録項目に発売日を追加するため、試行錯誤しているのですが上手くいきません。 1. dtb_productsテーブルにカラム追加 カラム:release 種別:DATETIME デフォルト値:なし 2.data/Smarty/templates/admin/products/product.tplテンプレートに下記を追加 <!--{html_select_date prefix="release_" time=$st_date field_order="YMD" month_format="%b" day_format ="%d" start_year="-50" end_year="+0"}--> 3.LC_Page_Admin_Products_Product_Ex.phpにLC_Page_Admin_Products_Product.phpの下記を移植し編集 function lfInitFormParam(&$objFormParam, $arrPost) { $objFormParam->addParam('商品ID', 'product_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('商品名', 'name', STEXT_LEN, 'KVa', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); //追加項目 $objFormParam->addParam('年', 'birthday_Year', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('月', 'birthday_Month', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('日', 'birthday_Day', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); //追加項目 $objFormParam->addParam('商品カテゴリ', 'category_id', INT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('公開・非公開', 'status', INT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('商品ステータス', 'product_status', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); function lfRegistProduct(&$objUpFile, &$objDownFile, $arrList) { $objQuery =& SC_Query_Ex::getSingletonInstance(); $objDb = new SC_Helper_DB_Ex(); // 配列の添字を定義 $checkArray = array('name', 'status', 'main_list_comment', 'main_comment', 'deliv_fee', 'comment1', 'comment2', 'comment3', 'comment4', 'comment5', 'comment6', 'release_Year', 'release_Month', 'release_Day', 'sale_limit', 'deliv_date_id', 'maker_id', 'note'); $arrList = SC_Utils_Ex::arrayDefineIndexes($arrList, $checkArray); // INSERTする値を作成する。 $sqlval['name'] = $arrList['name']; $sqlval['status'] = $arrList['status']; $sqlval['main_list_comment'] = $arrList['main_list_comment']; $sqlval['main_comment'] = $arrList['main_comment']; $sqlval['comment1'] = $arrList['comment1']; $sqlval['comment2'] = $arrList['comment2']; $sqlval['comment3'] = $arrList['comment3']; $sqlval['comment4'] = $arrList['comment4']; $sqlval['comment5'] = $arrList['comment5']; $sqlval['comment6'] = $arrList['comment6']; $sqlval['deliv_date_id'] = $arrList['deliv_date_id']; $sqlval['maker_id'] = $arrList['maker_id']; $sqlval['note'] = $arrList['note']; $sqlval['release_date'] = $arrList['release_date']; $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; $sqlval['creator_id'] = $_SESSION['member_id']; $sqlval['release'] = $arrList['release_Year'] ."/".$arrList['release_Month']."/".$arrList['release_Day']; $arrRet = $objUpFile->getDBFileList(); $sqlval = array_merge($sqlval, $arrRet); for ($cnt = 1; $cnt <= PRODUCTSUB_MAX; $cnt++) { $sqlval['sub_title'.$cnt] = $arrList['sub_title'.$cnt]; $sqlval['sub_comment'.$cnt] = $arrList['sub_comment'.$cnt]; } } 4.data/Smarty/templates/admin/products/confirm.tplテンプレートに下記を追加 <!--{$arrForm.release_Year|h}-->-<!--{$arrForm.release_Month|h}-->-<!--{$arrForm.release_Day|h}--> 上記の編集で商品登録を行い確認画面ではreleaseの内容は表示されるのですがDBにデータが記録されず困っていますので どなたか、適切なアドバイスを頂けないでしょうかよろしくお願いします。 |
torataro |
投稿日時: 2012/9/24 23:25
対応状況: −−−
|
一人前 登録日: 2010/6/16 居住地: 東京都台東区 投稿: 140 |
Re: 商品項目の追加について こんばんは。
試してないですが、 // INSERTする値を作成する。 で、 $sqlval['release'] = $arrList['release_Year'] ."/".$arrList['release_Month']."/".$arrList['release_Day']; とありますが、 カラムはDATETIMEですよね。 文字列' 00:00:00'が無いからかも。 参考になれば幸いです。 |
mutu4649 |
投稿日時: 2012/9/28 4:05
対応状況: −−−
|
新米 登録日: 2012/9/28 居住地: 投稿: 3 |
Re: 商品項目の追加について 2.data/Smarty/templates/admin/products/product.tplテンプレートに下記を追加
<!--{html_select_date prefix="release_" time=$st_date field_order="YMD" month_format="%b" day_format ="%d" start_year="-50" end_year="+0"}--> 上記だとDBに登録はできても編集ができないのでEC-CUBEのものを移植した方がいいと思います。 function init()内に下記を追加してみてください。 // 生年月日選択肢の取得 $objDate = new SC_Date_Ex(BIRTH_YEAR, date('Y',strtotime('now'))); $this->arrYear = $objDate->getYear('', START_BIRTH_YEAR, ''); $this->arrMonth = $objDate->getMonth(true); $this->arrDay = $objDate->getDay(true); テンプレートは会員登録のテンプレート(生年月日の部分)をそのまま移植すればOKです。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |