EC-CUBE2.4.4 商品詳細ページのサブ画像を増やしてみた


EC-CUBE2.4.4は 1つの商品に登録できるサブ画像の数はデフォルトで6個
この数を増やしてみようと思います

テスト環境

  • XAMPP lite1.7.3
  • PHP Version 5.3.1
  • MySQL クライアントのバージョン: 5.1.41
  • EC-CUBE2.4.4
  • Windows 7 64bit
  • Google Chrome

今回の作業内容

  1. EC-CUBEの管理画面から設定を変更
  2. EC-CUBEの構成ファイルを編集
  3. データベースにテーブルの編集
  4. PHPの設定を変更
  5. 商品のサブ情報(画像)を追加し表示確認

1.EC-CUBEの管理画面から設定を変更

EC-CUBEの管理画面にログイン

custom244_04

「システム設定 > パラメータ設定」の画面を開きます

custom244_05

「PRODUCTSUB_MAX」はデフォルトで6なので この数字を増やせば 商品のサブ情報の入力項目が増えます

custom244_06

「商品管理 > 商品登録」を開いて確認して下さい

custom244_08

こんな感じで 入力枠が増えているはずです
ただし この状態で情報を入力してもエラーが出るだけで 実際に情報を登録することはできません

次の作業を行います

2.EC-CUBEの構成ファイルを編集

「dataclassdbdbfactorySC_DB_DBFactory_MYSQL.php」を編集します

dtb_productsの追加

custom244_09

275行目以降にサブ情報を扱う記述があります


dtb_products.sub_title7,
dtb_products.sub_comment7,
dtb_products.sub_image7,
dtb_products.sub_large_image7,
dtb_products.sub_title8,
dtb_products.sub_comment8,
dtb_products.sub_image8,
dtb_products.sub_large_image8,
dtb_products.sub_title9,
dtb_products.sub_comment9,
dtb_products.sub_image9,
dtb_products.sub_large_image9,
dtb_products.sub_title10,
dtb_products.sub_comment10,
dtb_products.sub_image10,
dtb_products.sub_large_image10,
dtb_products.sub_title11,
dtb_products.sub_comment11,
dtb_products.sub_image11,
dtb_products.sub_large_image11,
dtb_products.sub_title12,
dtb_products.sub_comment12,
dtb_products.sub_image12,
dtb_products.sub_large_image12,

を追記し

custom244_10
のように変更します

今回デフォルトの6個から さらに6個追加し 全部で12個にしました

vw_products_nonclassの追加

同じように さっきの少し下あたりの
custom244_11


T1.sub_title7,
T1.sub_comment7,
T1.sub_image7,
T1.sub_large_image7,
T1.sub_title8,
T1.sub_comment8,
T1.sub_image8,
T1.sub_large_image8,
T1.sub_title9,
T1.sub_comment9,
T1.sub_image9,
T1.sub_large_image9,
T1.sub_title10,
T1.sub_comment10,
T1.sub_image10,
T1.sub_large_image10,
T1.sub_title11,
T1.sub_comment11,
T1.sub_image11,
T1.sub_large_image11,
T1.sub_title12,
T1.sub_comment12,
T1.sub_image12,
T1.sub_large_image12,

を追記します

3.データベースのテーブルの編集

custom244_12

phpMyAdminから「EC-CUBE2.4.4用のデータベース」の「dtb_products」テーブルを表示

custom244_13

「dtb_products」テーブルに追加したサブ情報用のフィールドを追加していきます
1つずつ作るのもいいですが テキストファイルを用意してインポートする方が簡単です
「インポート」タブをクリック


ALTER TABLE dtb_products ADD COLUMN sub_title7 text;
ALTER TABLE dtb_products ADD COLUMN sub_comment7  mediumtext;
ALTER TABLE dtb_products ADD COLUMN sub_image7 text;
ALTER TABLE dtb_products ADD COLUMN sub_large_image7 text;
ALTER TABLE dtb_products ADD COLUMN sub_title8 text;
ALTER TABLE dtb_products ADD COLUMN sub_comment8  mediumtext;
ALTER TABLE dtb_products ADD COLUMN sub_image8 text;
ALTER TABLE dtb_products ADD COLUMN sub_large_image8 text;
ALTER TABLE dtb_products ADD COLUMN sub_title9 text;
ALTER TABLE dtb_products ADD COLUMN sub_comment9  mediumtext;
ALTER TABLE dtb_products ADD COLUMN sub_image9 text;
ALTER TABLE dtb_products ADD COLUMN sub_large_image9 text;
ALTER TABLE dtb_products ADD COLUMN sub_title10 text;
ALTER TABLE dtb_products ADD COLUMN sub_comment10  mediumtext;
ALTER TABLE dtb_products ADD COLUMN sub_image10 text;
ALTER TABLE dtb_products ADD COLUMN sub_large_image10 text;
ALTER TABLE dtb_products ADD COLUMN sub_title11 text;
ALTER TABLE dtb_products ADD COLUMN sub_comment11  mediumtext;
ALTER TABLE dtb_products ADD COLUMN sub_image11 text;
ALTER TABLE dtb_products ADD COLUMN sub_large_image11 text;
ALTER TABLE dtb_products ADD COLUMN sub_title12 text;
ALTER TABLE dtb_products ADD COLUMN sub_comment12  mediumtext;
ALTER TABLE dtb_products ADD COLUMN sub_image12 text;
ALTER TABLE dtb_products ADD COLUMN sub_large_image12 text;

「subinfo-add.txt」(ファイル名は何でもいいです)を事前に用意
custom244_14

「インポートするファイル」の「ファイル選択」から「subinfo-add.txt」を選択し 右下の「実行する」をクリック

custom244_15

「dtb_products」テーブルに「subinfo-add.txt」に記述したフィールドが追加されました

※MySQLを変更したときは XAMPPコントロールパネルからMySQLを再起動します

4.PHPの設定を変更

ここまでで作業完了かと思ったら まだやらなければいけないことがありましたcustom244_16

phpinfo()の画面で「max_file_uploads」の数字を確認して下さい
おそらく「20」となってるはずです
この「max_file_uploads」が20だと せっかく追加したサブ情報も9個目までしか追加できませんでした

custom244_17

「phpphp.ini」に「max_file_uploads = 30」と追記し Apacheを再起動すれば
サブ情報12個追加できるようになります

5.商品のサブ情報(画像)を追加し表示確認

商品のサブ情報を入力する

custom244_18

EC-CUBEの管理画面「商品管理 > 商品登録」から
こんな感じで商品情報を入れました

custom244_19

サブ情報の画像が12個表示されるようになりました

今回の作業で学んだこと

さくらインターネットでphp.iniの設定を変更(max_file_uploadsを増やす)

さくらインターネット(スタンダードプラン)の場合
コントロールパネルに「php.ini」の設定エリアがあり
そこに「max_file_uploads = 30」と記述することで 設定を変更することができました

テキストファイルでMySQLデータベースのテーブル(フィールド)を追加する