8795 sujets

Développement web côté serveur, CMS

Comme beaucoup de personnes sur le forum, j'ai des soucis de compatibilité pour mon menu déroulant FF, IE7, IE6 ...
j'ai donc creer 2 feuilles de style : transmenuv.css pour la plupart des navigateurs et transmenuv2.css pour IE6 et IE5.
je compte donc utiliser une syntaxe de commentaire conditionnel pour IE.
<!--[if lte IE 6]>
<link href=".../css/transmenuv2.css" rel="stylesheet" type="text/css" />
<![ endif]-->

seulement je ne sais comment insérer ce code ...

dans le fichier transmenu.php il y a ces lignes de code :
function beginMenu(){
		if ($this->getParam('menu_style') == 'vertical')
			$cssfile = "transmenuv.css";
		else
			$cssfile = "transmenuh.css";
		echo '
			<link rel="stylesheet" type="text/css" href="',$this->getParam('LSPath'),'/',$cssfile,'">
			<script language="javascript" src="',$this->getParam('LSPath'),'/transmenu.js"></script>
		';


j'ai essayé d'integrer la syntaxe, mais ca a créé des erreurs, alors je prefaire demandé aux pros Smiley langue
Modifié par richo (23 Sep 2007 - 19:06)
Hello comme qui dirait, le mieux c d'essayer
Pourquoi pas :
function beginMenu(){
		if ($this->getParam('menu_style') == 'vertical')
			$cssfile = "transmenuv.css";
                        $cssfileIE6="transmenuv2.css";
		else
			$cssfile = "transmenuh.css";
                        $cssfileIE6="transmenuh2.css";
echo '<link rel="stylesheet" type="text/css" 
href="',$this->getParam('LSPath'),'/',$cssfile,'">

<!--[if lte IE 6]>
<link href=',$this->getParam('LSPath'),'/',$cssfileIE6,"
 rel="stylesheet" type="text/css" />
<![ endif]-->

<script language="javascript" src="',$this->getParam('LSPath'),'/transmenu.js">
</script>';

Bon courage
Salut Gael,
Merci de ton aide, alors j'ai fais un copier collé de ce que tu as mis, sans trop vraiment comprendre le pourquoi du parce que.
Mais malheureusement cela a provoque un message d'erreur :
"Parse error: syntax error, unexpected T_ELSE" Smiley sweatdrop

théoriquement on devrai reussir non ?
Salut julien,
merci de ta participation,
je veux bien rajouter les accolades, mais je ne sais pas où exactement (tres mauvais niveau en php) lol
pourrais tu réécrire le code avec les modifs ??
Merci Smiley smile
xcuse g plus trop le temps de venir sur le forum Smiley bawling

j'avais fait une petite faute d'inatention en recopiant ton code. Il manque effectivement les accolades
function beginMenu(){

		if ($this->getParam('menu_style') == 'vertical') {

			$cssfile = "transmenuv.css";

                        $cssfileIE6="transmenuv2.css"; }

		else   {

			$cssfile = "transmenuh.css";

                        $cssfileIE6="transmenuh2.css";}

echo '<link rel="stylesheet" type="text/css" 

href="',$this->getParam('LSPath'),'/',$cssfile,'">

<!--[if lte IE 6]>

<link href=',$this->getParam('LSPath'),'/',$cssfileIE6,"

 rel="stylesheet" type="text/css" />

<![ endif]-->

<script language="javascript" src="',$this->getParam('LSPath'),'/transmenu.js">

</script>';

comme ça sa devrait mieux marcher

a +
salut Gael,
merci d'avoir corigé la ptite erreur de accolades.
malgret ca, cela provoque encore une erreur a la ligne où il y a
rel="stylesheet" type="text/css" />
Smiley confus

Mais ca m'enerve car je n'arrive pas a comprendre le php, il faut absolument que je m'y mette ca ne peu plus durer lol.

Finalement j'ai fais un truc beaucoup plus simple qui marche dans tous les navigateurs, meme si il y a un gros bug avec FF, (un carré gris) en plein milieu.
j'ai reussi a le localiser et a l'enlever avec firebug, mais impossible de retrouver la ligne de code dans mon site. meme si je penses qu'il est dans le fichier .js
dans le html il y a : class="shadowRight"
et en css : element.style {
....}

je met le lien du site, et le fichier .js, si vous arrivez a enlever la class shadow, sans provoquer d'erreurs, ca serai super cool Smiley biggrin
Modifié par richo (28 Sep 2007 - 01:27)