Как известно в Joomla после регистрации пользователю присваивается группа Registered. Однако пользователи этой группы не имеют прав на добавление материалов, поэтому чтобы дать пользователю возможность добавлять материалы необходимо его перевести в группу Author. А если пользователей много? Можно ли сделать так, чтобы после регистрации пользователь автоматически получал возможность добавлять материалы на сайт?
Существует несколько решений этой задачи:
- Изменить права группы Registered, разрешив добавление материалов
- Изменить группу для новых пользователей на Author
- Установить сторонний компонент для добавления новостей (например JA Submit), и разрешить к нему доступ только зарегистрированным пользователям
Первые два метода реализуются только посредством внесения модификаций в файлы дистрибутива Joomla, потому что в настоящий момент управление правами
Примечание: статья посвещена обсуждению способов предоставления возможности добавления материалов зарегистрированными пользователями. Вопросы возможности предоставления прав на модификацию или публикацию материалов не рассматриваются.
Данная статья посвящена Joomla 1.0.x, для Joomla 1.5 почитайте более свежее руководство:
Изменение прав группы Registered
Данный метод основан на добавлении группе Registered прав на добавление материалов. Важно заметить, что данная модификация распространяется не только на новых пользователей, но и уже на существующих пользователей
- Находим в файле /includes/gacl.class.php код:
$this->_mos_add_acl( 'action', 'publish', 'users', 'super administrator', 'content', 'all' );
- Вставляем после него следующие строки:
$this->_mos_add_acl( 'action', 'add', 'users', 'registered', 'content', 'all' ); $this->_mos_add_acl( 'action', 'edit', 'users', 'registered', 'content', 'own' ); $this->_mos_add_acl( 'action', 'publish', 'users', 'registered', 'content', 'all' );
- Сохраняем измененный файл
Изменение группы по умолчанию
Данная модификация позволяет автоматически всем новым пользователям присваивать группу Author, которая
- Находим в файле components/com_registration/registration.php строчку:
$row->gid = $acl->get_group_id('Registered','ARO');
- Заменяем эту строчку на следующую:
$row->gid = $acl->get_group_id('Author','ARO');
- Сохраняем измененный файл
ПРИМЕЧАНИЕ: если на сайте используется компонент CommunityBuilder, то для изменения группы по умолчанию необходимо править файл components/com_profiler/comprofiler.php.
Ограничение доступа к компоненту
Добавление материалов на сайт можно производить не только посредством стандартного компонента Content, но и с помошью сторонних компонентов. В качестве такого компонента можно использовать
Источник: joomlaportal.ru