Set Category, Product n Information Spesific Template
Posted: Sat Jun 16, 2012 12:40 pm
In this tutorial we will learn on how to make spesific template for Category, Product and Information. Some post forum already mention this with various method, but I try to use the simplest method.
And before we continue, I want to clarify that Template refer to .tpl file on Opencart theme. Regardless the theme you use, word "template" refer to .tpl file.
What we want to achieve here?
Note:
Since most user unable to reply this post, if you want to suggest think to improve this tutorial you can PM me. No Question Please!
Make new post on Support Forum if you have any question.
And before we continue, I want to clarify that Template refer to .tpl file on Opencart theme. Regardless the theme you use, word "template" refer to .tpl file.
What we want to achieve here?
- Load spesific template for category, product and information based on the id.
- If spesific template is not available, then use the general template. ex. category.tpl, product.tpl, information.tpl
- The same thing applied to load stylesheet spesifically.
- Open catalog\controller\product\category.php
- Load spesific template:
Code: Select all
// FIND : 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'; } // REPLACE : if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category_'.$category_id.'.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/category_'.$category_id.'.tpl'; } elseif (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'; } /* Explanation : 1. The code will search spesific template based on it ID. ex: category_18.tpl. 2. If the spesific template is not available, Opencart will use the general template of active theme (category.tpl). 3. If the template of spesific theme is not available, Opencart will use template from default theme. */
- Load spesific stylesheet:
Code: Select all
// FIND : $this->document->setTitle($category_info['name']); // PUT BEFORE : if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/stylesheet/category_'.$category_id.'.css')) { $this->document->addStyle('catalog/view/theme/' . $this->config->get('config_template') . '/stylesheet/category_'.$category_id.'.css'); } /* Explanation : 1. The code will search spesific stylesheet based on it ID. ex: category_18.css. 2. If the spesific stylesheet available then load it, if not then do nothing. */
- Example of folder structure:
- stylesheet/
- stylesheet.css
category_18.css
product_17.css
information_3.css
- product/
- category.tpl
category_18.tpl
product_17.tpl
- category.tpl
- information/
- information.tpl
information_3.tpl
- information.tpl
- stylesheet.css
- stylesheet/
Note:
Since most user unable to reply this post, if you want to suggest think to improve this tutorial you can PM me. No Question Please!
Make new post on Support Forum if you have any question.