Рейтинг:0

Очистить кеш определенного представления программно, специфичный для контекстного фильтра

флаг de

Я использую следующее, чтобы очистить конкретный кеш для просмотра на node_presave который работает нормально.

  cache_clear_all($view_name.':'.$display_name, 'cache_views_data', ИСТИНА);

В настоящее время он удаляет все представления, созданные для всех контекстных фильтров (идентификатор термина таксономии). Я хочу иметь возможность удалить только представление для одного идентификатора термина таксономии.

Например, если узел a с прилив:46 добавлен,

Что случилось: Все кеши следующих представлений очищаются (удаляются из cache_views_data Таблица).

статей/45
статей/46
статей/47

Что я хочу, чтобы произошло: удалить кеш представления только для статей/46.

Итак, чтобы добиться этого, я начал копаться в таблицах (в основном cache_views_data), чтобы выяснить шаблон CID.

К каждому CID добавляется строка, похожая на UUID.

введите описание изображения здесь

Что я знаю до сих пор, так это то, что эта строка кажется одинаковой для определенного представления. Например, для просмотра статей/46, каждый раз одно и то же. Я несколько раз пробовал очищать кеш и генерировать его снова и снова.

Я считаю, что если я знаю правильную строку для каждого представления, я могу очистить кеши конкретно. Итак, мой вопрос: выполнимо ли то, чего я пытаюсь достичь? Изменяется ли строка в зависимости от какого-то неизвестного фактора? Если нет, то является ли он последовательным и надежным? Если да, то как я могу узнать, как и где это генерируется?

Я предполагаю, что модуль просмотров использует модуль ctools для этого, но я не знаю, как именно.

No Sssweat avatar
флаг ua
«Я могу очистить кеши специально. Выполнимо ли то, чего я пытаюсь достичь?» Я не боюсь или, по крайней мере, не без серьезной работы. Я уверен, вы знаете, что кэш-теги были введены в D8 именно для этой цели. Если бы это было так просто для D7, я уверен, что это было бы добавлено давным-давно.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.