EC-CUBEで作成したショップのお問い合わせフォームから問い合わせがあると、お問い合わせ受付メールがユーザと管理者に配信されます(同じメール)。
そのメールのヘッダーとフッターは管理機能の基本情報管理→メール設定から修正できますが、動的データ挿入部分は修正することができません。
では、どこで修正するのかというと...。
動的データ挿入部分のテンプレートは/data/Smarty/templates/default/mail_templates/内にあります。
その中のcontact_mail.tplがお問い合わせ受付メールのテンプレートになります。
今回はユーザのメールアドレスをメールの本文に表示させたかったので、以下のような一文を追加しました。
■メールアドレス:
EC-CUBEのバージョンは2.11.3です。
EC-CUBEで運営しているショップにアフィリエイト◯(ヒント:アルファベット一文字)のコンバージョンタグを設置しました。
コンバージョンタグに必要なのはサイトユーザー識別IDに商品コードと販売個数と商品単価。
注文完了画面で最初からそのデータを持っていれば簡単だったのですが、残念ながら持っていないのでちょっとPHPを書き加える必要がありました。
まずは、/data/class/pages/shopping/LC_Page_Shopping_Complete.phpのaction関数を修正します。
function action() {
$this->arrInfo = SC_Helper_DB_Ex::sfGetBasisData();
$objPurchase = new SC_Helper_Purchase_Ex();
// サイトユーザー識別IDとして注文番号をセットする
$this->order_id = $_SESSION["order_id"];
// 受注詳細をセットする
$this->arrOrderDetail = $objPurchase->getOrderDetail($_SESSION["order_id"]);¥
unset($_SESSION["order_id"]);¥
}
続けて、/data/Smarty/templates/default/shopping/complete.tplにアフィリエイト◯のコンバージョンタグを設置します。
コンバージョンタグは以下のようになります。
<img src="https://track.affiliate-◯.com/commit/xxxxxs/<!--{$order_id}-->/<!--{section name=cnt loop=$arrOrderDetail}--><!--{$arrOrderDetail[cnt].product_code}-->.<!--{$arrOrderDetail[cnt].quantity}-->.<!--{$arrOrderDetail[cnt].price}-->:<!--{/section}-->" width="1" height="1" />
実は大苦戦していたのですがとても素晴らしいタイミングでこの記事がアップされて助かりました。
EC-CUBE2.11系でGoogle Analyticsのeコマーストラッキングを行う方法
ほんとにありがとうございました。
EC-CUBEのバージョンは2.11.3です。
いまさら感があるのですが、twitterに自動ツイートするbotをEasyBotterを使用して設置しました。
twitterのアカウントと設置するサーバ、そしてcronが使えれば誰でも簡単に自動ツイートするbotが作れてしまいます。
サイト名の「プログラミングができなくても作れるTwitter botの作り方」、ほんとその通りでした。
以下、設置から動作までの手順を簡単に書いておきます。
なお、EasyBotterの設定はサイトに詳細に書かれていました。
Movable Typeのログイン画面は通常http://sample.com/mt/mt.cgiとなります(mtディレクトリにインストールをした場合)。
いきなりですが、これってセキュリティ的にとっても怖くないですか?(大袈裟?)
Movable Typeをインストールするディレクトリの名前(mt)が各自自由だから大丈夫でしょ!なんて安心していませんか?
実はというか、mt.cgiのままだととっても簡単にログイン画面は発見されてしまいます。
もしもブログでトラックバックを受け付けている場合はそのURLを見てみてください。
http://sample.com/mt/mt-tb.cgi/1のようになっていませんか?
そう、Movable Typeをインストールしているディレクトリは丸見えなのです!
というわけで、ログイン画面を見られないようにmt.cgiのリネームをしましょう。
まずはmt.cgiを任意の好きなファイル名に変更します(例:loooogin.cgi)。
次にmt-config.cgiに以下の1行を書き加えます。
AdminScript loooogin.cgi
以上で、作業は完了。
これで無事ログイン画面を隠せ、セキュリティもちょっぴりアップしましたね。
ロリポップ!
のチカッパプランではSSHが利用出来るので、CakePHPのbakeを使うことが出来ます。
SSHクライアントソフト(Macではターミナル、WinではTeraTermなど)でログインし、カレントディレクトリをconsoleにして、
./cake bake
で実行。
Welcome to CakePHP v1.3.11 Console --------------------------------------------------------------- App : app Path: /********** --------------------------------------------------------------- Interactive Bake Shell --------------------------------------------------------------- [D]atabase Configuration [M]odel [V]iew [C]ontroller [P]roject [F]ixture [T]est case [Q]uit What would you like to Bake? (D/M/V/C/P/F/T/Q) >
チカッパプランは他のプランよりも費用は高いですが、容量は30GBあったり、データベースは複数設置が可能で、SSHが利用できるので便利ですね。
CakePHPで管理者用のページを作成するためにadmin ルーティングを有効にしました。
まずは、/cake/app/Config/core.phpの113行目のコメントを外します。
Configure::write('Routing.prefixes', array('admin'));
と、これでadimin ルーティングは有効になります。
あとは管理者用としても使いたいコントローラーのアクション名にadmin_をつけるだけ。
例えば、UsersControllerのaddアクションを管理者用にしたいのであれば、
public function admin_add() {
// 処理
}
とし、同じようにadmin_をつけたview用のファイル(admin_add.ctp)を用意します。
ちなみにこの場合はhttp://www.example.com/admin/users/addが管理者用のURLとなります。
ただ、認証をかけないと誰でもアクセス出来るので、このままでは管理者用のページとは言えませんね。
CakePHPのバージョンは2.0.5です。
便利な便利なCakePHPの組み込みバリデーションルール。
お世話になっています。
その中にalphaNumericというものがあります。
これは入力されたデータが半角のアルファベットか数字かをチェックするためのルールです。
ですが、な、なんと!全角文字を入力してもエラーとならず許可されてしまうではないですか!
なぜだ?悩み、調べました。
するとどうやら、/cake/lib/Cake/Utility/Validation.phpのalphaNumeric関数の正規表現部分に問題がある模様(詳しくは省略)。
return self::_check($check, '/^[¥p{Ll}¥p{Lm}¥p{Lo}¥p{Lt}¥p{Lu}¥p{Nd}]+$/mu');
と、いうことで半角のアルファベットか数字をチェックするためには独自のバリデーションルールを設置する必要があるようですね。
public $validate = array(
//半角英数字チェック
'code' => array(
'rule' => array('custom', '/^[a-zA-Z0-9]+$/'),
'message' => 'Code must only contain letters and numbers.',
),
);
参考サイト
CakePHPのバージョンは2.0.5です。

走っている最中はもう二度と走りたくはない!なんて思いながら毎回走るフルマラソン。
でも、無事にゴールするとなぜかそんな気持ちはどこかに飛んでいってしまい、もう次の大会のことを考えてしまう。
で、懲りずにまたエントリーしてしまった。
そのレースは大阪マラソン2012。








