cache

Actualiser le cache de Drupal quand il y a un nouveau commentaire

Si nous avons configuré notre installation Drupal pour permettre aux utilisateurs anonymes d’envoyer directement leurs commentaires sans approbation, et que nous avons activé le cache par défaut de Drupal avec une durée de vie de trois heures; que se passe-t-il avec les nouveaux commentaires durant ces trois heures où le cache ne s’actualise pas ? Et bien tout simplement, ils ne s’afficheront pas aux utilisateurs anonymes! Même si ceux-ci en sont les auteurs.

Comment pouvons dès lors actualiser automatiquement le cache quand un nouveau commentaire a été envoyé?

Pour cela nos allons créer un petit module qui implémentera une fonction de type hook_comment comme suit :

<?php
function modulename_comment($a1, $op) {
  switch (
$op) {
    case
'insert':
    case
'update':
     
$nid = $a1['nid'];
      break;
    case
'unpublish':
    case
'delete':
     
$nid = $a1->nid;
      break;
  }
 
  if (
$nid) {
   
// Prendre l'URL absolue du node
   
$url = url('node/'. $nid, array('absolute' => TRUE));
   
// éliminer le registre du cache pour cette URL
   
cache_clear_all($url, 'cache_page');
  }
}
?>

Tags:

Toutes les langues

A propos

En savoir plus... Karim Boudjema. Un développeur belge dans les Andes boliviennes.

Voir mon profil sur LinkedInVoir mon profil sur Twitter

>> En savoir plus...

Commentaires récents