Bonjour,
Je suis en train d’appréhender le workflow autour des fichiers d’action pour créer/éditer de nouveaux objets.
Je m’inspire de action_editer_rubrique_dist pour appréhender la logique.
Je cherche par exemple à créer une « source » (mon objet de travail) et l’associer à un autre objet (via une table de liaison).
J’ai créé des boutons d’actions de ce type depuis les pages d’édition de rubriques : source_edit, « creation-rubrique-113 ».
Dans mon fichier action/editer_source.php, extrait :
$parametres = explode("-", $arg);
$action = $parametres[0]; // creation
$objet = $parametres[1] ?? false; // rubrique
$id_objet = $parametres[2] ?? false; // 113
# Cas de création d'une nouvelle source avec liaison
if ($action === "creation" and $objet and $id_objet) {
include_spip('inc/headers');
redirige_url_ecrire("source_edit", "objet=rubrique&id_objet=113");
# Ou bien je créé directement ici une nouvelle source,
# ainsi que l'association à l'autre objet,
# et je redirige vers le formulaire d'édition de la source ?
}
Voilà où j’en suis…
Je ne comprends pas à quel moment l’association à l’autre objet devrait se faire ?
-
Si je la fais directement dans le fichier d’action, je vais créer une nouvelle source, récupérer son id, puis l’associer à l’autre objet et enfin rediriger vers le formulaire. Ok, c’est faisable, mais si au final l’utilisateur clique sur le bouton d’action mais abandonne le formulaire d’édition de la source (changement d’avis), on se retrouve en BDD avec une source + une laison qui ne servent à rien.
-
Donc, je me dis qu’il faut plutôt agir au niveau de la fonction traiter du formulaire de l’objet : le bouton d’action redirige vers le formulaire d’édition en lui faisant passer le couple objet-id_objet pour qu’il puisse réaliser l’association en fin de traitement et après l’insertion en base de la nouvelle source.
J’ai néanmoins l’impression que dans la pratique, on privilégie ce type de traitements dans les fichiers d’actions plutôt que dans els formulaires d’édition ?
-
Si c’est bien le cas, le fichier d’action n’a plus beaucoup de sens ici, il fait juste le passe plat au formulaire d’édition.
-
Existe t’il une bonne/autre pratique en la matière ? Un plugin objet dont je pourrais m’inspirer ?
Merci aux survivants de ce (trop) long et ennuyeux post de m’avoir lu jusqu’ici !
Si la team formation/documentation est en place, je veux bien partager mes retours d’expérience sur mes incompréhensions entre ce que je comprends de la doc et les points sur lesquels je n’y trouve pas de réponse…
Bonne journée à tous,
Pierre-Jean