Я тут придумал новый компонент, рекомендую его внести в стандратную поставку, так как он очень удобен. Вот код компонента:
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
$arResult = array();
if($this->StartResultCache())
{
$this->IncludeComponentTemplate();
}
// Примечание: на данный момент код компонента дополнен новыми фукнциями, последняя версия компонента лежит в архиве в конце поста.
?>
Для чего он нужен?
Пример жизненной ситуации: на страницу нужно добавить какой-нибудь простенький функционал, который надо программировать. Но создавать новый компонент (копировать в своё пространство, настраивать путь для дерева компонентов, придумывать название, описание, и тд.) - влом.
Тогда берем такой компонент, кидаем его на страницу, в файле result_modifier.php создаем нужную логику, и пишем свой шаблон. При желании несколько параметров можно вынести в настройки, создав в шаблоне файл .paramters.php.
Плюсы такого компонента: - Находится в стандратном дереве каталогом, доступен на любом сайте; - данные в файле result_modifier.php кешируется; - мы можем написать абсолютно нужную и быструю логику работы, без лишних запросов; - исключается криворукость контент-менеджеров, которые могут случайно удалить код со страницы. Удалять компоненту со страницы у менеджера рука обычно не поднимается, а если и удалит - легко её вернуть назад; - создание своего шаблона через веб-интерфейс (не нужно лезть по ssh и копировать компонент для кастомизации);
Вобщем, себе я такой компонент создал, вещь удобная и нужная. Особенно для таких ленивых как я.
В шаблоне уже созданы файлы result_modifier.php и файл .paramters.php с пустым массивом настроек, и закоментированным примером. При желании можно в него легко и быстро добавить свои параметры.
Ведь и в самом деле нужный компонент. Вопрос кеширования сразу решён. Я за то чтобы такой компонент был в стандартной поставке, уверен, качество разработки улучшится.
Здравствуйте, Иван. Почему может не работать кеширование суперкомпонента? Автокеширование включено, в параметрах компонента передаю CACHE_TYPE="А" и CACHE_TIME=3600, но каждый раз получаю результат не из кеша.
Главный недостаток такого решения: его крайне тяжело поддерживать (на начальном этапе), если код - не твой: голые страницы, состоящие только из супер-компонентов, лишённых параметров. Кривая обучения уходит вертикально вверх.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».