Wir haben ein benutzerdefiniertes Servicemodul und eine Site in Drupal 7, und ich habe die Aufgabe, den Cache zu löschen, nachdem der Editor neue Inhalte hinzugefügt oder die vorhandenen aktualisiert hat.
Ich habe über ein Modul namens Cache-Aktionen gelesen , aber wie gesagt, ich muss die Funktion auf meinem benutzerdefinierten Modul erstellen.
Außerdem habe ich angefangen, über Drupal-Hooks zu lesen, habe aber noch keine Ahnung, wie diese Aufgabe implementiert werden soll. Irgendwelche Vorschläge? Vielen Dank.
Antworten:
Es hört sich so an, als hätten Sie bereits ein benutzerdefiniertes Modul, aber für den Fall, dass Sie das Modulentwicklerhandbuch nicht sehen .
Die Hooks, nach denen Sie suchen, sind
hook_node_insert()
undhook_node_update()
, und die Funktion zum Löschen des Caches ist entwedercache_clear_all()
oderdrupal_flush_all_caches
. Mit ersteren können Sie bestimmte Cache-Bins (und sogar bestimmte Cache-Elemente) löschen, und mit letzterem können Sie absolut alles löschen.Zum Beispiel:
oder um nur den statischen Seitencache zu löschen, nachdem ein Knoten aktualisiert wurde:
quelle
Sie können bestimmte Knotencaches nach dem Aktualisieren problemlos löschen. Ex. ::
Bitte beachten Sie, dass Sie angeben müssen
array('absolute' => TRUE)
.quelle