SPIP-Contrib

SPIP-Contrib

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

290 Plugins, 198 contribs sur SPIP-Zone, 83 visiteurs en ce moment

Accueil > Administration et BDD > Liaison d’objets > Liaison d’objets

Liaison d’objets

24 novembre 2017 – par Rainer Müller – commentaires

13 votes

Permet de lier les objets SPIP entre eux.

Introduction

Ce plugin s’appelait Sélection d’Objets auparavant et a été renommé dans un souci de consistance.

Il permet de créer des liens entre tous les objets de SPIP, ce qui rend possible de lier des articles à d’autres articles, des rubriques aux auteurs... À vous de définir quels objets peuvent se lier entre eux.

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

Quelques termes

Le plugin utilise les termes suivants :

Objet Cible
L’objet auquel un autre objet (l’Objet Lié voir ci-bas) est attaché

Objet Lié
Un objet qui a été attaché à un autre objet ( à l’Objet Cible)

Type lien
Chaque lien entre objets peut être classifié. Ces types de liens sont définis soit globalement soit pour chaque Objet Cible.

Je peux donc par exemple de proposer un choix de type de liens quand je veux lier un objet (Objet lié) à un Objet Cible.

Configuration

Aucune pré configuration n’est faite, un passage par le panneau de configuration est donc obligatoire.

Les Objets Cibles
Commencez par définir les objets auxquelles des objets (Objets Liés) peuvent être liés.

Les types de liens
La définition des types de liens est purement facultative. Vous pouvez en définir des types par défaut ou un ensemble de types de liens pour chaque Objet Cible.
Indiquez une définition par ligne, suivie d’une virgule et d’une description. La description peut être une chaîne de langue.
p.ex

liens_associes,plugin:titre_liens_associes
nouvelles,plugin:titre_nouvelles

Les Objets Liés
Les objets qui peuvent être liés à l’objet cible.

Lien Unique ou entre Objet Cible et Objet Lié
Par défaut, le plugin ne propose d’ajouter un Objet Lié à un Objet Cible que s’il n’a pas déjà été sélectionné pour ce même objet.

Si vous avez besoin de pouvoir lier le même Objet lié plusieurs fois au même Objet Cible, par exemple avec différents Types de liens, alors vous devez alors cocher l’option « Désactiver la limite de liaison par objet cibles ».

Limite des Objets cibles
Pour chaque Objet Cible il est ensuite possible de limiter les valeurs possibles des id_objets. Par exemple je ne veux proposer uniquement les articles 1,3 et 4 comme Objet Cible.

Utilisation

Je veux par exemple proposer un menu composé d’article, de rubriques et de sites web sur la rubrique avec l’id 1.

Je commence par définir dans la configuration l’objet rubriques
comme Objet Cible et les objets rubriques, articles et
sites
référencés comme Objet Lié

Il y a maintenant deux manières pour lier des objets :

Depuis la page de l’Objet Cible
En reprenant notre exemple je me rends sur la page de la rubrique 1 dans l’espace privé de spip. En bas de la page se trouvera alors maintenant un menu de sélection permettant de chercher l’objet à attacher et le menu de sélection pour les types de liens (si définis dans config).

L’Objet Lié est alors ajouté à la fin de la liste de sélection pour la rubrique 1. L’ordre de la liste peut être changé via drag and drop ou avec les flèches vertes.

Depuis la page de l’Objet Lié
Dans l’espace privé, je me rends sur la page de l’objet que je veux ajouter à la rubrique 1.

Les données de l’Objet Lié
Un Objet Lié est un nouveau objet pour lequel, il est possible de mettre un titre, descriptif, une url ou un logo, ce qui permet de d’afficher des contenus différents de ceux de l’objet d’origine.

Pour cela, rendez vous sur la page de l’Objet Cible. Dans la liste des Objets liés vous trouverez à droite une icône « Modifier cet objet lié » .

Usage en squelettes
Les Objets liés peuvent être appelés via la Boucle LIAISON_OBJETS

Voici ce critères suivants plus importants :
• lang
• id_objet et objet (l’id et l’objet de l’ Objet Lié)
• id_objet_dest et objet_dest (l’id et l’objet de l’ Objet Cible)
• type_lien (le type de lien)

et les autres titre, descriptif, url, ordre, ordre_objet, date, statut

Tous ces critères peuvent évidemment aussi servir comme balise.

Un example concret se trouve dans : prive/objets/liste/inc-liaison_interface.html

On y trouve la Boucle LIAISON_OBJETS qui liste les différents Objets liés.

Un filtre compile ensuite pour chaque objets les informations de l’objet d’origine et celles del l’Objet Lié.

-  Exemple : squelette d’une boucle

  1.   <BOUCLE_liaison(LIAISON_OBJETS){par ordre,lang}{lang ?=#ENV{l}}{statut ?}{id_objet_dest ?} {objet_dest ?}>
  2.    
  3.     [<tr class="tr_liste" id='#ID_LIAISON_OBJET'>(#ID_OBJET|generer_modele{#OBJET,modeles_so/liaison_interface_tr,#ARRAY{
  4.        ordre,#ORDRE,
  5.        id_liaison_objet,#ID_LIAISON_OBJET,
  6.        objet_dest,#OBJET_DEST,
  7.        id_objet_dest,#ID_OBJET_DEST,
  8.        total_boucle,#TOTAL_BOUCLE,
  9.        titre,#TITRE,
  10.        compteur_boucle,#COMPTEUR_BOUCLE,
  11.        date,#DATE,
  12.        type_lien,#TYPE_LIEN,
  13.        
  14.        }})</tr>]
  15.     </BOUCLE_liaison>

Télécharger

avec modeles_so/liaison_interface_tr.html :

  1. #SET{tables,#ENV{tables,#VAL|lister_tables_objets_sql}}
  2.         <td>
  3.         [(#ENV{compteur_boucle}|!={1}|oui)
  4.             <div><a class="select" href="[(#URL_ACTION_AUTEUR{ranger,remonter_ordre-[(#ENV{langue})]-[(#ID_LIAISON_OBJET)]-#ORDRE-[(#OBJET_DEST)]-[(#ENV{id_objet_dest})]}|parametre_url{load,prive/objets/liste/inc-selection_interface})]#liaison_objets"><img src="#CHEMIN{prive/themes/spip/images/fleche-haut.gif}" /></a></div>
  5.             ]
  6.         [(#ENV{compteur_boucle}|!={#ENV{total_boucle}}|oui)
  7.             <div><a class="select" href="[(#URL_ACTION_AUTEUR{ranger,descendre_ordre-[(#ENV{langue})]-[(#ID_LIAISON_OBJET)]-#ORDRE-[(#OBJET_DEST)]-[(#ENV{id_objet_dest})]}|parametre_url{load,prive/objets/liste/inc-liaison_interface})]#liaison_objets"><img src="#CHEMIN{prive/themes/spip/images/fleche-bas.gif}" /></a></div>
  8.             ]
  9.            
  10.         </td>
  11.         <td class='statut'>[(#STATUT|puce_statut{selection_objet,#ID_LIAISON_OBJET})]</td>
  12.         <td class="titre">
  13.            #SET{objet,#OBJET}
  14.             [(#OBJET|=={document}|oui)#SET{objet,document_edit}]
  15.             [(#SET{id,id_#OBJET})]        
  16.             [(#OBJET|=={site}|oui)
  17.             #SET{id,id_syndic}
  18.             ]
  19.            [<a class="select"  href="[(#URL_ECRIRE{#GET{objet}}|parametre_url{#GET{id},#ID_OBJET})]">(#ENV{logo_objet}|image_reduire{25}|sinon{#ENV{logo_objet}|image_reduire{25}|inserer_attribut{class,spip_logos}}) </a>]
  20.             <a href="[(#URL_ECRIRE{#GET{objet}}|parametre_url{#GET{id},#ID_OBJET})]">[(#TITRE|sinon{#OBJET|info_objet{#ID_OBJET,#ENV{champ_titre}}})]</a>
  21.             #SET{table,#OBJET|table_objet_sql}
  22.             [<div>((#GET{tables}|table_valeur{#GET{table}}|table_valeur{texte_objet}|_T))</div>]
  23.         </td>
  24.         <td class="type_lien">[(#TYPE_LIEN|nom_type{#OBJET_DEST})]</td>
  25.         <td class="date">[(#DATE|affdate)]</td>
  26.         <td class="id_objet"><b style="white-space: nowrap;">N°[(#ID_OBJET|>{0}|?{#ID_OBJET,#ID_LIAISON_OBJET})]</b></td>
  27.         <td>
  28.             [(#AUTORISER{modifier,selection_objet,#ID_LIAISON_OBJET})
  29.                 [(#ID_LIAISON_OBJET|afficher_qui_edite{liaison_objet}|non)
  30.                     [(#URL_ECRIRE{selection_objet_edit,id_selection_objet=#ID_LIAISON_OBJET}|icone_verticale{<:liaison_objet:icone_modifier_liaison_objet:>,objet})]
  31.                 ]
  32.             ]
  33.         </td>
  34.         <td>
  35.             <a href="[(#URL_ACTION_AUTEUR{ranger,supprimer_ordre-[(#ENV{langue})]-[(#ID_LIAISON_OBJET)]-#ORDRE-[(#OBJET_DEST)]-[(#ENV{id_objet_dest})]}|parametre_url{load,prive/objets/liste/inc-liaison_interface})]#selection_objets" class="select"><img src="#CHEMIN{prive/themes/spip/images/item-remove.png}" alt="X" /></a>
  36.         </td>

Télécharger

Todo

Il y a encore beaucoup d’améliorations possibles et les suggestion sont bienvenues, ce qui ne veut pas dire qu’elles seront codées immédiatement, mais chacun est évidemment libre de commiter lui même.

-  probablement faire une balise dynamique pour rendre l’utilisation plus aisée.
-  compléter cette doc par des captures d’écrans.

Voir en ligne : https://plugins.spip.net/liaison_ob...

Dernière modification de cette page le 16 octobre 2018

Retour en haut de la page

Vos commentaires

  • Le 7 février à 05:21, par jpcrea En réponse à : Liaison d’objets

    Bonjour,

    Merci pour cette contrib qui peut être bien utile et qui "permet de créer des liens entre tous les objets de SPIP"
    J’utilise, par ailleurs, le plugin Grappes qui "a pour vocation de permettre de réunir des objets SPIP, indépendamment de leurs liens « naturels »".
    Je me demandais quelles utilisations on pouvait faire de l’une plutôt que de l’autre ?
    Merci pour vos lumières.

    • Le 7 février à 09:54, par Rainer Müller En réponse à : Liaison d’objets

      J’avoue de ne avoir jamais utilisé grappe et de méconnaître son fonctionnement. D’après sa doc, les différences principales que je vois :

      • Grappes : lie une grappe à un objet puis lies des objets à une grappe. Liaisons lie directement les objets avec la possibilité de définir un type de liaisons. Les deux permettent donc de faire des liens « thématiques ». Liaison permet également de faire un lien sans type.
      • Au niveau interface, je en sais pas si grappe permet de modifier l’ordre d’affichage, ce que liaison permet
      • Liaison permet aussi de surcharger des infos de l’objet original comme le titre, descriptif, logo et url.
      • Les autres différences sont évidement au niveau de l’intégration dans les squelettes
    • Le 7 février à 11:30, par jpcrea En réponse à : Liaison d’objets

      Merci pour vos explications. Je vais creuser « Liaison d’objets » cela pourrait m’être utile dans certains cas.
      Avec les plugin « Grappes » et « Accès restreints », j’ai la possibilité, par exemple, de restreindre l’accès à des rubriques à des groupes/grappes de personnes.

      Je vois bien maintenant que les 2 sont différents et pourraient se compléter.

    • Le 7 février à 11:57, par jpcrea En réponse à : Liaison d’objets

      PS : Grappes et Liaison d’objets devraient permettre de lier des grappes entre elles.

    • Le 7 février à 17:33, par Rainer Müller En réponse à : Liaison d’objets

      oui tout à fait

    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

  • Jeux pour SPIP 3

    27 juillet 2012 – 53 commentaires

    Un portage pour SPIP 3 du plugin Jeux a été fait. Explications et nouveautés. Cet article concerne une mise à jour du plugin Jeux dont la description complète est disponible ici : Des jeux dans vos articles !. Le code du plugin Jeux est un code (...)

  • Plugin Vidéo(s)

    23 novembre 2010 – 704 commentaires

    Interface de gestion et modèle d’insertion des vidéos : Dailymotion Vimeo Youtube Modèle de la balise HTML5 video avec alternative flash html5media : Lecture HTML5/Flash pour tout navigateur des fichiers MP4/H264/Ogg/WebM/Mkv Support mobile, iPad, (...)

  • Vidéo Accessible

    6 avril 2011 – 168 commentaires

    Un plugin pour faciliter la diffusion de vidéos accessibles. Accessibilité des vidéos Accessibilité de la vidéo Afin d’être pleinement accessible, une vidéo (composée d’images et de sons) doit répondre à plusieurs critères. Le critère de base est (...)

  • Groupes de mots clés arborescents

    26 juillet 2012 – 37 commentaires

    Ce plugin permet de gérer une arborescence de groupes de mots clés. Les sous groupes de mots héritent des propriétés du groupe racine (sur quoi peut on le lier ? peut il y avoir un ou plusieurs mots). Les formulaires de liens qui permettent de lier (...)

  • Mailshot

    16 janvier 2013 – 336 commentaires

    Ce plugin prend en charge l’envoi en nombre d’info-lettres par email. Mailshot permet l’envoi en nombre d’emails au moyen d’un SMTP (ou d’un service externe) dédié à cet effet. Il permet de limiter la cadence d’envoi. Enfin, ce plugin implémente la (...)