Создание постов в группе не вступая в него

ЗАКРЫТО InstantCMS 2.X
#1 24 марта 2022 в 07:57

Добрый день. Проблема такая, хочу использовать компонент ГРУППЫ как КАТЕГОРИИ в блогах. Отличный пример DTF.ru. Но в самом InstantCMS можно делать посты в группах только после вступления в них. Как это реализовать, чтобы пользователь при создании поста мог выбрать любую группу из списка всех групп, а не только те в которых он есть. Надеюсь понятно объяснил. 

#2 24 марта 2022 в 08:23

Добрый день. Проблема такая, хочу использовать компонент ГРУППЫ как КАТЕГОРИИ в блогах. Отличный пример DTF.ru. Но в самом InstantCMS можно делать посты в группах только после вступления в них. Как это реализовать, чтобы пользователь при создании поста мог выбрать любую группу из списка всех групп, а не только те в которых он есть. Надеюсь понятно объяснил. 

dastie

Как я понимаю это настраивается в самих группах 

Изображение

#3 25 марта 2022 в 10:06

Добрый день. Проблема такая, хочу использовать компонент ГРУППЫ как КАТЕГОРИИ в блогах. Отличный пример DTF.ru. Но в самом InstantCMS можно делать посты в группах только после вступления в них. Как это реализовать, чтобы пользователь при создании поста мог выбрать любую группу из списка всех групп, а не только те в которых он есть. Надеюсь понятно объяснил. 

dastie

Как я понимаю это настраивается в самих группах 

Изображение

rshabalin

похоже это не то. Поставил первый пункт, попробовал через другого пользователя, у которого нет группы, создать пост, пишет что я должен быть в группе. А если я в «типы контента->посты» во вкладке «связь с группами» уберу пункт «Создание только в группах», то пользователь может создать пост, но в форме создания уже отсутствует выбор группы.

Добавлено спустя 19 часов

В общем, вроде решил. В хуке по пути «system\controllers\groups\hooks\content_item_form_context.php» в строках где к переменной $groups присваиваются группы в которых пользователь состоит, заменил на присваивание общего списка групп.

Вместо этого:

  1. if($this->cms_user->is_admin){
  2. $groups = $this->model->getGroups();
  3. } else {
  4. $groups = $this->model->getUserGroups(($action == 'add' ? $this->cms_user->id : $item['user_id']));
  5. }

Это:

  1. $groups = $this->model->getGroups();

Поэтому теперь при добавления поста пользователю выводится весь список групп на выбор. 

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