2015-06-06 29 views
0

我正在構建我的第一個prestashop。我有一些產品具有影響價格的屬性組合。在列表視圖中,我想檢測一個產品是否附加了多個組合,以便在價格之前顯示「發件人」。Prestashop 1.6 product_list:獲取附加屬性組合的編號

我一直無法找到訪問與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我可以訪問產品類中的其他東西,例如, '功能',我希望以類似的方式獲得屬性。
我能找到的唯一的地方「功能」被宣佈爲一個變量是在產品的控制,因爲這種陣列的一部分:

$this->context->smarty->assign(array(... 

所以我認爲這是走了,一個變量,點添加到路產品類別內的所需功能。但無論我在這裏輸入什麼內容,都無法解決問題。我究竟做錯了什麼?這是否是正確的方法?

在此先感謝。

您可以在rhum-martinique.de

回答

0

瀏覽網站,你可以使用的方法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} 
+0

感謝您的反饋。我已經用hasAttributes嘗試過類似的東西,但沒有骰子。不幸的是你的解決方案也沒有工作:致命錯誤:調用一個非對象的成員函數getAttributeCombinaisons() – Boris

+0

你可以在pastebin中發佈tpl代碼嗎? – UnLoCo

+0

發表:[product_list.tpl](http://pastebin.com/srUs7QnQ)。您的代碼段位於105行,目前已註釋掉。 – Boris