Messages : 50
Sujets : 8
Inscription : Sep 2011
Réputation :
0
12/10/2011, 23:59:23
(Modification du message : 16/01/2012, 14:06:00 par Bredt.)
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
Messages : 50
Sujets : 8
Inscription : Sep 2011
Réputation :
0
12/10/2011, 23:59:23
(Modification du message : 16/01/2012, 14:06:00 par Bredt.)
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
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
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
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
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
Messages : 5,034
Sujets : 63
Inscription : Oct 2009
Réputation :
0
Bonjour,
il faut nommer le modifier smarty_cms_modifier_monModifier et l'enregistrer dans le dossier plugins.
Page 104 du cookbook
Messages : 5,034
Sujets : 63
Inscription : Oct 2009
Réputation :
0
Bonjour,
il faut nommer le modifier smarty_cms_modifier_monModifier et l'enregistrer dans le dossier plugins.
Page 104 du cookbook
Messages : 50
Sujets : 8
Inscription : Sep 2011
Réputation :
0
13/10/2011, 17:32:16
(Modification du message : 13/10/2011, 17:45:37 par Bredt.)
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
Messages : 50
Sujets : 8
Inscription : Sep 2011
Réputation :
0
13/10/2011, 17:32:16
(Modification du message : 13/10/2011, 17:45:37 par Bredt.)
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
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
merci pour le partage
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
merci pour le partage
Messages : 746
Sujets : 9
Inscription : Nov 2007
Réputation :
0
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.
Messages : 746
Sujets : 9
Inscription : Nov 2007
Réputation :
0
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.
Messages : 10,987
Sujets : 230
Inscription : Sep 2007
Réputation :
1
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.
Messages : 10,987
Sujets : 230
Inscription : Sep 2007
Réputation :
1
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.
Messages : 50
Sujets : 8
Inscription : Sep 2011
Réputation :
0
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
Messages : 50
Sujets : 8
Inscription : Sep 2011
Réputation :
0
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
|