ECCUBEで画像追加の最大数を10に増やす方法
データベースにフィールドの追加
データベース操作は、phpMyAdminの場合で説明します。
アカウントにログイン>EC-CUBEのデータベース>上部メニューのSQLボタン
すると、上の画像のような画面になるので、以下を流し込んで実行ボタン。
ALTER TABLE dtb_products ADD COLUMN sub_title7 text; ALTER TABLE dtb_products ADD COLUMN sub_comment7 text; 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 text; 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 text; 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 text; ALTER TABLE dtb_products ADD COLUMN sub_image10 text; ALTER TABLE dtb_products ADD COLUMN sub_large_image10 text;
これでデータベースの方は操作終了です。
管理画面での操作とPHPファイルの修正
次に、管理画面で設定変更しましょう。
EC-CUBE管理画面>システム設定>パラメーター設定
PRODUCTSUB_MAX を10にして更新。
続いてPHPファイルの修正。
data/class/SC_product.php
736行目辺りに以下を追加。
,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
ここまでやって、画像が表示されるようになります。もちろん、商品詳細ページのみですが。
画像が9枚目以降登録できない場合
これ、よくあるトラブルです。
どなた様もあるんじゃないでしょうか。
このトラブル、upload_max_filesizeの値が小さい場合、なってしまうそうです。
で、この値の変更はレンタルサーバーによってやり方が変わってきますので、調べて変更しましょう。
ちなみに、僕はサクラレンタルサーバーとロリポップレンタルサーバーの両方変更経験があるわけで。
サクラサーバー:php.iniに max_file_uploads = 100 を追加
ロリポップ:ユーザー専用ページよりPHP設定から 20Mに変更
上記のやり方で双方とも10枚表示できるようになりました。
やり方はあってるかわかりませんが、登録できないときにはご参考下さい。
カスタマイズの後処理二つ
商品一覧ページにも10件の画像を表示したいので、PHPファイルを修正。
/data/class_extends/SC_Product_Ex.php
70行目付近に以下を追加。
,sub_title6 ,sub_image6 ,sub_large_image6 ,sub_title7 ,sub_image7 ,sub_large_image7 ,sub_title8 ,sub_image8 ,sub_large_image8 ,sub_title9 ,sub_image9 ,sub_large_image9 ,sub_title10 ,sub_image10 ,sub_large_image10
これで商品一覧ページにも10件の画像が表示されるようになります。
スマートフォンでは、画像数が増えたことにより、設定している横幅が足りなくなるため、10枚目以降が表示されなくなります。
というわけで、CSSの修正して表示されるようにします。
html/user_data/packages/sphone/css/products.css
344行目付近を以下に変更
#detailphotoblock div.moveWrap>ul.move { width:2000px; ↓ width:4000px;
これでやっと完成となります。
総括
久しぶりにデータベースをいじったわけですが、こうしてSQL文を流し込むだけで追加可能というのはいいですね。
失敗が無いので危険性が多少は下がるのではないでしょうか。
他には画像が9枚目以降が登録できないトラブルも、なんとなく対処方が分かっていれば大丈夫かな、と。
いざという時は、サーバー会社に問い合わせるのが良いでしょう。
こんなところで完成したわけですが、この画像数を活かして、画像をページめくりのように見られる機能を次回、探したうえで紹介しようと思っています。
いちいち、拡大画面解除している場合ではないですからね。
無駄クリックを減らす努力というのはいいものです。
というわけで、以上となりました。