
久々にECCUBEをいじったのですけど
結構忘れちゃってます。
今回お問い合わせページを追加したので
忘れないように覚書を残しておきます。
1.既存のお問い合わせファイルをコピーしてファイルを作成
※今回は見積もりページを作ります。(名前はmitsumoriとしてます。名前は別の名前でも構いません)
見積もり問い合わせ入力ページ用
・html/contact/index.php をコピーして、html/contact/mitsumori.php を作成
・data/class_extends/page_extends/contact/LC_Page_Contact_Ex.php をコピーして、
data/class_extends/page_extends/contact/LC_Page_Contact_Mitsumori_Ex.php を作成
・data/class/pages/contact/LC_Page_Contact.php をコピーして、
data/class/pages/contact/LC_Page_Contact_Mitsumori.php を作成
・data/Smarty/templates/default/contact/index.tpl をコピーして、data/Smarty/templates/default/contact/mitsumori.tpl を作成
・data/Smarty/templates/default/contact/comfilm.tpl をコピーして、data/Smarty/templates/default/contact/mitsumori_comfilm.tpl を作成
見積もり問い合わせ完了ページ用
・html/contact/complete.php をコピーして、html/contact/mitsumori_complete.php を作成
・data/class_extends/page_extends/contact/LC_Page_Contact_Complete_Ex.php をコピーして、
data/class_extends/page_extends/contact/LC_Page_Contact_Mitsumori_Complete_Ex.php を作成
・data/class/pages/contact/LC_Page_Contact_Complete.php をコピーして、
data/class/pages/contact/LC_Page_Contact_Mitsumori_Complete.php を作成
・data/Smarty/templates/default/contact/complete.tpl をコピーして、data/Smarty/templates/default/contact/mitsumori_complete.tpl を作成
2.html/contact/にあるファイルを修正
見積もり問い合わせ入力ページ用
html/contact/mitsumori.php
// {{{ requires
require_once '../require.php';
require_once CLASS_EX_REALDIR . 'page_extends/contact/LC_Page_Contact_Mitsumori_Ex.php';
// }}}
// {{{ generate page
$objPage = new LC_Page_Contact_Mitsumori_Ex();
register_shutdown_function(array($objPage, "destroy"));
$objPage->init();
$objPage->process();
見積もり問い合わせ完了ページ用
html/contact/mitsumori_complete.php
// {{{ requires
require_once '../require.php';
require_once CLASS_EX_REALDIR . 'page_extends/contact/LC_Page_Contact_Mitsumori_Complete_Ex.php';
// }}}
// {{{ generate page
$objPage = new LC_Page_Contact_Mitsumori_Complete_Ex();
register_shutdown_function(array($objPage, "destroy"));
$objPage->init();
$objPage->process();
3.data/class_extends/page_extends/contactにあるファイルを修正
見積もり問い合わせ入力ページ用
data/class_extends/page_extends/contact/LC_Page_Contact_Mitsumori_Ex.php
// {{{ requires
require_once CLASS_REALDIR . 'pages/contact/LC_Page_Contact_Mitsumori.php';
/**
* お問い合わせ のページクラス(拡張).
*
* LC_Page_Contact をカスタマイズする場合はこのクラスを編集する.
*
* @package Page
* @author LOCKON CO.,LTD.
* @version $Id: LC_Page_Contact_Ex.php 20764 2011-03-22 06:26:40Z nanasess $
*/
class LC_Page_Contact_Mitsumori_Ex extends LC_Page_Contact_Mitsumori {
見積もり問い合わせ完了ページ用
data/class_extends/page_extends/contact/LC_Page_Contact_Mitsumori_Ex.php
// {{{ requires
require_once CLASS_REALDIR . 'pages/contact/LC_Page_Contact_Mitsumoi_Complete.php';
/**
* お問い合わせ(完了ページ) のページクラス(拡張).
*
* LC_Page_Contact_Complete をカスタマイズする場合はこのクラスを編集する.
*
* @package Page
* @author LOCKON CO.,LTD.
* @version $Id: LC_Page_Contact_Complete_Ex.php 20764 2011-03-22 06:26:40Z nanasess $
*/
class LC_Page_Contact_Mitsumoi_Complete_Ex extends LC_Page_Contact_Mitsumoi_Complete {
4.data/class/pages/contact/にあるファイルを修正
見積もり問い合わせ入力ページ用
data/class/pages/contact/LC_Page_Contact_Mitsumori.php
class LC_Page_Contact_Mitsumori extends LC_Page_Ex {
次にテンプレートファイルと完了ページを指定します。
function action() {
$objDb = new SC_Helper_DB_Ex();
$objFormParam = new SC_FormParam_Ex();
$this->arrData = isset($_SESSION['customer']) ? $_SESSION['customer'] : "";
switch ($this->getMode()) {
case 'confirm':
// エラーチェック
$this->lfInitParam($objFormParam);
$objFormParam->setParam($_POST);
$objFormParam->convParam();
$objFormParam->toLower('email');
$objFormParam->toLower('email02');
$this->arrErr = $this->lfCheckError($objFormParam);
// 入力値の取得
$this->arrForm = $objFormParam->getFormParamList();
if (SC_Utils_Ex::isBlank($this->arrErr)) {
// エラー無しで完了画面
$this->tpl_mainpage = 'contact/mitumori_confirm.tpl';
$this->tpl_title = 'お見積り(確認ページ)';
}
break;
case 'return':
$this->lfInitParam($objFormParam);
$objFormParam->setParam($_POST);
$this->arrForm = $objFormParam->getFormParamList();
break;
case 'complete':
$this->lfInitParam($objFormParam);
$objFormParam->setParam($_POST);
$this->arrErr = $objFormParam->checkError();
$this->arrForm = $objFormParam->getFormParamList();
if (SC_Utils_Ex::isBlank($this->arrErr)) {
$this->lfSendMail($this);
// 完了ページへ移動する
SC_Response_Ex::sendRedirect('mitsumori_complete.php');
exit;
} else {
SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
exit;
}
break;
default:
break;
}
}
見積もり問い合わせ完了ページ用
data/class/pages/contact/LC_Page_Contact_Mitsumori_Complete.php
class LC_Page_Contact_Mitsumori_Complete extends LC_Page_Ex {
5.dtb_pagelayoutに作成ページを登録
見積もり問い合わせ入力ページ用
Column | Value
----------------+-----------------------------
device_type_id | 10
page_id | 36
page_name | お見積り
url | contact/mitsumori.php
filename | contact/mitsumori
header_chk | 1
footer_chk | 1
edit_flg | 2
author |
description |
keyword |
update_url |
create_date | NOW()
update_date | NOW()
見積もり問い合わせ完了ページ用
Column | Value
----------------+-----------------------------
device_type_id | 10
page_id | 37
page_name | お見積り完了
url | contact/mitsumori_complete.php
filename | contact/mitsumori_complete
header_chk | 1
footer_chk | 1
edit_flg | 2
author |
description |
keyword |
update_url |
create_date | NOW()
update_date | NOW()
device_type_id は端末種類を示します。
10はPC、1はMobile、2はスマホなので、今回はPCようなので10
page_id はdevice_type_idごとの重複のない番号を使用します。
page_name はファイル名です。
url は、フロント側のURLを htmlディレクトリを除いた形で入れる。
filename は、urlに入力した値の拡張子を省いたものを入れる。
edit_flgは2に設定しておくと、
管理画面から削除することができなくなります。
これで、ページを作成できました。
あとはULにアクセスしてページが表示されるかを確認します。
メールフォームはデフォルトのままなので
メールフォームの変更については後日記載します。
