Можно ли в разном объеме отображать детальное описание элемента инфоблока для авторизованных/неавторизованных пользователей?, инфоблок, авторизация, детальное описание
Суть простая можно ли разграничить детальное описание элемента, с учетом прав авторизованных/неавторизованных пользователей?
Т.е. для неавторизованных, доступна только основная часть детального описания элемента инфоблока, для авторизованных предоставляется полное детальное описание элемента инфоблока.
Если нужно показывать текст до определенного места, то тут уже есть варианты - хранить вариант для неавторизованных посетителей в отдельном свойстве или ставить разделитель в детальном описании, а в шаблоне вычислять strpos до разделителя.
А как сделать по свойствам, т.е. показывать часть св-в элементов неавторизованным в детальном описании, и полный список св-в элементов для авторизованных?
Код в шаблон каталога вставлять bitrix:catalog.element? Я правильно понимаю (если речь идет о каталоге естественно)?
Ondres, Если у вас компонент каталог, то bitrix:catalog.element там уже присутствует, нужно править его шаблон. Если авторизирован, то форычем выводить все свойства, если нет, то выводить определенные коды свойств
Ondres, В инфоблоке оно само собой должно быть. В настройках компонента оно должно быть выбранно, что бы выводить его в шаблоне. Или используйте PROPERTIES вместо DISPLAY_PROPERTIES. И вообще, что бы знать точно что есть в массиве, просматривайте через print_r или var_dump
Так , собственно св-во компонента SECRET я не ставлю , именно для того , чтобы показывать его только авторизованным пользователям. Если его включить в компоненте, оно естественно отображается, но для всех. В шаблоне компонента у меня вот так написано , но работает все наоборот, показывает и DETAIL_TEXT и SECRETнеавторизованным пользователям. Пробую ставить ! перед $USER , но картина не меняется
Ondres, Оно в любом случае должно быть выбрано, если хотите его выводить в шаблоне. В нем и проверяется так как делает вы. Почему не срабатывает я не знаю, возможно нужно сначала объявить global $USER. Также можно использовать API что бы вытащить свойство через GetList или аналогичные методы
Если кому поможет, то снизу код, который выводит значения части св-в для неавторизованных пользователей, и полный список значений св-в для авторизованных пользователей (компонент - детальное описание элемента каталога):
Ondres, В битриксе механизм кеша устроен так, что бы его нельзя было нормально использовать)) Проверь при включенном кэше срабатывает ли условие проверки авторизации, если нет то нужно в component_epilog пихать этот код.
не пробовал, но... , измените SECRET и т.д., через result_modifier по условию авторизован и не авторизован, т.к. при условии учета Прав доступа, у каждой группы пользователь свой кеш.., по идее..., и ненужно будет использовать component_epilog.