スポンサードリンク

EC CUBE
EC CUBE

久々に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にアクセスしてページが表示されるかを確認します。

メールフォームはデフォルトのままなので

メールフォームの変更については後日記載します。

スポンサードリンク