2011-05-01 58 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中的实际情况。