If I am trying to add a php statement on my product page template that looks like this:
<?php if (Product Has Parent Category = 146) {
// Do this
} elseif (Product Has Parent Category = 130) {
// Do this
} else {
// Do this } ?>
Ofcourse this isnt the code, but how would I do this? Im basically trying to get the parent category that the subcategory is in. Any help would be greatly appreciated. Thanks!
UPDATE:
Each product is placed in multiple categories.. So I should have an array of Parent categories. Here is the database structure that I found for this.
product_to_category
product_id | category_id
category
category_id | parent_id | ...
In catalog/controller/product/product.php
find
$this->load->model('catalog/product');
//this will load product model
add after
$cat_info = $this->model_catalog_product->getCategories($this->request->get['product_id']);
// this will give all the category of product
foreach($cat_info as $cat_id){
$cat = $this->model_catalog_category->getParentCategories($cat_id['category_id']);
//this will give the parent category
if(!empty($cat)){
foreach($cat as $ids){
$this->data['path_id'][] = $ids['path_id'];
}
}
}
In catalog/model/catalog/category.php
add
public function getParentCategories($category_id) {
$query = $this->db->query("SELECT path_id FROM " . DB_PREFIX . "category_path WHERE category_id = '" . (int)$category_id . "' AND '" . (int)$category_id . "'!=path_id");
return $query->rows;
}
now in product.tpl
<?php
if(in_array(20,$path_id)){
echo 'exists';
}else{
echo 'not exists';
}
?>
I was able to figure it out. I wrote this code and am using it on my product.tpl
.
<?php
$current_product_id = "SELECT `product_id`,`category_id` FROM `oc_product_to_category` WHERE `product_id`='$product_id' ";
$current_product_ids = mysql_query($current_product_id);
$current_product_cat_ids='';
while($current_product_cat_id = mysql_fetch_array($current_product_ids)){
$current_product_cat_ids.=$current_product_cat_id['category_id'].',';
}
$parent_cat_path = mysql_query("SELECT `category_id`,`path_id` FROM `oc_category_path` WHERE `category_id` IN (" . rtrim($current_product_cat_ids, ',') . ")");
$parent_cat_id_array='';
while ($parent_cat_paths = mysql_fetch_array($parent_cat_path)) {
$parent_cat_id_array.=$parent_cat_paths['path_id'].',';
}
$parent_cat_id_array_str = implode(',',array_unique(explode(',', $parent_cat_id_array)));
if (strpos($parent_cat_id_array_str,'132') !== false) {
// Do This Here
} else {
//Do This Here
} ?>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.