Afficher les smileys dans 3 div
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
Actuellement, j'affiche une partie des smileys dans un div au-dessus du champ d'édition dans le forum.
J'utilise la fonction suivante pour ce faire :
Code PHP :
$Cache->load('smileys'); $smile_max = 60; //Nombre de smiley maximum par div $smile_by_line = 30; //Nombre maximum de smiley par ligne. $height_max = 50; $width_max = 50; $nbr_smile = count($_array_smiley_code); $i = 1; $z = 0; foreach ($_array_smiley_code as $code_smile => $url_smile) { if ($z == $smile_max) { $z++; break; } $width_source = 16; //Valeur par défaut. $height_source = 16; // On recupère la hauteur et la largeur de l'image. list($width_source, $height_source) = @getimagesize(PATH_TO_ROOT . '/images/smileys/' . $url_smile); if ($width_source > $width_max || $height_source > $height_max) { if ($width_source > $height_source) { $ratio = $width_source / $height_source; $width = $width_max; $height = $width / $ratio; } else { $ratio = $height_source / $width_source; $height = $height_max; $width = $height / $ratio; } } else { $width = $width_source; $height = $height_source; } $img = '<img src="' . TPL_PATH_TO_ROOT . '/images/smileys/' . $url_smile . '" height="' . $height . '" width="' . $width . '" alt="' . $code_smile . '" title="' . $code_smile . '" />'; $Template->assign_block_vars('smiley', array( 'IMG' => $img, 'CODE' => addslashes($code_smile), 'END_LINE' => $i % $smile_by_line == 0 ? ' ' : '' )); $i++; $z++; } if ($z > $smile_max) //Lien vers tous les smiley! { $Template->assign_vars(array( 'C_BBCODE_SMILEY_MORE' => true, 'L_ALL_SMILEY' => $LANG['all_smiley'], 'L_SMILEY' => $LANG['smiley'] )); }
Je regarde ce code et je ne sais trop comment m'y prendre. Comment puis-je afficher ces smileys dans 3 div différents ? Si je fait un truc du genre, ça fonctionnera ?
Code PHP :
$Template->assign_block_vars('smiley', array( 'IMG_1' => $i <= 60 ? => $img : '', 'IMG_2' => $i <= 120 ? => $img : '', 'IMG_3' => $i <= 161 ? => $img : '', 'CODE' => addslashes($code_smile), 'END_LINE' => $i % $smile_by_line == 0 ? ' ' : '' ));
Je ne suis pas sûr que la variable CODE sera ok dans ce cas. Bref, je ne suis pas sûr que je peux faire ça de cette manière.
Serait-ce mieux ainsi ?
Code PHP :
... if ($i <= 60) { $Template->assign_block_vars('smiley', array( 'IMG_1' => $img, 'CODE_1' => addslashes($code_smile), 'END_LINE_1' => $i % $smile_by_line == 0 ? ' ' : '' )); } elseif ($i <= 120) { $Template->assign_block_vars('smiley', array( 'IMG_2' => $img, 'CODE_2' => addslashes($code_smile), 'END_LINE_2' => $i % $smile_by_line == 0 ? ' ' : '' )); } else { $Template->assign_block_vars('smiley', array( 'IMG_3' => $img, 'CODE_3' => addslashes($code_smile), 'END_LINE_3' => $i % $smile_by_line == 0 ? ' ' : '' )); } ...
Merci de m'éclairer ou de suggérer plus efficace.
Édité par DaaX Le 16/06/2011 à 16h45
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Code PHP :
$Template->assign_block_vars('smiley_1', array( 'IMG' => $img, 'CODE' => addslashes($code_smile), 'END_LINE' => $i % $smile_by_line == 0 ? '<br />' : '' )); //etc ...
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
donc je donne smiley_1, smiley_2, etc.
Ah oui, j'avais oubliez que je pouvais le faire comme ça. Ça permet de garder le même nom des variables.
Merci ReidLos.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie