ฉันใช้สิ่งต่อไปนี้เพื่อล้างดูแคชเฉพาะบน node_presave
ซึ่งทำงานได้ดี
cache_clear_all($view_name.':'.$display_name, 'cache_views_data', TRUE);
ขณะนี้ กำลังลบมุมมองทั้งหมดที่สร้างขึ้นสำหรับตัวกรองตามบริบททั้งหมด (รหัสคำอนุกรมวิธาน) ฉันต้องการลบเฉพาะมุมมองสำหรับ ID คำอนุกรมวิธานเดียวเท่านั้น
ตัวอย่างเช่น ถ้าโหนด a กับ เวลา:46
จะเพิ่ม
เกิดอะไรขึ้น:
แคชของมุมมองต่อไปนี้ทั้งหมดถูกล้าง (ลบจาก cache_views_data ตาราง).
บทความ/45
บทความ/46
บทความ/47
สิ่งที่ต้องการให้เกิดขึ้น:
ลบเฉพาะแคชของมุมมองสำหรับ บทความ/46
.
ดังนั้น เพื่อให้บรรลุเป้าหมายนี้ ฉันจึงเริ่มขุดค้นในตาราง (โดยหลักแล้ว cache_views_data) เพื่อหารูปแบบของ CID
มีการเพิ่ม UUID like string ในแต่ละ CID
สิ่งที่ฉันรู้จนถึงตอนนี้คือ: สตริงนี้ดูเหมือนจะเหมือนกันสำหรับมุมมองเฉพาะ ตัวอย่างเช่นสำหรับมุมมอง บทความ/46
มันเหมือนกันทุกครั้ง ฉันได้ลองล้างแคชหลายครั้งแล้วสร้างใหม่ครั้งแล้วครั้งเล่า
ฉันเชื่อว่าถ้าฉันรู้สตริงที่ถูกต้องสำหรับแต่ละมุมมอง ฉันสามารถล้างแคชได้โดยเฉพาะ
ดังนั้นคำถามของฉันคือ: สิ่งที่ฉันพยายามจะทำให้สำเร็จนั้นเป็นไปได้หรือไม่? สตริงเปลี่ยนแปลงตามปัจจัยที่ไม่รู้จักหรือไม่? ถ้าไม่ มันสอดคล้องและเชื่อถือได้หรือไม่? ถ้าใช่ ฉันจะรู้ได้อย่างไรว่าสิ่งนี้สร้างขึ้นได้อย่างไรและที่ไหน
ฉันเดาว่า ดูโมดูล
กำลังใช้ โมดูล ctools
สำหรับสิ่งนี้ แต่ฉันไม่รู้ว่าเป็นอย่างไร