SPIP-Contrib

SPIP-Contrib

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

289 Plugins, 197 contribs sur SPIP-Zone, 67 visiteurs en ce moment

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

Liaison d’objets

24 novembre 2017 – par Rainer Müller

6 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 quel 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 8 janvier 2018

Retour en haut de la page

Répondre à cet article

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 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

  • Éditorial (HTML5UP)

    27 novembre 2017 – 32 commentaires

    Squelette SPIP pour intégrer le modèle Editorial de HTML5UP https://html5up.net/editorial Configuration La page de configuration permet quelques réglages. On y défini la couleur principale du site, des informations de contact et le contenu de la (...)

  • Escal-V3 et Escal-V4

    16 février 2012 – 309 commentaires

    Un jeu de squelettes proposant un affichage en 2 ou 3 colonnes avec un large choix de noisettes à insérer ou pas, fortement paramétrable depuis l’espace privé. Présentation A l’instar de sa petite soeur plugin Escal-V2 dont elle reprend toutes les (...)

  • Dépublie

    13 janvier 2014 – 96 commentaires

    Dépublie des articles à une date prédéfinie, soit automatiquement avec une durée établie au moment du changement de statut en publication, soit manuellement. En préambule il est nécessaire de se souvenir que personne n’apprécie se retrouver sur une (...)

  • Plugin Modèles media

    25 avril 2011 – 183 commentaires

    Les modèles , et produisent chacun un résultat différent et ce résultat, pour les images, dépend du fait qu’elle soit dans le portfolio ou non. Ce plugin propose une nouvelle série de modèles ayant un comportement unifié et indépendant du mode des (...)

  • LESS pour SPIP : Less-CSS (anciennement LESSpip)

    5 novembre 2010 – 50 commentaires

    Less-CSS (Anciennement LESSpip) est un plugin intégrant facilement le logiciel LESS dans SPIP. LESS est une extension de CSS ajoutant les variables, les classes, les opérations, les imbrications au langage. Facilitant ainsi l’écriture de feuilles (...)