Moral Hazard!!

ドラマーが音楽やホームページやガラクタを作るよ。

EC-CUBEの帳票をカスタマイズ(2.13.3)

No Comment サイト製作

依頼「EC-CUBEデフォルトでは帳票の会社名に管理画面の【ショップマスター→店名】がそのまま入ってしまう。SEO対策を施しているタイトルをそのまま掲載すると帳票からはみ出るので、変更したい」

帳票をpdfに出力するファイルは以下。

/data/class/SC_Fpdf.php

だが、EC-CUBEでの修正的な基本はこのファイルではなく、ここのカスタム用ファイル

/data/class_extends/SC_Fpdf_Ex.php

で調整する。

class SC_Fpdf_Ex extends SC_Fpdf
{
}

の中に、SC_Fpdf.phpの「class SC_Fpdf extends SC_Helper_FPDI」の中身、つまり34-333行目をまるごとコピペ。
その上で、例えばタイトルを変更したければ、101行目のショップ名の第三引数を

        // ショップ名
        //$this->lfText(125, 60, $arrInfo['shop_name'], 8, 'B');
	$this->lfText(125, 60, "変更後の店名", 8, 'B');

と変更してしまえばいい。

ちなみにpdfに挿入されるロゴ画像は、

/data/Smarty/templates/admin/pdf/logo.png

を変更。

商品名が注文メールで文字化けした件(EC-CUBE)

No Comment html,css,php,サイト製作

ある受注自動返信メールをWEBメーラで見ていたら、メール文章の途中から全部斜線が入っていた。

ソースを見ると、途中から打消しタグ<s>が入ってる・・・。

で、商品名を見たら

「お買い得!協力洗剤<S><L>」

…これか。
クライアントさまは商品名にサイズを入れたくてこういう表記をしたようだ。
これがメールクライアントに間違って<s>タグとして認識されてしまっていたと。

タグ自体を除去するなら、メールこちらのように修正すればいいのだが、今回は商品名がそのままタグということで使えない。

タグと誤解されるような商品名にしない方が良いとお願いしておいた。

外部メールサーバを利用して自動送信メールを送る(EC-CUBE 2.13.3)

No Comment html,css,php,サイト製作,

EC-CUBEをインストールしたサーバとは別サーバのメールアドレスを利用して自動送信メールを送る際につまづいたのでメモ。

Gmailや外部メールサーバを利用する際にはSMTP_PORTなどを指定してやる必要があるが、2.13あたりからこれがパラメータ設定に表示されなくなり、config.php、smtp.phpに直接書き込む必要があるらしい。

こちらを参考に、今回メールサーバとして借りたGMO共有サーバSDに設定を置き換えた。

/data/config/config.phpに

define('MAIL_BACKEND', 'smtp');
define('SMTP_HOST', 'smtp**.gmoserver.jp');
define('SMTP_PORT', '465');
define('SMTP_USER', 'ユーザー名');
define('SMTP_PASSWORD', 'パスワード');

と、共用サーバSDのサーバ情報を入力。
(*は数字)

※ユーザー名はメールアカウントの「アカウント」、パスワードはパスワードを入力。

次にモジュールの

/data/module/Mail/smtp.phpも96行目あたりの

var $host = 'smtp**.gmoserver.jp';
var $port = 465;
var $auth = true;
var $username = 'ユーザー名';
var $password = 'パスワード';

各項目を修正。
パスワード下の「HELO / EHLO」あたりからの設定は触らないで大丈夫だった。

EC-CUBE2.13でInternal Server Error 500が出る問題

No Comment パソコン備忘録

他社制作のEC-CUBEの保守を請け負っている案件があるのだが、サイトは表示されるけど500errorが出る、Google様から警告が来るという不具合が出ていたので調べた。

多分プラグインだろうな…と確認してみると、そもそも2.13のEC-CUBEに2.12までしか対応していないプラグインがわんさか入ってる。
アップデートボタンを押してもエラー。それはもう色んな種類のエラーが出る。

にっちもさっちもいかないので、まず使ってないプラグインを削除。
サイトのキャッシュを全削除。
data/cache以下削除、mtb_constants.phpは無かったら自動で再作成される。
data/Smarty/templates_c/各テンプレートフォルダ内を削除。
直接DBのdtb_pluginからプラグインのテーブルを削除し、FTPでdata/downloads/pluginにあるプラグインを削除。

使っているプラグインで対応していない、さらに削除出来ない!というものは、復元できるように設定をメモしてから、削除のち2.13に対応した最新版を再インストール。

最後に2.13に対応していないプラグインは、プラグイン自体を修正する。

2.12→2.13になった時に「function destroy()」が無くなったらしい。
これがプラグイン内に残っているので、コメントアウト。

するときちんと200 OKステータスが帰ってくる。うれしいね。

参考 (敬称略)

BRAIN NET ブレインネット
オムニオラボ