Forum CMS Made Simple FR

Version complète : [RESOLU]Problème boucle for dans balise utilisateur
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.9
#~ Url du site : localhost
#~ Hébergeur / Soft :
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.11.9
#~ Installed Modules:
#~ CMSMailer: 5.2.2
#~ CMSPrinting: 1.0.5
#~ FileManager: 1.4.3
#~ MenuManager: 1.8.6
#~ MicroTiny: 1.2.5
#~ ModuleManager: 1.5.5
#~ News: 2.13
#~ Search: 1.7.11
#~ ThemeManager: 1.1.8
#~ TinyMCE: 2.9.12
#~ CGExtensions: 1.38
#~ Showtime: 3.3
#~ Gallery: 1.6.1
#~ SelfRegistration: 1.8.1
#~ FrontEndUsers: 1.22.2
#~ CGSimpleSmarty: 1.7
#~ JQueryTools: 1.2.5
#~ Products: 2.20.1
#~ CGSmartImage: 1.14.1
#~ ExtendedTools: 1.3.3
#~ MleCMS: 1.11.4
#~ Liste: 0.1
#~ AdvancedContent: 0.9.4.3
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ max_upload_size: 250000000
#~ url_rewriting: mod_rewrite
#~ page_extension: .html
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale: en_EN.utf-8
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.3.13
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ E_DEPRECATED: 8192
#~ memory_limit: 128M
#~ max_execution_time: 1800
#~ output_buffering: 1
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 200M
#~ upload_max_filesize: 250M
#~ session_save_path: c:/wamp/tmp (0777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ Server Information:
#~ Server Api: apache2handler
#~ Server Db Type: MySQL (mysqli)
#~ Server Db Version: 5.5.24
#~ Server Db Grants: Trouvé un privilège "GRANT ALL" qui semble être adapté
#~ Server Time Diff: Aucune différence de date du système de fichiers trouvées
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~


Bonjour,

Je suis entrain de faire une balise utilisateur assez simple qui fait une boucle for voila la code

Code :
[== PHP ==]
$content = $params['content'];//url de mon image
$start = $params['start'];//début de la boucle
$end = $params['end'];//fin de la boucle

/* DEBUG */
$fin = (int)$end+1;
$fin = $fin-1;
if(is_int($fin)){
     echo 'is int'.$end.'--'.$fin;
}else{
     echo 'is not int'.$end.'--'.$fin;
}
/* FIN DEBUG */


$retour = '';
for($i=$start; $i<=$fin; $i++){
     $retour .= '<img src="'.$content.'" width="24" height="24" />';
}
echo $retour;

et l'appel dans mon gabarit

Code :
[== Indéfini ==]
{boucle content=$attrlist[at].icone start=0 end=$attrlist[at].key}

Mon problème est que le paramètre end qui un chiffre en chaine de caractère, lorsque je l'utilise dans ma boucle, n'est pas "considéré". Comme si ça valeur était à 0 alors que non. Lorsque j'affiche $end, dans la condition du DEBUG, $end est différent de 0 mais $fin, qui lui est un entier, est à 0.

J'ai essayé différentes fonction pour modifier le type de ma variable : intval(), (int), settype().
Toutes ces fonctions mette bien ma variable comme entier mais me la passe à 0.
J'ai également essayé d'utiliser directement $params['end'] dans ma boucle, mais le résultat est le même.

Sur php.net dans le manuel pour la fonction intval Valeur de retour il est marqué ceci :
Citation :Une valeur de type entier de var en cas de succès ou 0 en cas d'échec.

Apparemment il y a un échec mais pourquoi ?

Si vous avez une idée ou une solution.

Cordialement

bobjo
change end en autre chose comme end2, est-ce que ça passe mieux ? (au cas ou end était un mot réservé, je pense pas mais bon...)

si tu fais ce code au début de ton UDT ca donne quoi ?

die(print_r($params));
Merci encore une fois bess pour ta réponse.

J'ai mis die(print_r($params)); et j'ai vu que end ne contenais pas une valeur mais une balise smarty qui appel un paramètre.

Donc c'est bon je vais pouvoir me débrouiller.

PS : Je vais essayé de penser à mettre die(print_r($params)); avant de poster sur le forum.

Encore merci

Cordialement

bobjo
Wink
bonjour,
il y a aussi debug_display($param)...c'est la même chose que <pre>print_r($param)</pre>...c'est pour les fainéants quoi :p