------------------------------------------------------------------------------------------
[EC-CUBE] 2.13.0
[レンタルサーバ] さくらレンタルサーバ
[OS] FreeBSD 9.1-RELEASE
[PHP] PHP 5.4.45
[データベース] MySQL 5.5.38
[WEBサーバ] apache2.2.31
[ブラウザ] Google Chrome 51.0
[導入プラグインの有無] 無
[カスタマイズの有無] 無
------------------------------------------------------------------------------------------
商品ページに「この商品について問い合わせをする」ボタンを設置したいと思い、
http://sachips.byeto.jp/eccube/inquire-product.htmlのサイトを参考に、コードを追加したのですが、
問い合わせ画面に商品情報が表示されず、困っております。
方法をご教授頂けると助かります。
何卒よろしくお願いいたします。
data/Smarty/templates/default/products/detail.tpl
の232行目に
▼この商品へお問い合わせ▼
<div id="contact_product">
<a href="<!--{$smarty.const.ROOT_URLPATH}-->contact/index.php?contact_product=<!--{$arrProduct.product_id|h}-->"><button type="button" class="btn btn-yellowgreen">この商品へのお問い合わせ</button></a>
</div>
を追加し、
data/class/pages/contact/LC_Page_Contact.php
の127行目に
// この商品へのお問い合わせ
$objQuery = SC_Query_Ex::getSingletonInstance();
$this->arrRet = array();
// パラメータ
$contact_product = $_GET['contact_product'];
// 商品情報を取得
if (isset($contact_product)) {
$arrRet = $objQuery->select("*", "dtb_products", "product_id = $contact_product");
}
// データベースからデータの取得ができたか
if (isset($arrRet)) {
$this->arrRet = $arrRet[0];
}
を、
public function action()
{
$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/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('complete.php');
SC_Response_Ex::actionExit();
} else {
SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
SC_Response_Ex::actionExit();
}
break;
// この商品へのお問い合わせ
$objQuery = SC_Query_Ex::getSingletonInstance();
$this->arrRet = array();
// パラメータ
$contact_product = $_GET['contact_product'];
// 商品情報を取得
if (isset($contact_product)) {
$arrRet = $objQuery->select("*", "dtb_products", "product_id = $contact_product");
}
// データベースからデータの取得ができたか
if (isset($arrRet)) {
$this->arrRet = $arrRet[0];
}
default:
break;
}
}
のように追加し、
data/Smarty/templates/default/contact/index.tpl
<!--{if $arrRet}-->
<div class="contact_product clearfix">
<img src="<!--{$smarty.const.IMAGE_SAVE_URLPATH|sfTrimURL}-->/<!--{$arrRet.main_list_image|sfNoImageMainList|h}-->" alt="<!--{$arrRet.name|h}-->">
<h3>「<!--{$arrRet.name|h}-->」へのお問い合わせ</h3>
</div>
<!--{/if}-->
と
<textarea name="contents" class="box380" cols="60" rows="20" style="<!--{$arrErr.contents.value|h|sfGetErrorColor}-->; ime-mode: active;"><!--{if $arrRet}-->「商品名:<!--{$arrRet.name|h}-->」について<!--{/if}-->
<!--{"\n"}--><!--{$arrForm.contents.value|h}-->
</textarea>
を、
<div id="undercolumn">
<h2 class="title"><!--{$tpl_title|h}--></h2>
<!--{if $arrRet}-->
<div class="contact_product clearfix">
<img src="<!--{$smarty.const.IMAGE_SAVE_URLPATH|sfTrimURL}-->/<!--{$arrRet.main_list_image|sfNoImageMainList|h}-->" alt="<!--{$arrRet.name|h}-->">
<h3>「<!--{$arrRet.name|h}-->」へのお問い合わせ</h3>
</div>
<!--{/if}-->
<div id="undercolumn_contact">
<form name="form1" method="post" action="?">
<input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
<input type="hidden" name="mode" value="confirm" />
<table summary="お問い合わせ">
<tr>
<th>お名前<span class="attention">※</span></th>
<td>
<span class="attention"><!--{$arrErr.name01}--><!--{$arrErr.name02}--></span>
姓 <input type="text" class="box120" name="name01" value="<!--{$arrForm.name01.value|default:$arrData.name01|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{$arrErr.name01|sfGetErrorColor}-->; ime-mode: active;" />
名 <input type="text" class="box120" name="name02" value="<!--{$arrForm.name02.value|default:$arrData.name02|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{$arrErr.name02|sfGetErrorColor}-->; ime-mode: active;" />
</td>
</tr>
<tr>
<th>お名前(フリガナ)<span class="attention">※</span></th>
<td>
<span class="attention"><!--{$arrErr.kana01}--><!--{$arrErr.kana02}--></span>
セイ <input type="text" class="box120" name="kana01" value="<!--{$arrForm.kana01.value|default:$arrData.kana01|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{$arrErr.kana01|sfGetErrorColor}-->; ime-mode: active;" />
メイ <input type="text" class="box120" name="kana02" value="<!--{$arrForm.kana02.value|default:$arrData.kana02|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{$arrErr.kana02|sfGetErrorColor}-->; ime-mode: active;" />
</td>
</tr>
<tr>
<th>郵便番号</th>
<td>
<span class="attention"><!--{$arrErr.zip01}--><!--{$arrErr.zip02}--></span>
<p class="top">
〒
<input type="text" name="zip01" class="box60" value="<!--{$arrForm.zip01.value|default:$arrData.zip01|h}-->" maxlength="<!--{$smarty.const.ZIP01_LEN}-->" style="<!--{$arrErr.zip01|sfGetErrorColor}-->; ime-mode: disabled;" /> -
<input type="text" name="zip02" class="box60" value="<!--{$arrForm.zip02.value|default:$arrData.zip02|h}-->" maxlength="<!--{$smarty.const.ZIP02_LEN}-->" style="<!--{$arrErr.zip02|sfGetErrorColor}-->; ime-mode: disabled;" />
<a href="http://search.post.japanpost.jp/zipcode/" target="_blank"><span class="mini">郵便番号検索</span></a>
</p>
<p class="zipimg">
<a href="java script:fnCallAddress('<!--{$smarty.const.INPUT_ZIP_URLPATH}-->', 'zip01', 'zip02', 'pref', 'addr01');">
<img src="<!--{$TPL_URLPATH}-->img/button/btn_address_input.gif" alt="住所自動入力" /></a>
<span class="mini"> 郵便番号を入力後、クリックしてください。</span>
</p>
</td>
</tr>
<tr>
<th>住所</th>
<td>
<span class="attention"><!--{$arrErr.pref}--><!--{$arrErr.addr01}--><!--{$arrErr.addr02}--></span>
<select name="pref" style="<!--{$arrErr.pref|sfGetErrorColor}-->">
<option value="">都道府県を選択</option><!--{html_options options=$arrPref selected=$arrForm.pref.value|default:$arrData.pref|h}--></select>
<p>
<input type="text" class="box380" name="addr01" value="<!--{$arrForm.addr01.value|default:$arrData.addr01|h}-->" style="<!--{$arrErr.addr01|sfGetErrorColor}-->; ime-mode: active;" /><br />
<!--{$smarty.const.SAMPLE_ADDRESS1}-->
</p>
<p>
<input type="text" class="box380" name="addr02" value="<!--{$arrForm.addr02.value|default:$arrData.addr02|h}-->" style="<!--{$arrErr.addr02|sfGetErrorColor}-->; ime-mode: active;" /><br />
<!--{$smarty.const.SAMPLE_ADDRESS2}-->
</p>
<p class="mini"><span class="attention">住所は2つに分けてご記入ください。マンション名は必ず記入してください。</span></p>
</td>
</tr>
<tr>
<th>電話番号</th>
<td>
<span class="attention"><!--{$arrErr.tel01}--><!--{$arrErr.tel02}--><!--{$arrErr.tel03}--></span>
<input type="text" class="box60" name="tel01" value="<!--{$arrForm.tel01.value|default:$arrData.tel01|h}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" style="<!--{$arrErr.tel01|sfGetErrorColor}-->; ime-mode: disabled;" /> -
<input type="text" class="box60" name="tel02" value="<!--{$arrForm.tel02.value|default:$arrData.tel02|h}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" style="<!--{$arrErr.tel02|sfGetErrorColor}-->; ime-mode: disabled;" /> -
<input type="text" class="box60" name="tel03" value="<!--{$arrForm.tel03.value|default:$arrData.tel03|h}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" style="<!--{$arrErr.tel03|sfGetErrorColor}-->; ime-mode: disabled;" />
</td>
</tr>
<tr>
<th>メールアドレス<span class="attention">※</span></th>
<td>
<span class="attention"><!--{$arrErr.email}--><!--{$arrErr.email02}--></span>
<input type="text" class="box380 top" name="email" value="<!--{$arrForm.email.value|default:$arrData.email|h}-->" style="<!--{$arrErr.email|sfGetErrorColor}-->; ime-mode: disabled;" /><br />
<!--{* ログインしていれば入力済みにする *}-->
<!--{if $smarty.server.REQUEST_METHOD != 'POST' && $smarty.session.customer}-->
<!--{assign var=email02 value=$arrData.email}-->
<!--{/if}-->
<input type="text" class="box380" name="email02" value="<!--{$arrForm.email02.value|default:$email02|h}-->" style="<!--{$arrErr.email02|sfGetErrorColor}-->; ime-mode: disabled;" /><br />
<p class="mini"><span class="attention">確認のため2度入力してください。</span></p>
</td>
</tr>
<tr>
<th>お問い合わせ内容<span class="attention">※</span><br />
<span class="mini">(全角<!--{$smarty.const.MLTEXT_LEN}-->字以下)</span></th>
<td>
<span class="attention"><!--{$arrErr.contents}--></span>
<textarea name="contents" class="box380" cols="60" rows="20" style="<!--{$arrErr.contents.value|h|sfGetErrorColor}-->; ime-mode: active;"><!--{if $arrRet}-->「商品名:<!--{$arrRet.name|h}-->」について<!--{/if}-->
<!--{"\n"}--><!--{$arrForm.contents.value|h}-->
</textarea>
</td>
</tr>
</table>
<div class="btn_area">
<ul>
<li>
<input type="image" src="<!--{$TPL_URLPATH}-->img/button/btn_confirm.gif" alt="確認ページへ" name="confirm" />
</li>
</ul>
</div>
</form>
</div>
</div>
と記載しております。
何卒よろしくお願いいたします。