论坛风格切换
  • 4099阅读
  • 1回复

zen_has_product_attributes 函数解析 [复制链接]

上一主题 下一主题
ben
 

发帖
119
大洋
5222
贡献值
91
只看楼主 正序阅读 使用道具 楼主  发表于: 2011-08-06

zen_has_product_attributes($products_id, $not_readonly = 'true') 
该函数主要检查一个指定ID的商品是否有属性。如果商品的属性为只读时,并且PRODUCTS_OPTIONS_TYPE_READONLY_IGNORED属性设置为显示(1)--该值可在后台管理-配置信息-属性设置-只读选项类型 - 忽略添加到购物车中设置,那么该属性就添加到购物车中,否则就忽略该属性。 
主要查询了 products_attributes和products_options 表。在includes/database_tables.php中定义: 
define('TABLE_PRODUCTS_ATTRIBUTES', DB_PREFIX . 'products_attributes'); 
define('TABLE_PRODUCTS_OPTIONS', DB_PREFIX . 'products_options'); 
*/ 

  1. function zen_has_product_attributes($products_id, $not_readonly = 'true') {
  2.     global $db;
  3.     if (PRODUCTS_OPTIONS_TYPE_READONLY_IGNORED == '1' and $not_readonly == 'true') {
  4.       // don't include READONLY attributes to determin if attributes must be selected to add to cart
  5.       $attributes_query = "select pa.products_attributes_id
  6.                            from " . TABLE_PRODUCTS_ATTRIBUTES . " pa left join " . TABLE_PRODUCTS_OPTIONS . " po on pa.options_id = po.products_options_id
  7.                            where pa.products_id = '" . (int)$products_id . "' and po.products_options_type != '" . PRODUCTS_OPTIONS_TYPE_READONLY . "' limit 1";
  8.     } else {
  9.       // regardless of READONLY attributes no add to cart buttons
  10.       $attributes_query = "select pa.products_attributes_id
  11.                            from " . TABLE_PRODUCTS_ATTRIBUTES . " pa
  12.                            where pa.products_id = '" . (int)$products_id . "' limit 1";
  13.     }
  14.     $attributes = $db->Execute($attributes_query);
  15.     if ($attributes->recordCount() > 0 && $attributes->fields['products_attributes_id'] > 0) {
  16.       return true;
  17.     } else {
  18.       return false;
  19.     }
  20.   }
 

欢迎来到zen-cart论坛,这里将是你迈进zen-cart世界的起点
有问题到求助版块提问。
发帖
53
大洋
105
贡献值
1
只看该作者 沙发  发表于: 2012-03-12

学习

快速回复
限80 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容(---删除纯表情和无意义内容,扣1分---)
 
上一个 下一个