Liens entre contenus

Les raccourcis typographiques de SPIP permettent de gérer très proprement les liens internes entre contenus, évitant notamment de tout casser quand la méthode de construction des URL change, ou que l’on déplace certains contenus.

Le plugin Médiathèque permet en outre d’éviter que soient supprimés des documents qui sont rattachés à des articles, soit explicitement, soit simplement par appel d’un des modèles <doc>, <img> ou <emb>.

Ce plugin « Liens entre contenus » propose d’assurer la même protection à l’ensemble des types de contenus de SPIP, pour empêcher que l’un d’eux soit supprimé si d’autres pointent vers lui.

Prenons par exemple ce vieil article [1] sur mon blog.

Le lien intitulé « Tiscali » pointe vers cet autre article encore plus ancien, y faisant référence.

De l’information en plus

Côté espace privé, le plugin « Liens entre contenus » ajoute une boîte d’information sur chacun de ces deux articles, pour montrer l’existence du lien :

Une boîte en plus dans l’interface

Zoomons sur cette boîte, d’abord dans le cas du premier article :

On peut voir les informations suivantes :

  • l’article que l’on est en train de visualiser contient un lien vers un autre contenu, sur lequel nous savons ceci :
    • c’est un article, comme l’indique l’icône
    • cet article est publié, comme l’indique le carré vert [2]
    • le titre de l’article lié est indiqué, ainsi que son identifiant
    • je peux cliquer pour aller consulter directement cet autre article
  • aucun autre contenu ne contient de lien vers l’article que l’on est en train de visualiser

Si l’on regarde la boîte ajoutée au second article, l’information est logiquement complémentaire :

Si, de plus, j’écris un lien qui pointe vers un contenu qui n’existe pas, cela est mis en évidence :

Mais surtout une protection contre les fausses manipulations !

Là où ce plugin devient vraiment intéressant, c’est qu’il permet d’éviter des manipulations hasardeuses qui pourraient mettre en péril l’intégrité du site [3].

En effet, si je veux mettre changer le statut du second article, le remettre en évaluation par exemple...

... le plugin va me prévenir qu’un autre contenu pointe vers celui-ci, qu’il serait impacté par une telle action [4], et me propose donc de l’annuler !

Si j’effectue tout de même cette action, malgré l’alerte, la boîte du premier article se présentera différemment, on verra bien que ce contenu pointe vers un autre dont le statut n’est malheureusement pas « publié » :

Mieux, l’information est importante, donc elle est mise en évidence dès le début de la page :

Installation

Télécharger le paquet ZIP du plugin et placer son contenu dans votre répertoire « plugins/ ». Activez-le ensuite dans la page de gestion des plugins.

Évolutions...

Toutes les actions de changement de statut ne sont pas protégées, notamment dans les listes.

Notes

[1L’idée est d’illustrer mon propos, pas de me faire de la pub, l’obsolescence de ces contenus devrait suffire...

[2OK, pas terrible pour l’accessibilité, mais j’ai repris le standard SPIP pour être cohérent.

[3OK, j’y vais un peu fort...

[4Puisqu’il contiendrait alors un lien vers un contenu non publié.

Discussion

20 discussions

  • 1

    Quelqu’un a testé la compatibilité Spip 4.0 et 4.1 ?

    Répondre à ce message

  • 7

    Bonjour,
    Ce plugin est marqué comme incompatible avec SPIP 3.1.

    Est-il prévu de le maintenir ? Je n’en vois pas d’autre qui font la même chose.

    Merci
    dd

    • Hello,

      Tu as testé sous spip 3.1 ? Il suffit de changer provisoirement la borne dans paquet.xml

    • Bonsoir,

      Non je n’ai pas testé car j’attendais d’en savoir plus avant de mettre à jour mon site.
      Je vais le faire et posterai le résultat ici.
      Merci
      dd

    • Bonjour,

      J’ai appliqué la méthode et cela fonctionne, merci.
      Que faut-il entendre par « provisoirement » ?

      dd

    • Pour tester => provisoirement, si ça plantait le site. Si c’est bon, il n’y a plus qu’à mettre le plugin à jour sur spip-zone. C’est 100% OK ou tun as des bugs ?

    • Ça va de soi mais... Les essais sur une copie du site ! Pas sur le site en prod...

    • Bon j’ai fait le changement de borne (en production, j’aime le risque..) et tout fonctionne.

    • Bonjour,

      Merci pour le test... je vais monter la borne à 3.1 et pousser une mise à jour.

      Stay tuned :P

    Répondre à ce message

  • 1

    Sous SPIP v3, supposons un article publié, visualisé par un admin restreint n’ayant pas les droits de modification sur cette branche spécifique, le plugin affiche le message Cet article n’est pas publié mais d’autres articles pointent vers celui-ci.

    Ce message n’est pas affiché si un admin restreint ayant les droits de modification sur cet article visualise le même article.

    Je ne connais pas assez le code du plugin, mais il me semble que cela pourrait éventuellement venir des lignes 214 et 215 de inc/liencontenus.php :

    var statutActuel = $('select[name=statut] option:selected').val();
    var estPublie = statutActuel == 'publie';

    En effet, pour un admin restreint n’ayant pas les droits de modications, il n’y a pas de champs select dans la page, mais juste un span avec le statut de l’article.

    Cordialement

    • Bonjour,

      Si l’admin restreint en question n’a pas les droits de modification a quoi ça sert de l’alerter vu qu’il ne pourra rien faire de l’info ?

      Ou alors c’est que j’ai mal compris votre message ?

      A vous relire,

    Répondre à ce message

  • 2

    Hello,

    Avec la version 0.30.0 - du plugin activé la page ecrire/ ?exec=sites est vide...
    Je suis bien incapable de dire pourquoi.
    dd

    • Hello,

      Bien vu !

      C’est reproductible : ça déclenche une erreur PHP

      PHP Fatal error : Call to undefined function debut_cadre_relief() in /var/www/spip/plugins/dev/liens_contenus_zone/inc/lienscontenus.php on line 182

      Bref c’est un vrai bug toussa... je creuse et j’essaye de proposer un correctif.

      Merci !

    • Hello,

      Correctif trouvé et poussé vers le trunk !

      C’est accessible dès à présent via subversion et ça devrait arriver dans l’archive SPIP 0.30 d’ici une heure ou deux si j’ai bien compris le fonctionnement de la zone

    Répondre à ce message

  • 3

    Bonjour,

    Est il prévu un portage pour SPIP v3 ?

    Cordialement.

    Répondre à ce message

  • 1

    Un grand merci pour ce portage sous SPIP 3. Bravo !!!

    En faisant quelques tests, je me rends compte qu’il y a un type de liens qui n’est pas pris en compte : les articles virtuels pointant vers un autre article (ou objet SPIP). Or c’est tout à fait possible sous SPIP.

    Encore merci

    • Ah oui c’est vrai on peut faire un lien et virer l’article d’origine après coup !

      Je vais rajouter ça dans les pistes d’amélioration pour que ça ne se perde pas

      Merci :)

    Répondre à ce message

  • 4

    Hello,

    Je viens de faire un premier jet de portage pour SPIP 3.0 :

    http://zone.spip.org/trac/spip-zone/browser/_plugins_/liens_contenus/branches/3.0.X

    Y’a plus qu’à tester & stabiliser :P

    • bonjour,
      1er retour sur un SPIP 3.0.17 [21515] sur une page /ecrire/ ?exec=article&id_article=XX

      1 	Erreur SQL 1146
      Table 'spip.spip_liens_contenus' doesn't exist
      SELECT liens_contenus.type_objet_contenant, liens_contenus.id_objet_contenant FROM spip_liens_contenus AS <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bGllbnNfY29udGVudXM8L2NvZGU+"></span> WHERE (liens_contenus.type_objet_contenu = 'article') AND (liens_contenus.id_objet_contenu = '115') ORDER BY liens_contenus.type_objet_contenant, liens_contenus.id_objet_contenant
      	../plugins/liens_contenus/branches/3.0.X/exec/lienscontenus_liste.html	_objets_avec_liens_vers_courant	3
      _objets_avec_liens_depuis_courant	14

      Voila,
      en tout cas merci pour ce portage très attendu

      dd

    • Hello,

      J’ai apporté de nouvelles corrections qui devraient je pense régler ce souci pour tout le monde.

      Merci pour vos tests, tenez moi au courant si jamais... :)

    • super !
      merci

    • Hello, voilà quelques news :

      La section téléchargement a été mise à jour avec une version 0.30.0 de test compatible Spip 3.0 (Attention elle n’est pas bi-compatible 2.1 + 3.0)

      Le trunk subversion a été mis à jour (synchro avec la branche 3.0.X au moment où j’écris) et les anciennes versions pour Spip 1.9.2 et Spip 2.1 ont été gardées sous forme de tags au cas où...

      Il va y avoir quelques chaines de traductions supplémentaires à gérer (pour l’instant ces nouvelles chaines ne sont bien affichées qu’en français)

      La prochaine modif ça sera du nouveau : ajout d’une alerte sur un article quand il n’est pas publié mais qu’un autre publié y fait référence.

      C’est tout... pour le moment :P

    Répondre à ce message

  • Gautier

    Bonjour,

    J’aimerais pouvoir utiliser ce plugin dans la partie publique d’un site pour, sur un article (ou objet) donné, afficher les articles (ou objets) qui pointent dessus (lien retour, donc).

    Par exemple, sur un article référencé (lié) dans une bibliographie, afficher un lien vers la bibliographie pour permettre à l’internaute de consulter la liste d’autres publications sur le même sujet.

    Malheureusement ((si je peux me permettre), ce plugin ne s’exécute qu’en partie privée. Est-il difficile de l’exécuter en partie publique ? Je ne suis pas programmeur, mais j’ai l’impression qu’une nouvelle fonction associée à un pipeline SPIP le permettrait assez aisément.

    Autre question : cela aurait-il un impact néfaste sur les performances ?

    Merci d’avance,

    Gautier

    Répondre à ce message

  • 2

    Très bonne idée ! Ce plug me semble en effet indispensable, mais avec Free, je suis obligé de rester sur spip v2.09 .... Et ce plugins ne semple pas compatible, dommage.
    Cela dit : Merci pour cette TRÈS bonne idée !

    Répondre à ce message

  • Bonjour,

    Est-ce que ce plugin fonctionne avec Spip 3 ?

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

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

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom