Les traitements

Lorsque toutes les vérifications sont correctes, des traitements sont effectués. Souvent, ces traitements appellent des fonctions présentes dans le même fichier, ou dans une librairie du répertoire inc/. Parfois l’action est simplement effectuée dans la fonction principale.

Exemple du réglage de la modération d’un article

  1. // Modifier le reglage des forums publics de l'article x
  2. function action_regler_moderation_dist()
  3. {
  4. include_spip('inc/autoriser');
  5.  
  6. $securiser_action = charger_fonction('securiser_action', 'inc');
  7. $arg = $securiser_action();
  8.  
  9. if (!preg_match(",^\W*(\d+)$,", $arg, $r)) {
  10. spip_log("action_regler_moderation_dist $arg pas compris");
  11. return;
  12. }
  13.  
  14. $id_article = $r[1];
  15. if (!autoriser('modererforum', 'article', $id_article))
  16. return;
  17.  
  18. // traitements
  19. $statut = _request('change_accepter_forum');
  20. sql_updateq("spip_articles", array("accepter_forum" => $statut), "id_article=". $id_article);
  21. if ($statut == 'abo') {
  22. ecrire_meta('accepter_visiteurs', 'oui');
  23. }
  24. include_spip('inc/invalideur');
  25. suivre_invalideur("id='id_forum/a$id_article'");
  26. }

Télécharger

Les traitements effectués modifient la table spip_articles dans la base de données pour affecter un nouveau statut de gestion de forum. Lorsqu’un forum est demandé sur abonnement, c’est à dire qu’il faut être logé pour poster, il faut obligatoirement vérifier que le site accepte l’inscription de visiteurs, c’est ce que fait ecrire_meta('accepter_visiteurs', 'oui');.

Enfin, un appel à l’invalidation des fichiers du cache est effectué avec la fonction suivre_invalideur(). Tout le cache sera recréé (avant SPIP 2.0, cela n’invalidait qu’une partie du cache).

Auteur Matthieu Marcillaud Publié le : Mis à jour : 24/11/09

Traductions : English, français