如果我想在我的产品页面模板上添加一个如下所示的php语句:
<?php if (Product Has Parent Category = 146) {
// Do this
} elseif (Product Has Parent Category = 130) {
// Do this
} else {
// Do this } ?>
当然这不是代码,但我该怎么做?我基本上试图获得子类别所在的父类别。任何帮助将不胜感激。谢谢!
更新:
每个产品都分为多个类别。所以我应该有一个父类别数组。这是我为此找到的数据库结构。
product_to_category
product_id | category_id
类别
category_id | parent_id | ...
答案 0 :(得分:1)
在catalog/controller/product/product.php
发现
$this->load->model('catalog/product');
//this will load product model
后添加
$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'];
}
}
}
在catalog/model/catalog/category.php
添加
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;
}
现在在product.tpl
<?php
if(in_array(20,$path_id)){
echo 'exists';
}else{
echo 'not exists';
}
?>
答案 1 :(得分:0)
我能够弄清楚。我写了这段代码,并在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
} ?>