да там всё стандартно: для всех — чтение, для админа — полныйДоступы проверьте к инфоблоку
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
да там всё стандартно: для всех — чтение, для админа — полныйДоступы проверьте к инфоблоку
<?if(strlen($arResult['DISPLAY_PROPERTIES']['TEST']['VALUE'])):?>
<?=$arResult['DISPLAY_PROPERTIES']['TEST']['VALUE']?>
<?endif;?>
В файле component_epilog.php доступны $arParams, $arResult, но эти значения берутся из кеша.в упор не видит, при распечатке аналогично.
$this->SetResultCacheKeys(array(
"ID",
"IBLOCK_TYPE_ID",
"LIST_PAGE_URL",
"NAV_CACHED_DATA",
"NAME",
"SECTION",
"ELEMENTS",
));
Здесь надо знать принцип работы Битриксспасибо конечно, но ни черта не понял
$this->SetResultCacheKeys(array(
"ID"=> "id свойства",
"IBLOCK_TYPE_ID" => $arParams["TEST"],
…
));
Файл уже существует (это основной код компонента) - надо его найти и добавить в SetResultCacheKeys нужные элементыправильно понимаю, надо создать там же файл component.php и сделать вызов, такого типа?
правильно понимаю, надо создать там же файл component.php и сделать вызов, такого типа?
т.е. в моем случае условие -> свойство обычным макаром не вынести?PHP:$this->SetResultCacheKeys(array( "ID"=> "id свойства", "IBLOCK_TYPE_ID" => $arParams["TEST"], … ));
После таких советов, как правило, люди и начинают громче всех кричать, что битрикс ***но. Хотя, конечно, у него и без этого хватает недостатков. Если будете вносить изменения в файлы ядра, в частности component.php, есть вероятность, что при обновлении файлы будут перезаписаны и ваш сайт "почему-то" перестанет работать.Файл уже существует (это основной код компонента) - надо его найти и добавить в SetResultCacheKeys нужные элементы
$component = $this->getComponent();
if (isset($arResult['DISPLAY_PROPERTIES']['TEST']['DISPLAY_VALUE']))
{
$component->arResult['TEST'] = $arResult['DISPLAY_PROPERTIES']['TEST']['DISPLAY_VALUE'];
}
$component->SetResultCacheKeys(
array(
'TEST',
)
);
Я всего лишь пытался пояснить принцип работыПосле таких советов, как правило, люди и начинают громче всех кричать, что битрикс ***но
В данном случае можно добавить информацию в кеш в шаблоне компонента. Создавайте, если ещё не существует, файл result_modifier.php в шаблоне компонента, где идёт вывод информации в component_epilog.php. Добавить данные в кеш в result_modifier.php можно следующим способом:
PHP:$component = $this->getComponent(); if (isset($arResult['DISPLAY_PROPERTIES']['TEST']['VALUE'])) { $component->arResult['TEST'] = $arResult['DISPLAY_PROPERTIES']['TEST']['VALUE']; } $component->SetResultCacheKeys( array( 'TEST', ) );