Присоединяюсь к Игорь Обрезков, отрабатываю это задание на такой же связке: Фирмы - Товары . Свои запросы я обрамляю if($this->StartResultCache($arParams["CACHE_TIME"], [($arParams["CACHE_GROUPS"]==="N"? false: $USER->GetUserGroupString()), $arFilterElems, $arFilterFirm, $arNavigation]))
И $this->StartResultCache уже подразумевает, что при изменении элемента кеш сбрасывается. И как быть с такой неловкой ситуацией?
Иван Малышин написал: Это задание было продолжением задания, которого уже нет в подготовке.Смысл задания в том чтобы при обновлении элементов иблока 1, сбрасывать кеш компонента, который выводит список элементов иблока 2. Компонент выводящий элементы иблока 2 - ваш собственный, можно дорабатывать для решения задачи. Элементы иблока 1 и 2 связаны через свойство, но это не влияет на суть решения, а скорее на реалистичность задачи
К сожалению, я тоже не понял по заданию ex2-107 :
Мой компонент выводит данные из ИБ Фирма- производитель и ИБ Продукция. И при изменении элементов этих иблоков кэш в компоненте и так сбрасывается. Кеширование в компоненте включено.
Вопрос: или я что то не так сделал или может нужно сбрасывать кеш при изменении элементов ИБ, который не участвует в выводе моего компонента. Например, ИБ услуги ? Тогда нужно использовать события?
В форуме уже где-то был подобный вопрос, а ответ на него - тегированный кеш. Надо привязать в компоненте тегированный кеш к инфоблоку Услуг и по изменению элемента в нем можно через событие скидывать кеш для данного тега.
Анна Елсукова написал: В форуме уже где-то был подобный вопрос, а ответ на него - тегированный кеш. Надо привязать в компоненте тегированный кеш к инфоблоку Услуг и по изменению элемента в нем можно через событие скидывать кеш для данного тега
Ok. спасибо)) Задачу решил путем замены стандартного кеширования на сложное и тегирования в компоненте. Далее сброс кеша по тегу через событие при имзменении элемента ИБ Услуги
dumaspotted написал: 1) Подскажите, задания на разработку простых компонентов, типа: [ex2-70] Разработать простой компонент «Каталог товаров» Я правильно понял, что реализовывать кнопки изменения/удаления элементов (эрмитаж) не требуется?
По управлению элементами «Эрмитаж» есть отдельное задание - ex2-58. Как я понимаю при разработке простого компонента этот функционал внедрять не нужно.
В задании ex2-97 для ускорения решения предоставляются материалы. Вопрос: на экзамене в других заданиях по разработке простых компонентов будут ли предоставляться материалы для ускорения?
Игорь Обрезков написал: К сожалению, я тоже не понял по заданию ex2-107 :Мой компонент выводит данные из ИБ Фирма- производитель и ИБ Продукция. И при изменении элементов этих иблоков кэш в компоненте и так сбрасывается. Кеширование в компоненте включено.Вопрос: или я что то не так сделал или может нужно сбрасывать кеш при изменении элементов ИБ, который не участвует в выводе моего компонента. Например, ИБ услуги ? Тогда нужно использовать события?
Цитата
Дарья Малова написал: Присоединяюсь к Игорь Обрезков , отрабатываю это задание на такой же связке: Фирмы - Товары . Свои запросы я обрамляю if($this->StartResultCache($arParams["CACHE_TIME"], [($arParams["CACHE_GROUPS"]==="N"? false: $USER->GetUserGroupString()), $arFilterElems, $arFilterFirm, $arNavigation]))И $this->StartResultCache уже подразумевает, что при изменении элемента кеш сбрасывается. И как быть с такой неловкой ситуацией?
Цитата
Анна Елсукова написал: В форуме уже где-то был подобный вопрос, а ответ на него - тегированный кеш. Надо привязать в компоненте тегированный кеш к инфоблоку Услуг и по изменению элемента в нем можно через событие скидывать кеш для данного тега.
Цитата
Игорь Обрезков написал: Ok. спасибо)) Задачу решил путем замены стандартного кеширования на сложное и тегирования в компоненте. Далее сброс кеша по тегу через событие при имзменении элемента ИБ Услуги
Да, это задание на тегированный кеш. Нет, не нужно специально заморачиваться и в своем компоненте менять StartResultCache на что-то другое из-за этого задания. Текущие задания уже не раскрывают его суть, ранее условия были такие что для решения действительно нужен был свой тег и сброс его по событию. В боевых билетов сейчас такого задания совсем нет. Пометил себе в заданиях для подготовки доработать этот момент. UP: нынче в боевых билетах задание на тегированный кеш присутствуют.
dumaspotted написал: 1) Подскажите, задания на разработку простых компонентов, типа: [ex2-70] Разработать простой компонент «Каталог товаров» Я правильно понял, что реализовывать кнопки изменения/удаления элементов (эрмитаж) не требуется?
Да, правильно поняли. Реализовывать не требуется, если это явно не прописано в условии задания
Цитата
dumaspotted написал: 2) В задании [ex2-81] Внести доработки в созданныи? простои? компонент «Каталог товаров» для тестирования задать шаблон ссылки “catalog_exam/#SECTION_ID#/#ELEMENT_CODE#” . Вопрос - нужно ли реализовывать поддержку SECTION_CODE ?
Не оч понял вопрос, какая разница для API какой именно плейсхолдер будет. Если вы подразумеваете что вы в ручную собралиcь "стрреплейсить" шаблон, то это не верный подход
Игорь Обрезков написал: В задании ex2-97 для ускорения решения предоставляются материалы. Вопрос: на экзамене в других заданиях по разработке простых компонентов будут ли предоставляться материалы для ускорения?
dumaspotted написал: 2) В задании [ex2-81] Внести доработки в созданныи? простои? компонент «Каталог товаров» для тестирования задать шаблон ссылки “catalog_exam/#SECTION_ID#/#ELEMENT_CODE#” . Вопрос - нужно ли реализовывать поддержку SECTION_CODE ?
Не оч понял вопрос, какая разница для API какой именно плейсхолдер будет. Если вы подразумеваете что вы в ручную собралиcm стрреплейсить шаблон, то это не верный подход
Стрреплейсить не собирался. Но разве MakePathFromTemplate не подойдёт в это задании?
Вопрос по заданию [ex2-54] Подсчет количества зарегистрированных пользователей :
Не будет ли ошибкой. если при первом запуске агента, будет отправляться письмо о зарегистрированных пользователях, которые уже есть в системе? Например. если есть уже несколько пользователей и кто - нибудь из них админ, то придет письмо о количестве уже зарегистрированных пользователях с числом дней, которое прошло с первого дня регистрации по последний? Или же, если уже есть пользователь, но он один и админ, функция отправит ему письмо с количеством дней подсчета равным 1? А далее при следующих запусках агента функция будет подсчитывать, сколько новых пользователей зарегистрировано на сайте с момента прошлого подсчета и отправлять письмо всем пользователям из группы «Администраторы».
1633131@mail.ru написал: Задание [ex2-107] можно решать с помощью BXClearCache() с указанием нужной папки, если нет то почему?
Изначально тоже думал делать таким способом, получилось, примерно так: BXClearCache(true, '/s1/mycomponents/simplecomp2.exam/652/07/'); На мой взгляд минус такого решения, что нужно задавать путь к папке кеша
Это задание уже «100 раз» обсудили хотя его уже нет в боевых билетах
В некоторых заданиях (например ex2-51) требуется получить данные пользователя. Будет ли считаться ошибкой использование ORM UserTable::getList() вместо CUser::GetList() ?
1633131@mail.ru написал: В задании [ex2 -100] если разметку поместить в свойство (в коде компонента, а не шаблона) то это будет ошибкой?
Чет не понял, там какое свойство используете?
Цитата
Максим Кашкин написал: В некоторых заданиях (например ex2-51) требуется получить данные пользователя. Будет ли считаться ошибкой использование ORM UserTable::getList() вместо CUser::GetList() ?
Сергей Шершнёв написал: Имеется ввиду дать возможность в параметрах компонента управлять кэшированием или при StartResultCache передавать в additionalCacheID ID пользователя?
Значит что каждый юзер получает персонально закешированный результат
В задании [ex2-88] - требуется измерить объем кэша в 2 ситуациях: 1) при работе по умолчанию 2) при помещении только данных требуемых в некэшируемой области
Собственно вопросы по обоим пунктам, т.к. не совсем ясна задача: 1) по умолчанию - имеется ввиду поместить в кэш все ключи $arResult или наоборот все убрать? Не совсем ясен пункт, учитывая что при правильной реализации единственными ключами $arResult, которые хранятся в кэше будут только те, что нужны в некешируемой области. 2) требуется ли убрать из кэша все прочее, например, не кэшировать шаблон? Т.е. переписать кэширование компонента так, чтобы в кэше хранились только нужные ключи $arResult и все.
Добрый день! После проверки экзамена результат - не сдан. При этом у меня решены 4 задания верно, 5 задание(комплексный компонент) работает правильно, но при настройке режима не ЧПУ, я указал условие отображение требуемой страницы (через условие наличия параметров), но забыл прописать в arResult URL_TEMPLATES ссылку, хотя это на работоспособность не повлияет, лишь пропишет порядок следования этих параметров. Все остальные пункты этого задания верны. Неужели это считается критической ошибкой для не сдачи экзамена?