2016-07-07 7 views
0

Also ich habe Opencart 1.5.6 und ich muss eine Kategorie verstecken, um nicht im neuesten Produktmodul zu erscheinen ... Wie kann ich PHP reparieren, um das zu tun und keine 3rd-Party-Module zu verwenden?Wie man einige Kategorien im neuesten Produktmodul Opencart versteckt?

Ich verstehe es irgendwo in catalog\controller\module\latest.php ist, also hier ist mein Code:

<?php 
class ControllerModuleLatest extends Controller { 
    protected function index($setting) { 
     $this->language->load('module/latest'); 

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

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

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

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

     $this->data['products'] = array(); 

     $data = array(
      'sort' => 'p.date_added', 
      'order' => 'DESC', 
      'start' => 0, 
      'limit' => $setting['limit'] 
     ); 

     $results = $this->model_catalog_product->getProducts($data); 

     foreach ($results as $result) { 
      if ($result['image']) { 
       $image = $this->model_tool_image->resize($result['image'], $setting['image_width'], $setting['image_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_review_status')) { 
       $rating = $result['rating']; 
      } else { 
       $rating = false; 
      } 

      $this->data['products'][] = array(
       'product_id' => $result['product_id'], 
       'thumb'  => $image, 
       'name'  => $result['name'], 
       'price'  => $price, 
       'special' => $special, 
       'rating'  => $rating, 
       'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 
       'href'  => $this->url->link('product/product', 'product_id=' . $result['product_id']), 
      ); 
     } 

     if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/latest.tpl')) { 
      $this->template = $this->config->get('config_template') . '/template/module/latest.tpl'; 
     } else { 
      $this->template = 'default/template/module/latest.tpl'; 
     } 

     $this->render(); 
    } 
} 
?> 

Antwort

0

Zuerst müssen Sie Produktkategorien erhalten:

$get_categories = $this->model_catalog_product->getCategories($result['product_id']); 

Dann mit in_array Funktion, prüfen Sie, ob Produkt ist kein hat bestimmte Kategorie, hier zum Beispiel 24 ist die ID der Kategorie, wir wollen nicht ihre Produkte zeigen:

if(!in_array(24, $categories)) 

so wird die Datei sein:

<?php 
    class ControllerModuleLatest extends Controller { 
     protected function index($setting) { 
      $this->language->load('module/latest'); 

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

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

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

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

      $this->data['products'] = array(); 

      $data = array(
       'sort' => 'p.date_added', 
       'order' => 'DESC', 
       'start' => 0, 
       'limit' => $setting['limit'] 
      ); 

      $results = $this->model_catalog_product->getProducts($data); 

      foreach ($results as $result) { 
       if ($result['image']) { 
        $image = $this->model_tool_image->resize($result['image'], $setting['image_width'], $setting['image_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_review_status')) { 
        $rating = $result['rating']; 
       } else { 
        $rating = false; 
       } 

       $get_categories = $this->model_catalog_product->getCategories($result['product_id']); 
       $categories = array(); 
       foreach($get_categories as $category){ 
        $categories[] = $category['category_id']; 
       } 

       if(!in_array(24, $categories)){ 
        $this->data['products'][] = array(
         'product_id' => $result['product_id'], 
         'thumb'  => $image, 
         'name'  => $result['name'], 
         'price'  => $price, 
         'special' => $special, 
         'rating'  => $rating, 
         'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 
         'href'  => $this->url->link('product/product', 'product_id=' . $result['product_id']), 
        ); 
       } 
      } 

      if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/latest.tpl')) { 
       $this->template = $this->config->get('config_template') . '/template/module/latest.tpl'; 
      } else { 
       $this->template = 'default/template/module/latest.tpl'; 
      } 

      $this->render(); 
     } 
    } 
    ?> 
+0

Ich habe gerade versucht eine hinzuzufügen und dann einige Kategorien von: if (in_array (83 | 88 | 94 | 92 | 95 | 90 | 91 | 86 | 78 |! 84 | 89 | 93 | 87 | 85, aber kein Ergebnis kann diese Kategorien noch in diesem Modul sehen! :(irgendeine Idee? –

+0

Vielen Dank funktioniert es aber nur, wenn ich eine Kategorie verstecken! Wie man paar von ihnen zu verstecken? Ich versuchte es mit Komma und auch 83 | 88 | 94 kein Ergebnis! :( –

+0

Sie können so etwas verwenden ' if (! in_array (24, $ categories) &&! in_array (20, $ categories) &&! in_array (18, $ categories)) {' – DigitCart

Verwandte Themen