Auteurs partout

Avec SPIP 3, il possible d’associer des auteurs à tout type d’objet SPIP. Cependant, il manquait une interface pour cela. Le plugin auteurs partout permet d’ajouter des auteurs à tout type d’objet.

Installation et configuration

Le plugin nécéssite SPIP 3 minimum. Il s’installe comme n’importe quel plugin.

Une fois activé la page de configuration du contenu du site propose d’activer les auteurs sur tous les objets SPIP, à l’exception des :
-  articles et messages, puisque la fonctionalité est standard.
-  rubriques, à cause de la manière dont SPIP gère les administrateurs restreints.
-  auteurs, et pour cause !

Le plugin fonctionne avec tous les objets SPIP natifs (mots, documents etc.) et avec tous ceux créés par des plugins qui respectent l’API de déclaration d’objet (par exemple des point GIS, ou des jeux).

Formulaire de configuration des auteurs

Utilisation dans l’espace privé

Lorsqu’un personne crée un objet sur lequel les auteurs sont activés, il y est automatiquement associé.

Par ailleurs, en bas de la page de modification d’un objet, il est possible d’associer/de dissocier des auteurs à l’objet.

Version 0.1.3

Utilisation dans les squelettes

On peut utiliser le critère {id_auteur} sur n’importe quelle boucle d’objet. Par exemple :

<BOUCLE_auteurs(AUTEURS)>
<B_doc>
<h3>Les documents de #NOM :</h3>
<ul>
<BOUCLE_doc(DOCUMENTS){id_auteur}>
<li><a href="#URL_DOCUMENT">#TITRE</a></li>
</BOUCLE_doc>
</ul>
</B_doc>
</BOUCLE_auteurs>

TO DO

Comme d’habitude, piètre graphiste que je suis, si quelqu’un avait le courage de faire un logo moins crasseux, il est le bienvenu !

Dernière modification de cette page le 13 février 2019

Discussion

11 discussions

  • 2

    Bonjour, après une journée complète de recherches et tests sur le sujet je vous propose la solution suivante pour intégrer le tri sur le statut d’auteurs à la liste des auteurs affichés. J’ai fait un mix entre le fichier natif auteurs_associer et le fichier d’affichage des visiteurs (celui généré par la page privée « visiteurs ») après avoir compris le php de définition de classification des auteurs (filtre : auteurs_lister_statuts, avec le paramètre 1 pour ne pas afficher ceux dans la poubelle, vu qu’on est ici dans l’ajout d’un auteur à un objet) . Cela fonctionne (désolée de l’auto-satisfecit, mais après 14h à chercher...) - il reste un point à compléter, cela efface l’affiche de la barre d’alphabet en haut (et c’est dommage, c’est bien pratique). Si vous avez une solution, faites signe ! Merci. Sinon, avantage : l’encart de recherche libre fonctionne sur les prénoms si vous avez ajouté un ChampsExtra « prénom » à la fiche Auteur et y avez attribué un score élevé de recherche. Tout bénéf’ ! (rah, c’est bô SPIP, mais... quelle galère !)

    [(#SET{defaut_tri,#ARRAY{
    	statut,1,
    	multi nom,1,
    	site,1,
    	compteur_articles,-1
    }})
    ]
    #SET{exclus,#ENV{objet_source}|lister_objets_lies{#ENV{objet},#ENV{id_objet},#ENV{_objet_lien}}}
    #SET{debut,#ENV{debutauta,#EVAL{_request("debutauta");}}}
    <input type="hidden" name="debutauta" value="#GET{debut}" />
    [(#REM) PERSO // Ajout des onglets par statut auteur + definir le statut admin comme "exclus" de l'affichage ]
    	#SET{statuts,#VAL{tous}|auteurs_lister_statuts{1}}
    <B_st>
    [(#REM) PERSO // Ajout des set ]
    	#SET{statuts,#VAL{tous}|auteurs_lister_statuts{1}}
    	[(#GET{statuts}|count|non)#SET{statuts,#ARRAY{0,zzzz}}]
    <div class="onglets_simple clearfix">
    	<ul>
    		<li>[(#SELF|parametre_url{statut,''}|parametre_url{tri_liste_aut,nom}|lien_ou_expose{<:info_tout_afficher:>,[(#ENV{statut,'0minirezo'}|non)],ajax})]</li>
    		<BOUCLE_st(POUR){tableau #GET{statuts}}{si #GET{statuts}|count|>{1}} {tri #ENV{par,multi nom},#GET{defaut_tri}}>
    		<li>[(#SELF|parametre_url{statut,#VALEUR}|parametre_url{tri_liste_aut,statut}|parametre_url{tri_liste_aut,nom}|ancre_url{paginationaut}|lien_ou_expose{[(#VALEUR|traduire_statut_auteur)],#ENV{statut,''}|=={#VALEUR},ajax})]
    		</li>
    		</BOUCLE_st>
    	</ul>
    </div>
    </B_st>
    <div class="nettoyeur"></div>
    <B_liste_aut>
    [(#REM) En cas de pagination indirecte @32, il faut refaire le set car la boucle
    a mis a jour la valeur avec la page reelle]
    #SET{afficher_lettres,#TRI|=={'multi nom'}|oui}
    #SET{debut,#ENV{debutaut,#EVAL{_request("debutaut");}}}
    [(#REM) PERSO // Ajout des set ]
    	#SET{statuts,#VAL{tous}|auteurs_lister_statuts{1}}
    #ANCRE_PAGINATION
    [<h3><:info_resultat_recherche:> &laquo;(#ENV{recherche})&raquo;</h3>]
    <div class="liste-objets liste-objets-associer auteurs">
    <table class='spip liste'>
    [<caption><span class="caption"><strong>(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_auteur,info_nb_auteurs}})</strong>
    <span class="recherche">
    	<label for="recherche-#ENV{id}"><:info_rechercher_02:></label>
    	<input type="text" class="recherche" name="recherche" id="recherche-#ENV{id}" value="#ENV{recherche}" />
    	<input type="submit" class="tout_voir" name="tout_voir" value="<:info_tout_afficher:>" />
    </span>
    </span>
    </caption>]
    	<thead>
    		#SET{p,''}
    		<BOUCLE_lettre(AUTEURS){tout}{id_auteur?}{where?}{statut?}{recherche?}{par multi nom}{id_auteur==#GET{afficher_lettres}|?{'.*','A'}}>[
    		(#NOM**|initiale|unique|oui)
    		[(#SET{p,#GET{p}|concat{
    		#SELF|parametre_url{debutaut,@#ID_AUTEUR}|ancre_url{paginationaut}|afficher_initiale{#NOM**|initiale{},#COMPTEUR_BOUCLE,#GET{debut},#ENV{nb,10}}
    		}})]
    		]#SAUTER{#ENV{nb,10}|moins{#COMPTEUR_BOUCLE|=={1}|?{2,1}}}</BOUCLE_lettre>[
    		(#SET{p,
    			#GET{p}|concat{
    				#REM|afficher_initiale{#REM,#TOTAL_BOUCLE,#GET{debut},#ENV{nb,10}}
    			}
    		})]</B_lettre>
    		[<tr><td colspan="6"><p class='pagination'>(#GET{p})</p></td></tr>]
    		[<tr><td colspan="6"><p class='pagination'>(#PAGINATION{prive})</p></td></tr>]
    		<tr class='first_row'>
    			<th class='statut' scope='col'>[(#TRI{statut,#CHEMIN_IMAGE{auteur-16.png}|balise_img{<:lien_trier_statut|attribut_html:>},ajax})]</th>
    			<th class='nom' scope='col' colspan='2'><:info_nom:></th>
    			<th class='statut'><:statut:></th>
    			<th class='email' scope='col'><:email:></th>
    			<th class='action' scope='col'>&nbsp;</th>
    		</tr>
    	</thead>
    	<tbody>
    	<BOUCLE_liste_aut(AUTEURS){!id_auteur IN #GET{exclus}}{tout}{where?}{recherche?}{statut?}{tri #ENV{par,multi nom},#GET{defaut_tri}}{pagination #ENV{nb,10} aut}>
    		<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})][ (#EXPOSE|unique)][ (#NOM**|initiale|=={#ENV{i}}|?{on}|unique)]">
    			<td class='statut'>[(#STATUT|puce_statut{auteur})]</td>
    			<td class='nom[ (#NOM|non)vide]'[(#LOGO_AUTEUR|non)colspan='2']><a href="[(#ID_AUTEUR|generer_url_entite{auteur})]"[ title="(#BIO*|couper{200}|attribut_html)"]>[(#RANG). ][(#NOM|trim|sinon{<:info_numero_abbreviation:>#ID_AUTEUR})]</a></td>
    			<td class='statut'>[(#STATUT|traduire_statut_auteur)]</td>
    			<td class='email'>[<a href='mailto:(#EMAIL)'>[(#EMAIL|couper{30})]</a>]</td>
    			<td class='action'><button type="submit" class="button link" name="ajouter_lien[auteur-#ID_AUTEUR-#OBJET-#ID_OBJET]" value="+"><:lien_ajouter_auteur:> [(#CHEMIN_IMAGE{ajouter-12.png}|balise_img{'+'})]</button></td>
    		</tr>
    	</BOUCLE_liste_aut>
    	</tbody>
    </table>
    [<p class='pagination'>(#PAGINATION{prive})</p>]
    </div>
    </B_liste_aut>
    [(#ENV{recherche}|oui)
    <div class="liste-objets liste-objets-associer auteurs caption-wrap">
    <span class="caption"><strong>[(#VAL{info_recherche_auteur_zero}|_T{#ARRAY{cherche_auteur,#ENV{recherche}}})]</strong>
    <span class="recherche">
    	<label for="recherche-#ENV{id}"><:info_rechercher_02:></label>
    	<input type="text" class="recherche" name="recherche" id="recherche-#ENV{id}" value="#ENV{recherche}" />
    	<input type="submit" class="tout_voir" name="tout_voir" value="<:info_tout_afficher:>" />
    </span>
    </span>
    </div>
    ][
    <div class="liste-objets auteurs caption-wrap"><strong class="caption">(#ENV*{sinon,''})</strong></div>
    ]<//B_liste_aut>
    #FILTRE{mini_html}
    • cela semble pas mal comme fonctionnalité supplémentaire...
      ...alors comme le développement de ce plugin est « ouvert » sur spip-zone je te propose de créer un compte (cf https://zone.spip.net/trac/spip-zone/wiki/CharteDeFonctionnement) et de procéder à la modification du plugin directement.
      Son repo SVN est accessible sur svn ://zone.spip.org/spip-zone/_plugins_/auteurs_partout/trunk
      à bientôt donc !

    • Merci, mais je ne me sens pas capable de proposer une modification de votre travail directement. Je vous soumettais juste une proposition, vous pouvez la tester et l’améliorer si cela vous convient. C’était une piste de réflexion et ne l’ai pas testé ailleurs que dans mon environnement. Mais au contraire si quelqu’un d’autre veut la prendre, la tester correctement et l’ajouter, c’est fait pour. (le partage d’expérience, c’est comme cela que je conçois spip mais ne suis pas en mesure de faire plus !) Merci.

    Répondre à ce message

  • 3

    Bonjour,

    est-ce normal qu’à la création d’un événement l’auteur ne soit pas automatiquement greffé à cet événement ?

    Merci pour la réponse !

    • Je reviens vers vous pour signaler que sous Spip 3.2 et PHP 7.0 les auteurs ne sont pas automatiquement ajouté à un objet. Help !

    • je ne reproduis pas le problème : sur un SPIP 3.2 « de base », si je crée un événement dans l’espace privé, lorsque je le valide je suis automatiquement auteur de cet événement (et cela que je sois loggué en admin ou en simple auteur)
      Ensuite je n’ai aucun problème pour ajouter/enlever des auteurs sur cet événement.
      Il semblerait nécessaire que tu fasses un essais en désactivant tous les plugins/squelettes de ton site sauf « agenda » (et ses plugins associés) et « auteurs partout »

    • Bon, j’ai gardé que l’agenda et le plugin des auteurs partout, vidé le cache. Même constat... J’étais en PHP 7.2 et suis retournée en 7.0 rien. Pourtant à un moment ça a marché... Je comprends pas.

    Répondre à ce message

  • ps : je précise que je n’ai pas utilisé votre plugin mais ai créé le fichier dans le répertoire squelettes/ (en surcharge de : prive/objets/liste) pour m’en servir pour un plugin perso. Donc peut-être qu’il y aura des adaptations à faire dans le cadre de votre plugin si vous souhaitez l’intégrer.

    Répondre à ce message

  • 2

    Bonjour... je suis passé à spip 3.2.0 sans vérifier si le plugin était compatible ! Va-t-il être compatible dans les prochains mois ?

    Il nous est très utile, notamment pour permettre d’attribuer des auteurs aux images du site.

    Merci par avance...

    Répondre à ce message

  • Bonjour et merci pour ce plugin.
    Je rencontre un souci « ergonomique ». Je souhaite l’utiliser dans un site qui contient plusieurs centaines d’auteurs (visiteurs liés à ds newsletters). Y a-t-il un moyen pour restreindre le choix des auteurs aux seuls rédacteurs/administrateurs ?
    (ce serait peut-être bien d’avoir une option à rajouter dans le formulaire de configuration du plugin ?)

    Encore merci pour tout,

    Répondre à ce message

  • 2

    Bonjour,

    J’essaie d’afficher les zones d’accès restreint d’un auteur dans le squelette auteur
    J’ai coché « zone » dans la config du plugin auteurs partout et j’ai cette boucle dans le squelette auteur :

    <BOUCLE_zone(ZONES){id_auteur}{", "}>[(#TITRE)]</BOUCLE_zone>

    Mais ne ne s’affiche

    dd

    • je teste de mon côté (en SPIP 3.1) et je n’ai pas de problème : la boucle

      <BOUCLE_auteurs(AUTEURS)>
          <BOUCLE_zone(ZONES){id_auteur}{", "}>[(#TITRE)]</BOUCLE_zone>
      </BOUCLE_auteurs>

      me renvoie (comme prévu) les zones de chaque auteur propriétaire

      Peux tu vérifier :

      • que tu as bien un auteur attribué à chacune des zones que tu veux aficher(cf bas de la dernière capture d’écran ci-dessus)
      • que les propriétaires de zones aient au moins publié un article (pour qu’ils apparaissent dans la BOUCLE_auteur englobante)


      NB : attention à ne pas confondre les auteurs inclus dans une zone et les auteurs propriétaires de la zone...

    • Ah je vois merci.
      En fait je ne veux pas afficher les propriétaires de la zone mais les auteurs qui ont accès à cette zone.

      Après moults essais j’ai réussi avec la boucle :

      <BOUCLE_zone(ZONES zones_liens){id_zone}>
      <BOUCLE_auteur(AUTEURS zones_liens zones){tout}{par nom}{id_zone}>
      ...

      (j’avais installé le plugin auteurs partout pour typer le lien auteur /
      zone mais je ne crois pas qu’il soit utile dans ce cas).

      dd

    Répondre à ce message

  • 2

    En cas de formulaire d’édition publique. Il y une notice php

    serait-il possible de modifier la ligne 21 de auteurspartout_pipelines.php ?
    avec

    if(isset($GLOBALS['auteur_session']['id_auteur'])) {
        sql_insertq("spip_auteurs_liens", array(
           'id_auteur' => $GLOBALS['auteur_session']['id_auteur'],
           'id_objet' => $id,
           'objet' => $type));
    }

    Répondre à ce message

  • 5

    Bonjour,
    Ce plugin a-t-il une version 3.1 ? Ça m’intéresse...

    • Salut, le plugin n’est pas actuellement testé pour spip 3.1. Cela ne veut pas dire qu’il n’est pas compatbile, mais simplement que nous ne savons pas s’il l’est.

      Tu peux tester la compatibilité avec SPIP 3.1 toi même : tu modifier le fichier paquet.xml, en remplaçant compatibilite="[3.0.0;3.0.*] par compatibilite="[3.0.0;3.1.*]. Tu actives ensuite le plugin, fait des tests de compatibilté, et fais un retour ici.

      Si les tests sont positifs, je modifie les informations sur la zone. S’ils sont négatifs, ma foi, il faudra qu’un développeur avec du temps se penche dessus.

    • Merci :-)
      J’ai testé pour les brèves, les documents, les sites référencés, les points géolocalisés, les auteurs (je n’ai pas d’autres besoins), ça marche. Je vais poursuivre avec les autres objets mais j’ai bon espoir pour l’instant (il n’y a pas de raisons)

    • Je confirme, c’est bon partout :-)

    • ok, j’ai donc modifié. Cela sera pris en compte tout bientôt sur les différents sites de la galaxie et dans le plugin « vérifier la compatibilité 3.1 ».

      Tu connais donc la procédure pour les autres plugins.

      http://zone.spip.org/trac/spip-zone/changeset/94766

    • Oui, merci ! :-)

    Répondre à ce message

  • Les utilisateurs du plugin Agenda devront ajouter « auteurs_liens » dans leur boucle AUTEURS pour voir apparaître l’auteur de leur événement.

    <BOUCLE_qui2(AUTEURS auteurs_liens){id_evenement}>
    maboucleLE|moins{#TOTAL_BOUCLE}|=={-1}|oui|?{' et ',', '})]]</a>
    </BOUCLE_qui2>

    Va-t’en savoir pourquoi ? il faut croire que sur l’agenda, on ne les comprend pas, les auteurs Spiiiiiiiipeuh....

    Répondre à ce message

  • Génial !
    Associé au plugin rôle, ça ouvre des milliards de possibilités.

    Répondre à ce message

Ajouter un commentaire

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

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