[Résolu] Differences entre smarty_cms_modifier et smarty_modifier -
Bredt - 12/10/2011
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.9.4.3
#~ Url du site : localhost
#~ Hébergeur / Soft : moi
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Bonjour,
Je me suis fait un petit modifier smarty pour trier les tableaux multidimensionnels avec comme paramètre la clé des sous-tableaux sur laquelle le tri est fait.
par exemple avec comme tableau :
Code :
$foo= array (0 => array ( "a" => "Paris",
"b" => 20,
"c" => 75
),
1 => array ( "a" => "Marseille",
"b" => 16,
"c" => 13
),
2 => array ( "a" => "Lyon",
"b" => 9,
"c" => 69
)
);
En utilisant le modifier smarty comme suit on tri le tableau sur la clé "a" :
Code :
$foo|@sort_multidim_array:"a"
Tout fonctionne très bien, mais je me pose quelques questions :
- est-ce que c'est un smarty_cms_modifier ou un smatry_modifier ?
(vu que je ne fais pas une seconde référence au cms, je penche pour un smatry_modifier)
- je le colle ou ce modifier ? dans lib/smarty/plugins ou dans plugins ?
(je le collerais bien direct dans plugins)
Si vous avez un avis ... je suis preneur.
Bredt
[Résolu] Differences entre smarty_cms_modifier et smarty_modifier -
bess - 13/10/2011
je ne suis pas expert Smarty / Plugin mais de mémoire je pencherais sur son intégration dans les plugins pour te faciliter son utilisation.
ouvre des plugins existant et regarde comment ils sont fait. Te reste à dupliquer pour ton code et à le claquer dans le répertoire plugin
[Résolu] Differences entre smarty_cms_modifier et smarty_modifier -
jissey - 13/10/2011
Bonjour,
il faut nommer le modifier smarty_cms_modifier_monModifier et l'enregistrer dans le dossier plugins.
Page 104 du cookbook
[Résolu] Differences entre smarty_cms_modifier et smarty_modifier -
Bredt - 13/10/2011
Ok !
>Bess
En fait qu'il soit dans /plugins ou dans /lib/smarty/plugins, ça fonctionne ! Je pose la question plus pour respecter la "convention" (si il y en a une)
>Jissey
J'avais pas pensé à mater ce livre !
Finalement, je transforme mon smarty_modifier en smarty_cms_modifier et je le colle dans /plugins !!!
Si ça peut servir a quelqu'un voici le code :
modifier.cms_sort_multidim_array.php
Code :
<?php
/**
* Smarty plugin
*/
/**
* Smarty sort_multidim_array modifier plugin
*
* Type: modifier<br>
* Name: sort_multidim_array<br>
* Purpose: sort multidimentional array
* @link
* @author Bredt
* @param array
* @param string
* @return array
*/
function smarty_cms_modifier_cms_sort_multidim_array($array, $sub_var_name='')
{
$cmp = create_function('$a,$b', 'return $a["'.$sub_var_name.'"]>$b["'.$sub_var_name.'"];');
usort($array, $cmp);
return $array;
}
?>
Bredt
[Résolu] Differences entre smarty_cms_modifier et smarty_modifier -
bess - 13/10/2011
merci pour le partage
[Résolu] Differences entre smarty_cms_modifier et smarty_modifier -
kraygoon - 13/10/2011
S'il devait y avoir convention, que pensez-vous du fait qu'un fonction smarty_cms_modifier s'attache à intervenir sur un problème spécifique à CMSMS (fonction pour les feuilles de styles de CMSMS, fonction dépendante d'autres fonctions de CMSMS ou de la structure de la BDD.
Là où un smarty_modifier pourrait resservir sur d'autres projets (autres que CMSMS) en copiant simplement le fichier.
Je dis ça, c'est juste ce que ça m'évoque, pas nécessairement l'idée de base de CMSMS.
[Résolu] Differences entre smarty_cms_modifier et smarty_modifier -
jce76350 - 13/10/2011
Citation :En fait qu'il soit dans /plugins ou dans /lib/smarty/plugins
pour un plugin Smarty il faut par convention le mettre dans /lib/smarty/plugins
attention actuellement CMSms utilise Smarty 2 alors qu'on est déjà en version 3.13 (PHP 5.2+) et il y a des différences en particulier le structure des dossiers
- /sysplugins remplace /internals
et des différences de codage
La version 2 n'évolue plus.
[Résolu] Differences entre smarty_cms_modifier et smarty_modifier -
Bredt - 13/01/2012
Salut,
Après réflexion, je pense que kraygoon a raison :
- smarty_cms_modifier : quand on tripote CMSMS
- smarty_modifier : quand on tripote autre chose
Bredt