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 :
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 <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>
(J'ai, bien entendu, modifié les différents liens et coupé le menu car la suite est semblable à cet extrait).
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>
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();
Partager