「配送について」というページを追加し、運賃表などを表示させたいと思ってます。
ネット情報を参考にいろいろやっているうちに運賃表を表示させることができましたが、その方法がかなりローテクで・・・スマートにする方法がわかりません。
そもそも、運賃表は表示されたものの偶然なのでは?という不安もあります。
アドバイスをいただける方よろしくお願いいたします。
※素人や玄人っぽい方法がいくつかあると思うので、いろいろな方法を教えていただけると嬉しいです。(玄人向けのアドバイスが理解できない可能性があるので・・・)
※バージョン2.13.3
下記ファイルを作成し、データベース「dtb_pagelayout」に情報を追加しました。
html/guidance/delivery.php
data/class/pages/guidance/LC_Page_Guidance_Delivery.php
data/class_extends/pages_extends/guidance/LC_Page_Guidance_Delivery_Ex.php
data/smarty/templates/custom/guidance/delivery.php
※配送方法は2つ設定しておりますが、表示させるのは1つのみです。
【html/guidance/delivery.php】
require_once '../require.php';
require_once CLASS_EX_REALDIR . 'page_extends/guidance/LC_Page_Guidance_Delivery_Ex.php';
$objPage = new LC_Page_Guidance_Delivery_Ex();
$objPage->init();
$objPage->process();
【data/class/pages/guidance/LC_Page_Guidance_Delivery.php】
require_once CLASS_EX_REALDIR . 'page_extends/LC_Page_Ex.php';
/**
* 配送・送料についてのページクラス.
*
*/
class LC_Page_Guidance_Delivery extends LC_Page_Ex
{
/**
* Page を初期化する.
*
* @return void
*/
public function init()
{
parent::init();
$this->tpl_page_category = 'guidance';
$this->tpl_title = '配送・送料について';
$masterData = new SC_DB_MasterData_Ex();
$this->arrPref = $masterData->getMasterData('mtb_pref');
}
/**
* Page のプロセス.
*
* @return void
*/
public function process()
{
parent::process();
$this->action();
$this->sendResponse();
}
/**
* Page のアクション.
*
* @return void
*/
public function action()
{
}
}
【data/class_extends/pages_extends/guidance/LC_Page_Guidance_Delivery_Ex.php】
require_once CLASS_REALDIR . 'pages/guidance/LC_Page_Guidance_Delivery.php';
/**
* 配送・送料についてのページクラス(拡張).
*
* LC_Page_Guidance_Delivery をカスタマイズする場合はこのクラスを編集する.
*
*/
class LC_Page_Guidance_Delivery_Ex extends LC_Page_Guidance_Delivery
{
/**
* Page を初期化する.
*
* @return void
*/
function init()
{
parent::init();
}
/**
* Page のプロセス.
*
* @return void
*/
function process()
{
parent::process();
}
/**
* Page のアクション.
*
* @return void
*/
function action()
{
$objQuery = SC_Query_Ex::getSingletonInstance();
$this->arrPref = array();
//県名を取得
$arrPref = $objQuery->select('*','mtb_pref');
//データベースからデータ取得できたか?
if(isset($arrPref)){
$this->arrPref=$arrPref;
}
//運賃を取得
$arrDelivfee = $objQuery->select('*','dtb_delivfee','deliv_id=1');
//データベースからデータ取得できたか?
if(isset($arrDelivfee)){
$this->arrDelivfee=$arrDelivfee;
}
}
}
【data/smarty/templates/custom/guidance/delivery.php】
<div id="undercolumn">
<div id="undercolumn_deliveryguide">
<table>
<tr>
<td><!--{$arrPref[0].name|h}--></td>
<td><!--{$arrDelivfee[0].fee|h}--></td>
</tr>
<tr>
<td><!--{$arrPref[1].name|h}-->,<!--{$arrPref[2].name|h}-->,<!--{$arrPref[4].name|h}--></td>
<td><!--{$arrDelivfee[2].fee|h}--></td>
</tr>
<tr>
<td><!--{$arrPref[3].name|h}-->,<!--{$arrPref[5].name|h}-->,<!--{$arrPref[6].name|h}--></td>
<td><!--{$arrDelivfee[3].fee|h}--></td>
</tr>
<tr>
<td><!--{$arrPref[7].name|h}-->,<!--{$arrPref[8].name|h}-->,<!--{$arrPref[9].name|h}-->,<!--{$arrPref[10].name|h}-->,<!--{$arrPref[11].name|h}-->,<!--{$arrPref[12].name|h}-->,<!--{$arrPref[13].name|h}--></td>
<td><!--{$arrDelivfee[7].fee|h}--></td>
</tr>
</table>
</div>
</div>