Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[Résolu] Differences entre smarty_cms_modifier et smarty_modifier
#1

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 Cool
#2

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 Smile
#3

Bonjour,
il faut nommer le modifier smarty_cms_modifier_monModifier et l'enregistrer dans le dossier plugins.
Page 104 du cookbook Smile

{SEO}
Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)
#4

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 Cool
#5

merci pour le partage Smile
#6

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.
#7

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.

J-C Etiemble v 2.2.xx
#8

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 Cool
Sujet fermé


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)