おひさしぶりです。
fshです。
今回はEC-CUBEの商品詳細ページにある “この商品について問い合わせる” をクリックしたときの
問い合わせフォームをデフォルトと違うフォームを作成したい場合の自分なりの方法です。
まずは下記フォルダをコピーして、適当なフォルダ名に修正する。
/data/class/pages/contact /data/class_extends/page_extends/contact /data/Smarty/templates/default/contact /html/contact
問い合わせフォームのメールテンプレートを作成して
下記フォルダに保存する
/data/Smarty/templates/default/mail_templates
修正箇所は、
①テンプレートフォルダのリンク先の修正をする。
②プログラムの修正
/data/class/pages/contact/LC_Page_Contact.php
function init() {
parent::init();
$this->tpl_mainpage = 'contact2/index.tpl'; ← ここを修正(フォルダ名)
$this->tpl_title = 'お問い合わせ(入力ページ)';
$this->tpl_page_category = 'contact2'; ← ここを修正(フォルダ名)
$masterData = new SC_DB_MasterData_Ex();
$this->arrPref = $masterData->getMasterData("mtb_pref", array("pref_id", "pref_name", "rank"));
}
if ( ! $this->arrErr ){
// エラー無しで完了画面
$this->tpl_mainpage = 'contact2/confirm.tpl'; ← ここを修正(フォルダ名)
$this->tpl_title = 'お問い合わせ(確認ページ)';
} else {
foreach ($arrConvertColumn as $key) {
$this->$key['column'] = $this->arrForm[$key['column']];
}
}
$toCustomerMail = $objMailText->fetch("mail_templates/contact_mail2.tpl"); ← ここを修正(メールテンプレート名)
/data/class/pages/contact/LC_Page_Contact_Complete.php
function init() {
parent::init();
$this->tpl_mainpage = 'contact2/complete.tpl'; ← ここを修正(フォルダ名)
$this->tpl_title = 'お問い合わせ(完了ページ)';
$this->tpl_mainno = 'contact2'; ← ここを修正(フォルダ名)
}
/html/contact/index.php
require_once(CLASS_EX_PATH . "page_extends/contact2/LC_Page_Contact_Ex.php"); ← ここを修正(フォルダ名)
/html/contact/index.php
require_once(CLASS_EX_PATH . "page_extends/contact2/LC_Page_Contact_Complete_Ex.php");← ここを修正(フォルダ名)
あとは、入力ページ→確認ページ→入力ページ のページ間でのフォームデータの引継ぎがうまくいかず
やり方がわからず
/data/Smarty/templates/default/contact/index.tpl
{if $smarty.get.ID名}
{else}
{/if}
/data/Smarty/templates/default/contact/confirm.tpl
を追加して対応することに・・・・・
まだまだ勉強しないといけないと痛感しました。
なお、テンプレートに関しては、<!—->というコメントアウトは省略してあります。
自分はEC-CUBEのソースをコピーするときこれでよくはまります。


