Sélections éditoriales

Faites des listes de choses intéressantes.

Ce plugin permet de gérer des listes de contenus quelconques de manière éditoriale. Chaque sélection est donc entièrement libre, et peut renvoyer aussi bien vers des contenus internes au SPIP quels qu’ils soient (article, événement, etc) que vers des liens externes. Chaque contenu sélectionné est personnalisable finement : URL, titre, descriptif et image lorsqu’on en a besoin.

Ce plugin vise à remplacer les bidouilles que l’on fait parfois (ou souvent) pour permettre aux admins de gérer manuellement leur page d’accueil, ou encore pour faire des listes de choses à voir en plus à la fin d’un contenu.

Ma première sélection

La page listant toutes les sélections se trouve dans le menu Édition => Sélections éditoriales.

Une sélection a

  • un titre,
  • un descriptif, qui peut être utilisé uniquement pour les admins, afin de donner des indications éditoriales telles que la taille recommandée pour les images,
  • un identifiant textuel pour appeler facilement la sélection dans vos squelettes,
  • et une limite optionnelle qui permet d’améliorer un peu l’ergonomie en bloquant l’ajout de contenus lorsqu’on l’atteint.
Édition générale d’une sélection éditoriale

Ajouter des contenus

Une fois votre sélection crée, vous pouvez commencer à ajouter des contenus à l’intérieur, depuis sa page d’admin.

Interface d’ajout ou de modification des contenus sélectionnés

Un lien vous permet d’ajouter de un nouveau contenu (①). Lorsque l’on clique, un formulaire d’ajout de contenu remplace ce lien directement sous la liste. Lorsque vous avez activé une limite et qu’elle est atteinte, ce lien n’apparaît plus.

Lorsque des contenus sont déjà présent, un bouton de suppression et un lien de modification permettent de… faire ce que ça dit (②).

Enfin pour chaque contenu, il est possible d’ajouter une image. Lorsqu’il n’y en a pas, une hachure est affichée à la place. Il suffit de cliquer sur l’image (hachure ou image déjà présente) pour pouvoir la modifier. (③).

Formulaire d’édition d’un contenu à sélectionner

Dans le champ URL, il est possible de mettre un URL complet, par exemple pour un site externe, ou bien fournir un contenu SPIP avec son type et son identifiant (evenement1234).

Le plugin sert avant tout à lister des contenus ailleurs, mais il est possible de ne pas remplir l’URL du tout, ce qui en fait alors un élément arbitraire qui est un contenu en soi.

Si vous omettez le titre, il sera remplit auto-magiquement grâce à l’URL. Soit avec le titre du contenu SPIP, soit avec le titre HTML de la page si c’est un URL complet.

Pour ordonner les contenus, on peut les glisser-déplacer, et des boutons permettent de changer l’ordre.

Des sélections pour compléter vos contenus SPIP !

En plus de pouvoir créer des sélections « autonomes », le plugin permet aussi d’ajouter des sélections à la suite de n’importe quel contenu de SPIP.

Pour cela, il faut configurer le plugin pour autoriser ces ajouts sur les types de contenus de votre choix (articles, événements, newsletters, etc).

Après cela, il suffit de vous rendre sur la page d’admin d’un de vos contenus (un article par exemple). Vous avez alors un lien permettant d’insérer une nouvelle sélection éditoriale (④). Dès que c’est ajouté, vous pouvez construire votre sélection directement au même endroit (sous l’article ⑤), sans être obligé d’aller sur la page de la sélection (mais c’est possible aussi en cliquant sur son titre ⑥).

Édition des sélections liées à un contenu (ici une infolettre)

Exemples d’utilisations

Pour gérer manuellement les contenus d’une page d’accueil

Pour gérer une ou plusieurs listes d’actualités. Vous pouvez par exemple prendre le premier contenu d’un sélection, l’afficher en énorme, puis lister les autres contenus de la même sélection en plus petit à la suite.

Ou si vous avez cédé au démon de votre commanditaire, pour gérer manuellement les contenus d’un carrousel. :D

Pour gérer manuellement des listes du type « Voir aussi »

Il est possible d’ajouter des sélections liées à n’importe quel contenu de SPIP. Vous pouvez donc activer les sélections sur les contenus « Articles », et ajouter une ou plusieurs listes à la suite d’un article. Cela vous permet ensuite dans vos squelettes, d’afficher des listes de contenus annexes en rapport avec le contenu principal. Et cela peut aussi bien être des pages internes que des sites externes. Pratique !

Pour gérer finement les contenus de vos newsletters

Le plugin Newsletter permet déjà de lier des contenus SPIP à une newsletter. Mais c’est une liaison très simple, qui ne permet pas de contrôler les titres, le descriptif, les images, etc.

Une solution est donc d’activer les sélections sur les Newsletters. Une fois que vous avez écrit le texte principal, vous pouvez ajouter une sélection, et dans le squelette de l’email, vous pouvez l’utiliser pour l’afficher comme vous le voulez.

Utilisation dans vos squelettes

Récupérer une sélection autonome avec son identifiant

Exemple d’affichage d’une sélection d’actualités, avec le titre du bloc reprenant le titre de la sélection, et en limitant à 3 contenus histoire de contrôler encore plus.

<BOUCLE_actualites(SELECTIONS){identifiant=actualites}>
<B_actualites_contenus>
<div class="liste selections actualites">
	<h2>#TITRE</h2>
	<ul class="liste-items">
		<BOUCLE_actualites_contenus(SELECTIONS_CONTENUS){id_selection}{0,3}{par rang}>
		<li class="item [(#CHAMP_SQL{css}|attribut_html)]">
			<article class="entry contenu hentry">
				[(#LOGO_SELECTIONS_CONTENU|image_passe_partout{600,300}|image_recadre{600,300}|image_aplatir{jpg,ffffff}|adaptive_images{600})]
				<div class="texte">
					<strong class="titre entry-title"><a href="#URL"><span[ class="(#EDIT{titre})]">#TITRE</span></a></strong>
					[<div class="[(#EDIT{descriptif}) ]descriptif entry-content ">(#DESCRIPTIF|couper{80,'…'})</div>]
				</div>
			</article>
		</li>
		</BOUCLE_actualites_contenus>
	</ul>
</div>
</B_actualites_contenus>
</BOUCLE_actualites>

Discussion

32 discussions

  • 1

    Bonjour ce code de Sélections éditoriales crée un message dans le backoffice : (voir P.J.) depuis la dernière version.
    Je travaille sur un objet éditorial. Cela n’a pas l’air systématique, j’ai ce messagfe de temps en temps.

    [(#REM) Ajouter des sélections ]
    19     [(#AUTORISER{associerselections, #OBJET, #ID_OBJET}|et{#AUTORISER{creer, selection}}|oui)
    20     <div class="selections_ajouter" id="selections_ajouter">
    21
    22         [(#REM) Soit un bouton de création rapide ]
    23         [(#CONFIG{selections_editoriales/reutilisation}|non)
    24             [(#BOUTON_ACTION{
    25                 [(#CHEMIN_IMAGE{add-24}|balise_img|inserer_attribut{style,background-image:url-INERTE0-40-#VAL{selection}|objet_icone{24}|extraire_attribut{src}-INERTE0-41-})]
    26                 <b><:selection:texte_ajouter_selection:></b>,
    27                 #URL_ACTION_AUTEUR{ajouter_selection_objet,#OBJET-#ID_OBJET,#GET{self}},
    28                 ajax icone add selection-24 s24 #LANG_RIGHT,
    29                 '',
    30                 <:selection:texte_creer_associer_selection:>
    31             })]
    32         ]
    • Ah oui, ça apparaissait de façon un peu random.
      Ça devrait être résolu dans la prochaine màj (v1.9.1)

    Répondre à ce message

  • Bonjour,
    J’ai le même souci que DD. J’ai créé une sélection éditoriale que je souhaiterais ajouter à une infolettre. J’ai bien paramétré le plugin pour qu’il s’affiche dans les objets articles, infolettres, etc.

    Le bouton séléction éditoriale apparaît bien pour les articles mais pas pour les infolettres !

    Quel est le souci ?

    Merci.

    Yann

    Répondre à ce message

  • 1

    Bonjour,

    Deux petits soucis...

    Le filtre "responsive_logo" utilisé dans model\selection_edito ne fait pas partie de la base de SPIP !

    A mon avis, la mauvaise chaîne est appliquée à la ligne 63 de la squelette editer_selections_contenus.html. Ça devrait être « texte_creer_associer_selections_contenu » et pas « texte_ajout_selection ».

    Les traductions en Néerlandais sont disponibles sur trad.spip.net !

    Cordialement,
    Hanjo

    • Merci, si les trads sont sur trad.spip ça devrait être transféré dans le code automatiquement ensuite.

      Pour le modèle c’est kent1 qui a ajouté ça rapidement, il faudrait sûrement l’améliorer (jamais eu l’utilité car jamais eu à insérer ça à l’intérieur d’un contenu).

      Pour la ligne 63 ça me parait la bonne, car ensuite il y a un autre bouton « créer et associer ». Mais l’interface est vraiment trop bordélique d’après moi, ça fait des blocs dans des blocs dans des blocs, c’est vraiment pas super… :(

    Répondre à ce message

  • 7

    Hello,

    Ptite question… Je teste Role documents (^^) , quand je crée un contenu sélectionné le document ayant le role de logo de l’objet est bien pris en compte auto-magiquement par la selection, génial.

    Y’aurais il moyen d’avoir un Role logo selection OU gérer le logo selection comme document ayant un role.

    • J’ai pas compris :p

      Soit ça va chercher le logo de l’objet SPIP du contenu sélectionné (qui lui-même peut être un document avec un rôle et non pas un « vrai » logo => recherche en cascade).
      Soit tu peux surcharger en assignant une image directement au contenu sélectionné.

      Ah tu voudrais que le logo surchargé spécifique à la sélection soit lui aussi un document… Non ce n’est pas possible actuellement.

    • tu voudrais que le logo surchargé spécifique à la sélection soit lui aussi un document… Non ce n’est pas possible actuellement.

      Oui, c’est ça ;-)

      Cela dit je ne capte pas (en regardant le code) comment ce fait il que le formulaire d’ajout de doc n’apparaisse pas comme sur tout autre objet editorial, même activé dans la config d’association des docs ? Un truc m’échappe lol

      Merci de ta réponse.

    • Bah moi si j’active les documents sur « Contenus sélectionnés » et que je vais manuellement sur la page D’UN contenu sélectionné précis (exec=selections_contenu&id_selections_contenu=XXX : lien qui n’existe nulle part, cette page n’est pas utilisée) et bien j’ai comme il faut le lien d’ajout de documents.

    • Ha ben oui !! ^^ chuis pas une flèche !!

      en fait en ajoutant la balise pipeline afficher complement objet, dans la page editer_selections_contenus, on a bien l’interface complète d’ajout de documents , les roles.

      Merci bien

    • Bonjour,

      Le dernier message de Mist. GraphX semble répondre à mon besoin...
      En revanche, je ne sais pas où/comment ajouter le pipeline proprement (i.e. en permettant les mises à jour futures du plugin)

      Merci d’avance pour votre/vos lumières !

    • Bonjour Sandrine,

      il te faut surcharger le fichier prive/squelettes/inclure/editer_selection_contenus.html

      et ajouter a cet endroit (par exemple) :

        [(#ENV{editer_contenu_logo}|=={#ID_SELECTIONS_CONTENU}|et{#AUTORISER{modifier,selections_contenu,#ID_SELECTIONS_CONTENU}})
      			<div class="ajax">
      				#FORMULAIRE_EDITER_LOGO{selections_contenu,#ID_SELECTIONS_CONTENU}
      			</div>
      			]
      			#PIPELINE{afficher_complement_objet,#ARRAY{args,#ARRAY{type,selections_contenu,id,#ID_SELECTIONS_CONTENU},data,'<div class="nettoyeur"></div>'}}

      ceci te permettra d’avoir accès a l’ajout de documents.

      à discutter et voir ensuite si ça doit être rajouter ou pas « de série » et comment pour faire au mieux au niveau ergonomie, mais en l’état c’est utilisable ainsi.

      Bonne journée

    • Bonjour Mist. GraphX

      Merci pour ta réponse !

      Bonne journée
      Sandrine

    Répondre à ce message

  • 4

    tiens, j’ai un comportement étrange, pour une sélection qui mixe des articles et des rubriques.

    La boucle suivante


    ID RUB #ID_RUBRIQUE
    ID ARTICLE #ID_ARTICLE

    m’affichera dans tous les cas la même valeur pour un #ID_RUBRIQUE et #ID_ARTICLE

    Si par exemple, c’est article888 #ID_ARTICLE ET #ID_RUBRIQUE afficheront 888 tous les 2.

    Idem avec

    (#ID_ARTICLE
    (#ID_RUBRIQUE

    Une idée du pourquoi ?

    • Le deuxième exemple ne passe pas, le voici :

      http://spip.pastebin.fr/48301

    • Ni le premier, il faut que tu mettes <cadre> autour de ton code, comme toujours, sinon c’est interprété en partie. Tu as même des boutons de raccourcis dans la barre des commentaires là, dont un pour des boucles SPIP (<cadre class="spip">).

      Du coup je ne vois pas ta ou tes boucles.

    • Effectivement voici donc :

      <BOUCLE_contenu(SELECTIONS_CONTENUS){id_selection}{par num titre, titre}>
      
      ID RUB #ID_RUBRIQUE<br>
      ID ARTICLE #ID_ARTICLE<br>
      
      [(#ID_ARTICLE|oui) ARTICLE = #ID_ARTICLE]<br>
      [(#ID_RUBRIQUE|oui) RUBRIQUE = #ID_RUBRIQUE]<br>
      
      </BOUCLE_contenu>
    • Ça n’existe pas #ID_ARTICLE ou #ID_RUBRIQUE dans la boucle SELECTIONS_CONTENUS.

    Répondre à ce message

  • 6

    Bonjour,

    Lorsque je place un lien du style article 57 dans le champ descriptif d’un contenu, le lien devient .../ecrire/ ?exec=article&id_article=57, là où j’attendrais un classique /spip.php ?article57.

    L’effet ne se produit avec nul autre champ du site. J’ai mis le filtre |liens_absolus au champ #descriptif dans mon squelette, mais rien n’y fait.

    Une idée ?

    • Hello,

      Je viens de tester en local, le champ descriptif n’est pas dans les traitement automatiques typo dans /base/selections_editoriales. L’url que tu obtiens, n’est donc visible que depuis l’espace privé, et donc avec /?exec=

      Tu peut par contre forcer l’interpretation des traitement, en utilisant ceci dans ton squelette :

      [<div class="descriptif entry-content[ (#EDIT{descriptif})]">(#DESCRIPTIF**|propre)</div>]

      La tu obtiendra, l’url correcte pointant vers ton article.

      En résumé, tu force l’extraction du contenu du champ descriptif avec #BALISE**, puis tu applique le filtre |propre.

      Explications ici :

      A discuter ensuite, si l’auteur du plugin, n’as pas d’objection à rajouter les traitements typo sur ce champ, mais originellement je crois que dans spip et la plus par des plugins les champs descriptifs ne sont pas traités, c’est plutôt texte.

      Bonne journée…

    • Euh c’est faux, dans SPIP il y a :

      $GLOBALS['table_des_traitements']['DESCRIPTIF'][] = _TRAITEMENT_RACCOURCIS;

      Juste bah les liens de contenu, c’est comme dans les articles quoi, dans t’es dans l’admin, ça fait un lien vers la page d’admin du contenu, et quand t’es dans le public ça fait un lien public…

    • ha dans la version que j’ai ça y était pas autant pour moi alors

    • Pas dans une version du plugin, c’est dans SPIP, dans le noyau, cette ligne

    • et dans selection alors pourquoi le rendu |propre nest pas fait en auto alors…

      en fait dès fois en créant des objets, j’ai eut de mémoire a rajouter dans la description des tables le traitement |propre sur certains champs, je croyais que descriptif n’était pas traité d’origine, d’ou ma remarque.

    • Je ne sais pas, suivant la ligne précédente qui est dans public/interface.php du noyau, TOUTE balise DESCRIPTIF passe dans les traitements des raccourcis donc dans « propre ». Donc je ne vois pas pourquoi là ça n’y passe pas dans l’admin des sélections.

    Répondre à ce message

  • 2

    Hello,

    Bluffant ! petite sélection éditoriale pour un carrousel, modif du squelettes en 5mns et hop....heureux :)

    Il me semble que l’accès aux sélections aurait plus sa place dans Squelettes => Sélections éditoriales ?

    • Je ne sais pas, ce sont des sélections éditoriales donc on l’a mis dans « Édition »… Le fait de créer des sélections de contenu cohérentes, ce sont des contenus en elles-mêmes. Je suis un peu partagé, et le menu « Squelettes » je ne l’ai jamais trouvé super clair.

    • Yop,

      Avec ce plugin, on agrège du contenu et on l’ordonne.
      Il n’y a pas de travail éditorial à proprement parler.

      Il me fait un peu penser à Menus...

    Répondre à ce message

  • 4

    Bonjour,

    Je découvre cet excellent outil qui me donne des idées/envies : pourrait-on envisager qu’à la création d’une sélection éditoriale, on puisse sélectionner une rubrique et autoriser l’ajout automatique et dynamique des objets SPIP contenus dans cette rubrique (articles, sous-rubriques, brèves, sites, etc).

    Cordialement,
    françois

    • Bah euh non pas du tout, vu que c’est justement fait pour faire des sélections humaines manuelles, de n’importe quoi. Techniquement ya rien d’impossible mais ça ne fera jamais partie du plugin un truc comme ça.

    • Je comprends le manque d’enthousiasme ;-) je n’ai pas été très précis dans mon idée.

      Justement l’idée est de pouvoir organiser sur une seule page (squelette), humainement / manuellement, différents objet SPIP issus d’une rubrique ; ainsi je peux boucler sur une rubrique et organiser sur cette page des PDFs, les sous-rubriques, les articles et brèves, etc. ... comme le prévoit ton plugin aujourd’hui, mais avec la dimension dynamique supplémentaire.

    • J’appuie cette demande qui me serait bien utile. J’ai commencé à la développer par moi-même avec une version modifiée du plugin mais je ne suis pas encore à 100% satisfait de mon code et du résultat obtenu.

      Pourquoi cela ne ferait-il jamais partie du plugin si cette nouvelle fonctionnalité n’entrave pas les possibilités actuelles ? Je ne vais pas te demander de travailler sur quelque chose dont tu ne vois pas l’intérêt, RastaPopoulos, mais si j’arrivais à un code plus propre, pourrait-il être intégré ?

    • Bonjour Ben,

      ... et tu aurais quelque chose à partager, pour test / évolution ?

    Répondre à ce message

  • 3
    Spipmalion

    Bonjour,

    Merci pour ce travail
    La description des objets sélectionnés n’est pas reprise quand on tape un code de type article123 breve123, ça ne prend que le titre et le logo, pas la description, c’est normal ?

    Cordialement

    • Oui il n’y a pas de possibilité générique, le titre est générique, tout contenu a un titre. Mais le descriptif c’est un truc facultatif, et qui est propre à la mise en avant dans le contenu et en plus suivant le contenu on n’a aucun moyen de savoir quoi prendre, il n’y a aucun champ toujours pareil générique pour ça (alors que le titre oui).

    • Spipmalion

      On fait comment pour récupérer l’id de l’objet et boucler dessus dans cette boucle ?

      <BOUCLE_actualites_contenus(SELECTIONS_CONTENUS){id_selection}{0,99}{par rang}>

      Exemple, c’est un article, on fait une boucle article et on récup le chapeau ou la description

    • Tu as des champs #OBJET et #ID_OBJET. Tu ne peux pas faire des boucles dynamiques où tu ne connais pas d’avance le type d’objet mais par contre tu peux prévoir pour les objets que tu connais, comme par exemple en faisant :

      <BOUCLE_si_article(ARTICLES){id_article=#ID_OBJET}{si #OBJET|=={article}}>

    Répondre à ce message

  • Spipmalion

    Bonjour, pour info le filtre adaptive_images{} dans l’exemple de code squelette provoque une erreur chez la plupart des sites qui n’ont pas le plugin tiers installé

    Cordialement

    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