2016-07-07 6 views
0

私はOpencart 1.5.6を持っているので、最新の製品モジュールには表示されないようにカテゴリを隠す必要があります...どのようにしてサードパーティのモジュールを使用しないようにPHPを修正できますか?私はここで、それはどこかcatalog\controller\module\latest.phpであることを理解最新の製品モジュールでいくつかのカテゴリを非表示にする方法Opencart?

は私のコードです:

<?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(); 
    } 
} 
?> 

答えて

0

まずあなたが製品カテゴリを取得する必要があります。製品はしていないかどうかを確認、in_array機能を次に

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

if(!in_array(24, $categories)) 
0:特定のカテゴリには、ここでの例24のカテゴリのIDがあり、我々はその製品を表示したくありません

ので、あなたのファイルは次のようになります。

<?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

私はちょうど1を追加しようとしたことにより、カテゴリのその後のカップル:(もしin_array(83 | 88 | 94 | 92 | 95 | 90 | 91 | 86 | 78 |! 84 | 89 | 93 | 87 | 85しかし、このモジュールではこれらのカテゴリはまだ表示されません。 :(任意のアイデア –

+0

おかげで、それはそれらのカップルを隠すためにどのように私は一つのカテゴリを隠したときだけしかし働く多くは、私がカンマで試してみましたし、また83 |?!?88 | 94ノー結果:( –

+0

あなたは 'このようなものを使用することができます!もし(!!in_array(24、$カテゴリ)&& in_array(20、$カテゴリ)&& in_array(18、$カテゴリ)!){ ' – DigitCart

関連する問題