→ 好的,所以我将逐步完成此步骤,在步骤之间提出问题,或者如果您明白了,请投票支持此步骤:
步骤1:
打开以下文件:
catelog/controller/product/category.php
首先保存此文件的备份,然后继续!
在第 271 行附近的某个地方,您应该会看到:
$this->data['categories'][] = array(
'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url)
);
将上面的代码更改为:
$this->data['categories'][] = array(
'category_id' => $result['category_id'], /*!!!*/
'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url)
);
第2步:
打开您在步骤 1 中执行的相同文件:
catelog/controller/product/category.php
首先保存此文件的备份,然后继续!
在第 271 行附近的某个地方,您应该会看到:
$this->data['categories'][] = array(
'category_id' => $result['category_id'], /*!!!*/
'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url)
);
}
/* New code will be pasted here! */
$this->data['products'] = array();
显然,这是我们在步骤 1 中处理的代码,但您现在要做的是在最后一个 '}' 之后但在 '$this->data['products'] = array() 之前复制并粘贴以下代码;'
$this->data['products_all'] = array();
for( $x = 0; $x < count( $this->data['categories'] ); $x++ ) {
$cat = $this->data['categories'][ $x ][ 'category_id' ];
$this->data['products_all'][ $cat ] = array();
$data = array(
'filter_category_id' => $cat,
'sort' => $sort,
'order' => $order,
'start' => ($page - 1) * $limit,
'limit' => $limit
);
$product_total = $this->model_catalog_product->getTotalProducts($data);
$results = $this->model_catalog_product->getProducts($data);
foreach ($results as $result) {
if ($result['image']) {
$image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
}
else { $image = false; }
if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
}
else { $price = false; }
if ((float)$result['special']) {
$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
}
else { $special = false; }
if ($this->config->get('config_tax')) {
$tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']);
}
else { $tax = false; }
if ($this->config->get('config_review_status')) {
$rating = (int)$result['rating'];
}
else { $rating = false; }
$this->data['products_all'][ $cat ][] = array(
'product_id' => $result['product_id'],
'thumb' => $image,
'name' => $result['name'],
'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
'price' => $price,
'special' => $special,
'tax' => $tax,
'rating' => $result['rating'],
'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])
);
}
}
第 3 步:
打开以下文件:
catalog/view/theme/default/template/product/category.tpl
首先保存此文件的备份,然后继续!
在第 19 行附近的某处,您应该看到:
<?php if ($categories) { ?>
<h2><?php echo $text_refine; ?></h2>
<div class="category-list">
<?php if (count($categories) <= 5) { ?>
<ul>
<?php foreach ($categories as $category) { ?>
<li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>
<?php } ?>
</ul>
<?php } else { ?>
将上面的代码更改为:
<?php if ($categories) { ?>
<div class="category-list">
<?php
if ( count( $categories ) <= 5 ) {
foreach ( $categories as $k=>$category ) {
if( $k > 0 ) echo '<br /><br />';
echo '<div class="product-filter" style="background:#222;padding:5px;padding-bottom:2px">';
echo '<a href="' . $category['href'] . '" style="font-size:21px;text-decoration:none;"><h2 style="color:#eee;font-style:italic"><span style="color:#777;position:relative;bottom:2px">→ </span><span style="border-bottom:solid 1px #777;">' . $category['name'] . '</span>:</h2></a>';
echo '</div>';
echo '<hr style="border:none;border-top:solid 1px #eee"/>';
echo '<div class="product-list">';
foreach ( $products_all[ $category['category_id'] ] as $product )
{
echo '<div>';
if ( $product['thumb'] ) {
echo '<div class="image"><a href="' . $product['href'] . '"><img src="' . $product['thumb'] . '" title="' . $product['name'] . '" alt="' . $product['name'] . '" /></a></div>';
}
echo '<div class="name"><a href="' . $product['href'] . '">' . $product['name'] . '</a></div>';
echo '<div class="description">' . $product['description'] . '</div>';
if ( $product['price'] ) {
echo '<div class="price">';
if ( !$product['special'] ) { echo $product['price']; }
else { echo '<span class="price-old">' . $product['price'] . '</span> <span class="price-new">' . $product['special'] . '</span>'; }
if ( $product['tax'] ) { echo '<br /><span class="price-tax">' . $text_tax . ' ' . $product['tax'] . '</span>'; }
echo '</div>';
}
if ( $product['rating'] ) {
echo '<div class="rating"><img src="catalog/view/theme/default/image/stars-' . $product['rating'] . '.png" alt="' . $product['reviews'] . '" /></div>';
}
echo '<div class="cart">';
echo '<input type="button" value="' . $button_cart . '" onclick="addToCart(\'' . $product['product_id'] . '\');" class="button" />';
echo '</div>';
echo '<div class="wishlist"><a onclick="addToWishList(\'' . $product['product_id'] . '\');">' . $button_wishlist . '</a></div>';
echo '<div class="compare"><a onclick="addToCompare(\'' . $product['product_id'] . '\');">' . $button_compare . '</a></div>';
echo '</div>';
}
echo '</div>';
}
?>
<?php } else { ?>