208 похожих чатов

Ребят подскажите есть компонент news.detail. у элемента есть свойство привязка

эеменнтов - другой инфоблок. как при изменение элементов другого инфоблока сбрасывать кеш news.detail ? есть ли чтото штатное?

17 ответов

38 просмотров

clearComponentCache

Алексей- Автор вопроса
Yevhen Horbyshyn
clearComponentCache

не подходит: чтобы CBitrixComponent::clearComponentCache('vendor:component-name') работал для своих компонентов нужно при формировании кеша в компоненте принудительно указать cachePath = '/s1/vendor/component-name' в методе StartResultCache . то есть нужно кастематизировать компонент

Алексей
не подходит: чтобы CBitrixComponent::clearComponen...

вы сказали про стандартные ньюс лист и ньюс детейл

Алексей- Автор вопроса
Yevhen Horbyshyn
вы сказали про стандартные ньюс лист и ньюс детейл

Да, к стандартным тож относится. Если этого не сделать, то cachePath формируется автоматически и он становится /s1/vendor/component-name/xxx, где xxx - какие-то символы 06f, d80 и др.

Алексей- Автор вопроса
Yevhen Horbyshyn
отлично юзаю с каталог секшн

ок попробую, ты вешаешь CBitrixComponent::clearComponentCache на событие изменение элемента инфоблока?

Алексей
ок попробую, ты вешаешь CBitrixComponent::clearCom...

не совсем. на аяксе повешено добавление в избранное, я после добавления скидываю каталог секшн

Алексей
ок попробую, ты вешаешь CBitrixComponent::clearCom...

В register_modifier повесьте сброс тегированного кеша на нужном инфоблоке.

Алексей- Автор вопроса
Eugene Zhukov
В register_modifier повесьте сброс тегированного к...

нет связь с элементам например страна Россия и у ней свойство привязка к элементам города: москва, казань. и вывод news.detail элемента Россия. И когда элемент Москва изменился нужно сбросить кеш news.detail.

Алексей
нет связь с элементам например страна Россия и у н...

Я вам ответил, что нужно для вашей задачи. Зарегистрируйте сброс тегированного кеша для инфоблока, где у вас Москва содержится. Идентификатор - iblock_ИДинфоблока, если не ошибаюсь

Алексей- Автор вопроса
Eugene Zhukov
Я вам ответил, что нужно для вашей задачи. Зарегис...

я понимаю что нужно вешать на событие изменение элементов инфоблока города сброс кеша iblock_страна. Причем здесь result_modifier?.

Eugene Zhukov
Я вам ответил, что нужно для вашей задачи. Зарегис...

и тогда при изменении любого города весь кеш во всех городах снесет? или нет?

Eugene Zhukov
Да, так работает тэгированный кеш

Так что советик слегка вредный, хотя задача требует пачки уточнений и доп. анализа по частоте изменения данныых Вероятно там есть данные по городу на странице и проще и оптимальнее будет пробросить доп параметром в компонент дату изменения города (или хеш)

Andrew Zahalski
Так что советик слегка вредный, хотя задача требуе...

А как вы собрались определять - какой именно файл кеша компонента сбрасывать? И как вам поможет добавление каких-либо параметров в компонент, с учетом того, что снаружи не узнать, какие именно города попадут в выборку ВНУТРИ компонента?

Eugene Zhukov
А как вы собрались определять - какой именно файл ...

компонент известен вроде как. Если бы там была выборка данных, то тег проставился автоматически и сбросился в GetList (может в новых версиях чего и поменяли, но не должно) Порчему и предположение, что это бубен с условиями вывода по выбранному городу

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта