2017-04-17 5 views
0

créé un plugin smarty simple ci-dessous le codeErreur lors de l'appel d'une fonction plug-in Smarty du fichier tpl

/* 
* Smarty plugin 
* ------------------------------------------------------------- 
* File:  function.assignmenu.php 
* Type:  function 
* Name:  assign 
* Purpose: assign a value to a template variable 
* ------------------------------------------------------------- 
*/ 
functionality-to-smarty-w-plugins/ 

function smarty_function_assignmenu(Smarty_Internal_Template $smarty) 
{ 
    //$template->assign($params['var'], $params['value']); 
    $smarty->assign('test', '123'); 
} 

Et cette fonction appelée à partir du fichier de modèle comme {assignmenu} {Test}

Bien que accéder à la page, il retourne l'erreur suivante Argument 1 passé à smarty_function_assignmenu() doit être une instance de Smarty_Internal_Template, tableau donné, appelé dans /var/www/myproject/runtime/Smarty/compile/cda404646b2153274a9e77f736531c5dc7e6f91c_0.file.sample.tpl .php sur la ligne 31 et d J'utilise smarty 3 avec yii2. Toute aide est appréciée

Répondre

0

La fonction Smarty plugin attend un tableau comme premier paramètre. Ainsi, la définition devrait être

function smarty_function_assignmenu($paramArray,Smarty_Internal_Template $smarty) 
{ 

    $smarty->assign('test', '123'); 
} 

Même s'il n'y a pas de paramètres à passer, la définition de la fonction doit contenir un tableau comme premier paramètre.