Il est également possible de déclarer une tâche hors plugin, si jamais vous n’avez pas défini de plugin maison pour le squelette de votre site :
1) Créez un dossier ’genie’ dans votre dossier squelettes
2) Ajoutez y un fichier PHP contenant la fonction de votre tâche, nommé comme la fonction.
Pour l’exemple, on va prendre un génie qui s’appelle my_periodic_task et qui se limite à envoyer un mail. Il faut donc créer un fichier my_periodic_task.php dans le dossier squelettes/genie, et ce fichier contient :
<?php
function genie_my_periodic_task_dist($t){
mail('my-email@bibi.com', 'test cron', 'Mon test cron');
return 1;
}
3) Le génie étant prêt, déclarez le à SPIP. Dans le fichier config/mes_options.php, ajoutez le nouveau job au pipeline taches_generales_cron :
if (!isset($GLOBALS['spip_pipeline']['taches_generales_cron'])) {
$GLOBALS['spip_pipeline']['taches_generales_cron'] = "periodic_task";
}
else {
$GLOBALS['spip_pipeline']['taches_generales_cron'] .= "|periodic_task";
}
function periodic_task($taches){
$taches['my_periodic_task'] = 24*3600; // every day
return $taches;
}
4) Pour tester, vous pouvez ensuite en forcer l’exécution via la page maintenance->tache de fond.
Et voilà !