Цитата |
---|
Дмитрий Хорев написал: Нужно ли чистить на экзамене файлы с языковыми константами от лишних данных (после копирования базовых компонентов)? |
07.06.2016 18:54:33
|
|||
|
|
10.06.2016 10:36:02
Экзамен 2, билет 1 Сохранить в кеш типового компонента дополнительные данные В разделе /products/ уже размещен типовой комплексный компонент, в составе которого есть компонент catalog.section, отображающий список элементов в разделе каталога. Необходимо сохранять дополнительные данные в файле кеша типового компонента catalog.section Данные для сохранения: значения свойства «Цена» для полученных в компоненте элементов. Вопрос: Не совсем понятно как реализовывать, предположил что речь идёт об использовании класса CPhpCache, но применять этот класс для кеширования данных в result_modifier.php и temoplate.php бессмысленно т.к. там и так есть кеш, а вот в component_epilog.php или в файле комплексного компонента section.php - CPhpCache отработает, но тогда нужно получить отдельным запросом (CIBlockElement::GetList()) цены элементов текущего раздела. На форуме нашёл похожий вопрос вы Иван Малышин, сослались на метод CBitrixComponent::setResultCacheKeys
Всё сбудется, стоит только расхотеть...
|
|
|
|
10.06.2016 12:11:09
Александр Андреев, А что мешает применить setResultCacheKeys в result_modifier.php ?
![]() Вообще при сегодняшней формулировки задания можно использовать и CPHPCache, но зачем? Если вы работаете в шаблоне компонента и есть удобный метод setResultCacheKeys. Пожалуй стоит уточнить формулировку задания, чтобы доп. данные помещались именно в тот же файл кеша, что и данные компонента, тогда уже CPHPCache не подойдет, суть задания больше про правильную простую кастомизацию типового компонента. И даже при разработке своего компонента стоит использовать методы компонента, а не CPHPCache. А если пишете свой модуль, или "системный" скрипт, тогда уже понадобится CPHPCache. Вот еще информация, которая может быть полезна при осмыслении архитектуры работы компонента |
|
|
|
10.06.2016 12:21:40
![]()
Всё сбудется, стоит только расхотеть...
|
|||
|
|
10.06.2016 12:24:58
Александр Андреев, если вы просто загуглите по 2м словам "setResultCacheKeys result_modifier.php", найдете много полезных примеров не только для сдачи экзамена но и лучшего понимания работы механизма кеширования компонента
|
|
|
|
10.06.2016 12:28:21
Всё сбудется, стоит только расхотеть...
|
|||
|
|
20.06.2016 10:13:49
Иван Малышин, я правильно понимаю что задача сохранения доп.данных в компонент с помощью setResultCacheKeys будет считаться выполненной если в component_epilog.php вот такой код:
покажет мне сохранённые в кеш в result_modifier.php данные?
Всё сбудется, стоит только расхотеть...
|
|||
|
|
20.06.2016 11:40:41
Экзамен 2, билет 1
Уведомление при добавления пользователя в группу в задаче есть пункт "Получатели письма – текущие пользователи группы «Контент-редакторы»" , получить список e-mail адресов текущих контент-редакторов пытаюсь с помощью CUser::GetList() вот таким образом:
где GROUP_CONTENT_EDITORS - константа с идентификатором группы "Контент-редакторы". Если вызвать такой код в файле в корне сайта (например "test.php") всё работает, в init.php - нет. Полагаю что это связано с порядком выполнения страницы Вопрос, как init.php получить email адреса текущих пользователей состоящих в группе "Контент-редакторы"?
Всё сбудется, стоит только расхотеть...
|
|||
|
|
20.06.2016 11:53:24
|
|||||
|
|
20.06.2016 12:21:35
А что вы делаете по коду дальше? Как проверяете, работает-не работает? По поводу, как правильно сделать, чтобы обойти то, что нет объекта: можно создать объект $USER, а потом удалить его. |
|||
|
|
20.06.2016 12:31:32
Всё сбудется, стоит только расхотеть...
|
|||||
|
|
20.06.2016 12:37:21
Вот код всей функции с комментариями:
получил необходимые значения.
Всё сбудется, стоит только расхотеть...
|
|||||||
|
|
20.06.2016 12:56:55
Александр, я бы попробовала два варианта:
|
|||
|
|
20.06.2016 13:11:28
Светлана Русова, Создание $USER не помогло, а вот использование Fetch дало нужный результат
Всё сбудется, стоит только расхотеть...
|
|
|
|
20.06.2016 13:19:59
Пожалуйста) |
|||
|
|
21.06.2016 11:14:46
Можно ещё прояснить по SetResultCacheKeys? =)) В result_modifier.php выполняю такой код:
После чего в component_epilog.php в $arResult появляются ITEM_PRICES (т.е. по идеи кеш текущего компонента дополнился ITEM_PRICES ), а примеры (довольно старые правда) на форумах показывают что добавлять свои данные в кеш нужно через объект компонента, в затем отдельно в копию $arResult с которым работает шаблон, например:
Но при первом варианте ITEM_PRICES доступен и в result_modiofier.php
Всё сбудется, стоит только расхотеть...
|
|||||
|
|
21.06.2016 11:32:09
там пхп файлы с кешем, поиском проверьте наличие ITEM_PRICES |
|||
|
|
21.06.2016 11:40:53
Всё сбудется, стоит только расхотеть...
|
|||
|
|
22.06.2016 17:03:21
|
|||
|
|
30.06.2016 17:31:16
Вопрос по заданию связанному с настройкой агентов. Для перевода агентов на крон необходимо настроить планировщик на обращение к файлу /bitrix/php_interface/cron_events.php , у нас будет такая возможность (всмысле на экзаменационной виртуальной машине есть инструмент позволяющий настроить cron) или планировщик будет заранее настроен на файл /bitrix/php_interface/cron_events.php и во время экзамена нужно будет просто правильно настроить БУС?
Всё сбудется, стоит только расхотеть...
|
|
|
|
01.07.2016 11:26:00
Вопрос: [ex2-t7-9] Добавление информации в шаблон сайта из компонента в теле страницы.
Как решаю. В шаблоне сайта в header.php в левом сайдбаре вызываю функцию:
Правильно ли я решаю задачу? Не будет ли считаться ошибкой то, что я не описал в файле .parameters.php доп.параметр SHOW_MATERIALS?
Всё сбудется, стоит только расхотеть...
|
|||
|
|
01.07.2016 17:31:58
Устраняем противоречия. В описании типовых заданий ко второму экзамену, в правилах по созданию компонента написано что нужно реализовать технологию эрмитаж
Всё сбудется, стоит только расхотеть...
|
|
|
|
04.07.2016 14:12:04
Ваше решение работает, но сложноватое ![]() Подсказка Это задание на отложенные функции, а не кеширование. Ну кеширование тут важно тоже знать, в том плане что SetViewTarget и EndViewTarget работают из шаблона и при включенном кешировании ![]() |
||||
|
|
|||