Puncte:0

Ștergeți cache-ul unei vizualizări specifice în mod programatic, specific filtrului contextual

drapel de

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.

introduceți descrierea imaginii aici

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.

No Sssweat avatar
drapel ua
„Pot șterge cache-urile în mod specific, ceea ce încerc să obțin este realizabil?” Mă tem că nu sau cel puțin nu fără o muncă majoră. După cum sunt sigur că știți, etichetele cache au fost introduse în D8 exact în acest scop. Dacă ar fi fost atât de simplu pentru D7, sunt sigur că ar fi fost adăugat cu mult timp în urmă.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.