[RÉSOLU] BOOTSTRAP et ScrollSpy avec l'Url Rewrite PluXML
NaBiSs
Member
Bonjour à tous,
je viens de découvrir un comportement assez étrange, j'avais mis en place la solution Bootstrap pour tracker le positionnement du scroll sur la page.
Lien : scrollspy Bootstrap
Cela permet de mettre en surbrillance mon sous-menu en fonction de la position de l'utilisateur sur la page.
Tout fonctionnait jusqu'à ce que j'active l'Url Rewrite de PluXML.
Et depuis, mes scripts basés sur un lien avec une ancre ne fonctionnent plus.
Par exemple j'ai aussi un script "SmoothScroll" pour avoir un effet de transition entre deux ancres sur la page, lui non plus ne fonctionne plus.
Est-ce que quelqu'un a déjà identifié ce comportement ? Éventuellement, il y a t'il une solution pour qu'un lien soit ignoré de l'Url Rewrite ?
je viens de découvrir un comportement assez étrange, j'avais mis en place la solution Bootstrap pour tracker le positionnement du scroll sur la page.
Lien : scrollspy Bootstrap
Cela permet de mettre en surbrillance mon sous-menu en fonction de la position de l'utilisateur sur la page.
Tout fonctionnait jusqu'à ce que j'active l'Url Rewrite de PluXML.
Et depuis, mes scripts basés sur un lien avec une ancre ne fonctionnent plus.
Par exemple j'ai aussi un script "SmoothScroll" pour avoir un effet de transition entre deux ancres sur la page, lui non plus ne fonctionne plus.
Est-ce que quelqu'un a déjà identifié ce comportement ? Éventuellement, il y a t'il une solution pour qu'un lien soit ignoré de l'Url Rewrite ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu es sur quelle version de PluXml ? Ce comportement est-il toujours présent si tu désactives tous les plugins ? Ce comportement disparait-il lorsque tu désactives l'URL rewriting ?
Sous quelle forme sont enregistrées les URL de tes ancres ? <a href="#home">home</a> ou <a href="http://monsite.com/index.php#home">home</a>
Alors pour répondre à tes questions :
[list=*]
[*]J'ai testé sur les deux versions 5.4 et 5.5, même comportement (ou presque)[/*]
[*]Le comportement est toujours présent en désactivant tous les plugins[/*]
[*]Quand je désactive l'Url Rewriting, tout refonctionne[/*]
[*]Mes urls sont enregistrées dans une page statique, de cette façon : <a href="#home">home</a>[/*]
[/list]
En première analyse, je pense que l'Url Rewriting transforme les urls relatives en absolues, d'où probablement le fait que le javascript ne soit plus opérant puisqu'il doit détecter que les urls relatives sous forme d'ancres.
Entre 5.4 et 5.5, j'ai mis "ou presque" car elles sont gérées différemment par PluXML, il y a dû y avoir une modification.
5.4 => avec un lien de ce type <a href="#home">home</a>, il est transformé en http://racine/staticX/page#home
5.5 => c'est transformé en http://racine/#home et le lien est mauvais. Ceci étant ça se corrige facilement avec <?php $plxShow->urlRewrite('indexe.php?staticX/') ?>
J'ai identifié des bugs dans la réécriture d'url. J'en parle ici:
https://github.com/pluxml/PluXml/issues/174
On est peut être dans ce cas de figure.
ça serait intéressant que tu reportes les modifs proposées pour voir si ça bug toujours
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Dans le fichier core/lib/class.plx.utils.php, fonction rel2abs, remplacer: par
Merci
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Effectivement, ta proposition solutionne mes problèmes, tout mes scripts refonctionnent sans exception avec la réécriture d'URL activée.
À ceux qui ont le même problème et qui liront, cette modification n'est valable que sur la v5.5 de PluXML.
Comme d'habitude, merci
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Du coup ça fonctionne.
Merci pour le code.
J'ai ce même problème de réécriture des ancres sous PluXML 5.6. Ce n'est pas lié au module betterurl visiblement.
L'ancre se voit précédée par l'URL de mon site, du coup je ne scroll pas mais je recharge une nouvelle page calée à la hauteur de l'ancre.