Programmer avec SPIP 3.0
Documentation technique sur SPIP 3.0

> > > > Les traitements

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