2016-11-10 185 views
0

嗨有谁知道是否有办法选择哪些特色产品首先展示?我如何在特色模块中分类产品?像最新到最早的那样.. 这是模块的代码。我如何设置产品的排序顺序?如何为opencart中的特色产品添加排序顺序?

$data['heading_title'] = $this->language->get('heading_title'); 

    $data['text_tax'] = $this->language->get('text_tax'); 

    $data['button_cart'] = $this->language->get('button_cart'); 
    $data['button_wishlist'] = $this->language->get('button_wishlist'); 
    $data['button_compare'] = $this->language->get('button_compare'); 

    $this->load->model('catalog/product'); 

    $this->load->model('tool/image'); 

    $data['products'] = array(); 

    if (!$setting['limit']) { 
     $setting['limit'] = 4; 
    } 

    if (!empty($setting['product'])) { 
     $products = array_slice($setting['product'], 0, (int)$setting['limit']); 

     foreach ($products as $product_id) { 
      $product_info = $this->model_catalog_product->getProduct($product_id); 

      if ($product_info) { 
       if ($product_info['image']) { 
        $image = $this->model_tool_image->resize($product_info['image'], $setting['width'], $setting['height']); 
       } else { 
        $image = $this->model_tool_image->resize('placeholder.png', $setting['width'], $setting['height']); 
       } 

       if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { 
        $price = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))); 
       } else { 
        $price = false; 
       } 

       if ((float)$product_info['special']) { 
        $special = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax'))); 
       } else { 
        $special = false; 
       } 

       if ($this->config->get('config_tax')) { 
        $tax = $this->currency->format((float)$product_info['special'] ? $product_info['special'] : $product_info['price']); 
       } else { 
        $tax = false; 
       } 

       if ($this->config->get('config_review_status')) { 
        $rating = $product_info['rating']; 
       } else { 
        $rating = false; 
       } 

       $data['products'][] = array(
        'product_id' => $product_info['product_id'], 
        'thumb'  => $image, 
        'name'  => $product_info['name'], 
        'description' => utf8_substr(strip_tags(html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..', 
        'price'  => $price, 
        'special'  => $special, 
        'tax'   => $tax, 
        'rating'  => $rating, 
        'href'  => $this->url->link('product/product', 'product_id=' . $product_info['product_id']) 
       ); 
      } 
     } 
    } 

    if ($data['products']) { 
     if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/featured.tpl')) { 
      return $this->load->view($this->config->get('config_template') . '/template/module/featured.tpl', $data); 
     } else { 
      return $this->load->view('default/template/module/featured.tpl', $data); 
     } 
    } 
} 

}

+2

你有任何的代码,你有什么尝试,你今天吃午餐,月球有多远?可能需要更多的信息伴侣。 – Blinkydamo

+0

我在互联网上发现了一些代码,但我不知道哪个文件和哪一行我应该添加它。我发现这个“ORDER BY p.date_added DESC”,但我不知道如何或是否正确。 – Neconeco

+0

搭档也没有帮助,您需要阅读并更好地理解您下载的代码。如果我们无法看到我们无法帮助您的代码。 – Blinkydamo

回答

1

在Opencart的每一个产品都 “数据” 选项卡上的 “排序顺序” 域,您可以填写它,当您添加或编辑一个产品:

Opencart Sort order field for product

转至此文件:

catalog/controller/module/featured.php 

将这些行添加到产品阵列

'sort_order' => $product_info['sort_order'], 
'date_added' => $product_info['date_added'] 

,并使用array_multisort波纹管:

$temp_array = array(); 
foreach ($data['products'] as $key => $row){ 
    $temp_array[$key] = $row['sort_order']; 
} 
array_multisort($temp_array, SORT_ASC, $data['products']); 

插入上面的代码只是if ($data['products']) {

这里之前是全码:

<?php 
class ControllerModuleFeatured extends Controller { 
    public function index($setting) { 
     $this->load->language('module/featured'); 

     $data['heading_title'] = $this->language->get('heading_title'); 

     $data['text_tax'] = $this->language->get('text_tax'); 

     $data['button_cart'] = $this->language->get('button_cart'); 
     $data['button_wishlist'] = $this->language->get('button_wishlist'); 
     $data['button_compare'] = $this->language->get('button_compare'); 

     $this->load->model('catalog/product'); 

     $this->load->model('tool/image'); 

     $data['products'] = array(); 

     if (!$setting['limit']) { 
      $setting['limit'] = 4; 
     } 

     if (!empty($setting['product'])) { 
      $products = array_slice($setting['product'], 0, (int)$setting['limit']); 

      foreach ($products as $product_id) { 
       $product_info = $this->model_catalog_product->getProduct($product_id); 

       if ($product_info) { 
        if ($product_info['image']) { 
         $image = $this->model_tool_image->resize($product_info['image'], $setting['width'], $setting['height']); 
        } else { 
         $image = $this->model_tool_image->resize('placeholder.png', $setting['width'], $setting['height']); 
        } 

        if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { 
         $price = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))); 
        } else { 
         $price = false; 
        } 

        if ((float)$product_info['special']) { 
         $special = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax'))); 
        } else { 
         $special = false; 
        } 

        if ($this->config->get('config_tax')) { 
         $tax = $this->currency->format((float)$product_info['special'] ? $product_info['special'] : $product_info['price']); 
        } else { 
         $tax = false; 
        } 

        if ($this->config->get('config_review_status')) { 
         $rating = $product_info['rating']; 
        } else { 
         $rating = false; 
        } 

        $data['products'][] = array(
         'product_id' => $product_info['product_id'], 
         'thumb'  => $image, 
         'name'  => $product_info['name'], 
         'description' => utf8_substr(strip_tags(html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..', 
         'price'  => $price, 
         'special'  => $special, 
         'tax'   => $tax, 
         'rating'  => $rating, 
         'href'  => $this->url->link('product/product', 'product_id=' . $product_info['product_id']), 
         // Add 'sort_order' and 'date_added' to products array 
         'sort_order' => $product_info['sort_order'], 
         'date_added' => $product_info['date_added'] 
        ); 
       } 
      } 
     } 

     // Create a temporary array 
     $temp_array = array(); 
     foreach ($data['products'] as $key => $row){ 
      // You can use 'date_added' or 'sort_order' or 'price' or ... 
      $temp_array[$key] = $row['date_added']; 
     } 
     // You can use SORT_ASC or SORT_DESC 
     array_multisort($temp_array, SORT_ASC, $data['products']); 


     if ($data['products']) { 
      if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/featured.tpl')) { 
       return $this->load->view($this->config->get('config_template') . '/template/module/featured.tpl', $data); 
      } else { 
       return $this->load->view('default/template/module/featured.tpl', $data); 
      } 
     } 
    } 
} 

我的Opencart的2.1测试这.0.1, 希望这对你有所帮助。

+0

Still产品已在旧版本的基础上增加了旧版本,并在底部新增了新版本。我复制完整的代码仍然相同。也许它在管理文件夹中具有相同名称的文件 – Neconeco

+0

现在可以工作。我将SORT_ASC更改为desc,瞧!非常感谢你。 – Neconeco

+0

很高兴听到它的工作,不客气。 – DigitCart