2011-06-26 2 views
2

私はOpencartフォーラムでこれを尋ねましたが、運はまだありませんので、ここで試してみると思いました。Opencart 1.5の各製品ですべてのカテゴリを表示するにはどうすればいいですか?

各カテゴリの製品をいくつか1ページに表示するにはどうすればよいですか?このよう

Category 1 
Item 1 
Item 2 

Category 2 
Item 3 
Item 4 

Category 3 
Item 5 
Item 6 

は私がcategory.phpコントローラとcategory.tplテンプレートファイルをコピーして変更する必要があると思うが、私は彼らに作るためにどのような変化はよく分かりません。私がコントローラの助けを得ることができれば、おそらく自分でテンプレートを見つけることができます。

ない、これはここになりますどのように役立つことを確認、しかし、ここでコントローラファイルです:

<?php 
class ControllerProductCategory extends Controller { 
public function index() { 
    $this->language->load('product/category'); 

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

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

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

    if (isset($this->request->get['sort'])) { 
     $sort = $this->request->get['sort']; 
    } else { 
     $sort = 'p.sort_order'; 
    } 

    if (isset($this->request->get['order'])) { 
     $order = $this->request->get['order']; 
    } else { 
     $order = 'ASC'; 
    } 

    if (isset($this->request->get['page'])) { 
     $page = $this->request->get['page']; 
    } else { 
     $page = 1; 
    } 

    if (isset($this->request->get['limit'])) { 
     $limit = $this->request->get['limit']; 
    } else { 
     $limit = $this->config->get('config_catalog_limit'); 
    } 

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

    $this->data['breadcrumbs'][] = array(
     'text'  => $this->language->get('text_home'), 
     'href'  => $this->url->link('common/home'), 
     'separator' => false 
    ); 

    if (isset($this->request->get['path'])) { 
     $path = ''; 

     $parts = explode('_', (string)$this->request->get['path']); 

     foreach ($parts as $path_id) { 
      if (!$path) { 
       $path = $path_id; 
      } else { 
       $path .= '_' . $path_id; 
      } 

      $category_info = $this->model_catalog_category->getCategory($path_id); 

      if ($category_info) { 
       $this->data['breadcrumbs'][] = array(
        'text'  => $category_info['name'], 
        'href'  => $this->url->link('product/category', 'path=' . $path), 
        'separator' => $this->language->get('text_separator') 
       ); 
      } 
     }  

     $category_id = array_pop($parts); 
    } else { 
     $category_id = 0; 
    } 

    $category_info = $this->model_catalog_category->getCategory($category_id); 

    if ($category_info) { 
     $this->document->setTitle($category_info['name']); 
     $this->document->setDescription($category_info['meta_description']); 
     $this->document->setKeywords($category_info['meta_keyword']); 

     $this->data['heading_title'] = $category_info['name']; 

     $this->data['text_refine'] = $this->language->get('text_refine'); 
     $this->data['text_empty'] = $this->language->get('text_empty');   
     $this->data['text_quantity'] = $this->language->get('text_quantity'); 
     $this->data['text_manufacturer'] = $this->language->get('text_manufacturer'); 
     $this->data['text_model'] = $this->language->get('text_model'); 
     $this->data['text_price'] = $this->language->get('text_price'); 
     $this->data['text_tax'] = $this->language->get('text_tax'); 
     $this->data['text_points'] = $this->language->get('text_points'); 
     $this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); 
     $this->data['text_display'] = $this->language->get('text_display'); 
     $this->data['text_list'] = $this->language->get('text_list'); 
     $this->data['text_grid'] = $this->language->get('text_grid'); 
     $this->data['text_sort'] = $this->language->get('text_sort'); 
     $this->data['text_limit'] = $this->language->get('text_limit'); 

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

     if ($category_info['image']) { 
      $this->data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height')); 
     } else { 
      $this->data['thumb'] = ''; 
     } 

     $this->data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); 
     $this->data['compare'] = $this->url->link('product/compare'); 

     $url = ''; 

     if (isset($this->request->get['sort'])) { 
      $url .= '&sort=' . $this->request->get['sort']; 
     } 

     if (isset($this->request->get['order'])) { 
      $url .= '&order=' . $this->request->get['order']; 
     } 

     if (isset($this->request->get['limit'])) { 
      $url .= '&limit=' . $this->request->get['limit']; 
     } 

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

     $results = $this->model_catalog_category->getCategories($category_id); 

     foreach ($results as $result) { 
      $product_total = $this->model_catalog_product->getTotalProducts(array('filter_category_id' => $result['category_id'])); 

      $this->data['categories'][] = array(
       'name' => $result['name'] . ' (' . $product_total . ')', 
       'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url) 
      ); 
     } 

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

     $data = array(
      'filter_category_id' => $category_id, 
      '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'][] = array(
       'product_id' => $result['product_id'], 
       'thumb'  => $image, 
       'name'  => $result['name'], 
       'description' => 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']) 
      ); 
     } 

     $url = ''; 

     if (isset($this->request->get['limit'])) { 
      $url .= '&limit=' . $this->request->get['limit']; 
     } 

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

     $this->data['sorts'][] = array(
      'text' => $this->language->get('text_default'), 
      'value' => 'p.sort_order-ASC', 
      'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) 
     ); 

     $this->data['sorts'][] = array(
      'text' => $this->language->get('text_name_asc'), 
      'value' => 'pd.name-ASC', 
      'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) 
     ); 

     $this->data['sorts'][] = array(
      'text' => $this->language->get('text_name_desc'), 
      'value' => 'pd.name-DESC', 
      'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) 
     ); 

     $this->data['sorts'][] = array(
      'text' => $this->language->get('text_price_asc'), 
      'value' => 'p.price-ASC', 
      'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) 
     ); 

     $this->data['sorts'][] = array(
      'text' => $this->language->get('text_price_desc'), 
      'value' => 'p.price-DESC', 
      'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) 
     ); 

     $this->data['sorts'][] = array(
      'text' => $this->language->get('text_rating_desc'), 
      'value' => 'rating-DESC', 
      'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) 
     ); 

     $this->data['sorts'][] = array(
      'text' => $this->language->get('text_rating_asc'), 
      'value' => 'rating-ASC', 
      'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) 
     ); 

     $this->data['sorts'][] = array(
      'text' => $this->language->get('text_model_asc'), 
      'value' => 'p.model-ASC', 
      'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) 
     ); 

     $this->data['sorts'][] = array(
      'text' => $this->language->get('text_model_desc'), 
      'value' => 'p.model-DESC', 
      'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) 
     ); 

     $url = ''; 

     if (isset($this->request->get['sort'])) { 
      $url .= '&sort=' . $this->request->get['sort']; 
     } 

     if (isset($this->request->get['order'])) { 
      $url .= '&order=' . $this->request->get['order']; 
     } 

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

     $this->data['limits'][] = array(
      'text' => $this->config->get('config_catalog_limit'), 
      'value' => $this->config->get('config_catalog_limit'), 
      'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $this->config->get('config_catalog_limit')) 
     ); 

     $this->data['limits'][] = array(
      'text' => 25, 
      'value' => 25, 
      'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=25') 
     ); 

     $this->data['limits'][] = array(
      'text' => 50, 
      'value' => 50, 
      'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=50') 
     ); 

     $this->data['limits'][] = array(
      'text' => 75, 
      'value' => 75, 
      'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=75') 
     ); 

     $this->data['limits'][] = array(
      'text' => 100, 
      'value' => 100, 
      'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=100') 
     ); 

     $url = ''; 

     if (isset($this->request->get['sort'])) { 
      $url .= '&sort=' . $this->request->get['sort']; 
     } 

     if (isset($this->request->get['order'])) { 
      $url .= '&order=' . $this->request->get['order']; 
     } 

     if (isset($this->request->get['limit'])) { 
      $url .= '&limit=' . $this->request->get['limit']; 
     } 

     $pagination = new Pagination(); 
     $pagination->total = $product_total; 
     $pagination->page = $page; 
     $pagination->limit = $limit; 
     $pagination->text = $this->language->get('text_pagination'); 
     $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); 

     $this->data['pagination'] = $pagination->render(); 

     $this->data['sort'] = $sort; 
     $this->data['order'] = $order; 
     $this->data['limit'] = $limit; 

     $this->data['continue'] = $this->url->link('common/home'); 

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

     $this->children = array(
      'common/column_left', 
      'common/column_right', 
      'common/content_top', 
      'common/content_bottom', 
      'common/footer', 
      'common/header' 
     ); 

     $this->response->setOutput($this->render());           
    } else { 
     $url = ''; 

     if (isset($this->request->get['path'])) { 
      $url .= '&path=' . $this->request->get['path']; 
     } 

     if (isset($this->request->get['sort'])) { 
      $url .= '&sort=' . $this->request->get['sort']; 
     } 

     if (isset($this->request->get['order'])) { 
      $url .= '&order=' . $this->request->get['order']; 
     } 

     if (isset($this->request->get['page'])) { 
      $url .= '&page=' . $this->request->get['page']; 
     } 

     if (isset($this->request->get['limit'])) { 
      $url .= '&limit=' . $this->request->get['limit']; 
     } 

     $this->data['breadcrumbs'][] = array(
      'text'  => $this->language->get('text_error'), 
      'href'  => $this->url->link('product/category', $url), 
      'separator' => $this->language->get('text_separator') 
     ); 

     $this->document->setTitle($this->language->get('text_error')); 

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

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

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

     $this->data['continue'] = $this->url->link('common/home'); 

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

     $this->children = array(
      'common/column_left', 
      'common/column_right', 
      'common/content_top', 
      'common/content_bottom', 
      'common/footer', 
      'common/header' 
     ); 

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

答えて

0

が少なくともopencartにあなたが拡張>モジュール>カテゴリに移動し、あなたが好きな場所カテゴリを追加することができ1.5.1.3。

関連する問題