これは以下の疑似コードで、使用しているopencartのバージョンがわからないという考えを与えるだけなので、以下のコードを実行して、各サブカテゴリから 1 つの製品を表示するだけです
プロジェクトディレクトリを開いcatelog/controller/product/category.php
てindex()
関数でカテゴリID、つまり$category_id
あなたが立っている親カテゴリIDを取得し、コントローラーをレンダリングする前にコードを配置します。$this->response->setOutput($this->render());
/**********************************************************************/
$getsubcate=$this->model_catalog_category->getCategories($category_id);
$subcatedata=array();
for($s=0;$s< count($getsubcate); $s++){
$subcatedata[$s]=array(
'name'=>$getsubcate[$s]['name'],
'href' => $this->url->link('product/category', 'path=' . $getsubcate[$s]['parent_id'] . '_' . $getsubcate[$s]['category_id'])
);
$data = array(
'filter_category_id' => $getsubcate[$s]['category_id'],
'sort' => $sort,//your sorting param
'order' => $order,// your ordering param
'limit' => 1
);
$subcatedata[$s]['product'] = $this->model_catalog_product->getProducts($data);
}
$this->data['subcategory']=$subcatedata;
/****************************************************************************************/
デフォルトのものを使用している場合はテーマのカテゴリ テンプレートを開き、パスは次のように catalog/view/theme/default/template/product/category.tpl
なります。カスタム テーマの場合は、テーマの category.tpl を開きます。catalog/view/theme/your theme name/template/product/category.tpl
そして、単一の製品または複数の製品でサブカテゴリを表示したい場所にこのコードを配置します
<?php for ($i = 0; $i < count($subcategory);$i++) { ?>
<h1>Sub Categories</h1>
<ul>
<?php if (isset($subcategory[$i])) { ?>
<li><a href="<?php echo $subcategory[$i]['href']; ?>"><?php echo $subcategory[$i]['name']; ?></a></li>
<div class="product-list">
<?php foreach ($subcategory[$i]['products'] as $product) { ?>
<div>
<?php if ($product['thumb']) { ?>
<div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a></div>
<?php } ?>
<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>
<div class="description"><?php echo $product['description']; ?></div>
<?php if ($product['price']) { ?>
<div class="price">
<?php if (!$product['special']) { ?>
<?php echo $product['price']; ?>
<?php } else { ?>
<span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
<?php } ?>
<?php if ($product['tax']) { ?>
<br />
<span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
<?php } ?>
</div>
<?php } ?>
<?php if ($product['rating']) { ?>
<div class="rating"><img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /></div>
<?php } ?>
<div class="cart">
<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
</div>
<div class="wishlist"><a onclick="addToWishList('<?php echo $product['product_id']; ?>');"><?php echo $button_wishlist; ?></a></div>
<div class="compare"><a onclick="addToCompare('<?php echo $product['product_id']; ?>');"><?php echo $button_compare; ?></a></div>
</div>
<?php } ?>
</div>
<?php } ?>
</ul>
<?php } ?>
それが完全に機能することを願っています
コードに満足できない場合は、同様の機能を持つこの拡張機能を購入できます
サブカテゴリで並べ替え