Tôi đang sử dụng cách sau để xóa bộ đệm xem cụ thể trên nút_presave
đang hoạt động tốt.
cache_clear_all($view_name.':'.$display_name, 'cache_views_data', TRUE);
Hiện tại, nó đang xóa tất cả các chế độ xem được tạo cho tất cả các Bộ lọc theo ngữ cảnh (id thuật ngữ phân loại). Tôi muốn chỉ có thể xóa chế độ xem cho một id thuật ngữ phân loại.
Ví dụ, nếu nút a với tid:46
được thêm vào,
Chuyện gì đang xảy ra:
Tất cả bộ nhớ đệm của chế độ xem sau đều bị xóa (đã xóa khỏi cache_views_data cái bàn).
bài viết/45
bài viết/46
bài viết/47
Những gì tôi muốn xảy ra:
chỉ xóa bộ nhớ cache của chế độ xem cho bài viết/46
.
Vì vậy, để đạt được điều này, tôi bắt đầu đào sâu vào các bảng (chủ yếu là cache_views_data) để tìm ra mẫu của CID.
Có một chuỗi giống như UUID được thêm vào mỗi CID.
Những gì tôi đã biết cho đến nay là: Chuỗi này dường như giống nhau đối với một chế độ xem cụ thể. Ví dụ, đối với chế độ xem bài viết/46
, nó là như nhau mỗi lần. Tôi đã thử xóa bộ đệm nhiều lần và tạo lại nhiều lần.
Tôi tin rằng nếu tôi có thể biết chuỗi chính xác cho từng chế độ xem, tôi có thể xóa bộ nhớ đệm một cách cụ thể.
Vì vậy, câu hỏi của tôi là: Điều tôi đang cố gắng đạt được có thể thực hiện được không? Chuỗi có thay đổi dựa trên một số yếu tố chưa biết không? Nếu không, nó có nhất quán và đáng tin cậy không? Nếu có, thì làm cách nào tôi có thể biết điều này được tạo ra như thế nào và ở đâu?
tôi đoán là mô-đun lượt xem
đang sử dụng mô-đun ctools
cho việc này nhưng tôi không biết chính xác như thế nào.