【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がポスグレの場合は、上記手順と少し違うため、こちらのサイトを参照のこと。