5568 sujets

Sémantique web et HTML

Bonjour,
J'ai recemment passé mon site à SPIP et j'ai un petit problème avec un menu trouvé sur SPIP-contrib (http://www.spip-contrib.net/-Menu-depliant-tout-SPIP-), en effet mes pages où se trouvent mon menu ne sont pas valides xhtml. (voir ici)
Voici le code source de mon menu :
<B_rubriquea>
<ul class="racine">
<BOUCLE_rubriquea(RUBRIQUES){racine} {tout}{id_rubrique!=11}{par num titre, titre}>
<li class="racine0"><a href="#URL_RUBRIQUE" class="lien3#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li>
<div class="[(#EXPOSE{affiche,cache})]">   
     <B_articleb> 
                <ul class="article">
        <BOUCLE_articleb(ARTICLES){id_rubrique}{id_rubrique!=2}{par num titre}>
                 <li class="racine"><a href="#URL_ARTICLE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li>
        </BOUCLE_articleb>       
                
        </B_articleb>
        
        <B_ss_rubriquea> 
        
        <BOUCLE_ss_rubriquea(RUBRIQUES){id_parent}{par num titre}>
        <li class="racine"><a href="#URL_RUBRIQUE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li></ul>
            
                <B_articlea> 
                <ul class="article">
                <BOUCLE_articlea(ARTICLES){id_rubrique}{par num titre}>
                <li class="racine2"><a href="#URL_ARTICLE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li>
                </BOUCLE_articlea>       
                </ul>
                </B_articlea>
                
                <BOUCLE_n(boucle_ss_rubriquea)></BOUCLE_n>
                  
        </BOUCLE_ss_rubriquea> 
        
        </B_ss_rubriquea> 
</div>      
      
</BOUCLE_rubriquea>  
</ul>
</B_rubriquea>

De plus, lorsque je consulte une rubrique seuls les liens de rubriques et pas ceux des articles sont en gras (balise #expose).

Je remercie d'avance ceux qui pourrons m'éclairer là dessus.
Modifié par vinux (27 Feb 2007 - 16:25)
Salut,

L'élément <ul> ne peut contenir que des élements <li> comme enfants directs. Hors il y a plein d'éléments <div> dans la liste de départ ("racine"), d'où les erreurs de validation. il faut ajouter le <div> avant de fermer l'item de liste <li> :
<B_rubriquea>

<ul class="racine">

<BOUCLE_rubriquea(RUBRIQUES){racine} {tout}{id_rubrique!=11}{par num titre, titre}>

<li class="racine0"><a href="#URL_RUBRIQUE" class="lien3#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a>

<div class="[(#EXPOSE{affiche,cache})]">   

     <B_articleb> 

                <ul class="article">

        <BOUCLE_articleb(ARTICLES){id_rubrique}{id_rubrique!=2}{par num titre}>

                 <li class="racine"><a href="#URL_ARTICLE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li>

        </BOUCLE_articleb>       

                

        </B_articleb>

        

        <B_ss_rubriquea> 

        

        <BOUCLE_ss_rubriquea(RUBRIQUES){id_parent}{par num titre}>

        <li class="racine"><a href="#URL_RUBRIQUE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li></ul>

            

                <B_articlea> 

                <ul class="article">

                <BOUCLE_articlea(ARTICLES){id_rubrique}{par num titre}>

                <li class="racine2"><a href="#URL_ARTICLE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li>

                </BOUCLE_articlea>       

                </ul>

                </B_articlea>

                

                <BOUCLE_n(boucle_ss_rubriquea)></BOUCLE_n>

                  

        </BOUCLE_ss_rubriquea> 

        

        </B_ss_rubriquea> 

</div>

</li>

</BOUCLE_rubriquea>  

</ul>

</B_rubriquea>
ça devrait aller un peu mieux, si j'ai pas fait de bourde.

Par contre, pour ce qui est de l'utilisation des balises SPIP, il serait plus indiqué de ce renseigner sur des forums dédiés à SPIP Smiley cligne Certains membres pourront probablement te renseigner, mais vu que ce n'est pas "la spécialité" du forum, ça risque d'être plus long.
Il manque encore une balise pour fermer la liste <ul class="article"> dans la boucle "articleb" :
<B_articleb> 
<ul class="article">
<BOUCLE_articleb(ARTICLES){id_rubrique}{id_rubrique!=2}{par num titre}>
   <li class="racine"><a href="#URL_ARTICLE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li>
</BOUCLE_articleb>       
</ul>
</B_articleb>
La page devrait être valide, maintenant.
Les pages sont enfin valides XHTML, mais mon menu se superpose toujours étrange phénomène ! voir
Modifié par vinux (27 Feb 2007 - 14:23)
vinux a écrit :
J'ai bien tout modifié comme tu m'a indiqué, mais j'ai encore des erreurs de validation malheureusement, ce menu est assez capricieux on dirait... ( voir http://vincent.lemoine1.free.fr/spip/ )
Tu as ajouté aussi la ligne que j'ai insérée dans mon post ci-dessus ?
<B_articleb> 
<ul class="article">
<BOUCLE_articleb(ARTICLES){id_rubrique}{id_rubrique!=2}{par num titre}>
   <li class="racine"><a href="#URL_ARTICLE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li>
</BOUCLE_articleb>       
[b]</ul>[/b]
</B_articleb>
(le petit </ul> en gras ...)
Modifié par Thomas D. (27 Feb 2007 - 14:22)
Oui, voici mon code final :
<B_rubriquea>
<ul class="racine">
<BOUCLE_rubriquea(RUBRIQUES){racine} {tout}{id_rubrique!=11}{par num titre, titre}>

<li class="racine0"><a href="#URL_RUBRIQUE" class="lien3#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a>

<div class="[(#EXPOSE{affiche,cache})]">   

<B_articleb> 

<ul class="article">

<BOUCLE_articleb(ARTICLES){id_rubrique}{id_rubrique!=2}{par num titre}>

   <li class="racine"><a href="#URL_ARTICLE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li>

</BOUCLE_articleb>       

</ul>

</B_articleb>

        <B_ss_rubriquea> 

 <ul class="article">
        <BOUCLE_ss_rubriquea(RUBRIQUES){id_parent}{par num titre}>

        <li class="racine"><a href="#URL_RUBRIQUE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li></ul> 

                <B_articlea> 

                <ul class="article">

                <BOUCLE_articlea(ARTICLES){id_rubrique}{par num titre}>

                <li class="racine2"><a href="#URL_ARTICLE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li>

                </BOUCLE_articlea>      

                </ul>

                </B_articlea>

                <BOUCLE_n(boucle_ss_rubriquea)></BOUCLE_n>      

        </BOUCLE_ss_rubriquea>      

        </B_ss_rubriquea> 

</div>

</li>

</BOUCLE_rubriquea>  

</ul>

</B_rubriquea>

voir aussi http://validator.w3.org/check?uri=http://vincent.lemoine1.free.fr/spip/?Article-1
Modifié par vinux (27 Feb 2007 - 14:46)
Mmmmh, pareil, il manque un </ul>, au même endroit mais dans la boucle "ss_rubriquea" ...
</BOUCLE_ss_rubriquea>      

  [b]</ul>[/b]

</B_ss_rubriquea>

On va y arriver Smiley smile
C'est presque ça, mais mon menu est encore tout déformé bizarre !
<B_rubriquea>

<ul class="racine">

<BOUCLE_rubriquea(RUBRIQUES){racine} {tout}{id_rubrique!=11}{par num titre, titre}>

<li class="racine0"><a href="#URL_RUBRIQUE" class="lien3#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a>

<div class="[(#EXPOSE{affiche,cache})]">   

<B_articleb> 

<ul class="article">

<BOUCLE_articleb(ARTICLES){id_rubrique}{id_rubrique!=2}{par num titre}>

   <li class="racine"><a href="#URL_ARTICLE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li>

</BOUCLE_articleb>       

</ul>

</B_articleb>

        <B_ss_rubriquea> 

 <ul class="article">

        <BOUCLE_ss_rubriquea(RUBRIQUES){id_parent}{par num titre}>

        <li class="racine"><a href="#URL_RUBRIQUE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li>

                <B_articlea> 

                <ul class="article">

                <BOUCLE_articlea(ARTICLES){id_rubrique}{par num titre}>

                <li class="racine2"><a href="#URL_ARTICLE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li>

                </BOUCLE_articlea>      

                </ul>

                </B_articlea>

                <BOUCLE_n(boucle_ss_rubriquea)></BOUCLE_n>      

        </BOUCLE_ss_rubriquea>      

</ul>

        </B_ss_rubriquea> 

</div>

</li>

</BOUCLE_rubriquea>  

</ul>

</B_rubriquea>


J'ai encore 2 erreurs de validation ...
Modifié par vinux (27 Feb 2007 - 15:09)
Encore une erreur d'imbrication dans la boucle ss_rubriquea :
<BOUCLE_ss_rubriquea(RUBRIQUES){id_parent}{par num titre}>

<li class="racine"><a href="#URL_RUBRIQUE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a>[b]<!-- </li> à déplacer -->[/b]

<B_articlea> 

<ul class="article">

<BOUCLE_articlea(ARTICLES){id_rubrique}{par num titre}>

<li class="racine2"><a href="#URL_ARTICLE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li>

</BOUCLE_articlea>      

</ul>

</B_articlea>

<BOUCLE_n(boucle_ss_rubriquea)></BOUCLE_n>      

[b]</li>[/b]

</BOUCLE_ss_rubriquea>
En fait, ce sont chaque fois les mêmes erreurs, mais répétées aux différents niveaux du menu Smiley ohwell

Une fois la structure HTML corrigée, on pourra s'occuper de la mise en forme Smiley cligne
Modifié par Thomas D. (27 Feb 2007 - 15:33)
Merci de ton aide le code est enfin valide sur toutes les pages. Reste toutefois à régler ce problème de superposition des menus avec la balise div qyu masque les rubriques.

Récapitulatif du code valide :
<B_rubriquea>

<ul class="racine">

<BOUCLE_rubriquea(RUBRIQUES){racine} {tout}{id_rubrique!=11}{par num titre, titre}>

<li class="racine0"><a href="#URL_RUBRIQUE" class="lien3#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a>

<div class="[(#EXPOSE{affiche,cache})]">   

<B_articleb> 

<ul class="article">

<BOUCLE_articleb(ARTICLES){id_rubrique}{id_rubrique!=2}{par num titre}>

   <li class="racine"><a href="#URL_ARTICLE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li>

</BOUCLE_articleb>       

</ul>

</B_articleb>

        <B_ss_rubriquea> 

 <ul class="article">

<BOUCLE_ss_rubriquea(RUBRIQUES){id_parent}{par num titre}>

<li class="racine"><a href="#URL_RUBRIQUE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a><!-- </li> à déplacer -->

<B_articlea> 

<ul class="article">

<BOUCLE_articlea(ARTICLES){id_rubrique}{par num titre}>

<li class="racine2"><a href="#URL_ARTICLE" class="lien2#EXPOSE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a></li>

</BOUCLE_articlea>      

</ul>

</B_articlea>

<BOUCLE_n(boucle_ss_rubriquea)></BOUCLE_n>      

</li>

</BOUCLE_ss_rubriquea> 

</ul>

        </B_ss_rubriquea> 

</div>

</li>

</BOUCLE_rubriquea>  

</ul>

</B_rubriquea>

Modifié par vinux (27 Feb 2007 - 15:45)
Impeccable, encore merci de m'avoir aidé ! Le xhtml c'est pas encore mon fort on dirait, mais ça m'a permis de progresser !
Si ça te dérange pas j'ai une dernière question :
dans ma rubrique http://vincent.lemoine1.free.fr/spip/?-Vie-municipale- j'aurais aimé savoir comment faire pour qu'il n'est pas un grand espace entre la rubrique "Etat civil" et "Bulletin municipal" ?

Merci encore.
Modifié par vinux (27 Feb 2007 - 16:05)
Cet écart est probablement dû aux marges et/ou padding verticaux que tu as imposé aux listes ou aux éléments de liste.

Je te laisse chercher Smiley cligne