как открыть доступ только для зарегистрированных для типа контента ?
как открыть доступ только для зарегистрированных для типа контента ?
Выбираем группу
Виджеты — выбираем все старницы нашего типа контента
И выбираем каким группам показывать
Ну и не забыть настроить Компонент Регистрация
Demetre, это не решает вопрос, существует уже сайт с пользователями и контентом, нужно, чтобы при переходе на любые страницы контента отправляло на регистрацию, но при этом в виджетах все было видно. То есть это обьявления в данном случае и когда человек захочет перейти на полную страницу обьявления для просмотра, чтобы его отправляло на регистрацию
Тут без пары хуков не обойтись)
Тут без пары хуков не обойтись)
Покажите пару приёмов?
Для тк Объявления. Создаёте файл \system\controllers\content\hooks\content_border_before_category.php с таким содержанием
<?php class onContentContentBorderBeforeCategory extends cmsAction { public function run($data) { $user = cmsUser::sessionGet('user'); $this->redirect('auth/login'); } } }
И теперь при переходе к списку объявлений, если юзер не авторизован, будет перенаправлять на страницу авторизации.
Подобный хук нужно написать для записей, так как этот работает только для категорий.
Для тк Объявления. Создаёте файл \system\controllers\content\hooks\content_border_before_category.php с таким содержанием
<?php class onContentContentBorderBeforeCategory extends cmsAction { public function run($data) { $user = cmsUser::sessionGet('user'); $this->redirect('auth/login'); } } }И теперь при переходе к списку объявлений, если юзер не авторизован, будет перенаправлять на страницу авторизации.
Подобный хук нужно написать для записей, так как этот работает только для категорий.
Да, как раз только для записей и нужен был, оставив категории при этом открытыми
\system\controllers\content\hooks\content_border_before_item.php
\system\controllers\content\hooks\content_border_before_item.php
не заработало! События обновлял
Тк не правильно обозвал). Не border, а board.
\system\controllers\content\hooks\content_board_before_item.php
Тк не правильно обозвал). Не border, а board.
\system\controllers\content\hooks\content_board_before_item.php
сделал файл \system\controllers\content\hooks\content_board_before_item.php
с содержимым
<?php class onContentContentBoardBeforeItem extends cmsAction { public function run($data) { $user = cmsUser::sessionGet('user'); $this->redirect('auth/login'); } } }
при входе в запись белый экран и не происходит переадресация!
Ну не знаю. Я проверил у себя. Включите отладку в админке. И слеш пропустили тут '/auth/login'
Ну не знаю. Я проверил у себя. Включите отладку в админке. И слеш пропустили тут '/auth/login'
вот мой итоговый код
<?php class onContentContentBoardBeforeItem extends cmsAction { public function run($data) { $user = cmsUser::sessionGet('user'); $this->redirect('/auth/login'); } } }
вот ошибка- Warning: Cannot modify header information — headers already sent by (output started at /home/o/oneinm0e/oneinmoscow.com/public_html/system/controllers/content/hooks/content_board_before_item.php:1) in /home/o/oneinm0e/oneinmoscow.com/public_html/system/core/controller.php on line 1216
Значит скорее всего у вас такой хук уже есть. Найдите его в папки system/controllers/content/hooks и покажите, что там за код.
Значит скорее всего у вас такой хук уже есть. Найдите его в папки system/controllers/content/hooks и покажите, что там за код.
искать по этому коду? — onContentContentBoardBeforeItem
вот что есть