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

// Modifier le reglage des forums publics de l'article x
function action_regler_moderation_dist()
{
	include_spip('inc/autoriser');

	$securiser_action = charger_fonction('securiser_action', 'inc');
	$arg = $securiser_action();

	if (!preg_match(",^\W*(\d+)$,", $arg, $r)) {
		spip_log("action_regler_moderation_dist $arg pas compris");
		return;
	}

	$id_article = $r[1];
	if (!autoriser('modererforum', 'article', $id_article))
		return;

	// traitements
	$statut = _request('change_accepter_forum');
	sql_updateq("spip_articles", array("accepter_forum" => $statut), "id_article=". $id_article);
	if ($statut == 'abo') {
		ecrire_meta('accepter_visiteurs', 'oui');
	}
	include_spip('inc/invalideur');
	suivre_invalideur("id='id_forum/a$id_article'");
}

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 : 12/03/23

Traductions : English, français