Reputation: 213
I'm using opencart v.1.5.1 and on the /catalog/view/theme/default/template/product/category.tpl
how do I write a condition like this:
If main current display is of a parent category:
show this image
else (if it's a subcategory display ):
show different image
because this is what i want to achieve:
on this site (parent category): http://www.guitarplayback.com/Jam-Tracks it's a banner image
on the subcategory : http://www.guitarplayback.com/Jam-Tracks/Ballad-Jam-Tracks it's an image with description on the right side
Upvotes: 0
Views: 1227
Reputation: 394
working on something similar. Hope it helps others, Got break some more code:
catalog\controller\product
$cat_array = explode ("_", $path);
$top_cat_id = $cat_array[0];
$cat_Image = $this->model_catalog_category->getCatImage($top_cat_id);
if ($cat_Image) {
//show this image
$this->data['image'] = $cat_Image['image'];
}
catalog\model\catalog
public function getCatImage($category_id) {
$query = $this->db->query("SELECT image FROM " . DB_PREFIX .
"category AS cat LEFT JOIN category AS cats ON cats.parent_id = cat.category_id WHERE cat.parent_id =0 AND cat.category_id = '" . (int)$category_id . "'");
return $query->row;
}
catalog\view\theme\default\template\product
<?php if ($image) { ?>
<div class="image"><img src="<?php echo $image; ?>" alt="<?php echo $heading_title; ?>" /></div>
<?php } else { ?>
<div class="image"><img src="<?php echo $OTHERimage; ?>" alt="<?php echo $heading_title; ?>" /></div>
<?php } ?>
Upvotes: 0
Reputation: 232
Not test this yet but this should work for you.
Try this on controller/product/category.php before $this->data['products'] = array();
$categories = $this->model_catalog_category->getCategories(0);
foreach ($categories as $category) {
if ($category['category_id'] == $category_id && $category['top']) {
$this->data['topCatImage'] = '1';
}
}
On category.tpl
if (isset($topCatImage)) {
show this image
} else {
show other image
}
Upvotes: 3