Specific template for category and product page in OpenCart 2.2.0.0

前端 未结 1 463
孤街浪徒
孤街浪徒 2021-01-28 16:07

I am using OpenCart version 2.2.0.0 and trying to set different template for each category and product page. Searching online I found following code:

if (file_ex         


        
相关标签:
1条回答
  • 2021-01-28 16:36

    Since Opencart changed its method from 2.2 that code doesn't work anymore, you can modify it like this:

    First we must know which theme is active, store its name in a variable

    $config_theme = $this->config->get('config_theme') == 'theme_default' ? 'default' : $this->config->get('config_theme');
    

    Then we must check if there is a file specially for current category, for example if we are on category 20, we check for category_20.tpl existance.

    if (file_exists(DIR_TEMPLATE . $config_theme . '/template/product/category_' . $category_id . '.tpl')) {
    

    If found that file:

    $view = 'product/category_' . $category_id;
    

    if there is no such file, use original file: category.tpl

    } else {
        $view = 'product/category';
    }
    

    load selected view file based on above statement.

    $this->response->setOutput($this->load->view($view, $data));
    

    conclusion:

    find $this->response->setOutput($this->load->view('product/category', $data)); in catalog/controller/product/category.php and replace it with above codes, here is full code:

    $config_theme = $this->config->get('config_theme') == 'theme_default' ? 'default' : $this->config->get('config_theme');
    if (file_exists(DIR_TEMPLATE . $config_theme . '/template/product/category_' . $category_id . '.tpl')) {
        $view = 'product/category_' . $category_id;
    } else {
        $view = 'product/category';
    }
    $this->response->setOutput($this->load->view($view, $data));
    
    0 讨论(0)
提交回复
热议问题