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」あたりからの設定は触らないで大丈夫だった。

CentOS6でvsftpd.conf内にforce_dot_filesが見つからない件

No Comment サイト製作

さくらvpsのSSD1Gを借りてCentOS6のサーバーを立ててみた。
で、FTPクライアントで.htaccessを表示させるためにforce_dot_filesを設定しようと思ったんだけど、色んなマニュアルにあるように

vi /etc/vsftpd/vsftpd.conf
--------------------------------------
#force_dot_files=NO
force_dot_files=YES
--------------------------------------
/etc/init.d/vsftpd restart

#force_dot_files=NOをYESに書き換えろとあるけれど、CentOS6のvsftpd.confには元の#force_dot_files=NOが見つからなかった。
が、普通にvsftpd.confの最後尾に追加したらいけた。

備忘録。

wp_mailでBccが届かなくて焦った件(Gmail)

No Comment wordpress,サイト製作,,

wp_mail()を使って簡単にメールフォームを作ろうと思ったら、ヘッダの引数にBccを指定した途端に届かない!Ccには届く!という摩訶不思議な現象に困った。

wp_mail()の基本設定(公式リファレンス)

$to = 'mail@mail.com';
$subject = 'タイトル';
$headers[] = 'From: 送信元名前 <sousinmoto@mail.com>';
$headers[] = 'Cc: Cc宛先<ccatesaki@gmail.com>';
$headers[] = 'Bcc: Bcc宛先<bccatesaki@gmail.com>';
$message = '本文'

wp_mail($to,$subject,$message,$headers);

と書けば送信先、Cc、Bccを含んだメール送信が可能なわけだ。簡単。
Ccとかいらね!って場合は第4引数(アタッチメント、この場合はヘッダ)を除いたらいい。

単に送信先を複数にしたければ、

$to = array('mail@mail.com','second-mail@mail.com');

と配列にすればOK。

とにかくシンプルに!って時はソースに

wp_mail('mail@mail.com','タイトル','本文');

これ書くで届く。素晴らしい。
で、何故か自分の環境ではBccだけが届かない。

おかしいな?と調べたところ、Gmailでは送信先とBccを同じGmail受信ボックスで受信した場合、重複を防ぐためかBccをPopしないようだ。

つまり僕は、同じGmailアカウントで2つのメール、「mail@mail.com」「bccatesaki@gmail.com」を受信していたので、mail@mail.comだけが受信された形になっていた。

なので、試しにBccのみGmailアカウントで受信してみたら、「非公開の受信者宛」という宛先でこのメールが届いた。(Googleに詳細)

送信テストする時は注意しないとね。