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
今回の作業内容
- EC-CUBEの管理画面から設定を変更
- EC-CUBEの構成ファイルを編集
- データベースにテーブルの編集
- PHPの設定を変更
- 商品のサブ情報(画像)を追加し表示確認
1.EC-CUBEの管理画面から設定を変更
EC-CUBEの管理画面にログイン
「システム設定 > パラメータ設定」の画面を開きます
「PRODUCTSUB_MAX」はデフォルトで6なので この数字を増やせば 商品のサブ情報の入力項目が増えます
「商品管理 > 商品登録」を開いて確認して下さい
こんな感じで 入力枠が増えているはずです
ただし この状態で情報を入力してもエラーが出るだけで 実際に情報を登録することはできません
次の作業を行います
2.EC-CUBEの構成ファイルを編集
「dataclassdbdbfactorySC_DB_DBFactory_MYSQL.php」を編集します
dtb_productsの追加
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,
を追記し
今回デフォルトの6個から さらに6個追加し 全部で12個にしました
vw_products_nonclassの追加
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.データベースのテーブルの編集
phpMyAdminから「EC-CUBE2.4.4用のデータベース」の「dtb_products」テーブルを表示
「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」(ファイル名は何でもいいです)を事前に用意
「インポートするファイル」の「ファイル選択」から「subinfo-add.txt」を選択し 右下の「実行する」をクリック
「dtb_products」テーブルに「subinfo-add.txt」に記述したフィールドが追加されました
※MySQLを変更したときは XAMPPコントロールパネルからMySQLを再起動します
4.PHPの設定を変更
ここまでで作業完了かと思ったら まだやらなければいけないことがありました
phpinfo()の画面で「max_file_uploads」の数字を確認して下さい
おそらく「20」となってるはずです
この「max_file_uploads」が20だと せっかく追加したサブ情報も9個目までしか追加できませんでした
「phpphp.ini」に「max_file_uploads = 30」と追記し Apacheを再起動すれば
サブ情報12個追加できるようになります
5.商品のサブ情報(画像)を追加し表示確認
商品のサブ情報を入力する
EC-CUBEの管理画面「商品管理 > 商品登録」から
こんな感じで商品情報を入れました
サブ情報の画像が12個表示されるようになりました
今回の作業で学んだこと
さくらインターネットでphp.iniの設定を変更(max_file_uploadsを増やす)
さくらインターネット(スタンダードプラン)の場合
コントロールパネルに「php.ini」の設定エリアがあり
そこに「max_file_uploads = 30」と記述することで 設定を変更することができました