-
- Téléchargements
Intégration dans SPIP de la possibilité de gérer des liens entre objets
avec des rôles. On intègre l'API présente actuellement dans le plugin Rôles, en modifiant un peu les fonctions d'édition de liens. Celles-ci permettent maintenant d'éditer des liens ayant donc des rôles. Ces différents rôles et le nom de la colonne SQL qui les reçoit, s'ils sont utilisés, doivent être déclarés avec la déclaration de l'objet éditorial correspondant. Un exemple est donné avec le plugin «Roles auteurs» qui définit quelques rôles. Les champs décrivant les rôles : `roles_colonne`, `roles_titres` et `roles_objets` doivent être déclarés (via le pipeline declarer_tables_objets_sql). ``` "roles_colonne" => "role", "roles_titres" => array( 'redacteur' => 'info_statut_redacteur', 'traducteur' => 'roles_auteurs:traducteur', 'correcteur' => 'roles_auteurs:correcteur', 'relecteur' => 'roles_auteurs:relecteur', ), "roles_objets" => array( 'articles' => array( 'choix' => array('redacteur', 'traducteur', 'correcteur', 'relecteur'), 'defaut' => 'redacteur' ) #'*' => array() ) ``` Une fois déclaré, on peut appeler les fonctions d'édition de lien en transmettant des valeurs de rôles, tel que : ``` objet_associer( array('auteur' => 3), array('article' => 11), array('role' => 'correcteur') ); // utilisera le rôle par défaut objet_associer( array('auteur' => 3), array('article' => 11) ); ``` Si aucun rôle n'est indiqué, le rôle par défaut est appliqué. Dans le cas d'une dissociation également, si aucun rôle n'est indiqué, seuls les liaisons avec le rôle par défaut seront supprimés ; pour supprimer tous les rôles, il faut à ce moment là indiquer '*' : ``` objet_dissocier( array('auteur' => 3), array('article' => 11), array('role' => 'correcteur') ); // utilisera le rôle par défaut objet_dissocier( array('auteur' => 3), array('article' => 11) ); // enlèvera tous les rôles objet_dissocier( array('auteur' => 3), array('article' => 11), array('role' => '*') ); ``` Le formulaire d'édition de liens n'utilisera pas les mêmes squelettes de liaison lorsqu'une colonne de rôle est déclarée. Ainsi dans cet exemple, au lieu de `prive/objets/liste/auteurs_lies.html` et `auteurs_associer.html`, cela utiliserait `prive/objets/liste/auteurs_roles_lies.html` et `auteurs_roles_associer.html`. Il faut donc créer ces squelettes. Ces squelettes peuvent poster les valeurs au formulaire pour insérer de nouveaux liens, de la forme `qualifier_lien[auteur-3-article-11][role]` en postant `redacteur` par exemple. Il est possible au passage de poster en plus d'autres valeurs, qui seront intégrées dans l'enregistrement du lien. Ainsi, poster en même temps `qualifier_lien[auteur-3-article-11][valeur]` = `50` enregistrera la valeur 50 dans la colonne `valeur` de la table de lien (qui doit exister !). D'autres informations sont présentes dans http://contrib.spip.net/Des-roles-sur-des-liens, http://zone.spip.org/trac/spip-zone/browser/_plugins_/roles_auteurs ou encore http://zone.spip.org/trac/spip-zone/browser/_plugins_/roles
parent
ea418c69
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Affichage de
- .gitattributes 1 ajout, 0 suppression.gitattributes
- ecrire/action/editer_liens.php 107 ajouts, 30 suppressionsecrire/action/editer_liens.php
- ecrire/inc/roles.php 368 ajouts, 0 suppressionecrire/inc/roles.php
- prive/formulaires/editer_liens.php 239 ajouts, 80 suppressionsprive/formulaires/editer_liens.php
Chargement en cours
Veuillez vous inscrire ou vous se connecter pour commenter