Bonjour,
Avec regret (parce que je n’y arrive pas, tout simplement) je vous sollicite à nouveau pour un coup de main sur le pipeline post-edition. Je n’arrive pas à comprendre comment le mettre en oeuvre.
Contexte : je finalise un morceau de plugin « illegal » et voudrait qu’au moment du changement de statut d’un article (de ‹ publie › à ‹ illegal › – ce dernier statut étant bien paramétré, géré et pris en compte) il y ait un enregistrement automatique dans ma table « illegal_articles » (table qui s’implémente bien également) avec le n° #ID_ARTICLE et un numéro automatique incrémentiel #ID_ILLEGAL.
J’ai ajouté le code ci-dessous à mon plugin (dans : _pipeline.php) mais cela ne fonctionne pas. J’avoue ne pas vraiment comprendre non plus, à défaut d’avoir les connaissances/formations en langage informatique et temps nécessaires, je recopie ce qui me semble être approprié (des fois ça marche, des fois non, évidemment).
Merci de votre aide si vous avez le temps.
Bien à vous
/**
- Au changement de statut apres declaration du statut =‹ illegal ›,
- créer un enregistrement dans la table spip_illegal_articles avec : n°#ID_ARTICLE
- pour ensuite pouvoir renseigner le champ ‹ motif ›
- Egalement, recalcul du statut des rubriques d’apres le statut modifie des articles (cf. Plugin Diogene)
-
@pipeline post_edition
*/
function illegal_post_edition($flux) {
if($flux[‹ args ›][‹ action ›] == ‹ instituer ›) {
$objet = objet_type($flux[‹ args ›][‹ table ›]);
if (isset($flux[‹ data ›][‹ statut ›]) && ($flux[‹ data ›][‹ statut ›] == ‹ illegal ›) && ($flux[‹ args ›][‹ table ›] == ‹ spip_articles ›)) {
sql_updateq(
‹ spip_illegal_articles ›,
‹ id_article= ›.intval($flux[‹ args ›][‹ id_objet ›])
);
}
}
// Code ci-dessous issu du plugin Diogene
if (isset($flux[‹ data ›][‹ id_rubrique ›])
and ($flux[‹ data ›][‹ statut ›] == ‹ publie ›)
and ($flux[‹ args ›][‹ action ›] == ‹ instituer ›)) {
include_spip(‹ inc/rubriques ›);
calculer_rubriques_if($flux[‹ data ›][‹ id_rubrique ›], array(‹ statut › => ‹ publie ›), ‹ ›);
}
return $flux;
}