2011-05-01 112 views
0

是一種被稱爲在產品list.php的功能。

{mycat id_product_my=$product.id_product} 

在這種形式中,上面寫一條線,該variable($product.id_product)不傳遞給函數:

{$product.id_product} 

返回正確的結果作爲ID

{mycat id_product_my=15} 

收益權RESU作爲具有id(15)的產品的類別。

怎麼了?

--------------------------------------------

PHP本功能:

function smarty_compiler_mycat($params, &$smarty) { 

    $id_product_my = $params[‘id_product_my’]; 

    $ret = 「」; 

    if ($row = Db::getInstance(PS_USE_SQL_SLAVE)->ExecuteS(’ 
     SELECT cl.`name` FROM `’.DB_PREFIX.‘category_lang` cl 
     LEFT JOIN `’.DB_PREFIX.‘category_product` cp ON cl.`id_category` = cp.`id_category` 
     WHERE cp.`id_product` = ‘.(int)$id_product_my)) 
      foreach ($row as $val) { 
       $ret .= $val[‘name’].」 「; 
      } 

    return $ret; 
} 

回答

0

我不`噸知道,我明白糾正你的概率!

如果u要調用第三方物流文件中的函數u必須調用是這樣的:

{parameter1|functionName:parameter2:parameter3} 
+0

謝謝大家! 有必要更換smarty_function_mycat上的smarty_compiler_mycat。 – dazfx 2011-05-03 05:48:20

0

爲什麼是一個編譯器功能?只需將其設置爲常規運行時功能。將函數名稱更改爲smarty_function_mycat,保留相同的參數,將文件名更改爲function.mycat.php

作爲測試/調試的問題,您可以在函數內部var_dump($params)查看您通過的$product.id_product中的實際情況。