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".
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 ...
),
"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.)