Probleme de saut de ligne

Petit nouveau ! | 3 Messages

14 mars 2006, 10:29

Bonjour;

J'ai fait un chat avec mychat php et j'ai un petit problème.

J'ai rajouté des smileys et je souhaite qu'ils apparaissent sur plusieurs lignes car actuellement il faut faire un scrolling horizontal monstrueux pour tous les afficher.

J'ai donc essayé plusieurs méthodes glanées ca et là sur le oueb pour essayer de résoudre ce problème hélàs sans succès.... je dois être neuneu .....

actuellement mon fichier smilies.lib.php3 ressemble à ca :
$SmiliesTbl = Array(
	
	":\)"	=> array("smile1.gif", "15", "15"),
	":D"	=> array("smile2.gif", "15", "15"),
	":o"	=> array("smile3.gif", "15", "15"),
	":\("	=> array("smile4.gif", "15", "15"),
	";\)"	=> array("smile5.gif", "15", "15"),
	":p"	=> array("smile6.gif", "15", "15"),
	"8\)"	=> array("smile7.gif", "15", "15"),
	":\["	=> array("smile8.gif", "15", "15"),
        ":mdr"	=> array("invision.gif", "35", "30"),
je voudrais savoir quelle commande il faut insérer entre 2 lignes descriptives des smileys pour qu'ils apparaissent sur 2 lignes et non sur une seule.

Ou bien faut il changer une variable à l'intérieur du fichier à un autre endroit.

Merci de vos réponses à mon inculture générale.

Mammouth du PHP | 19672 Messages

14 mars 2006, 10:30

Comment procèdes-tu actuellement pour les afficher ? Fais-donc voir le bout de code utilisé.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 3 Messages

14 mars 2006, 10:34

Ca doit ressember à ca du moins je suppose....
<?php
// Display smilies in the help popup and in the tutorials
function DisplaySmilies(&$ToDisplay,&$Table,&$TblSize,$Target)
{
	global $MaxWidth, $MaxHeight;

	$i = 0;
	$Str1 = "";
	$Str2 = "";
	$PerLines = floor(600/$MaxWidth);
	
	while(list($key, $prop) = each($Table))
	{
		$i++;
		if ($Target == "help") $Str1 .= "\t\t<TD ALIGN=\"CENTER\" WIDTH=$MaxWidth HEIGHT=$MaxHeight><A HREF=\"#\" onClick=\"smiley2Input('".SpecialSlash($key)."'); return false\"><IMG SRC=\"images/smilies/$prop[0]\" WIDTH=$prop[1] HEIGHT=$prop[2] BORDER=0 ALT=\"".str_replace("\"",""", stripslashes($key))."\"></A></TD>\n";
		else $Str1 .= "\t\t<TD ALIGN=CENTER WIDTH=$MaxWidth HEIGHT=$MaxHeight><IMG SRC=\"images/smilies/$prop[0]\" WIDTH=$prop[1] HEIGHT=$prop[2] BORDER=0 ALT=\"".str_replace("\"",""", stripslashes($key))."\"></TD>\n";
		$Str2 .= "\t\t<TD ALIGN=\"CENTER\" NOWRAP>".stripslashes($key)."</TD>\n";
		if (is_integer($i/$PerLines) || $i == $TblSize)
		{
			$ToDisplay[] = $Str1;
			$ToDisplay[] = $Str2;
			$Str1 = "";
			$Str2 = "";
		};
	};
};

?>

Mammouth du PHP | 19672 Messages

14 mars 2006, 10:58

Si je me fie à ce code, la largeur du résultat devra mesurer 600px de large (ou moins) : si ton pop-up mesure 200px de large, ça pose effectivement problème : essaye en modifiant le paramètre ici:
$PerLines = floor(600/$MaxWidth);
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 3 Messages

14 mars 2006, 11:19

j'ai testé en descendant progressivement la variable 600 jusqu'à 100 ca ne change rien. Par contre en dessous de 100 j'ai ce message d'erreur

Warning: Division by zero in /www/xxx/1/xxxxxxxx/t/u/xxxxxxx/site/chat/chat/lib/smilies.lib.php3