お世話になります
こちらのソースにて、全商品のメーカーを表示させることが
できました!
ありがとう御座います。
これをカテゴリー別に表示させるようにしたいのですが
カテゴリーの判別をしている商品一覧のカテゴリブロックの
ようなソースは書いてあるのですが
tpl側で表示させるソースが分かりませんでした;;
素人が弄ってますので全然間違っているとは思いますが
ここが間違ってるなどアドバイス頂けたら幸いです
<?php
require_once(CLASS_PATH . "pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php");
/**
* メーカー のページクラス.
*
* @package Page
* @author LOCKON CO.,LTD.
* @version $Id:LC_Page_FrontParts_Bloc_Maker.php 15532 2007-08-31 14:39:46Z nanasess $
*/
class LC_Page_FrontParts_Bloc_Maker extends LC_Page_FrontParts_Bloc {
// }}}
// {{{ functions
/**
* Page を初期化する.
*
* @return void
*/
function init() {
parent::init();
$bloc_file = 'maker.tpl';
$this->setTplMainpage($bloc_file);
}
/**
* Page のプロセス.
*
* @return void
*/
function process() {
$objView = new SC_SiteView();
$objCustomer = new SC_Customer();
$objQuery = new SC_Query();
$objDb = new SC_Helper_DB_Ex();
// メーカーの読込
$where = "del_flg <> 1";
$objQuery->setorder("rank DESC");
$this->arrMaker = $objQuery->select("maker_id, name", "dtb_maker", $where);
$objView->assignobj($this);
$objSubView = new SC_SiteView();
$objSubView->assignobj($this);
$objSubView->display($this->tpl_mainpage);
// 選択中のカテゴリIDを判定する
$arrmaker_id = $objDb->sfGetCategoryId($_GET['product_id'], $_GET['maker_id']);
// 選択中のカテゴリID
$this->tpl_maker_id = empty($arrmaker_id) ? array(0) : $arrmaker_id;;
$this->lfGetCatTree($this->tpl_maker_id, true, $this);
$objSubView->assignobj($this);
$objSubView->display($this->tpl_mainpage);
}
/**
* デストラクタ.
*
* @return void
*/
function destroy() {
parent::destroy();
}
// カテゴリツリーの取得
function lfGetCatTree($arrParent_maker_id, $count_check = false) {
$objQuery = new SC_Query();
$objDb = new SC_Helper_DB_Ex();
$col = "*";
$from = "dtb_maker left join dtb_maker_total_count using (maker_id)";
// 登録商品数のチェック
if($count_check) {
$where = "del_flg = 0 AND product_count > 0";
} else {
$where = "del_flg = 0";
}
$objQuery->setoption("ORDER BY rank DESC");
$arrRet = $objQuery->select($col, $from, $where);
foreach ($arrParent_maker_id as $maker_id) {
$arrParentID = $objDb->sfGetParents($objQuery, 'dtb_maker', 'parent_maker_id', 'maker_id', $maker_id);
$arrBrothersID = SC_Utils_Ex::sfGetBrothersArray($arrRet, 'parent_maker_id', 'maker_id', $arrParentID);
$arrChildrenID = SC_Utils_Ex::sfGetUnderChildrenArray($arrRet, 'parent_maker_id', 'maker_id', $maker_id);
$this->root_parent_id[] = $arrParentID[0];
$arrDispID = array_merge($arrBrothersID, $arrChildrenID);
foreach($arrRet as $key => $array) {
foreach($arrDispID as $val) {
if($array['maker_id'] == $val) {
$arrRet[$key]['display'] = 1;
break;
}
}
}
}
$this->arrTree = $arrRet;
}
// メインカテゴリーの取得
function lfGetMainCat($count_check = false, &$objSubPage) {
$objQuery = new SC_Query();
$col = "*";
$from = "dtb_maker left join dtb_maker_total_count using (maker_id)";
// メインカテゴリーとその直下のカテゴリーを取得する。
$where = 'level <= 2 AND del_flg = 0';
// 登録商品数のチェック
if($count_check) {
$where .= " AND product_count > 0";
}
$objQuery->setoption("ORDER BY rank DESC");
$arrRet = $objQuery->select($col, $from, $where);
// メインカテゴリーを抽出する。
$arrMainCat = array();
foreach ($arrRet as $cat) {
if ($cat['level'] != 1) {
continue;
}
// 子カテゴリーを持つかどうかを調べる。
$arrChildrenID = SC_Utils_Ex::sfGetUnderChildrenArray($arrRet, 'parent_maker_id', 'maker_id', $cat['maker_id']);
$cat['has_children'] = count($arrChildrenID) > 0;
$arrMainCat[] = $cat;
}
$objSubPage->arrCat = $arrMainCat;
return $objSubPage;
}
}
?>
tplファイル
<!--{$maincate[0].category_disp }-->
<ul class="subcategory_first">
<!--メーカーここから-->
<ul>
<!--{section name=cnt loop=$arrMaker}-->
<!--{* 階層を level へ *}-->
<!--{assign var=level value="`$arrMaker[cnt].level`}-->
<!--{* カテゴリ名を disp_name へ *}-->
<!--{assign var=disp_name value="`$arrMaker[cnt].maker_name`"}-->
<!--{assign var=disp_disp value="`$arrMaker[cnt].maker_id`"}-->
<!--{* 表示カテゴリのみ *}-->
<!--{if $arrMaker[cnt].display == 1}-->
<!--{* 選択したカテゴリ *}-->
<!--{if in_array($arrMaker[cnt].maker_id, $tpl_category_id) }-->
<li class="maker_list"><a href="<!--{$smarty.const.URL_DIR}-->products/list.php?maker_id=<!--{$arrMaker[cnt].maker_id}-->"><!--{$arrMaker[cnt].name|escape}--></a>
</li>
<!--{* 未選択カテゴリ *}-->
<!--{else}-->
<li><a href="<!--{$smarty.const.URL_DIR}-->products/list.php?category_id=<!--{$arrTree[cnt].category_id}-->" title="<!--{$disp_name|escape}-->"><!--{$disp_name|escape}--></a></li>
<!--{/if}-->
<!--{$disp_disp|sfCutString:40|escape}-->
<!--{/if}-->
<!--{/section}-->
</ul>
</dl>
</div>
<!--商品カテゴリーここまで-->
----------------
------------------------------------------------------------------------------------------
EC-CUBE 3.0.17
DBサーバー mariaDB
WEBサーバー apache (CentOS)
PHP 7.1
-----------------------...