Folosesc următoarele pentru a vedea cache-ul specific node_presave
care merge bine.
cache_clear_all($view_name.':'.$display_name, 'cache_views_data', TRUE);
În prezent, șterge toate vizualizările generate pentru toate filtrele contextuale (termenul de taxonomie id). Vreau să pot șterge doar vizualizarea pentru un ID de termen de taxonomie.
De exemplu, dacă nodul a cu tid:46
e adăugat,
Ce se întâmplă:
Toate cache-urile următoarelor vizualizări sunt șterse (șterse din cache_views_data masa).
articole/45
articole/46
articole/47
Ce vreau sa se intample:
ștergeți doar memoria cache a vizualizării pentru articole/46
.
Așa că, pentru a realiza acest lucru, am început să caut în tabele (în principal cache_views_data) pentru a afla modelul CID.
Există un șir de tip UUID adăugat la fiecare CID.
Ceea ce am știut până acum este că acest String pare să fie același pentru o anumită vedere. De exemplu, pentru vedere articole/46
, este la fel de fiecare dată. Am încercat să șterg memoria cache de mai multe ori și să o regenerez din nou și din nou.
Cred că dacă pot cunoaște șirul corect pentru fiecare vizualizare, pot șterge cache-urile în mod specific.
Deci întrebarea mea este: este realizabil ceea ce încerc să obțin? Se schimbă șirul pe baza unui factor necunoscut? Dacă nu, este consecvent și de încredere? Dacă da, atunci cum pot să știu cum și unde este generat?
Bănuiala mea este că modul de vizualizare
folosește modulul ctools
pentru asta, dar nu știu exact cum.