Page 1 sur 1

Probleme de saut de ligne

Posté : 14 mars 2006, 10:29
par Árpád
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.

Posté : 14 mars 2006, 10:30
par Cyrano
Comment procèdes-tu actuellement pour les afficher ? Fais-donc voir le bout de code utilisé.

Posté : 14 mars 2006, 10:34
par Árpád
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 = "";
		};
	};
};

?>

Posté : 14 mars 2006, 10:58
par Cyrano
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);

Posté : 14 mars 2006, 11:19
par Árpád
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