Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[Résolu] Probleme javascript sur rollover
#1

Bonjour à tous,

Il m'arrive un truc curieux avec la balise {literal}.

J'ai une portion de script que j'ai inclus dans le gabarit grâce à cette balise (un script de rollover sur image). Lorsque je lance la page où j'ai besoin de ce script, je tombe sur une erreur :
Code :
string(118) "Smarty error: [in tpl_head:22 line 39]: syntax error: unrecognized tag 'literal' (Smarty_Compiler.class.php, line 590)" string(336) "Smarty error: [in tpl_head:22 line 42]: syntax error: unrecognized tag: //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p); (Smarty_Compiler.class.php, line 446)" string(111) "Smarty error: [in tpl_head:22 line 56]: syntax error: unrecognized tag '' (Smarty_Compiler.class.php, line 590)" string(118) "Smarty error: [in tpl_head:22 line 64]: syntax error: unrecognized tag 'literal' (Smarty_Compiler.class.php, line 590)"

Là où c'est très curieux c'est que ce script dans une page html classique (hors cmsms) fonctionne très bien. Et là où c'est vraiment bizarre c'est que ce même script, sur un site avec une version 1.1.3.1, fonctionne très bien.

Vous auriez une piste ?

Lien où ça fonctionne pas (une autre curiosité, le message d'erreur ne s'affiche plus maintenant) :
http://www.procitea.com/web/

Lien où ça fonctionne (j'ai juste mis une seule image pour le rollover):
http://www.tinaserres.com/web1/index.php...t-rollover


Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.8.1
#~ Nom de l'hébergeur : 1 and 1
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.8.1
#~ Installed Modules:
#~ * CMSMailer: 2.0
#~ * FileManager: 1.0.2
#~ * MenuManager: 1.6.5
#~ * ModuleManager: 1.4
#~ * News: 2.10.6
#~ * nuSOAP: 1.0.1
#~ * Printing: 1.1.0
#~ * Search: 1.6.5
#~ * ThemeManager: 1.1.1
#~ * TinyMCE: 2.7.2
#~ * avplayer: 1.3
#~ * Play: 0.6.0
#~ Config Information:
#~ * php_memory_limit:
#~ * process_whole_template: false
#~ * output_compression: false
#~ * max_upload_size: 20000000
#~ * default_upload_permission: 664
#~ * url_rewriting: none
#~ * page_extension:
#~ * query_var: page
#~ * image_manipulation_prog: GD
#~ * auto_alias_content: true
#~ * locale:
#~ * default_encoding: utf-8
#~ * admin_encoding: utf-8
#~ * set_names: true
#~ Php Information:
#~ * phpversion: 5.2.14
#~ * md5_function: On (Vrai)
#~ * gd_version: 2
#~ * tempnam_function: On (Vrai)
#~ * magic_quotes_runtime: Off (Faux)
#~ * E_STRICT: 0
#~ * memory_limit: 40M
#~ * max_execution_time: 50000
#~ * output_buffering: 0
#~ * safe_mode: Off (Faux)
#~ * file_uploads: On (Vrai)
#~ * post_max_size: 8M
#~ * upload_max_filesize: 20M
#~ * session_save_path: /tmp (1777)
#~ * session_use_cookies: On (Vrai)
#~ * xml_function: On (Vrai)
#~ Server Information:
#~ * Server Api: cgi
#~ * Server Db Type: MySQL (mysql)
#~ * Server Db Version: 5.0.91
#~ ----------------------------------------------
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~

==> Merci de marquer [Résolu] dans le titre de votre message lorsque une solution a été trouvée <==

Mint 17
#2

Il y en a qui utilise du cms avec des faille potentielles !!! les mises à jour !!!!!

ton erreur est indiquée en clair il suffit de lire
--> unrecognized tag ....

J-C Etiemble v 2.2.xx
#3

Bonjour Jce, et merci de ta réponse

Le fait que je sois sur cette version est malheureusement volontaire, le player vidéo ne fonctionne pas sur la version suivante

En ce qui concerne le unrecognized tag je l'avais vu bien sur, mais cela ne me parle pas puisque dans le gabarit il y avait déjà un {literal} : celui-ci
Code :
{literal}
<!--[if IE 6]>
<script type="text/javascript"  src="uploads/NCleanBlue/js/ie6fix.js"></script>
<script type="text/javascript">
// argument is a CSS selector
DD_belatedPNG.fix('.sbar-top,.sbar-bottom,.main-top,.main-bottom,#version');
</script>
<style type="text/css">
/* enable background image caching in IE6 */
html {filter:expression(document.execCommand("BackgroundImageCache", false, true));}
</style>
<![endif]-->
{/literal}
et cela ne provoque pas d'erreur. Donc pourquoi celui que j'ai ajouté provoque cela ?

==> Merci de marquer [Résolu] dans le titre de votre message lorsque une solution a été trouvée <==

Mint 17
#4

peux tu nous donner le code entier (avec literal) de ton script ?

et tu as vérifié que tu n'a pas fait un truc du genre :

{literal}

...

{literal}ton code{/literal}


...

{/literal}
#5

Bonjour Bess, et merci pour ta réponse

bess a écrit :et tu as vérifié que tu n'a pas fait un truc du genre :

{literal}

...

{literal}ton code{/literal}


...

{/literal}
Tu veux dire par là si je n'ai pas inclue une balise {literal}ton code{/literal} à l'intérieur d'une autre balise {literal} {/literal} ? Si c'est cette question, oui effectivement c'était le cas. J'ai repris le cade pour n'avoir qu'une seule balise (c'est le code ci dessous, mais cela ne fonctionne pas non plus. Par contre il n'y a plus le message d'erreur

Voici le code

Code :
{literal}
<!--[if IE 6]>
<script type="text/javascript"  src="uploads/NCleanBlue/js/ie6fix.js"></script>
<script type="text/javascript">
// argument is a CSS selector
DD_belatedPNG.fix('.sbar-top,.sbar-bottom,.main-top,.main-bottom,#version');
</script>
<style type="text/css">
/* enable background image caching in IE6 */
html {filter:expression(document.execCommand("BackgroundImageCache", false, true));}
</style>
<![endif]-->


/*RAJOUTE JUSTE POUR UNE MEILLEURE LISIBILITE SUR LE FORUM CMSMS*/
/*JS pour le rollover*/
<script type="text/javaScript">
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
//-->
</script>


/*RAJOUTE JUSTE POUR UNE MEILLEURE LISIBILITE SUR LE FORUM CMSMS*/
/*JS qui fonctionnait sur l'autre site, et que j'ai voulu tester sur cette cersion*/
/*ce code ne fonctionne pas non plus*/
<script type="text/javascript">
<!-- script créé par le webmaster de : -->
<!-- www.creation-de-site.net -->
<!--
function open_window1(votre_page)
{
    var hauteur_popup=581;
    var H = (screen.height - hauteur_popup) / 2;
    var largeur_popup=436;
    var L = (screen.width - largeur_popup) / 2;
    pop_up = window.open(votre_page,"Popup","status=no,scrollbars=no,resizable=yes,height="+hauteur_popup+",width="+largeur_popup+",top="+H+",left="+L);
}
//-->
</script>

<script type="text/javascript">
<!-- script créé par le webmaster de : -->
<!-- www.creation-de-site.net -->
<!--
function open_window2(votre_page)
{
    var hauteur_popup=436;
    var H = (screen.height - hauteur_popup) / 2;
    var largeur_popup=581;
    var L = (screen.width - largeur_popup) / 2;
    pop_up = window.open(votre_page,"Popup","status=no,scrollbars=no,resizable=yes,height="+hauteur_popup+",width="+largeur_popup+",top="+H+",left="+L);
}
//-->
</script>

<script type="text/javascript">
<!-- script créé par le webmaster de : -->
<!-- www.creation-de-site.net -->
<!--
function open_window3(votre_page)
{
    var hauteur_popup=581;
    var H = (screen.height - hauteur_popup) / 2;
    var largeur_popup=436;
    var L = (screen.width - largeur_popup) / 2;
    pop_up = window.open(votre_page,"Popup","status=no,scrollbars=no,resizable=yes,height="+hauteur_popup+",width="+largeur_popup+",top="+H+",left="+L);
}
//-->
</script>








{/literal}


  </head>

==> Merci de marquer [Résolu] dans le titre de votre message lorsque une solution a été trouvée <==

Mint 17
#6

Citation :Tu veux dire par là si je n'ai pas inclue une balise {literal}ton code{/literal} à l'intérieur d'une autre balise {literal} {/literal} ? Si c'est cette question, oui effectivement c'était le cas.

ça explique l'erreur. le premier literal empêchant de traiter le second...

par contre tu en es ou là ? tu as toujours une erreur ou c'est bon ?
#7

Non, cela ne marche toujours pas, malgré le fait que maintenant tout les scripts soient dans une seule balise {literal} {/literal}.

C'est très curieux.

Ce script de rollover fonctionne dans une page html simple.
Si je le met dans cmsms 1.8.1, cela ne fonctionne pas : http://www.procitea.com/web/
Si je le met dans cmsms 1.1.3.1, cela fonctionne : http://www.tinaserres.com/web1/index.php...t-rollover


Tu as une idée ?

==> Merci de marquer [Résolu] dans le titre de votre message lorsque une solution a été trouvée <==

Mint 17
#8

moi : ni l'un ni l'autre ne fonctionnent sous Win7 FF3.6.12 et le rendu est épouvantable sur les deux

idem avec Opera et Chrome ....

http://validator.w3.org/unicorn/check?uc...nformance#

http://validator.w3.org/unicorn/check?uc...nformance#

corrige déjà tes erreurs Xhtml, CSS et on regarde la suite
#9

Le rendu je m'en occuperai après. Je préfère valider le fait que le script fonctionne, et ensuite je fais le reste. Car si je fais d'abord le reste et qu'au final le script ne fonctionne pas, c'est du temps perdu.

Pour info j'ai installé la dernière 1.9 et le script ne fonctionne toujours pas : http://www.procitea.com/web2/index.php?page=test-js

Et le validateur n'est pas top non plus pour une version d'origine : http://validator.w3.org/unicorn/check?uc...edium=all#

==> Merci de marquer [Résolu] dans le titre de votre message lorsque une solution a été trouvée <==

Mint 17
#10

concentre toi sur les validation Xhtml, le css c'est bonus dans ton cas de figure

sans validation xhtml tu peux pas demander à un script de fonctionner

Citation :Et le validateur n'est pas top non plus pour une version d'origine : http://validator.w3.org/unicorn/check?u … edium=all#

il est valide Xhtml lui

Citation :Le rendu je m'en occuperai après.

je t'assure que ni sur le premier ni sur le deuxième site ton script ne fonctionne chez moi, c'est pas simplement moche, c'est surtout pas fonctionnel !
#11

Je crois comprendre ce qui se passe. Ce que tu vois ici : http://www.procitea.com/web/ n'est pas du tout le site finalisé. J'ai juste fait des tests en plaçant des blocs à l'arrache, donc ce que tu vois n'est pas le fruit de problèmes css ou autres, mais c'est volontaire de ma part. Il est également logique qu'il y ait des erreurs à la validation.
Ci joint une capture d'écran de ce que je vois, tu devrais avoir la même chose : http://monserveur.info/ftp/cmsms-01.jpg .

Mon but pour le moment est de valider le fait d'utiliser cmsms pour ce projet. j'ai déjà validé le player vidéo, avec les soucis qu'il y a eu et dont tu dois te rappeler Wink. Maintenant j'en suis à la validation du script de rollover.

De mon point de vue, mais je suis ouvert à tout éclairage différent la-dessus, il est plus important de valider qu'un outil donné corresponde aux besoins (ici cmsms) et ensuite finaliser les détails. Plutôt que l'inverse, où l'on se retrouverait à passer du temps sur des détails, pour constater au final que l'outil ne correspond pas.

Je vais tester le script installé sur la version 1.1.3 avec différents navigateurs dans un 1er temps et suivant le résultat j'aviserai.

Merci de tes réponses en tout cas Smile

==> Merci de marquer [Résolu] dans le titre de votre message lorsque une solution a été trouvée <==

Mint 17
#12

Bon, des nouvelles des derniers tests...

J'ai d'abord suivi la piste de redescendre dans les versions, jusqu'à trouver une version où cela fonctionnerait. J'ai testé une 1.5.2, le rollover ne marchait toujours pas. J'ai ensuite testé une 1.3.1, pareil, cela ne marche pas.
Déjà que le fait de redescendre dans les versions ne m'enchantait pas, mais là cela serait redescendre trop bas, donc je laisse tomber cette piste.

Le test fait sur la toute dernière version 1.9, sans avoir rien modifié sur cmsms ne donne rien non plus. Manifestement il y a une incompatibilité de ce script sur pas mal de versions. Ce n'est pas une incompatibilité totale des scripts en js, puisque celui des popup images fonctionne. Mais en même temps ce script des rollover fonctionne puisque dans une page html simple cela passe sans souci.
rollover et popup sur la 1.9 : http://www.procitea.com/web2/
rollover sur page html simple : http://www.procitea.com/tests/rollover/index.html

Donc en fait je ne sais pas vraiment quoi faire maintenant ...

Des idées ?


Edit : j'ai changé le titre du post, puisque manifestement la balise literal n'est pas en cause

==> Merci de marquer [Résolu] dans le titre de votre message lorsque une solution a été trouvée <==

Mint 17
#13

J'ai finalement opté pour une autre portion de script :

Code :
<a href="URL-DE-DESTINATION">
<img style="border: Xpx solid ; width: Xpx; height: Xpx;"
src="URL-image-1"
onmouseover="this.src='URL-image-2'"
onmouseout="this.src='URL-image-3'" ></ a>

(X est a remplacer par les valeurs de votre choix, URL-image-3 peut être égal à URL-image-2)

==> Merci de marquer [Résolu] dans le titre de votre message lorsque une solution a été trouvée <==

Mint 17
#14

faudra que tu me prévienne quand tu le rendras fonctionnel que je sache enfin a quoi c'est censé ressembler quand ca fonctionne Smile
Sujet fermé


Atteindre :


Utilisateur(s) parcourant ce sujet : 3 visiteur(s)