web-dev-qa-db-fra.com

Comment obtenir le prochain élément de menu disponible

Dans mon élément de menu actuellement actif, je souhaite obtenir le prochain élément de menu possible (activé). Existe-t-il une approche cohérente pour le faire?

Mise à jour: Cas: J'ai un menu nommé English Menu Il a cinq éléments.

Je suis actuellement dans le point 1, et naturellement le point suivant serait le point 2. Avec cette stratégie en tête, je peux créer un menu de navigation Nice pour les pages (en dehors de la navigation principale) comme ceci:

Page suivante (élément 2)

2
Mostafa Talebi

Vous pouvez obtenir l'élément suivant à l'aide des champs lft et rgt simplement en obtenant le premier élément avec une valeur lft supérieure à la valeur rgt de votre élément actuel et en sélectionnant uniquement les éléments publiés.

SELECT *
FROM #_menu
WHERE menutype LIKE 'your_menu'
AND published = 1
AND lft > [current item rgt]
ORDER BY lft ASC
LIMIT 1

Selon que vous souhaitiez inclure des éléments d'autres niveaux de votre menu, vous souhaiterez peut-être ajouter un "ET niveau = [niveau de votre élément actuel]".

2
bjrn