一覧メイン画像・詳細-メイン画像・メイン拡大画像の初期値サイズを変更

EC-CUBEの初期設定の画像サイズを変更する

data/cache/mtb_constants.phpから変更することもできるが、
前回のエントリーで記載した通り、古いキャッシュファイルで上書き
アップロードしてしまうと、EC-CUBE全体がクラッシュしてしまいます。
また、キャッシュファイルが更新されると元の初期値に戻ってしまう。

初期の値

詳細-メイン拡大画像[500×500] 拡大表示を設定してある場合に表示
一覧-メイン画像[130×130] カテゴリ一覧・検索結果ページで表示
詳細-メイン画像[260×260] 商品詳細のページで表示

基本的には、システム設定 > パラメータ設定から、

LARGE_IMAGE_WIDTH
LARGE_IMAGE_HEIGHT
SMALL_IMAGE_WIDTH
SMALL_IMAGE_HEIGHT
NORMAL_IMAGE_WIDTH
NORMAL_IMAGE_HEIGHT

を管理画面から設定するのが、上策ということになります。

data/mtb_constants_init.phpにも設定情報が記載されていて、
ここでも設定できそうですが、これに値を設定して
アップロードしても反映されない。

キャッシュの更新時などにこの値が設定されるものと思われるが、
現状パラメータ設定から設定すれば、すぐに反映されるので、
一覧メイン画像・詳細-メイン画像・メイン拡大画像の
初期値サイズを変更はパラメータ設定からやっている。

危険!dataフォルダの中身を古いファイルで上書きアップロード

商品詳細や商品一覧のメイン画像サイズの変更のやり方は後ほど投稿するとして、今回はPHPエラーでいきなりショップにアクセスできない、管理画面の画像リンクが外れておかしくなる現象について。

デフォルトの商品登録の商品画像サイズを変更しようとして、
dataフォルダ内の data/cache/mtb_constants.php を編集してアップロード。

とくに気にもしてなく、上書きアップロードしたら全ページPHPエラー…。

mtb_constants.phpの最新ファイルがローカルにも、リモートにもない。

どうしよう…。

EC-CUBEをダウンロードしてdata/cacheを見たら空っぽ。

どうしましょう…。

よくよく見るとcache/mtb_constants.phpとキャッシュというフォルダだから一時的なファイルだと思い、思い切ってサーバー上のmtb_constants.phpを削除。そして、ショップにアクセスしてみると表示された!でも何かおかしい…。管理画面に入ってみても外れていた画像は戻っている。テンプレート設定がデフォルトになっていたので、最新に設定。これでショップも元に戻って事なきを得た。

まとめ。
mtb_constants.phpはキャッシュがどんどん新しくなっていて、それを古いファイルで上書きしてしまうと、全体的にエラーになるのでdataフォルダ内は要注意。

dataフォルダの中身を古いファイルで上書きアップロードはキケン。

郵便番号DB登録で途中で止まるのはエラーではなかった

基本情報タブ > 郵便番号DB登録だが、最初クリックした時にウィザードが開いてEC-CUBEのロゴ画像が、どーんと出て何にも動かないので、何だコレはと思ってそのまま閉じていましたが、よく見るとローディングの画面でした。

ロゴ画像の下にローディングバーが出ていて、郵便番号DBにアクセスしている様子。〒のサイトに連続的に接続しにいくから途中で止まるようになっているのでしょう。

郵便局HPから最新の郵便番号をcsvでダウンロードしてphpadminからMySQLに何とかって検索すると出てきますが、簡単な話で止まったらF5で更新すればいいだけでした。最初はF5で更新しても何にも変わってない気がしますが、数回やっているとローディングバーが伸びているのがわかります。最後までいくとCLOSEのボタンが出るのでクリックして完了です。

私の場合、約20回くらいの更新でやっと完了しました。

数回更新後のウィザード(約8回目)

さらに数回更新後のウィザード(約15回目)

結論

EC-CUBEの郵便番号DB登録は、止まったらF5で更新しまくる

ブロック編集、新規ブロックを管理画面上で作っても内容が空になる原因

新規ブロック作成について

デザイン管理>ブロック編集

ブロック編集の新規ブロックを管理画面上で作ってもアップロードしたテンプレートにその.tplファイルが存在しないと、新しいテンプレートをアップして適用した場合、内容が消える。

テンプレート設定を変更しないのであれば問題ないが、テンプレート自体をどんどん新規アップロードしてカスタマイズしているので、管理画面から途中で新規ブロックを作成しても、テンプレート設定が変わればもちろん新しいテンプレートセットには存在しなく空になっているということ。

管理画面上でブロック自体は残っているので、そういった錯覚を覚える。

blocフォルダに.tplファイルを入れてアップしていけばいい。

また、.tplファイルを新たに追加してアップしても管理画面のブロックには、登場しないので、そこは管理画面から追加してやる必要がある。

手順

  1. ローカルでblocフォルダに.tplのブロックファイルを作成してアップ
  2. 管理画面で.tplファイル名を同じにしてブロックを新規追加

EC-CUBEを静的URLにmod_rewriteで置き換えてSEO対策

短い静的URLにする方法

商品詳細ページとカテゴリーリスト表示の2つを長い動的URLから
静的URLにする方法。SEO的にはすでにどっちでもいい状況だが、
URLのシンプルさ、キレイさ、わかりやすさ、長さなどの考慮。

手順1. .htaccessをアップロード

.htaccessファイルに下記のように記載して第一階層にアップ。

RewriteRule detail([0-9]+)\/? /home/▲▲▲/△△△/public_html/products/detail.php?product_id=$1 [L]
RewriteRule list([0-9]+)\/? /home/▲▲▲/△△△/public_html/products/list.php?category_id=$1 [L]

オレンジの部分は、サイトパス(フルパス)で設置のサーバーに
合った設定にする。把握としてはサイト内リンクを静的にして、
静的URLにアクセスした時にmod_rewriteでサイトパスのファイルに
アクセスを置き換えてその内容を短い静的URLで表示するという構造。

手順2. 管理画面からリンクパス変更

管理ページ > システム設定 > パラメータ設定

DETAIL_P_HTML欄
URL_DIR . “products/detail”

LIST_C_HTML欄 ←※LIST_P_HTML欄ではないので要注意
URL_DIR . “products/list”

手順3. テンプレートファイルのリンクパス変更

detail(商品詳細)は.tplファイル変更箇所なし。
list(カテゴリー表示)はテンプレートの変更が必要で

【bloc/category.tplファイル】
list.php?category_id=

list

【detail.tpl ファイル】
list.php?category_id=

list
の2カ所を置き換える。

以上。

最初は、detail/3 とかスラッシュの入るように公式本にも
あったので、そうやったが商品ページの【新規コメントを書き込む】が
Not Foundになって開いたので何が原因と思ったら、

http://●●●.jp/products/review.php?product_id=3
が正しいのに
http://●●●.jp/products/detail/review.php?product_id=3
と階層がズレたのでdetail3 list2 などのURLで終わるようにした。

余談だが、個人的な好みで.htaccessはピンク色のようにしてある。

RewriteRule ^products/detail([0-9]+)\/? /home/▲▲▲/△△△/public_html/products/detail.php?product_id=$1 [L]
RewriteRule ^products/list([0-9]+)\/? /home/▲▲▲/△△△/public_html/products/list.php?category_id=$1 [L]

EC-CUBEテンプレートパッケージのアップロード

デザイン管理>テンプレート追加から、
テンプレートパッケージをアップロードできる。

  1. テンプレートコード
  2. テンプレート名
  3. テンプレートファイル ※ファイル形式は.tar/.tar.gzのみ

の3つがあって、テンプレートコードはアップロードした
テンプレートフォルダの名前になる。.tar圧縮テンプレファイルの
【ファイル名.tar】は何でもよくて、このアップロード時に
テンプレートコードに指定した文字列が反映される。
要半角英数であろう。

テンプレート名は管理画面内に出る文字列で管理で把握する用。
日本語でもだいじょうぶで、把握しやすいように。

ファイル形式は.tar/.tar.gzは、WindowsのLhaplusで簡単にできた。

当面はこの.tarにHTMLの.tplや画像・CSSをまとめて圧縮して
アップロードするというのに慣れなきゃです。