Note :


Le module DEFUNC propose plusieurs fonctions pour manipuler des "macros".

Il offre les fonctions suivantes:

Astuce :


defunc

La fonction ~defunc() permet de déclarer une fonction "macro".

Elle prend 2 arguments :

Exemple :

~defunc('fonction',~get('valeur'))

Appel d'une macro

L'appel d'une macro se fait exactement de la même manière que pour n'importe quelle autre fonction Templeet. Il suffit de mettre un tilde devant et de passer les paramètres entre parenthèses.

Exemple :

~set("result",~fonction())

sparam

La fonction ~sparam() permet de récupérer les paramètres donnés à une "macro".

Elle accepte un seul paramètre :

Exemple :

~defunc('cherche',~preg("~sparam(1)","~sparam(2)"))

~cherche("abc","abcdef")

~sparam(1) va prendre alors la valeur "abc", et ~sparam(2) "abcdef".
Le résultat sera donc : ~preg("abc","abcdef")

Astuce

"Définir la valeur de retour d'une fonction" :

Prenons le cas suivant : je souhaite qu'une fonction effectue un certain traitement et renvoie le résultat.

Exemple de script qui ne marche pas !

	~defunc("mafonction",
		'~rem(' 
			~set("a", )
			~set("b", )
			~set("res", ~plus(, ~get("b")))
		')~array(
			"a"=>~get("a"),
			"b"=>~get("b"),
			"res"=>~get("res")
		)'
	)
	
	~print_r(
		~mafonction(3, 7)
	)

Le rendu de ce script est :

	
	
	Array
		

En effet, ce script ne renvoie pas le tableau, mais une chaîne de caractères qui contient "Array".

Pour que la fonction renvoie un tableau, il faut utiliser un bloc "Accolade", comme dans l'exemple suivant :

	~defunc("mafonction", 
		{
		~set("a", ),
		~set("b", ),
		~set("res", ~plus(3, ~get("b"))),
		~array(
			"a"=>~get("a"),
			"b"=>~get("b"),
			"res"=>~get("res")
		)
		}
	)
	
	~print_r(
		~mafonction(3, 7)
	)

Le rendu de ce script est :

	
	
	Array
(
    [a] => 3
    [b] => 7
    [res] => 10
)