1

我正在用 opencart 1.5.5.1 建立一个商店(我是新手),我遇到了一个小问题:

我的任何主要类别页面都如下所示:
优化搜索:
    -Subcategory1
    -Subcategory2
    -Subcategory3

  Product1 Product2 Product3 ...

子类别 1,2 和 3 是指向子类别页面的链接。

我希望我的主要类别页面是这样的:

子类别
1 产品 1 产品 2 产品 3 .......

子类别
2 产品 1 产品 2 产品 3 .......

子类别
3 产品 1 产品 2 产品 3 .......

其中子类别 1,2 和 3 不再是指向子类别页面的链接,而是简单的文本。

我找到了这个扩展:http ://www.opencart.com/index.php?route=extension/extension/info&token=b4381909f29ca2d2511830b09f09fa84&extension_id=11190但也许有人可以帮助我而无需支付 15 美元

任何人都可以帮助我吗?

4

2 回答 2

5

→ 好的,所以我将逐步完成此步骤,在步骤之间提出问题,或者如果您明白了,请投票支持此步骤:

步骤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">&rarr;&nbsp;</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 { ?>
于 2013-05-29T20:57:26.120 回答
0

那么opencart 2呢?如果我喜欢你,我会得到

注意:未定义的偏移量:第 59 行 ..\category.tpl 中的 60 警告:第 59 行 ..\category.tpl 中的 foreach() 提供的参数无效

于 2016-07-05T16:14:11.650 回答