IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

Suppression de balises <ul> vides [XHTML 1.0]


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Par défaut Suppression de balises <ul> vides
    Bonjour,

    Je suis actuellement stagiaire dans une entreprise en tant que Webmaster du site de cette entreprise crée sous SPIP.

    Tout d'abord, je poste ce message ici, mais je pense que la solution ne sera pas en HTML, à moins de modifier l'algorithme. S'il faut, n'hésitez pas à déplacer le sujet.
    Le problème que je rencontre n'est pas gênant, mais j'aimerais tout de même le corriger pour éviter d'éventuels problèmes.

    J'ai crée un menu de type accordéon (en jQuery) qui va servir à naviguer à travers le site.
    J'ai aussi crée un second menu du même type qui, lui, prend en compte seulement la rubrique sélectionnée pour la mettre en tête de menu.
    Cela permet donc d'obtenir un menu plus précis.

    Pour ce dernier menu, j'ai écris le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <ul class="accordion">			
    	<BOUCLE_r(RUBRIQUES){id_rubrique}{par num titre}>
    		<li><a href="http://localhost/spip/#URL_RUBRIQUE" class="recherche">[(#TITRE|supprimer_numero)]</a>
    		<ul>
    		<BOUCLE_s(RUBRIQUES){id_parent=#_r:ID_RUBRIQUE}{id_groupe=1}{par num titre}>
    			<li><a href="http://localhost/spip/#URL_RUBRIQUE" class="recherche_1">[(#TITRE|supprimer_numero)]</a>
    			<ul>
    			<BOUCLE_ss(RUBRIQUES){id_parent=#_s:ID_RUBRIQUE}{id_groupe=1}{par num titre}>
    				<li><a href="http://localhost/spip/#URL_RUBRIQUE" class="recherche_2">[(#TITRE|supprimer_numero)]</a>
    				<ul> 
    				<BOUCLE_sss(RUBRIQUES){id_parent=#_ss:ID_RUBRIQUE}{id_groupe=1}{par num titre}>
    					<li><a href="http://localhost/spip/#URL_RUBRIQUE" class="recherche_3">- [(#TITRE|supprimer_numero)]</a></li>
    				</BOUCLE_sss>
    				</ul>
    				</li>
    			</BOUCLE_ss>
    			</ul>
    			</li>
    		</BOUCLE_s>
    	</BOUCLE_r>
    	</ul>
    	</li>	
    </ul>
    Ce code me génère une page qui ressemble à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    <ul class="accordion">			
     
    	<li><a href="http://localhost/spip/page.html" class="recherche">page</a>
    	<ul>	
    		<li><a href="http://localhost/spip/page1.html" class="recherche_1">page1</a>
    		<ul>
     
     
    		</ul>
    		</li>	
    		<li><a href="http://localhost/spip/page2.html" class="recherche_1">page2</a>
    		<ul>
     
     
    		</ul>
    		</li
    		<li><a href="http://localhost/spip/page3.html" class="recherche_1">page3</a>
    		<ul>
    			<li><a href="http://localhost/spip/page3_1.html" class="recherche_2">page3_1</a>
    			<ul> 
     
     
    			</ul>
    			</li>		
    			<li><a href="http://localhost/spip/page3_2.html" class="recherche_2">page3_2</a>
    			<ul> 
     
     
    			</ul>
    			</li>		
    			<li><a href="http://localhost/spip/page.html3_3" class="recherche_2">page3_3</a>
    (J'ai, bien entendu, modifié les différents liens et coupé le menu car la suite est semblable à cet extrait).

    On peut donc remarquer que certaines balises ul sont vides : elles ne contiennent ni texte, ni enfants.
    J'aimerais donc implémenter un test (dans ce fichier ou dans un autre) qui me permettrait de supprimer les balises <ul> à condition qu'elles soient vides.
    Ayant cherché sur le net quelques solutions, j'ai trouvé des solutions en jQuery, en SPIP, en PHP, mais après avoir codé ces solutions, le problème persiste.

    J'espère donc que vous pourrez m'aiguiller dans la démarche de correction de ce bug !

    Cordialement,

    Flowzy.

    PS : Les solutions trouvées mais que je n'arrive pas à faire marcher sont :

    PhP -> Expressions régulières.
    SPIP -> Ajouter une clause <//B_x> pour faire une condition sur la boucle.
    jQuery/Javascript -> $('ul:empty').remove();

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Dans tous les cas, ton problème n'est pas au niveau HTML, puisque le HTML ne permet pas de supprimer des éléments vides.
    Mauvais forum.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Par défaut
    En effet, c'est d'ailleurs pour cela que j'ai bien précisé que si ce post n'était pas au bon endroit, il fallait le déplacer. Au pire, si aucun admin/modo ne peut le faire, je veux bien le déplacer moi-même, mais où puis-je le mettre ?

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    c'est effectivement du ressort d'un travail sur le DOM, donc on dira javascript, néanmoins il me semble plus efficace de traiter cela en amont en évitant de générer des UL vide.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Par défaut
    Bonjour,

    J'ai réussi à résoudre mon problème seul grâce à la syntaxe de SPIP permettant de faire une condition sur la boucle. Je n'y étais pas arrivé au départ car cette syntaxe est assez déroutante, mais le menu fonctionne parfaitement actuellement, et les ul en trop ne sont même plus générées. Je passe donc ce sujet en résolu, et je m'excuse de l'avoir posté dans HTML, je ne savais simplement pas de quel type allait être la solution (Algo, Php, SPIP, Js). Si jamais quelqu'un rencontre le même problème que moi, je peux lui expliquer comment le résoudre par MP.

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/02/2007, 09h16
  2. Suppression de balise
    Par Mimoza dans le forum Langage
    Réponses: 2
    Dernier message: 23/02/2007, 10h17
  3. [langage] Suppression de balises
    Par superdip dans le forum Langage
    Réponses: 5
    Dernier message: 24/10/2006, 18h08
  4. Algo de suppression de balise non HTML..
    Par quantik-revolution dans le forum Langage
    Réponses: 1
    Dernier message: 11/06/2006, 11h55
  5. suppression de balise et / ou d'attributs
    Par frouge dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 04/10/2005, 16h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo