Ajouter un attribut rel noopener à un type de lien menu URL

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Ajouter un attribut rel noopener à un type de lien menu URL

    Bonjour,
    Je cherche à attribue l'attribut rel noopener à un menu de type de lien de menu URL.
    Dans l'onglet du menu "Type de liens", j'ai sélectionné noopener à l'option "Attribut 'rel' du lien ", mais j'ai l'impression que ce n'est pas prit en compte.

    Merci pour vos lumières.

  • #2
    Bonjour,

    Il suffit de créer un lien de menu externe de type URL et de sélectionner "Nouvelle fenêtre avec barre de navigation".

    Les attributs rel noreferrer et noopener sont automatiquement ajoutés dès que l'on utilise target="_blank" pour des raisons de sécurité.

    Cela fonctionne avec protostar, le template natif de Joomla cependant pour d'autres templates, ce n'est pas toujours le cas....

    C'est un oubli pour le menu d'helix ultimate par exemple, il faut donc modifier légèrement le code du plugin (son framework).

    Editer le fichier menu.php situé dans le plugin d'helix :
    plugins\system\helixultimate\core\classes\menu.php

    Remplacer la ligne 522 :

    Code PHP:

    $output 
    .= '<a '$class .' href="'$flink .'" target="_blank" '$title .'>'$linktitle .'</a>'
    par :

    Code PHP:

    $attributes
    ['rel'] = 'noopener noreferrer';

    if (
    $item->params->get('menu-anchor_rel''') == 'nofollow') { $attributes['rel'] .= ' nofollow'; }

    $output .= '<a '$class .' href="'$flink .'" rel="'$attributes['rel'] .'" target="_blank" '$title .'>'$linktitle .'</a>'target="_blank" '. $title .'>'. $linktitle .'</a>'; 
    De cette façon, on applique systématiquement les attributsrel nécessairesaux liens externes mais on laisse également en option la possibilité d'ajouter un nofollow
    pour éviter les liens externes négatifs. N'oubliez pas de vider le cache pour voir le résultat.

    C'est vrai que l'on ne pense pas forcément à créer des liens externes dans les menus et il n'y a aucun problème dans l'édition sous tinymce (natif) et jce.
    Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

    Commentaire


    • #3
      Bonjour Yann et merci de ton aide souvent très précieuse
      Si je crée un lien de menu externe de type URL, je crée une Iframe et donc cela m'affiche le contenu du lien sur une de mes pages.
      Hors, je souhaite que ce lien redirige directement sur un autre site.

      Commentaire


      • #4
        Bonjour,

        Yann te l'a dit : lien de type URL et dans une nouvelle fenêtre avec navigation correspond à ton besoin, ce n'est pas un affichage en iframe.
        "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
        MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr et sites perso chez PlanetHoster + sites gérés chez PHPNET, 1and1 et OVH

        Commentaire


        • #5
          C'est déjà un menu de type "lien de menu URL" et dans une nouvelle fenêtre de navigation.
          J'ai mal interprété ce que m'as dis Yann. 3h de sommeil ça ne trompe pas

          Commentaire


          • #6
            Envoyé par nano Voir le message
            Bonjour Yann et merci de ton aide souvent très précieuse
            Si je crée un lien de menu externe de type URL, je crée une Iframe et donc cela m'affiche le contenu du lien sur une de mes pages.
            Hors, je souhaite que ce lien redirige directement sur un autre site.
            Hello,

            Sauf erreur, cela fonctionne si tu ne confonds pas le type de lien :

            "Fenêtre intégrée (Iframe) > contenu externe" avec "liens divers > URL" situé un peu plus bas dans le menu...



            oui, sans doute le manque de sommeil

            Dernière édition par daneel à 30/03/2020, 09h29
            Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

            Commentaire


            • #7
              C'est bien ça, j'utilise bien Lien divers > URL

              Cliquez sur l'image pour l'afficher en taille normale

Nom : Capture d’écran 2020-03-30 à 11.12.14.png 
Affichages : 51 
Taille : 98,6 Ko 
ID : 2015068
              Et lorsque que j'analyse le site, j'ai ça :

              Cliquez sur l'image pour l'afficher en taille normale

Nom : Capture d’écran 2020-03-30 à 11.12.37.png 
Affichages : 41 
Taille : 17,4 Ko 
ID : 2015070
              Fichiers joints

              Commentaire


              • #8
                Merci pour le retour,

                oui j'ai compris le problème avec ta capture d'écran...

                Apparemment, c'est l'extension maximenu car le module ne prends pas en compte les paramètres rel du lien de menu, il n'impose pas non plus les attributs noopener et noreferrer aux liens externes. Je viens de tester avec la version "light" et j'obtiens bien l'erreur.

                C'est effectivement une faille de sécurité que Cédric a complétement zappé, y compris sur ses liens pub qu'il a inséré en dur dans le backend.
                Il faut voir rapidement avec son support.

                Pour info, j'avais déjà annoncé le problème et donné le lien vers l'excellent article de dareboost en 2017...
                https://forum.joomla.fr/forum/d%C3%A...-et-noreferrer






                Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

                Commentaire


                • #9
                  Ah, je me disais bien que j'était pas fou non plus !
                  Je vais me rapprocher du support maximenuCK.

                  Aucun moyen de détourner le problème ?

                  Commentaire


                  • #10
                    oui tu créé une surcharge du module et tu modifie le modele pour les liens externes.

                    Pour créer la surcharge, c'est dans menu extensions > templates > templates, tu choisis "détails et fichier" de ton template.
                    Tu selectionne l'onglet "Créer des substitutions" puis le module "mod_maximenuck"

                    2. Tu edite le fichier _itemtype.php dans \templates\nomdetontemplate\html\mod_maximenuck pour ajouter le code

                    Tu peux fonctionner de cette façon en attendant un correctif qui force l'insertion et reprend également les autres attributs comme le nofollow.
                    Une fois que la mise à jour de l'extension sera disponible, il suffira de supprimer le repertoire maximenu dans le dossier html de ton template

                    Dernière édition par daneel à 30/03/2020, 18h36
                    Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

                    Commentaire


                    • #11
                      Merci Yann,
                      Vu que je suis une quiche en php, je vais éviter de faire des bêtises.

                      J'ai copié le code que tu m'avais indiqué au début du post, mais ça a crée une erreur...

                      Commentaire


                      • #12
                        Envoyé par nano Voir le message
                        J'ai copié le code que tu m'avais indiqué au début du post, mais ça a crée une erreur...
                        Non le code au début, c'etait pour helix et non pour maximenu.
                        Et je t'ai donné la solution adaptée et détaillée en messagerie privée.
                        Sinon attends la réponse du dev ou change d'extension.

                        Bon courage, bonne soirée et prends soin de toi.

                        Yann


                        Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

                        Commentaire


                        • #13
                          Un grand merci à toi Yann
                          Prends soin de toi et de ton entourage.

                          Commentaire

                          Annonce

                          Réduire
                          1 sur 2 < >

                          C'est [Réglé] et on n'en parle plus ?

                          A quoi ça sert ?
                          La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                          Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                          Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                          Comment ajouter la mention [Réglé] à votre discussion ?
                          1 - Aller sur votre discussion et éditer votre premier message :


                          2 - Cliquer sur la liste déroulante Préfixe.

                          3 - Choisir le préfixe [Réglé].


                          4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                          2 sur 2 < >

                          Assistance au forum - Outil de publication d'infos de votre site

                          Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                          Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                          Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                          UTILISER À VOS PROPRES RISQUES :
                          L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                          Problèmes connus :
                          FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                          Installation :

                          1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                          Archive zip : https://github.com/AFUJ/FPA/zipball/master

                          2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                          3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                          4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                          5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                          6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                          et remplacer www. votresite .com par votre nom de domaine


                          Exemples:
                          Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                          Télécharger le script fpa-fr.php dans: /public_html/
                          Pour executer le script: http://www..com/fpa-fr.php

                          Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                          Télécharger le script fpa-fr.php dans: /public_html/cms/
                          Pour executer le script: http://www..com/cms/fpa-fr.php

                          En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                          Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                          Voir plus
                          Voir moins

                          Partenaire de l'association

                          Réduire

                          Hébergeur Web PlanetHoster
                          Travaille ...
                          X