这是下面的伪代码,只是让您知道不知道您正在使用的opencart版本,所以只需通过下面的代码来显示每个子类别中的一个产品
在您的项目目录中打开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.tplcatalog/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 } ?>
希望它能完美运行
如果您对代码不满意,那么您可以购买此扩展程序,它可以完成类似的工作
按子类别排序