SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 238 visiteurs en ce moment

Accueil > Rédaction > Assistants de rédaction > Correction des liens internes > Correction des liens internes

Correction des liens internes

27 octobre 2013 – par Maïeul, nicod_ – 14 commentaires

12 votes

SPIP possède des raccourcis spécifiques pour faire des liens internes au site. Par exemple pour pointer vers l’article 25, on utilise le raccourci [texte->25].

Il peut arriver que les rédacteurs du site utilisent directement l’URL de la page publique lorsqu’ils créent des liens dans leurs articles.

Le plugin « correction des liens internes » permet de corriger automatiquement ces liens au moment de la rédaction du contenu.

Pourquoi utiliser les raccourcis de SPIP pour formater les liens internes ?

L’usage des raccourcis SPIP pour formater les liens internes permet :
-  de styler différemment les liens internes des liens externes.
-  de ne pas dépendre de l’URL du site.
-  de ne pas dépendre de l’URL des objets.
-  de permettre d’exporter facilement vers d’autres support que du Web [1].

Comment fonctionne le plugin

Le plugin s’installe comme n’importe quel plugin.

Lors de la validation d’un formulaire de rédaction d’un objet (article, rubrique etc.), le plugin vérifie les liens internes. Tout lien commençant par l’URL du site (par exemple http://www.example.com) sera analysé pour vérifier qu’il ne s’agit pas d’un objet SPIP. L’analyse se base sur la configuration du type d’URL. Autrement dit si un rédacteur copie-colle l’URL de la page publique d’un article, le plugin va le repérer.

Il va alors transformer automatiquement le lien, en mettant le raccourci SPIP correspondant :
-  [texte->xxx] s’il s’agit de l’article xxx.
-  [texte->autxxx] s’il s’agit de l’auteur xxx.
-  [texte->rubxxx] s’il s’agit de la rubrique xxx.
-  [texte->objetxxx] s’il s’agit de l’objet xxx.

Le plugin a été testé avec tous les types d’URL de SPIP, y compris les URLS arborescentes. N’hésitez pas cependant à faire part de tous cas problématiques.

Prise en compte d’autres domaines

Par défaut, le plugin reconnait toutes les urls sur le domaine où est installé le site [2].

Si votre site est accessible avec et sans www, en http et en https, si vous avez des alias (noms de domaines équivalents) [3], ces variantes d’urls ne seront pas reconnues.

Dans ce cas, vous pouvez définir avec une constante une liste de domaines supplémentaires considérés comme locaux.
Par exemple, dans config/mes_options.php :

define('CORRECTION_LIENS_INTERNES_AUTRES_DOMAINES', 'http://domaine.tld,
https://www.domaine.tld, http://www.domaine2.tld/');

Multi-domaines

Si le plugin multi-domaines est activé, le plugin le reconnait automatiquement et tous les domaines déclarés dans la configuration multi-domaines sont considérés comme des domaines locaux, les liens absolus comprenant ces domaines sont transformés en raccourcis SPIP.

Voir en ligne : http://plugins.spip.net/correction_...

P.-S.

Le logo est de Dmitry Mirolyubov sous Licence Creative Commons, Paternité

Notes

[1Par exemple du LaTeX pour produire un livre.

[2détection basée sur la fonction url_de_base()

[3en général, ce n’est pas une bonne idée, les variantes devraient être redirigées sur le domaine principal

Dernière modification de cette page le 13 novembre 2014

Retour en haut de la page

Vos commentaires

  • Le 1er novembre 2013 à 12:42, par Pat En réponse à : Correction des liens internes

    Bonjour,
    Merci pour ces travaux bien utiles et de bien vouloir tester la version 1.2 de ce plugin.
    Les corrections de liens internes ne fonctionnaient pas bien de mon côté, j’ai tenté de les améliorer :
    -  Gestion des ancres
    -  Meilleure compatibilité PHP 5 et SPIP 3
    -  Élargissement sur la reconnaissance des URLs (même anciennes si possible)
    -  Mise en log des URLs corrigées
    -  Prise en compte du raccourci historique des brèves
    -  Optimisation en cas d’absence de liens
    -  Simplification de la RegExp

    Répondre à ce message

  • Le 21 décembre 2013 à 14:51, par Loiseau2nuit En réponse à : Correction des liens internes

    Oh p*t**n ! oO

    Les gars, je vous aime ! Merci ! :-)

    Répondre à ce message

  • Le 28 octobre 2013 à 12:32, par François Daniel Giezendanner En réponse à : Correction des liens internes

    Bonjour,

    voilà un plugin fort utile pour ne pas dire indispensable aux rédacteurs.

    bravo et merci

    Fdg

    • Le 28 octobre 2013 à 14:06, par Maïeul En réponse à : Correction des liens internes

      attention dans les premier tmps d’install a bien vérifié que tout marche. Je n’ai fait un test qu’en local avec une dizaine d’article et une url de base du site unique. Je ne sais pas ce que cela donne si on combine avec une url de base qui varie (cas de site a plusieurs noms de domaine)

    • Le 13 novembre 2013 à 05:56, par gilcot En réponse à : Correction des liens internes

      plungin fort utile !
      serait bien utile sur contrib...
      (si ça marche pour le forum aussi)

    • Le 13 novembre 2013 à 08:50, par Maïeul En réponse à : Correction des liens internes

      oui, ca marche pour tout édition d’objet. Mais je n’ai pas la main sur les plugins de contrib ...

    • Le 14 novembre 2013 à 05:53, par gilcot En réponse à : Correction des liens internes

      si un des admins complets nous lit... (ce plugin fait partir de ceux que j’ai repéré comme pouvant être utile ici)

    Répondre à ce message

  • Le 31 octobre 2013 à 15:55, par nicod_ En réponse à : Correction des liens internes

    Bonjour,
    très bonne et salutaire idée.
    Je suis très attaché à la portabilité de SPIP, grâce à ses liens relatifs, et je suis toujours désolé de voir les rédacteurs copier coller leurs liens depuis le front.
    J’ai testé sur un site un peu volumineux, ça fonctionne très bien, même à travers les crayons.

    Mais sur ce site, j’ai une configuration en multidomaines, et le plugin ne reconnait pas du tout et donc ne corrige pas les liens vers d’autres domaines que celui en cours de consultation.
    Dans un article qui répond sur domaine1.tld, les rédacteurs peuvent coller des liens vers des articles de domaine2.tld

    Serait il possible de traiter une liste de domaines plutôt qu’un seul ?
    Un test rapide avec ce patch en tout début de la fonction fonctionne :

    function correction_liens_internes_correction($texte){
     $urls_sites = array(url_de_base(), 'http://domaine2.tld/', 'http://domaine3.tld');
     array_walk($urls_sites, function(&$v) { $v = preg_quote($v); });
     $url_site = join('|',$urls_sites);
     ...

    Dans mon cas, je pourrais récupérer dynamiquement la liste des domaines déclarés dans multidomaines, mais c’est un cas très particulier.
    De manière générale, une telle liste pourrait être définie en constante (ou en config ?).

    Ensuite, une fois les liens absolus transformés en texte, c’est au squelette de savoir les générer sur le bon domaine (et c’est ce qui se passe sur mes sites).

    • Le 31 octobre 2013 à 15:59, par Maïeul En réponse à : Correction des liens internes

      salut, merci pour tes remarques, et le bout de code

      Pour la question des multidomaines, je propose ceci :
      1) on récupére automatiquement dans multidomaines s’il est installé
      2) on propose une constante pour ajouter d’autres urls de base, au besoin.

      Si cela te convient, te sens tu prêt à faire le codage et à le commiter ?

    • Le 31 octobre 2013 à 16:47, par nicod_ En réponse à : Correction des liens internes

      Je peux faire cette modif, oui.
      Pour la déclaration d’une constante, c’est une liste qu’il faudrait, et php n’autorise pas d’array en define.
      Une simple liste de domaines séparés dans une chaine ?

    • Le 31 octobre 2013 à 16:52, par Maïeul En réponse à : Correction des liens internes

      arg,

      séparé par une virgule (qui je crois ne fait pas parti des urls)

      n’hésite pas à te mettre en co-auteur dans le paquet.xml

    • Le 31 octobre 2013 à 18:41, par nicod_ En réponse à : Correction des liens internes

      Commit envoyé, tu me dis.
      http://zone.spip.org/trac/spip-zone/changeset/77814

      Le code prend en compte les domaines déclarés par le plugin multidomaines (s’il est installé) et ceux déclarés par une constante, exemple :
      define(’CORRECTION_LIENS_INTERNES_AUTRES_DOMAINES’,’http://domaine1.tld domaine2.tld’) ;
      Séparateur : espace ou virgule, domaines avec ou sans http:// (tout est nettoyé)

    • Le 31 octobre 2013 à 18:50, par Maïeul En réponse à : Correction des liens internes

      hop, http://zone.spip.org/trac/spip-zone/changeset/77815. Je t’ai mis co auteur sur l’article. Tu peux compléter la doc ?

      merci encore !

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Le plugin FreeRadio 1.0

    25 mai 2011 – 29 commentaires

    Le plugin SPIP FreeRadio est un lecteur de flux audio gratuit à intégrer dans le corps des articles. Il permet de se mettre « à l’écoute » de WebRadios ou de sons à partir de leurs URL. FreeRadio est écrit en actionscript. Facile à intégrer, il est (...)

  • Mailsubscribers

    16 janvier 2013 – 274 commentaires

    Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email. Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes (...)

  • noiZetier v2

    9 novembre 2012 – 36 commentaires

    Le noiZetier offre une interface d’administration permettant d’insérer au choix des éléments modulaires de squelettes (noisettes) et de les ajouter ainsi à ses squelettes. Compatibilité La version 2 du noizetier fonctionne sous SPIP 3. Elle est (...)

  • cirr : plugin « rédacteur restreint »

    29 octobre 2010 – 60 commentaires

    Ce plugin « cirr : rédacteur restreint » permet d’affecter des rubriques aux rédacteurs et modifie les droits afin qu’un rédacteur restreint (ou un administrateur restreint) voit dans l’espace privé uniquement les rubriques qui lui sont affectées (et leur (...)

  • Un retour d’expérience d’utilisation de Formidable

    26 octobre – commentaires

    Il s’agissait de créer un formulaire d’inscription à un évènement modérer les inscriptions dans le privé publier les inscriptions dans le public Nous avons discuté de cette présentation lors de l’apéro SPIP du 15 février 2016 à la Cantine (...)

Ça spipe par là