EC-CUBE テンプレートのファイル構成

テンプレートをパッケージングしながら作成中です。
テンプレ用に格納場所と概要を寄せ集めてみました。
デフォルトの状態では、下記に格納されています。

[html gutter=”false” highlight=”1,2″]
root/data/Smarty/templates/default
root/user_data/default
[/html]

以下フォルダ構成
“EC-CUBE テンプレートのファイル構成” の続きを読む

EC-CUBEのパスワード忘れた時ver2.11(強制リセット)

先日テスト用のEC-CUBEをインストール後、管理者パスワード控えるの忘れてましたorz
多分作ったのはtarコマンドで解凍の時・・・orz
どうしてもクライアント側で解凍すると権限が全部解除されてしまってインストールに挫折、なのでサーバー上で解凍しましたw
Chromeさんのキャッシュ機能にお任せしましたが、何個も同じフォルダに入れては消してのディレクトリだったのでパスワードが良くわからずw
でもまたサーバー上で新規に解凍してインストールするのもメンドクサイ・・・ググってみても旧バージョンの直し方しか出てこねぇ・・・orz

なので強制的にリセットの方法を発見・・・

再インストール(DBは初期化せず)w
インストール時に初期のIDとPASSを設定するのでリセットできます。

ここで注意。

データベースの初期化を行わないにチェックマークを入れておくこと・・・w
また、忘れる以前にテンプレいじってたりフロントいじってたら消えるかもね。
不安なら一応SQLも主要データもバックアップが必要かも。
(今回は急ぎだったのでしませんでしたがw)

レビュー一覧ページ作成 ec-cube2.11以降

まず管理画面にログインして、デザイン管理>PC>レイアウト設定 から、ページを新規入力します。
URLは review_list.php として、以下のコードを貼り付けて保存します。

次に、html/user_data/review_list.php を開いて、次のように修正します。

data/Smarty/templates/default/user_data/review_list.tpl を以下のように変更します。

以上。

ブロック化は以下。

デザイン管理>PC>ブロックの設定新規ブロックで下記を作成。
ブロック名:お客様の声一覧
ファイル名:review_list_bloc

トップページのブロックで表示する場合、html直下のindex.php下記のような感じで書き換え。

基本的には同じ作業。
画像とかは適当にかえましょう。
(レビュー自体未投稿だと空欄なので適当に用意しておきましょう。)

EC-CUBEからメールが送信されない

メモ

Netowl の Firebird というサーバーに EC-CUBE をインストールした場合、デフォルトのままでは注文完了時や通知のメールが送信されなかった。

送信できるようにするには、
/data/mtb_constants_init.php と
/data/cash/mtb_constants.php
の532 行目の

define(‘MAIL_BACKEND’, “smtp”);

define(‘MAIL_BACKEND’, “mail”);

に変更すれば解決した。

tpl(ページ詳細等)からphpを呼び出す方法。

下記のコード追加でPHPをインクルード可能。

またはSmartyからPHPを実行することが出来ます。
パスは開いたときのURLからの相対パスorサーバーの絶対パス。

ファイルパスは下記で調べる。

コレで別のPHPアプリも起動可能。掲示板/Blogなど。

特定商取引法の文字数制限アップについて/data/mtb_constants_init.php

今日、特商法の部分を記入していたら文字数制限に到達w
なのでいじりましたw

/data/mtb_constants_init.php
/data/class/pages/admin/basis/LC_Page_Admin_Basis_Tradelaw.php
/data/Smarty/template/admin/basis/tradelaw.tpl
この3つを主にいじります。

手順は二段階。
1.もともとの入力制限数を解除
2.文字数チェック自体要らないので削除
3.入力時に文字をカウントしてるので解除

1./data/mtb_constants_init.phpの変更点

下記に変更。多分250行から260行付近です。

MTEXT_LEN が特商法の入力で一番文字数の必要なところ。
配送や返品に関してだと思います。
なのでありったけの文字数突っ込みましたw

2./data/class/pages/admin/basis/LC_Page_Admin_Basis_Tradelaw.php
入力して多かったらまた入力してくれ!みたいなことを行っている部分を削除します。
125から145行目あたりで解除したい項目の下記のコードを削除
「,」も削除してください。じゃないとエラーになるはず。

,”MAX_LENGTH_CHECK”

となりの「”EXIST_CHECK”」は未入力チェックっぽいのでいじらずw

3./data/Smarty/template/admin/basis/tradelaw.tpl
入力時のフォームで文字数をカウントしてるのでいっそのこと解除。
Smartyの都合か1.で変更してもなぜかすぐに反映されなくて、じれったかったので文字カウントごと消してやりました。

maxlength=”

この文が書いてあるような箇所で文字数増やしたいところを片っ端から削除。
これ消せばOKですが、あとはお好みで下記の文章も消しましょう。

(上限文字)

今日、もらった文章をそのままコピペで行こうかと思って突っ込んだら文字数制限で、ちょっとイラっとしながらも、どうせDBで制御してんだろ!とか思いながらDBのぞいてましたが見当たらず。
なので、ググりながらいじりながらようやく正解が出ましたよw

代引きとか配達方法の文言入れるの考えたらどうやったって200文字以上いくw
あとできれば古物商とか許可番号とかいろいろ増やせれば楽なのにねw

一応、特定商取引法の項目の追加も一度やっているのであとで書きます・・・・記憶のあるうちにw

ECCUBEのお問い合わせフォームの複製/別作成 増やし方

ECCUBEのお問い合わせフォームの増やし方eccube2.11版

3時間くらい悩んだ末に解決w
まず、contactを総べてコピペでcontact2に変更後、最後に苦戦したのが、pagelayoutのDBを追加すること。
これやんないと表示されませんでした。

●data/class/page/contact→contact2を作成。
ファイル中の2つのphpのなかでcontactもcontact2に変更。
LC_Page_Contact_Complete 44行目付近。多分これ。

LC_Page_Contact.php 44行目付近もかな??

●data/class_extends/page_extends/contact→同様にcontact2を作成。phpの作業は同上。

LC_Page_Contact_Complete 28行目付近。多分これ。

LC_Page_Contact.php 28行目付近もかな??

●data/Smarty/templates/default/contact→contact2を作成。
フォルダ中の3つのtplで指定されているcontactをcontact2に変更。
contactの文字が見当たらなかった気がするのでパスw

●html/contact→contact2を作成。フォルダ中の2つのファイルのcontactをcontact2に変更。
complete.php 26行目付近

index.php 25行目付近

tpl作成まではこれで完了。

とここまでなら簡単にできましたが。
dbの追加が問題w
どこなのかわからなくて苦労しましたがw

phpMyAdminでみると、dtb_pagelayoutで挿入しました。

device_type_id =10(PC用)
page_id =29(デフォルトで行くとこのページレイアウトナンバー)
url =contact2/index.php(コピペした場所)
filename =contact2/index(拡張子なし)
あとはそのままでOKで実行ボタン押しました。
これをcompleteページ分も追加で表示されるようになりました。

URLはhttp://ドメイン/contact2/index.php

DBいじるので自己責任で加工願います、とくにやる前はDBのバックアップを。
挿入するところ間違えて削除ボタン押してDB復旧させましたよ・・・・w

で、つぎは加工しないとただのコピーで終わってしまうので、それはまたあしたやろーっとw
(一応アンケートフォームにしようかと思ってますw)

出来れば添付ファイルもつけれるといいなぁw

商品詳細のメーカー名の表示方法

編集データ
date/Smatry/template/default/products/detail.tpl

下記記述を変更

155行目付近を下記に変更

ヤマト家財便の追加方法1(関東発送の場合)

ヤマト家財便の発送料金をコードに追加することで商品登録時に家財便専用の送料を追加できます。
というか家財便のモノしか送れなくなります。
※ちなみに下記の設定は関東地区からの発送の場合になります。

管理画面-システム設定-パラメタ設定を下記に変更
DELIV_ADDR_MAX ・・・0
OPTION_DELIV_FEE ・・・1
OPTION_PRODUCT_DELIV_FEE ・・・1

まずさきにヤマト家財便のお届け地方が50コード(北海道4分割)存在するので変更。

[ec-cube既存の都道府県コード]

MySQLのDBを下記に変更
今回はmtb_prefテーブルを削除後に再度DB(下記)をid:1から50として変更追加
※先に顧客登録があると都道府県がズレます。なので初期インストール時に実行する為のもの。
(アップデート仕様のものは制作中)

mtb_constantsテーブルのid=DELIVFEE_MAXのレコードを47 -> 50に変更

/data/mtb_constants_init.phpのDELIVFEE_MAXのレコードを47 -> 50に変更
/data/cache/mtb_constants.php を削除
/data/cache/mtb_pref.php を削除

上記を削除してから「お客様情報入力」ページを開くと反映されていますとりあえずは都道府県の再登録完了。
管理画面>基本情報設定>配送設定 の中で48以降の県が増えているので一応料金を設定。(ここで設定した料金は支払い情報には反映されませんが。)
※離島・海外等の処理はまた後日

——————-

管理画面-システム設定-パラメタ設定で別のお届け先最大登録数

DELIV_ADDR_MAX に0を設定する。

商品送料を商品重量に変更する
data/Smarty/templates/admin/products/confirm.tpl
132行目 商品送料→送料ランク
135行目 円→/3辺合計

data/class/pages/admin/products/LC_Page_Admin_Products_Product.php
320行目

data\Smarty\templates\admin\products\product.tpl
198行目付近

商品送料をランクに変更↓

送料ランク *213行目
円→/3辺合計

data/class/SC_CartSession.php

609行目付近 「配送業者の送料を加算」の次に「配送ランクを加算」を追加
ここではサイズをcmではなくmmで設定しています。

とりあえず都道府県のコード1まで記述。
残りのコードはこちらのリンクから”ヤマト家財便 発送料金
※関東地区からの発送の場合になります。

後は商品登録時に商品送料ランクの部分に三辺合計を指示するのみです。

「ヤマト家財便の発送料金をコードに追加することで商品登録時に家財便専用の送料を追加できます。」とか書いておきながら。
この設定では家財便のモノしか送れなくなります。なので別途で送料指定が可能なものを模索中・・・
商品種別を増やしてやればうまいこと行くかもしれないけれど・・・しかも家財便の場合代引きができないことも多いしな・・・
支払方法を増やすか支払方法でク分けるかor商品送料自体を2つにして2重チェック(?)したらいいんだろうか。

というか、書いてある「// 配送業者の送料を加算」コードの最終行(break;の次の行)に、下記追記で対応できますねw

このdefault:文は試していないのでうまくいくかどうかは検証してみます。。。