しつゆ WEBコンサル

プロフィール

HN:しつゆ
性別:男
誕生日:1980/06/11
好き:コーヒー,紅茶

アーカイブ

最近の投稿

最近のコメント

RSS 同時多発系WEBマーケッター@しつゆの忘備録

しつゆSNSログイン

▼メルアド▼

▼パス▼

・次回から自動的にログイン
←自動ログインチェック

ログインできない方はこちら


今が旬:無料セミナー動画

カテゴリ一覧

サイト内検索


EC-cube NEW商品だけ表示させるブロックの作り方

2012年06月25日

久しぶりの忘備録です~

EC-cubeカスタマイズ中が終わったので、
記録留め用

Ver.は 2.11.5

★商品登録画面の商品ステータスの「NEW」にチェックを入れた商品を、任意の件数だけPCに自動表示させるブロックの作り方

※ < と > は、便宜上「全角」で載せてあります。
使う際には「半角」に直すこと→置換すればよい。

・「html/frontparts/bloc/product_flag.php」を作成
~~~~~~~~~~~~~~~~~~~~~~~~~
<?php
// {{{ requires
require_once(CLASS_EX_REALDIR . “page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_ProductFlag_Ex.php”);
// }}}
// {{{ generate page
$objPage = new LC_Page_FrontParts_Bloc_ProductFlag_Ex();
register_shutdown_function(array($objPage, “destroy”));
$objPage->init();
$objPage->process();
?>
~~~~~~~~~~~~~~~~~~~~~~~~~

・「data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_ProductFlag_Ex.php」を作成
~~~~~~~~~~~~~~~~~~~~~~~~~
<?php
// {{{ requires
require_once(CLASS_REALDIR . “pages/frontparts/bloc/LC_Page_FrontParts_Bloc_ProductFlag.php”);
/**
* productStatus のページクラス(拡張).
* LC_Page_FrontParts_Bloc_ProductFlag をカスタマイズする場合はこのクラスを編集する.
*/
class LC_Page_FrontParts_Bloc_ProductFlag_Ex extends LC_Page_FrontParts_Bloc_ProductFlag {
// }}}
// {{{ functions
/**
* Page を初期化する.
* @return void
*/
function init() {
parent::init();
}
/**
* Page のプロセス.
* @return void
*/
function process() {
parent::process();
}
/**
* デストラクタ.
* @return void
*/
function destroy() {
parent::destroy();
}
}
?>
~~~~~~~~~~~~~~~~~~~~~~~~~

・「data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_ProductFlag.php」を作成
~~~~~~~~~~~~~~~~~~~~~~~~~

<?php
// {{{ requires
require_once CLASS_REALDIR . ‘pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php’;
/**
* productStatus のページクラス.
* @package Page
*/
class LC_Page_FrontParts_Bloc_ProductFlag extends LC_Page_FrontParts_Bloc {
// }}}
// {{{ functions
/**
* Page を初期化する.
* @return void
*/
function init() {
parent::init();
$bloc_file = ‘productFlag.tpl’;
$this->setTplMainpage($bloc_file);
}
/**
* Page のプロセス.
* @return void
*/
function process() {
if (defined(“MOBILE_SITE”) && MOBILE_SITE) {
$objView = new SC_MobileView();
} else {
$objView = new SC_SiteView();
}
$objSiteInfo = $objView->objSiteInfo;
// 基本情報を渡す
$objSiteInfo = SC_Helper_DB_Ex::sfGetBasisData();
$this->arrInfo = $objSiteInfo->data;
$objQuery = new SC_Query();
//検索したい商品のステータスを設定
//NEW→1, 残りわずか→2, ポイント2倍→3, オススメ→4, 限定品→5
$productFlag = 1;
//検索する商品のステータスをランダムに決定し、表示させたい場合は以下のコメントを外してください。
//$id_count = $objQuery->count(mtb_status);
//$productFlag = rand(1,$id_count);
$this->statusName = $objQuery->get(“name”, “mtb_status_image”, “id = ? “, array($productFlag));
//表示する商品の件数
$listCount = 4;
$col = “dtb_products.product_id, dtb_products.name, dtb_products.main_list_image, dtb_products.main_list_comment AS comment, MIN(dtb_products_class.price02) AS price02_min, MAX(dtb_products_class.price02) AS price02_max”;
$from = “dtb_products INNER JOIN dtb_products_class ON dtb_products.product_id = dtb_products_class.product_id INNER JOIN dtb_product_status ON dtb_products.product_id = dtb_product_status.product_id”;
$where = “dtb_products.del_flg = 0 AND dtb_products.status = 1 AND dtb_product_status.product_status_id = ?”;
$groupby = “dtb_products.product_id, dtb_products.name, dtb_products.main_list_image, dtb_products.main_list_comment, dtb_product_status.product_id, dtb_products.update_date”;
$this->groupby=$objQuery->setGroupBy($groupby);
//商品の表示はupdate_dateが新しい順
$order = “dtb_products.update_date DESC”;
$this->order=$objQuery->setOrder($order);
$arrFlagList = $objQuery->select($col, $from, $where, array($productFlag));
//商品の表示をランダムに抽出する場合は以下のコメントを外してください。
//srand((double)microtime()*1000000); //乱数生成器を初期化
//shuffle($arrFlagList);
$this->arrFlagProducts = array_slice($arrFlagList, 0, $listCount);

$objView->assignobj($this);
$objView->display($this->tpl_mainpage);
}
/**
* デストラクタ.
* @return void
*/
function destroy() {
parent::destroy();
}
}
?>
~~~~~~~~~~~~~~~~~~~~~~~~~

・「data/Smarty/templates/default/frontparts/bloc/productFlag.tpl」を作成
~~~~~~~~~~~~~~~~~~~~~~~~~

<!–{if count($arrFlagProducts) > 0}–>
<div class=”bloc_outer clearfix”>
<div id=”recomend_area”>
<h2>新着商品</h2>
<!–{section name=cnt loop=$arrFlagProducts step=2}–>
<div class=”bloc_body clearfix”>
<div class=”recomendleft clearfix”>
<div class=”productImage”>
<a href=”<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrFlagProducts[cnt].product_id|u}–>”>
<img src=”<!–{$smarty.const.ROOT_URLPATH}–>resize_image.php?image=<!–{$arrFlagProducts[cnt].main_list_image|sfNoImageMainList|h}–>&wi
dth=80&height=80″ alt=”<!–{$arrFlagProducts[cnt].name|h}–>” /></a>
</div>
<div class=”productContents”>
<h3>
<a href=”<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrFlagProducts[cnt].product_id|u}–>”><!–{$arrFlagProducts[cnt].name|h}–></a>
</h3>
<!–{assign var=price01 value=`$arrFlagProducts[cnt].price01_min`}–>
<!–{assign var=price02 value=`$arrFlagProducts[cnt].price02_min`}–>
<p class=”sale_price”><!–{$smarty.const.SALE_PRICE_TITLE}–>(税込):
<span class=”price”><!–{$price02|sfCalcIncTax:$arrInfo.tax:$arrInfo.tax_rule|number_format}–> 円</span>
</p>
<p class=”mini comment”><!–{$arrFlagProducts[cnt].comment|h|nl2br}–></p>
</div>
</div>
<div class=”recomendright clearfix”>
<div class=”productImage”>
<!–{assign var=cnt2 value=`$smarty.section.cnt.iteration*$smarty.section.cnt.step-1`}–>
<!–{if $arrFlagProducts[$cnt2]|count > 0}–>
<a href=”<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrFlagProducts[$cnt2].product_id|u}–>”>
<img src=”<!–{$smarty.const.ROOT_URLPATH}–>resize_image.php?image=<!–{$arrFlagProducts[$cnt2].main_list_image|sfNoImageMainList|h}–>&widt
h=80&height=80″ alt=”<!–{$arrFlagProducts[$cnt2].name|h}–>” /></a>
</div>
<div class=”productContents”>
<h3>
<a href=”<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrFlagProducts[$cnt2].product_id|u}–>”><!–{$arrFlagProducts[$cnt2].name|h}–></a>
</h3>
<!–{assign var=price01 value=`$arrFlagProducts[$cnt2].price01_min`}–>
<!–{assign var=price02 value=`$arrFlagProducts[$cnt2].price02_min`}–>
<p class=”sale_price”><!–{$smarty.const.SALE_PRICE_TITLE}–>(税込):
<span class=”price”><!–{$price02|sfCalcIncTax:$arrInfo.tax:$arrInfo.tax_rule|number_format}–> 円</span>
</p>
<p class=”mini comment”><!–{$arrFlagProducts[$cnt2].comment|h|nl2br}–></p>
<!–{/if}–>
</div>
</div>
</div>
<!–{/section}–>
</div>
</div>
<!–{/if}–>
~~~~~~~~~~~~~~~~~~~~~~~~~

・DBの「dtb_bloc」にパスを入れる。
パスは「frontparts/bloc/product_flag.php」

コメント

現在、この記事へのコメントは受け付けていません。

 
FXトレードネット評判