Доступ к типу контента

InstantCMS 2.X
#1 2 июня 2023 в 11:36

как открыть доступ только для зарегистрированных для типа контента ?

#2 2 июня 2023 в 11:59

как открыть доступ только для зарегистрированных для типа контента ?

TOPg

Изображение

Выбираем группу

Изображение

Виджеты — выбираем все старницы нашего типа контента

Изображение

И выбираем каким группам показывать 

Изображение

Добавлено спустя 2 минуты

Ну и не забыть настроить Компонент Регистрация

Изображение

#3 2 июня 2023 в 14:51

Demetre, это не решает вопрос, существует уже сайт с пользователями и контентом, нужно, чтобы при переходе на любые страницы контента отправляло на регистрацию, но при этом в виджетах все было видно. То есть это обьявления в данном случае и когда человек захочет перейти на полную страницу обьявления для просмотра, чтобы его отправляло на регистрацию

#4 4 июня 2023 в 09:11

Тут без пары хуков не обойтись)

#5 5 июня 2023 в 15:26

Тут без пары хуков не обойтись)

Lora

Покажите пару приёмов?

#6 5 июня 2023 в 21:13

Для тк Объявления. Создаёте файл \system\controllers\content\hooks\content_border_before_category.php с таким содержанием

  1. <?php
  2.  
  3. class onContentContentBorderBeforeCategory extends cmsAction
  4. {
  5. public function run($data)
  6. {
  7. list($ctype, $category) = $data;
  8. $user = cmsUser::sessionGet('user');
  9. if (empty($user['id'])) {
  10. $this->redirect('auth/login');
  11. }
  12. return array($ctype, $category);
  13. }
  14.  
  15. }

И теперь при переходе к списку объявлений, если юзер не авторизован, будет перенаправлять на страницу авторизации.

Подобный хук нужно написать для записей, так как этот работает только для категорий.

#7 6 июня 2023 в 11:24

Для тк Объявления. Создаёте файл \system\controllers\content\hooks\content_border_before_category.php с таким содержанием

  1. <?php
  2.  
  3. class onContentContentBorderBeforeCategory extends cmsAction
  4. {
  5. public function run($data)
  6. {
  7. list($ctype, $category) = $data;
  8. $user = cmsUser::sessionGet('user');
  9. if (empty($user['id'])) {
  10. $this->redirect('auth/login');
  11. }
  12. return array($ctype, $category);
  13. }
  14.  
  15. }

И теперь при переходе к списку объявлений, если юзер не авторизован, будет перенаправлять на страницу авторизации.

Подобный хук нужно написать для записей, так как этот работает только для категорий.

Lora

Да, как раз только для записей и нужен был, оставив категории при этом открытыми

#8 6 июня 2023 в 12:03

\system\controllers\content\hooks\content_border_before_item.php

  1. <?php
  2.  
  3. class onContentContentBorderBeforeItem extends cmsAction
  4. {
  5. public function run($data)
  6. {
  7. list($ctype, $item, $fields) = $data;
  8. $user = cmsUser::sessionGet('user');
  9. if (empty($user['id'])) {
  10. $this->redirect('auth/login');
  11. }
  12. return array($ctype, $item, $fields);
  13. }
  14.  
  15. }
#9 6 июня 2023 в 14:10

\system\controllers\content\hooks\content_border_before_item.php

  1. <?php
  2.  
  3. class onContentContentBorderBeforeItem extends cmsAction
  4. {
  5. public function run($data)
  6. {
  7. list($ctype, $item, $fields) = $data;
  8. $user = cmsUser::sessionGet('user');
  9. if (empty($user['id'])) {
  10. $this->redirect('auth/login');
  11. }
  12. return array($ctype, $item, $fields);
  13. }
  14.  
  15. }
Lora

не заработало! События обновлял

#10 6 июня 2023 в 14:51

Тк не правильно обозвал). Не border, а board.

\system\controllers\content\hooks\content_board_before_item.php

  1. <?php
  2.  
  3. class onContentContentBoardBeforeItem extends cmsAction
  4. {
  5. public function run($data)
  6. {
  7. list($ctype, $item, $fields) = $data;
  8. $user = cmsUser::sessionGet('user');
  9. if (empty($user['id'])) {
  10. $this->redirect('/auth/login');
  11. }
  12. return array($ctype, $item, $fields);
  13. }
  14.  
  15. }
#11 6 июня 2023 в 15:06

Тк не правильно обозвал). Не border, а board.

\system\controllers\content\hooks\content_board_before_item.php

  1. <?php
  2.  
  3. class onContentContentBoardBeforeItem extends cmsAction
  4. {
  5. public function run($data)
  6. {
  7. list($ctype, $item, $fields) = $data;
  8. $user = cmsUser::sessionGet('user');
  9. if (empty($user['id'])) {
  10. $this->redirect('/auth/login');
  11. }
  12. return array($ctype, $item, $fields);
  13. }
  14.  
  15. }
Lora

сделал файл \system\controllers\content\hooks\content_board_before_item.php

с содержимым

  1. <?php
  2.  
  3. class onContentContentBoardBeforeItem extends cmsAction
  4. {
  5. public function run($data)
  6. {
  7. list($ctype, $item, $fields) = $data;
  8. $user = cmsUser::sessionGet('user');
  9. if (empty($user['id'])) {
  10. $this->redirect('auth/login');
  11. }
  12. return array($ctype, $item, $fields);
  13. }
  14.  
  15. }

при входе в запись белый экран и не происходит переадресация!

#12 6 июня 2023 в 17:37

Ну не знаю. Я проверил у себя. Включите отладку в админке. И слеш пропустили тут '/auth/login'

#13 7 июня 2023 в 09:06

Ну не знаю. Я проверил у себя. Включите отладку в админке. И слеш пропустили тут '/auth/login'

Lora

вот мой итоговый код

  1. <?php
  2.  
  3. class onContentContentBoardBeforeItem extends cmsAction
  4. {
  5. public function run($data)
  6. {
  7. list($ctype, $item, $fields) = $data;
  8. $user = cmsUser::sessionGet('user');
  9. if (empty($user['id'])) {
  10. $this->redirect('/auth/login');
  11. }
  12. return array($ctype, $item, $fields);
  13. }
  14.  
  15. }

вот ошибка- 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

#14 7 июня 2023 в 09:11

Значит скорее всего у вас такой хук уже есть. Найдите его в папки system/controllers/content/hooks  и покажите, что там за код.

#15 7 июня 2023 в 09:13

Значит скорее всего у вас такой хук уже есть. Найдите его в папки system/controllers/content/hooks  и покажите, что там за код.

Lora

искать по этому коду? —  onContentContentBoardBeforeItem

вот что есть

Изображение

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.