Voici un exemple concret de hack transform en plugin smarty.

Afficher le nombre de visiteur par module dans le block "qui est en ligne".
Vous pouvez voir son fonctionnement sur mon site : http://www.dugris.info

Pour lutilisation de ce plugin, il est ncessaire de corriger une partie du code de la fonction permettant l'affichage du block  "qui est en ligne" :

1) Dans le fichier /modules/system/blocks/system_blocks.php

Remplacer la ligne 51

[code]
        $online_handler->write($uid, $uname, time(), 0, $_SERVER['REMOTE_ADDR']);
[/code]

par
[code]
        $online_handler->write($uid, $uname, time(), 1, $_SERVER['REMOTE_ADDR']);
[/code]

Car aucun module ne porte lID "0", "1" correspond au module system


2) Pour mettre le plugin en adquation avec le plugin smarty

Dans le fichier /modules/system/blocks/system_blocks.php

Modifier la ligne 39
[code]
        $online_handler->gc(300); 
[/code]

par
[code]
        $online_handler->gc(60); 
[/code]

3) Ensuite pour un affichage simple du nombre de visiteur par module :
Ajouter dans le fichier /modules/system/templates/blocks/system_block_online.html
[code]
<{OnlineByModule}>
[/code]

Les paramtres de configuration :

3.1.) Limiter le nombre de caractre  afficher pour le nom du module
[code]
<{OnlineByModule length=25}>
[/code]

3.2.) Limiter laffichage  une liste de module 
La liste des modules correspond au nom des dossiers des modules
[code]
<{xoMemberInfo modules="news|mydownload"}>
[/code]

3.3.) Rcuprer le rsultat dans une variable smarty pour traiter celle-ci dans le template
[code]
<{xoMemberInfo assign=onlinebymodule}>

foreach ($onlinebymodule as $bymodule ) {
	echo $bymodule [module] ;			// retourne le nom du module
	echo $bymodule [counter] ;			// retourne nombre de visiteur du module
}
[/code]


Vous pouvez bien videment cumul les paramtres !

Par exemple : nombre de caractre limit  15 pour les modules news, mydownload, edito, formulaire
[code]
<{OnlineByModule length=15 modules="news|mydownload|formulaire|edito}>
 [/code]

Pour rcuprer les mmes paramtre dans la variable infoenligne
[code]
<{OnlineByModule length=15 modules="news|mydownload|formulaire|edito assign=infoenligne}>
[/code]

