[spip-dev] Rôles sur les liaisons

Bonjour,

j'ai testé le plugin avec rôles_auteurs: extra !

je l'ai testé sur des tables de jointures non natives, sur entre objets éditoriaux créés avec La Fabrique

en recopiant les fichiers du plugin roles_auteurs et en les adaptant.

Je suis quasi certain de n'avoir rien oublié dans cette "adaptation" ...
mais là
bizarrement
c'est les fichiers monobjet_associer.html et monobjet_associer.html qui sortent dans l'interface et non
monobjet_roles_associer.html et monobjet_roles_lies.html

J'ai beau fouiller, je comprends pas où j'ai dû twister ...

Ma deuxième étape sera d'essayer d'adapter le plugin rôles pour permettre d'éviter l'encodage en dur des choix possibles pour le "rôle".

Cordialement,
RB

Bien, sans voir, difficile de savoir.
Cela dit la Fabrique génère le code qui va bien aussi.

MM.

Bonjour,

ça fonctionne après quelques recherches ...

J'ai eu un truc bizarre mais sous réserve d'une fausse manoeuvre de ma part ...

ça doit être un truc d'autorisation.

j'ai deux objets (le tout avec la fabrique)

personne et organisme

objectif: à partir d'une personne, associer un organisme.

dans l'onglet de la fabrique, j'ai donc bien sur l'objet organisme autoriser l'ajout d'une liaison à partir d'une fiche personne.

à ce stade, la fiche personne ne s'affichait plus (les inclure s'arrêtaient au formulaire editer_liens)

J'ai dû ajouter via la fabrique sur l'objet personne l'autorisation d'ajouter une liaison à partir d'une fiche organisme. ...et là miracle ... tout est ok

En tous cas vraiment puissant

je m'occupe maintenant d'ajouter deux champs à côté du rôle: date de début et date de fin
et aussi de permettre au rédacteur d'ajouter un nouveau rôle (non défini au départ) à la volée ...

En plus je trouve vos plugins super didactique

C'est un plaisir.

RB

Bonjour,

mes expérimentations fonctionnent bie.

j'ai un autre curieux problème:
j'étends la définition des rôles possible par extraction d'une table.

J'opère ça dans le pipeline adhoc xxx_declarer_tables_objets_sql.

Tout fonctionne à merveille.

SAUF que ...
  array_set_merge($tables, 'spip_organismes', array(
    "roles_colonne" => "role",
    "roles_titres" => array(
      'indéfini' => 'indéfini',
      
    ),
    "roles_objets" => array(
      'personnes' => array(
        'choix' => array('indéfini'),
        'defaut' => 'indéfini'
      )
      #'*' => array()
    )
  ));
$resultats=sql_select("titre, id_mot", "spip_mots","id_groupe=10","","titre");//sql_fetch($resultats)
if ($resultats) {
     // boucler sur les resultats

     while ($res = sql_fetch($resultats) ) {
         // utiliser les resultats
         $tables['spip_organismes']['roles_titres'][$res['titre']]= $res['titre'];
  $tables['spip_organismes']['roles_objets']['personnes']['choix'][]= $res['titre'];
  
     }
}

pour les rôles déclarés dans array_set_merge: aucun souci
pour les rôles déclarés via extraction par sql_select, tout fonctionne bien (squelettes et écritures dans la BD) mais impossible de supprimer ces relations-là !! (et aucun message d'erreur sinon le fameux ooops.)

une idée ?

merci,
RB