Rôles de documents

Ce plugin permet d’attribuer un rôle aux documents liés aux contenus, et cerise sur le gâteau, rend possible la gestion des logos par le biais des documents-joints.

Passage de SPIP 3 à SPIP 4  : si vous migrez un site vers SPIP 4, veillez à mettre à jour le plugin avant de mettre à jour SPIP.

La v2 est une évolution majeure qui aura sa propre documentation.

Principe

Les documents liés aux contenus n’ont pas forcément tous la même fonction, il est parfois utile de distinguer le rôle de chaque document : à quoi sert-il ? Quel est son sens ?

Prenons un exemple concret : pour une librairie nous avons un objet éditorial « livre », chaque livre doît être accompagné de sa couverture (le logo), du 4e de couverture, et d’une série d’extraits.
Le squelette correspondant a besoin d´afficher ces images en des endroits particuliers, il faut donc un moyen de les identifier dans des boucles différentes : c’est possible au moyen des rôles.

Rôles de documents : principe

Utilisation

La gestion des rôles s´effectue sur place, dans la liste des documents liés aux contenus.
Un même document peut avoir plusieurs rôles.
Le rôle attribué par défaut est le rôle générique « document ».

Modification des rôles d´un document

Gestion des logos

Le plugin fournit 2 rôles supplémentaires : « logo » et « logo de survol ».
Il est donc possible de s’affranchir de la gestion historique des logos et de profiter des avantages des documents : vous pouvez leur donner un titre, un descriptif, des crédits, les réutiliser, les faire pivoter, etc.

Les balises #LOGO_XXX voient leur fonctionnement étendu : si aucun logo « historique » n´est présent, elles vont chercher un document avec le rôle de logo .

Dans la médiathèque, un nouvel onglet permet de visualiser les documents avec le rôle de logo :

NB — Le plugin Logos par rôle va plus loin en remplaçant complètement la gestion des logos par celles des rôles de documents, le formulaire des logos est entièrement remplacé.

NB 2 — La roadmap de la prochaine version de SPIP (3.3) prévoit que les logos soient gérés via la table spip_documents.

Intégration dans les squelettes

Par défaut les boucles DOCUMENTS ressortent tous les rôles, même les logos : il faut les exclure explicitement si besoin.
Il est possible d’utiliser les critères {role} et {par role}.

Exemples :

Filtrer les documents par rôle :

<BOUCLE_docs(DOCUMENTS documents_liens) {id_article} {role = bandeau}>
#LOGO_DOCUMENT
</BOUCLE_docs>

Trier les documents par roles puis par titre :

<BOUCLE_docs(DOCUMENTS) {id_article} {par role,titre} >
#LOGO_DOCUMENT
</BOUCLE_docs>

Afficher les rôles d´un document :

<BOUCLE_docs(DOCUMENTS) {id_article}>
#TITRE
Rôle(s) :
<BOUCLE_roles(documents_liens){id_document}{objet}{id_objet}{par role}{role!=''}{", "}>[(#ROLE|role{documents})]</BOUCLE_roles>
</BOUCLE_docs>

Déclarer de nouveaux rôles

Tout est expliqué dans la documentation de l’API des rôles, mais reprenons les grandes lignes avec quelques exemples.

Les rôles se manipulent au moyen du pipeline declarer_tables_objets_sql.
Les 2 clés roles_titres et roles_objets permettent d’indiquer les chaînes de langues des nouveaux rôles, ainsi que les rôles possibles pour chaque type d’objet éditorial.

Attention, pour être sûr de vous appuyer sur les déclarations par défaut, pensez bien à nécessiter ou utiliser le plugin « roles_documents » dans le XML de votre plugin, afin de passer après dans le pipeline.

La clé roles_objets est un tableau associatif, vous avez donc la possibilité d’ajouter des valeurs à celles existantes, ou bien de remplacer complètement certaines entrées.

Gardez également bien en tête les priorités de l’API des rôles : il y a des rôles déclarés par défaut pour tous les objets, et optionnellement des rôles pour chaque type d’objet, ces derniers sont pris en priorité.
Le plugin ne déclare que les rôles par défaut pour tous les objets, dès que vous ajoutez des rôles pour un type d’objet en particulier, ils prendront le dessus, dans ce cas pensez à inclure le rôle « logo ».

Voici quelques exemples :

1) Compléter les rôles par défaut

On veut ajouter des rôles à tous les objets, tout en conservant ceux déclarés par le plugin : on fait un merge.

function monplugin_declarer_tables_objets_sql($tables){

  $tables['spip_documents'] = array_merge_recursive(
    $tables['spip_documents'],
    array(
      'roles_titres' => array(
        'alpha' => 'monplugin:role_alpha',
        'beta'  => 'monplugin:role_beta'
      ),
      'roles_objets' => array(
        '*' => array(
          'choix' => array('alpha', 'beta'),
        ),
      ),
    )
  );

  return $tables;
}

2) Remplacer complètement les rôles par défaut

On veut avoir complètement la main sur les rôles, pas de merge.
Dans ce cas, il faut penser à mettre le rôle « logo », et indiquer le choix par défaut.

function monplugin_declarer_tables_objets_sql($tables){

  $tables['spip_documents']['roles_titres'] = array(
    'alpha' => 'monplugin:role_alpha',
    'beta'    => 'monplugin:role_beta'
  );
  $tables['spip_documents']['roles_objets'] = array(
    '*' => array(
      'choix'  => array('logo','alpha', 'beta'),
      'defaut' => 'alpha',
    ),
  );

  return $tables;
}

3) Avec des rôles par types d’objets

Un dernier exemple pour ajouter des rôles aux articles et aux brèves, tout en conservant les rôles par défaut pour les autres types d’objets.
Là on fait un merge pour garder la clé '*', et ajouter 2 clés 'articles' et 'breves'.
Comme dans l’exemple précédent, pour ces 2 objets il faut remettre le rôle « logo » et le choix par défaut.

$tables['spip_documents'] = array_merge_recursive(
  $tables['spip_documents'],
  array(
    'roles_titres' => array(
      'alpha'  => 'monplugin:role_alpha',
      'beta'   => 'monplugin:role_beta',
    ),
    'roles_objets' => array(
      'articles' => array(
        'choix' => array('document', 'logo', 'alpha'),
        'defaut' => 'document',
      ),
      'breves' => array(
        'choix' => array('document', 'logo', 'beta'),
        'defaut' => 'document',
      ),
    ),
  )
);

Limitations

l´API des rôles ne permet pour l´instant pas de limiter le nombre de rôles utilisés pour un objet.
Il est impossible de dire qu´un rôle « logo » ne peut être utilisé qu´une seule fois pour un contenu, par conséquent c´est aux rédacteurs à veiller à ne l´attribuer qu´une fois.

Discussion

18 discussions

  • Hello,

    Avec les plugins et SPIP à jour :
    il apparaît que lorsqu’une rubrique est vide mais a un logo de rubrique partagé avec un autre objet publié, alors la rubrique n’est plus considérée comme vide et s’affiche sur le site public (mais sans contenu évidemment).
    Effet de bord pas très pratique. Il faut penser à supprimer tous les docs / logos de la rubrique qui ne doit pas s’afficher..
    dd

    Répondre à ce message

  • 6

    Bonjour,

    Est-ce normal que les logos disparaissent lors d’une mise à jour ?
    Est-ce que ce plugin va être adapté pour Spip 4.1 ?

    • Ben... de mémoire, il était plus ou moins question que ce mode de gestion des logos devienne natif mais je ne sais pas ce qu’il en est...

    • Que quels logos disparaissent ? Il faut être plus précis, des logos « anciens » (logo originaux de SPIP) ? Ou des logos qui étaient faits en spip_documents avec le rôle logo ? Il faut arriver à trouver un cheminement qui permet de reproduire.

      Perso je l’utilise en 4.0 et 4.1 et ça marche parfaitement, mais je n’ai jamais fait de migration depuis un 3, c’était des sites neufs. Faudrait tester un cas simple de migration (installer un SPIP 3 quasi vide, juste un ou deux articles avec des logos).

      Et faire un ticket s’il faut : https://git.spip.net/spip-contrib-extensions/roles_documents/issues

    • ok, je viens de produire ce que je pense il voulait dire :

      Effectivement, en SPIP 4.1 avec versions compatibles des plugins roles et role_document, dès que j’active les plugins, les logos :

      • du site (site0)
      • l’image de fond de l’écran de connexion
      • les logos de rubriques que j’avais uploadé

      ont en effet tous disparu et ne remontent même plus côté médiathèque

    • Le tout revient à la normale une fois que tu désactives role_documents

      C’est comme s’il n’y avait pas de rétro compatibilité en fait. Soit tu gères tout avec des rôles, soit tu gères tout « à l’ancienne » mais il n’y a pas de demi-mesure ou de cohabitation. Donc pour les anciens sites en effet, ça peut devenir compliqué

    • La réponse est simple : le plugin n’est pas compatible SPIP 4+ à l’heure actuelle (malgré ce qui est indiqué dans paquet.xml, rastapopoulos, tes doigts !).

      La nouvelle gestion des logos de SPIP nécessite pas mal d’adaptations, c’est en cours de route.
      Pour les intéressé⋅e⋅s ça sera au point une fois tous les tickets de ce jalon fermés : https://git.spip.net/spip-contrib-extensions/roles_documents/issues?type=all&sort=&state=open&labels=&milestone=516&assignee=0

    • Wo eh tout est bon en master, c’est une version DEV qui est bien parfaitement destinée à SPIP 4, et qui n’a absolument pas de tag de release dessus. Tout est pile comme ça doit l’être dans le XML :)

    Répondre à ce message

  • 1

    Hello,
    Any update for SPIP 4.0,0 ?
    Thank you

    • Hi, it’s definitely planned but there are some issues to sort out first, as logos and documents have been updated in Spip 4.

      There will probably be a new documentation article when the new version is out, as the current one is a bit out of date.

    Répondre à ce message

  • 5

    Bonjour,

    Le menu déroulant lorsque l’on clique sur « modifier » dans le cartouche d’un document lié à un objet ne s’affiche pas chez moi (3.3.0-dev).

    J’ai aussi tenté une déclaration de nouveaux rôles dans mon plugin objet, mais rien ne se passe et pas d’erreur js dans la console.

    Le plugin rôles + rôles documents est-il opérationnel en 3.3.0-dev ?
    Faut-il encore se baser dessus où va t’il être intégré au core prochainement ?

    Merci pour vos éclairage !

    • Il ne va pas être intégré au core pour l’instant non. Et non il n’a pas du tout été vraiment testé et adapté pour la version dev de SPIP qui a eu quelques changements importants autour des documents.

    • Merci pour ton retour très clair.

      Je fais donc à contrecœur l’impasse sur cette géniale innovation.

      Bon we !

    • Si jamais la précision est utile : je viens d’essayer le plugin sur une copie d’un site 3.2 mis à jour en 3.3 (dev), l’activation du plugin provoque la suppression du logo de chaque article qui en possédait un. Les logos d’abord identifiés comme tel dans la table documents lors de mise à jour de spip sont ensuite identifiés comme « documents » par le plugin.
      Les fichiers sont toujours dans le IMG/logos, mais si je souhaite rétablir la liaison entre l’image « document » (ex-logo) et l’article, elle est bien répertoriée dans la table documents de la base, mais elle n’est pas disponible dans l’interface des Documents de l’espace privé.
      Pour le moment, je n’ai pas poussé plus loin l’utilisation du plugin avec spip 3.3 pour voir s’il y avait d’autres incompatibilités.

    • Bonjour à tous,

      J’ai aussi fait le même constat que Christope : disparition des logos associés à divers objets lorsque le plugin est installé, sa désinstallation a résolu le problème.

      Pour fonctionner le plugin a de mon côté nécessité la mise en place d’une astuce de Pierrox :
      l’ajout d’un bout de css dans prive/style_prive_plugin_xxxx.html :

      .portfolios .item .descriptions {
      	overflow:inherit!important;
      }

      Sans quoi le sélecteur de rôle n’apparaissait pas.

      Manque t’il beaucoup pour le rendre opérationnel avec la sortie de la 3.3 ?

    • oui il y a des choses non triviales à vérifier pour ne pas être en conflit avec la nouvelle manière de stocker les logos en 3.3

      je ne sais pas encore si c’est surtout lors de la migration lancée par le core ou aussi après à l’utilisation, pas eu le temps de regarder

    Répondre à ce message

  • 6

    Bonjour,
    Désolée si mon interrogation vous paraît basique, j’ai l’impression d’être abrutie au dernier degré, et mes recherches n’ont fait qu’accentuer le sentiment...

    Comment faire pour ajouter de nouveaux rôles ?

    La doc ici indique un code .php, mais dans quel fichier le copier, comment, faut-il faire un plugin (et alors comment ? mais ça me semble bien compliqué, il doit y avoir plus simple...) ? Dans le readme.md, il est question de « plugin de squelette », mais n’ai rien trouvé à ce propos ailleurs...
    Et dans la présentation retrouvée dans la gestion des plugins :

    Par défaut seuls 2 rôles génériques sont proposés : « logo » et « logo de survol ». C’est aux squelettes de compléter cette liste au moyen du pipeline « lister_roles_documents » en fonction de leurs besoins.

    Mais je ne vois toujours pas comment faire... Bref, j’y pige rien et serais pas fâchée d’un ’tit coup d’main :-)

    • Bon, j’ai beau consulter la doc, sur spip.net ou sur programmer.spip.net, faire des tests, toujours un grand mystère... J’ai l’impression de me heurter à une marche, une évidence pour qui sait, mais qui (me) reste inaccessible pour (moi) qui ne sai(s)t pas.
      J’ai trouvé une autre solution, mais ça me plairait bien de parvenir à comprendre, si quelqu’un a une piste. Merci...

    • C’est pourtant tout expliqué, je vois pas comment on pourrait plus : ça dit que c’est dans le pipeline « declarer_tables_objets_sql » et que c’est en modifiant la déclaration de « spip_documents », et ça montre même comment avec trois exemples avec « array_merge_recursive ».

      Après si tu sais pas ce qu’est un pipeline ni comment on s’inscrit dedans… bah ça n’a rien à voir avec ce plugin mais avec SPIP en général, et donc c’est pas là qu’il faut commencer : apprendre à étendre SPIP (ou ses plugins).
      Et là aussi toute la doc existe bien :
      https://programmer.spip.net/Qu-est-ce-qu-un-pipeline

    • Bonsoir RastaPopoulos, et merci pour ta réponse.
      Je ne dis pas du tout que le plugin est en cause, bien au contraire, j’aimerais pouvoir pleinement l’utiliser ! Et la doc je l’ai vue, lue et relue pourtant... c’est là justement que j’ai l’impression de me heurter à cette fameuse marche. Déclaration dans un plugin : faut-il que j’insère un fichier dans Rôles de documents ? En ajoutant la déclaration du pipeline dans paquet.xml ? est-ce que je ne risque pas de voir ces ajouts écrasés lors d’une mise à jour ? Faut-il alors plutôt créer un clone du plugin (ça me semble hasardeux non ) ?? Hors plugin, je n’arrive pas à piger comment déclarer le pipeline, quoi faire exactement des lignes indiquées

          $GLOBALS['spip_pipeline']['nom_du_pipeline'] .= "|nom_de_la_fonction";
      // initialiser index "insert_head" à string vide si besoin:
      if (!isset($GLOBALS['spip_pipeline']['insert_head'])) {
      	$GLOBALS['spip_pipeline']['insert_head'] = '';
      }
       
      // Ajout dans le pipeline "insert_head" :
      $GLOBALS['spip_pipeline']['insert_head'] .= "|nom_de_la_fonction";
       
      // Et par ailleurs !:
      function nom_de_la_fonction($flux) {
      	return $flux .= "Ce texte sera ajoute";
      }

      Si je créée un fichier squelettes/mon_skel.php par exemple (en plugin de squelette si j’arrive à recoller les morceaux ?), avec le code proposé, là encore comment déclarer le pipeline ? faut-il créer un paquet.xml ? dans ce cas-là faire plutôt un dossier ? dans squelette ou alors dans plugin ?
      J’ai l’impression d’être complètement obtuse sur ce coup-là, c’est frustrant 0_o’

    • Bonjour lussye,
      je pense que c’est normal que tu t’y perdes un peu car il y a certains présupposés avant de grimper la marche et il faut être claire pour avoir des réponses de même.

      Si tu veux de l’aide il faut que tu dises ce que tu veux faire surtout et à quel endroit tu as un souci.
      Marche par marche, et une question à la fois à résoudre, on peut t’aider plus facilement :)

    • Lussye : pour compléter un peu : non surtout tu ne modifie pas le plugin role de document. TU crée ton propre plugin qui va faire appel aux pipelines expliqués dans cette doc,

      Donc pour faire court tu dois maitriser deux choses :
      1. La création en general de plugin, et c’est ce vers quoi le lien programme.spip.net peut t’aider
      2. Les pipelines propres à Roles de Document, et là dock est ici.

      Donc je t’invite vraiment à lire la doc de programmer.spip.net, à la fois sur les plugins et sur les pipelines (théoriquement on peut utiliser des pipelines hors plugins, mais c’est pas conseiller) pour bien comprendre la notion, et ce que cela recouvre, et comment les utiliser.

    • Merci à vous tous, ça me donne déjà une ligne directrice du quoi explorer et sur quoi me concentrer... ma tête a tendance à un peu trop explorer toutes les supposées possibilités (et elles sont nombreuses avec SPIP, c’est ça qu’est chouette !) en même temps sinon, et face à du non connu quelle que soit la direction, ça finit vite en pelote ^_^

      C’est plaisant de grimper les marches une par une, mais des fois certaines me semblent un peu hautes... Prochaine étape donc, création de plugin.

      En fait, tout ce dont j’avais besoin, plus précisément, pour répondre à touti, c’est de créer un rôle « couverture », différent du logo, qui a sa propre utilité évidemment, pour placer en haut de page d’article... (en attendant j’ai fait avec mot-clé, j’avoue, chuuut, répétez pas...)

    Répondre à ce message

  • 3

    Bonjour,
    Merci pour cet excellent plugin. Serait-il possible d’en faire bénéficier les logos de points géolocalisés du plugin GIS ?

    • Bonjour,

      C’est déjà le cas quand on va sur la fiche d’un point GIS, le formulaire de logo à gauche propose des documents : exec=gis&id_gis=N

      Ou peut-être pensais-tu à autre chose ?

    • Quand on téléverse un document dans un article, on peut lui assigner le role Logo.
      Ce n’est pas le cas dans Gis. On peut téléverser un document (une image) pour qu’il soit le logo d’un point géolocalisé, mais on ne peut pas sélectionner un document de la médiathèque. A la réflexion, on aurait même pas besoin d’assigner le role logo.

    • Je ne reproduis toujours pas le problème.
      Reprenons depus le début :)

      • quelle version du plugin ?
      • Est-ce que tu as défini des rôles personnalisés, et si oui comment ? (montre le code)
      • Est-ce que tu as activé les documents sur les points GIS ?
      • Est-ce que tu as le formulaire de logo visible sur la page d’un points GIS ?

    Répondre à ce message

  • 1

    Avec « Rôles de documents » + « Logos par rôle », voulant désactiver « Logos par rôle » (v0.9.4), ceci m’a fait disparaître complètement l’affichage du corps des articles et rubriques. La suppression de « Logos par rôle » ultérieurement n’a rien corrigé, c’est seulement par la suppression de ce plugin par FTP que j’ai recouvré l’affichage du corps des articles et rubriques. Surprise bizarre... SPIP 3.2.4

    • je complète : erratum car version SPIP 3.2.5, et après suppression du plugin « Logo par rôle », le logo de l’article, même si référencé en tant que « Document avec le rôle Logo » dans la fonctionnalité des documents en bas d’article, ne s’incrémente plus dans l’encart à en haut à gauche du Logo. Du coup, on perd l’info visuelle rapide du logo à la suppression du plugin...

    Répondre à ce message

  • 1

    Bonjour,

    Est-ce que Rôles de documents sera compatible avec SPIP 3.3 ?
    En local je constate qu’avec SPIP 3.3.0-dev le menu de choix du rôle ne se déplie pas. À moins que ce ne soit un souci avec Chosen ?

    Merci,
    françois

    • Ça le sera forcément plus tard mais pour l’instant ce n’est pas du tout le cas et il ne faut pas essayer de l’utiliser avec (sauf pour dev pour aider à en faire une branche compatible :p). Il y a plein de changement des images avec les nouveaux logos en documents, et donc il y a possiblement pas mal de choses à revoir.

    Répondre à ce message

  • 18

    C’est interessant, mais quel est l’interet de cette solution par rapport a l’utilisation d’un plugin comme mots cle partout, qui associe des mots cle aux documents ?

    c’est un peu le meme system, non ?

    • Euh ça n’a strictement, mais alors strictement aucun rapport.

      Le principe des rôles que ce soit pour les documents, auteurs, ou n’importe quoi, c’est d’être dans les liaisons. Un document n’EST pas « un logo » tout court, un document est un logo pour TEL contenu sur lequel il est lié et pas pour tel autre.

    • J’ai le message suivant qui apparaît dans l’interface privée, dans accueil...

      Erreur SQL 1054
      Unknown column 'liens.role' in 'field list'
      SELECT fichier, extension, titre, maj, liens.id_document, liens.role FROM spip_documents AS docs INNER JOIN spip_documents_liens AS liens ON liens.id_document = docs.id_document WHERE objet = 'site_spip' AND id_objet = -1 AND role = 'logo' AND ((role IN ('logo','logo_survol')))

      Spip 3.2[23778]

      Une idée d’où le problème pourrait provenir ?... C’est la première fois que j’essaie ce plugin, j’ai installé également le plugin « des rôles sur des liens »
      Merci.

    • Comment l’as tu installé ? Parce qu’apparemment tu utilises la version en développement (et donc ce genre d’erreurs peuvent arriver).
      Est-ce qu’il y a bien une colonne « role » sur la table spip_documents_liens ?

    • Bonjour Tcharlss, je l’ai installé en téléchargeant les plugins à partir de ’https://files.spip.net/spip-zone/roles_documents_v1.zip’ et de ’https://files.spip.net/spip-zone/roles.zip’ que j’ai installé à l’habitude dans ’plugins/auto’...

      Et non, la table ’spip_roles’ n’a pas été créée. :-(

    • C’est bizarre ça, le zip prend la version stable normalement. Peux-être as-tu récupéré le zip exactement au moment où on a changé la source ? Mais c’est très improbable quand même.
      Tu peux regarder le numéro de ta version installée stp ?

      Sinon je ne parlais pas de la table spip_roles, mais de spip_documents_liens, il doit y avoir une colonne qui s’appelle ’role’ dedans (à vérifier).

    • Ok, voici la version

      <revision>109163</revision>
      <commit>2018-02-26 19:36:24 +0100 </commit>

      Et non, pas de champ role dans la table spip_documents_liens.

      De plus, je n’ai plus accès au documents dans la médiathèque. Dans les articles, le bouton modifier existe mais je n’ai pas de liste dans la zone de liste déroulante.

    • Le numéro de commit que tu indiques correspond à la version stable (1.1.8), mais l’erreur renvoie à du code présent uniquement dans la version de dev. Je suis perplexe :)

      Je te conseille de désinstaller ta version actuelle, et de réinstaller la version 1.1.8 stable (lien en haut de la page)

    • Bonjour tcharlss...
      J’ai désinstallé et réinstallé....
      Mais j’ai toujours le même problème, et la table spip_documents_liens n’a toujours pas sa colonne ’role’.

      Message squelette boucle Ligne
      Erreur SQL 1054
      Unknown column ’l.role’ in ’where clause’
      SELECT fichier, extension FROM spip_documents as d inner join spip_documents_liens as l on d.id_document = l.id_document WHERE l.objet = ’site’ AND l.id_objet = 0 AND ((extension IN (’png’,’jpg’,’gif’))) AND l.role=’logo_survol’ ORDER BY 0+titre, titre
      D :\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\my portable files\spip-3.2\plugins\auto\roles_documents\roles_documents_pipelines.php roles_documents_quete_logo_objet() sql_fetsel() ; 199

      Il y a une ligne du tableau pour chaque documents référencé...

      Je n’y comprends rien...

    • Je n’y comprends rien...

      Moi non plus :) Mais on va trouver.

      C’est donc signe d’un problème à l’installation, il y a peut-être une trace de l’erreur dans les logs. Peux-tu regarder dans tmp/log/maj.log et tmp/log/mysql.log (ou sqlite.log) ? En recherchant des occurences de ’role’ et ’spip_documents_liens’.

      Est-ce que tu peux également essayer d’installer le plugin roles d’auteurs et regarder si la colonne ’role’ est ajoutée à la table ’spip_auteurs’ ?

    • Ok, voilà les résultats...
      maj.log, pas de références à roles_documents mais bien à roles_auteurs
      mysql.log,

      2018-03-07 11:13:26 127.0.0.1 (pid 10876) :Pri:ERREUR: Erreur 1068 de mysql: Multiple primary key defined
      in D:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\my portable files\spip-3.2\ecrire\base\upgrade.php L462 [call_user_func_array(),serie_alter(),maj_while(),maj_plugin(),roles_auteurs_upgrade(),spip_plugin_install(),plugins_installer_dist(),installer_plugin(),do_install(),do_action(),one_action(),action_actionner_dist(),traiter_appels_actions()]
      ALTER TABLE base.spip_auteurs_liens ADD PRIMARY KEY (id_auteur,id_objet,objet,role)
      2018-03-07 11:25:41 127.0.0.1 (pid 10876) :Pri:ERREUR: Erreur 1054 de mysql: Unknown column 'l.role' in 'where clause'
      in D:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\my portable files\spip-3.2\plugins\auto\roles_documents\roles_documents_pipelines.php L199 [sql_fetsel(),roles_documents_quete_logo_objet(),call_user_func(),minipipe(),execute_pipeline_quete_logo_objet(),pipeline(),quete_logo_objet(),quete_logo(),html_5e979d1d3af38d78a8f3e4e306debbee(),public_parametrer_dist(),public_produire_page_dist(),inclure_page(),evaluer_fond(),recuperer_fond(),eval(),include(),evaluer_fond(),recuperer_fond(),eval(),include(),evaluer_fond(),recuperer_fond(),eval(),include(),include()]
      SELECT fichier, extension
      FROM base.spip_documents as d inner join base.spip_documents_liens as l on d.id_document = l.id_document
      WHERE l.objet = 'site'
      	AND l.id_objet = 0
      	AND ((extension  IN ('png','jpg','gif')))
      	AND l.role='logo_survol'
      ORDER BY 0+titre, titre
      
      

      J’espère que ça aidera....

    • Bon, finalement, je vais utiliser les mots clés sur les documents... Ce sera plus simple à mon sens.

    • Ah non, clairement ça ne sera pas plus simple à l’utilisation et à la maintenance…

      Faut déjà bien avoir tout à jour et comprendre pourquoi juste toi tu as une merdouille à l’installation, sinon impossible à corriger (vu qu’on ne reproduit pas pour le moment).

    • Oui, je comprends mais je dois aussi avancer sur mon projet... Bien, est-il possible que ce soit parce que je travaille en local avec easyphp que la table ne s’inscrit pas ? Version PHP/5.5.8...

    • Ben si le problème se présente sur le plugin rôle d’auteur aussi (colonne ’role’ absente), ça montre qu’il y a un souci plus généralisé, pas juste sur rôles de documents. (Mais on sait pas, tu n’as pas répondu sur ce point :p)

    • Erreur 1068 de mysql : Multiple primary key defined

      Ah voilà, ça vient de là. Merci, je vais regarder de plus près.

    • Pour info, la colonne ’role’ dans la table spip_auteurs_liens est bien présente, j’avais omis de le mentionner :-D

      Merci pour le travaille de fouille...

    • il y a aussi cette erreur...

      Erreur 1068 de mysql : Multiple primary key defined
    • J’ai eu le même soucis
      l’installation de roles_auteurs a réglé le problème

    Répondre à ce message

  • Bonjour et merci pour ce plugin,

    j’utilise celui-ci avec « logo par role » et « logo svg » pour proposer aux administrateurs d’un site une base de logo svg pour illustrer des articles.

    Puisque ce plugin modifie la médiathèque en surchargeant :

    • prive/squelettes/inclure/mediatheque-galerie
    • prive/squelettes/inclure/mediatheque-choisir

    Serait-il possible de rendre visibles les logos svg de document, en modifiant, par exemple, le code ligne 94 de mediatheque_galerie par :

    [(#MEDIA|=={image}|oui|et{#EXTENSION|=={svg}|non})[
    	<a href="#URL_DOCUMENT" type="#MIME_TYPE"[ title="(#GET{fichier})"]>(#LOGO_DOCUMENT{apercu,250,70}|inserer_attribut{alt,[(#TITRE|couper{60}|texte_backend)]})</a>
    ]]
    [(#EXTENSION|=={svg}|oui)[
    	<a href="#URL_DOCUMENT" type="#MIME_TYPE"[ title="(#GET{fichier})"]>
    		<img src="(#URL_DOCUMENT)"[  alt="(#TITRE|couper{60}|texte_backend)"] height="70" />
    	</a>
    ]]

    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