【EC-CUBE】携帯用詳細コメントを追加する
データベースに携帯用コメントカラムを追加し、商品登録時に、携帯用には別の詳細説明を登録し、PCサイトの説明と別にする。
- データベースにカラム(フィールド)追加
- 商品登録のPHPスクリプト追加
- 管理画面の商品登録・確認テンプレートを修正
- モバイル用詳細テンプレートを修正
その1)データベースへのカラム追加
phpMyAdminでDBへアクセスし、dtb_productsの最後へ1カラム追加。
カラム名「comment7」
データ型「text」
※残りのフィールドは先のデータを参照。
その2)商品登録PHPの修正。
/data/class_extends/page_extends/admin/products/LC_Page_Admin_Products_Product_Ex.php
/data/class/pages/admin/products/LC_Page_Admin_Products_Product.phpからlfRegistProduct関数 (=商品登録関数)をコピー(L387~L493:ver.2.3.2の場合)し、LC_Page_Admin_Products_Product_Ex.phpの「デストラクタ」の下(L68:ver.2.3.2の場合※最後の「}」の手前へ。)へ貼り付け。
ソースを一部編集する。
貼り付けたソースのL78あたりにcomment7(=携帯用コメント)を追加。
“comment4”, “comment5”, “comment6”, “comment7”, “main_list_comment”,
L97あたりにも1行追加。
$sqlval[‘comment7’] = $arrList[‘comment7’];
LC_Page_Admin_Products_Product.phpからLC_Page_Admin_Products_Product_Ex.phpへ、lfErrorCheck関数もコピー。(L546~L609:ver.2.3.2の場合)
lfRegistProduct関数の下に貼り付け。
貼り付けたソースのL183あたり
$objErr->doFunc(array(“詳細-メインコメント”, “main_comment”, $this->arrAllowedTag), array(“HTML_TAG_CHECK”));
の下に2行追加。
$objErr->doFunc(array(“携帯用詳細コメント”, “comment7”, LLTEXT_LEN), array(“SPTAB_CHECK”, “MAX_LENGTH_CHECK”));
$objErr->doFunc(array(“携帯用詳細コメント”, “comment7”, $this->arrAllowedTag), array(“HTML_TAG_CHECK”));
その3)MySql用にデータの読み込みコードを追加
これをやらないと、再編集するときに、登録画面に以前に登録したデータが読み込まれない;
/data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php (L304あたり:ver.2.3.3の場合)
「T1.comment6,」の下に1行追加し、「T1.comment7,」。
その4)データ登録用ADMINテンプレートの編集。
商品登録画面のテンプレートへ携帯用情報登録フォームのコード追加。
/data/Smarty/templates/default/admin/products/product.tpl (L243あたり、詳細-メインコメントのTD中へ。)
<br><br>
<div class=”center”>
<input type=”button” name=”btn” onclick=”selectAll(‘category_id’); lfDispSwitch(‘mobile_detail’);” value=”モバイル専用詳細コメント表示/非表示”>
</div>
<div id=”mobile_detail” style=”<!–{if !$arrForm.comment7}–>display:none<!–{/if}–>”>
<p>
PCと携帯で異なる詳細コメントを表示する際には以下のフォームに携帯サイト用のコメントを入力して下さい。<br />
入力されなかった場合は、PCサイトと同じ詳細コメント↑を表示します。<br />
</p>
<textarea name=”comment7″ id=”comment7″ value=”<!–{$arrForm.comment7|escape}–>” maxlength=”<!–{$smarty.const.LLTEXT_LEN}–>” style=”<!–{if $arrErr.comment7 != “”}–>background-color: <!–{$smarty.const.ERR_COLOR}–><!–{/if}–>” cols=”60″ rows=”8″ class=”area60″><!–{$arrForm.comment7|escape}–></textarea><br /><span class=”red”> (上限<!–{$smarty.const.LLTEXT_LEN}–>文字)</span>
確認画面は、携帯用コメントを入力した場合のみ表示されるようにコードを追加。
/data/Smarty/templates/default/admin/products/confirm.tpl (L183あたり、詳細-メインコメントの/TRの後ろへ。)
<!–{if $arrForm.comment7}–>
<tr>
<td bgcolor=”#f2f1ec” width=”160″ class=”fs12n”>モバイル詳細コメント</td>
<td bgcolor=”#ffffff” width=”557″ class=”fs12n”>
<!–{$arrForm.comment7|nl2br}–>
</td>
</tr>
<!–{/if}–>
その5)モバイルサイトの表示テンプレートを編集。
/data/Smarty/templates/default/mobile/products/detail.tpl (L39あたり。詳細メインコメントの表示を変更。)
<!–{$arrProduct.main_comment|nl2br}–>
↓下記に変更。
<!–{if !$arrProduct.comment7}–><!–{$arrProduct.main_comment|nl2br}–><!–{else}–><!–{$arrProduct.comment7|nl2br}–><!–{/if}–>
携帯専用のコメントがある場合は、それを表示し、ない場合は、PC用のコメントを共用で表示する。
参考:http://www.eccube-school.jp/products/detail40.html
※DBがポスグレの場合は、上記手順と少し違うため、こちらのサイトを参照のこと。