We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 15001
    • 697 Posts
    Bonjour à tous,

    J’aimerais d’abord signaler un excellent document sur Wayfinder, en anglais:
    http://wiki.modxcms.com/images/f/fa/Wayfinder200_docs_v6.zip

    Ce document explique concrètement la hiérarchie de Wayfinder et est à mon avis bien plus détaillé et plus clair que ce que l’on trouve sur le site officiel de Wayfinder www.muddydogpaws.com
    Je l’ai découvert grâce au didacticiel sur Wayfinder 2 du Wiki en anglais:
    http://wiki.modxcms.com/index.php/Wayfinder200

    Maintenant, je suis confronté à un véritable mystère. (cf. pièces jointes)
    J’essaie d’utiliser ce menu déroulant trouvé sur CSSPlay : http://www.cssplay.co.uk/menus/final_drop.html
    (Dans la même veine, il y a aussi la version 2 : http://www.cssplay.co.uk/menus/final_drop2.html. Mais bon, commençons par la plus simple.)

    J’ai observé que le code généré est différent selon que le navigateur est Firefox 3 ou IE 7.
    (C’est du HTML 4.01 pour IE et du XHTML 1.0 pour Firefox 3.)

    La feuille de style incorporée est également différente.
    J’ai donc sauvé les deux feuilles de style dans des fichiers que j’ai appelé multidrop.css et multidrop_ie.css
    dans le dossier "\assets\snippets\wayfinder\css".

    J’ai adapté un fichier de configuration existant pour générer la même structure que celle que j’observe dans le code source du menu de démonstration. J’ai appelé ce fichier multidrop.config.php et l’ai placé dans "\assets\snippets\wayfinder\configs".

    Mon appel de Wayfinder dans le modèle : [!Wayfinder? &config=`multidrop`!]

    A mes yeux, la structure générée sous Firefox est semblable à celle du menu de démonstration de CSSPlay, hormis que pour ce dernier class="drop" ne figure pas dans les <a> des parentRow de tout premier niveau.

    Je fais donc un copier-coller du code HTML généré par MODx et l’enregitre dans un fichier HTML statique.
    J’enlève le class="demo" dans les parentRow de 1er niveau et enregitre ce fichier.

    Si vous me suivez toujours, le code devrait être --et il me semble être-- 100% identique à celui de la démo de CSSPlay, hormis bien sûr le nom de mes menus. Or, lorsque j’affiche ma page sous Firefox, j’obtiens que les menus de 3ème niveau s’affichent en même temps que les ceux de 2ème niveau, alors qu’ils devraient attendre le survol des entrées de menu de 2ème niveau pour s’afficher. C’est à n’y rien comprendre; je ne trouve vraiment pas de différence dans le code.

    Ci-joint, les 2 feuilles de style et le fichier de configuration du menu (pour lequel il vous faudra enlever l’extension .txt).

    Qui saura apporter un regard neuf sur ce mystère ?

    Au passage, je n’ai pas trouvé comment configurer Wayfinder pour empêcher l’ajout de class="drop" dans les parentRow de 1er niveau mais l’inclure dans tous les autres. Une idée ?

    Merci.
      • 15001
      • 697 Posts
      C’est marrant, cet après-midi ma version statique de la page marche nickel grin, tant sous Firefox que MSIE.
      J’avais pourtant le souvenir d’avoir purgé le cache. Allez comprendre...

      Il ne me reste donc plus qu’un dernier point à résoudre: trouver le moyen d’éliminer le class="drop" dans les parentRow de 1er niveau mais pas pour les parentRow suivantes. Mais je ne vois pas du tout comment faire :’(. Une idée ?

      $parentRowTpl = '@CODE:<li><a class="drop" href="[+wf.link+]" title="[+wf.title+]">[+wf.linktext+]<!--[if IE 7]><!--></a><!--<![endif]-->
      <!--[if lte IE 6]><table><tr><td><![endif]-->
          [+wf.wrapper+]
      <!--[if lte IE 6]></td></tr></table></a><![endif]-->
      </li>';
        • 15001
        • 697 Posts
        C’est bon, j’ai trouvé, il me manquait la déclaration du DOCTYPE pour mon document qui est en XHTML.

        En cours de soirée, j’ai ajouté la déclaration du DOCTYPE, mais à cause d’une erreur de copier-coller, il restait un <html> devant. Le marchait sous Firefox, mais pas sous MSIE. Pire, il y avait quand même un effet "highlight" dans IE lorsque je passais la souris sur la barre de menu.

        En enlevant le <html> excédentaire, le menu déroulant fonctionne. Même en laissant <a class="drop" dans le parentRow de premier niveau.

        Bref. Petite erreur et beaucoup de temps perdu à chercher la cause du problème au mauvais endroit.
        Une fois de plus j’aurais dû faire appel plus tôt à mon pote, le validateur du W3C : http://validator.w3.org wink.

          • 36624
          • 535 Posts
          *verse une larme* c’est beau un webdesigner heureux wink
            CTRL+SHIFT+U - Clear Cache
            CTRL+SHIFT+H - Hiding Heft Panel
            CTRL+SHIFT+N - Fast Create Resource
            CTRL+ALT+P - Preview Recource (in edit resorce window)
            CTRL+ALT+S - Save
            • 23050
            • 1,842 Posts
            Bravo Jul wink