Fonctions de blocs

void smarty_block_name( $params,  
  $content,  
  &$smarty);  
array $params;
mixed $content;
object &$smarty;
 

Les fonctions de blocs sont des fonctions de la forme {func} .. {/func}. En d'autres mots, elles englobent des blocs de template et opèrent sur les contenus de ces blocs. Les fonctions de blocs ont la priorité sur les fonctions utilisateurs de même nom, ce qui signifie que vous ne pouvez avoir une fonction utilisateur {func} et une fonction de bloc {func}..{/func}.

Si vous imbriqué des fonctions de bloc, il est possible de connaître la fonction de bloc parente grâce à la variable $smarty->_tag_stack. Faîtes un var_dump() dessus et la structure devrait apparaître.

Example 16.5. Fonction de bloc

   
<?php
/*
* Smarty plugin
* -------------------------------------------------------------
* Fichier :  block.translate.php
* Type :     bloc
* Nom :      translate
* Rôle :     traduire un bloc de texte
* -------------------------------------------------------------
*/
function smarty_block_translate($params, $content, &$smarty, &$repeat)
{
   // n'affiche que lors de la balise fermante
   if(!$repeat){
      if (isset($content)) {
         $lang = $params['lang'];
         // effectuer une bonne traduction ici avec $content
         return $translation;
      }
   }
}
?>

  

Voir aussi : register_block() et unregister_block().