Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > HTML / DHTML / XHTML
HTML / DHTML / XHTML Forum sur la programmation HTML / DHTML/ XHTML et la validation W3C. Cours (X)HTML, FAQ (X)HTML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/04/2011, 10h07   #1
Invité de passage
 
Homme Thomas
Étudiant
Inscription : avril 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Thomas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 3
Points : 1
Points : 1
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 :
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 :
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();
Flowzy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 10h19   #2
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
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.
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 14h36   #3
Invité de passage
 
Homme Thomas
Étudiant
Inscription : avril 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Thomas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 3
Points : 1
Points : 1
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 ?
Flowzy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 18h45   #4
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 756
Points : 4 756
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.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 12h53   #5
Invité de passage
 
Homme Thomas
Étudiant
Inscription : avril 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Thomas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 3
Points : 1
Points : 1
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.
Flowzy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h07.


 
 
 
 
Partenaires

Hébergement Web