Prestashop 1.6 product_list:获取附加属性组合的数量
Prestashop 1.6 product_list: get number of attached attribute combinations
我正在构建我的第一个 prestashop。我有几个产品的属性组合会影响价格。在列表视图中,我想检测产品是否附加了多个组合,以便在价格前显示 'from'。
我无法找到一种方法来访问 product_list.tpl 中与属性或组合相关的任何内容。
我在 product.php 中找到了一个可能适合我想要实现的功能。
public function hasAttributes()
{
if (!Combination::isFeatureActive())
return 0;
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT COUNT(*)
FROM `'._DB_PREFIX_.'product_attribute` pa
'.Shop::addSqlAssociation('product_attribute', 'pa').'
WHERE pa.`id_product` = '.(int)$this->id
);
}
从 product_list.tpl 我可以访问产品 class 中的其他内容,例如'features' 我希望以类似的方式获取属性。
我唯一能找到 'features' 被声明为变量的地方是在产品控制器中,作为此数组的一部分:
$this->context->smarty->assign(array( ...
所以我认为这是可行的方法,添加一个变量并指向产品中所需的功能 class。但无论我在这里输入什么,它都行不通。我究竟做错了什么?这是正确的方法吗?
提前致谢。
您可以在 rhum-martinique.de
查看网站
您可以使用方法 ProductCore::getAttributeCombinaisons
并使用 count
函数检查其结果
将此函数添加到文件中/config/config.inc.php
function count_product_combinations($id_product)
{
$product = new Product($id_product);
return count($product->getAttributeCombinaisons(Context::getContext()->language->id));
}
将此代码添加到您的 tpl 文件中:
{if count_product_combinations($product.id_product) > 1}
<span class="price-prefix">{l s='From'}</span>
{/if}
我正在构建我的第一个 prestashop。我有几个产品的属性组合会影响价格。在列表视图中,我想检测产品是否附加了多个组合,以便在价格前显示 'from'。
我无法找到一种方法来访问 product_list.tpl 中与属性或组合相关的任何内容。 我在 product.php 中找到了一个可能适合我想要实现的功能。
public function hasAttributes()
{
if (!Combination::isFeatureActive())
return 0;
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT COUNT(*)
FROM `'._DB_PREFIX_.'product_attribute` pa
'.Shop::addSqlAssociation('product_attribute', 'pa').'
WHERE pa.`id_product` = '.(int)$this->id
);
}
从 product_list.tpl 我可以访问产品 class 中的其他内容,例如'features' 我希望以类似的方式获取属性。
我唯一能找到 'features' 被声明为变量的地方是在产品控制器中,作为此数组的一部分:
$this->context->smarty->assign(array( ...
所以我认为这是可行的方法,添加一个变量并指向产品中所需的功能 class。但无论我在这里输入什么,它都行不通。我究竟做错了什么?这是正确的方法吗?
提前致谢。
您可以在 rhum-martinique.de
查看网站您可以使用方法 ProductCore::getAttributeCombinaisons
并使用 count
函数检查其结果
将此函数添加到文件中/config/config.inc.php
function count_product_combinations($id_product)
{
$product = new Product($id_product);
return count($product->getAttributeCombinaisons(Context::getContext()->language->id));
}
将此代码添加到您的 tpl 文件中:
{if count_product_combinations($product.id_product) > 1}
<span class="price-prefix">{l s='From'}</span>
{/if}