2014-04-11 49 views
0

我是PRESTASHOP/SMARTY環境中的一種新手,但我需要支持一些陷入困境的朋友。幾個小時後,我決定問你。從SMARTY模板訪問PRESTASHOP 1.6 PHP類(即產品)

訪問PRESTASHOP類(/類)是否有任何特殊性或標準過程,即來自SMARTY默認模板的Product.php?這個環境中有什麼範圍問題?

我發現我需要使用$ smarty.const才能訪問prestashop常量......但沒有線索才能訪問已定義的類。

我知道我們werent在模板視圖中提供了這樣的功能。但它是遺留代碼。任何漫步?

預先感謝您。

+0

您能否介紹一下您想在模板中使用哪些數據的更多細節? –

+0

例如,我想訪問類別/產品類。一個具體的用例可能是確定給定類別的所有祖先。現在我正在做一個糟糕的數據庫查詢,我寧願使用PRESTASHOP API – Perrolobo

回答

2

我建議你專注於調用smarty模板的控制器或模塊。在那裏,你可以使用類來獲得您想要的信息,然後它$this->context->smarty->assign()數組中傳遞給Smarty作爲一個獨立的變量:

$this->context->smarty->assign(array(
     'category' => $this->category, 
     //OTHER VARIABLES 
     'ancestors' => $ancestors 
) 

或修改現有的:

$this->category['ancestors'] = $ancestors; 
$this->context->smarty->assign(array(
     'category' => $this->category, 
     //OTHER VARIABLES 
) 
-1

您可以直接訪問靜態方法和字段在Smarty中的類,如

<a href="{Tools::getShopDomain()}"> {Tools::$round_mode} </a> 

以上是非常粗略的例子,只是顯示如何做到這一點。