Joomla! Україна

Додавання матеріалів користувачами

28.07.2007, 04:02  |  Прочитано: 12267 раз  |  Модифікації та хаки  |  Автор Smart (переклад Dutch)

Як відомо, в Joomla! після реєстрації користувачеві привласнюється група Registered. Але користувачі цієї групи не мають прав на додавання матеріалів, тому щоб дати користувачу можливість додавати матеріали необхідно його перевести в групу Author. А якщо користувачів багато? Чи можна зробити так, щоб після реєстрації користувач автоматично одержав можливість додавати матеріали на сайт?

Існує кілька рішень цього завдання:

  • Змінити права групи Registered, дозволивши додавати матеріали.
  • Змінити групу для нових користувачів на Author.
  • Встановити сторонній компонент для додавання новин (наприклад, CZ Submit), і дозволити до нього доступ тільки зареєстрованим користувачам.

Перші два методи реалізуються тільки за допомогою внесення модифікацій у файли дистрибутива Joomla!, оскільки в даний момент керування правами груп користувачів не підтримується (ця можливість, як обіцяють розробники, повинна бути в наступних версіях Joomla!). А от обмеження доступу до пункту меню є стандартною функцією, і може бути встановленою в Менеджері Меню Адміністративної панелі Joomla!

Примітка: у статті мова йде про можливість додавання матеріалів зареєстрованими користувачами. Питання можливості надання прав, на модифікацію або публікацію матеріалів не розглядаються.

Зміна прав групи Registered

Даний метод заснований на встановлення групі 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' );
$t$this->_mos_add_acl( 'action', 'edit', 'users', 'registered', 'content', 'own' );

Зберігаємо змінений файл.

Зміна групи за замовчуванням

Дана модифікація дозволяє автоматично всім новим користувачам привласнювати групу Author, яка має права на додавання матеріалів. Зміни не торкнуться вже існуючих користувачів, тому, якщо ви збираєтеся скористатися цим методом - спочатку застосуєте модифікацію, а вже потім дозволяйте реєстрацію користувачів на сайті.

Знаходимо у файлі components/com_registration/registration.php рядок:

$row->gid = $acl->get_group_id('Registered','ARO');

Замінюємо цей рядок на наступний:

$row->gid = $acl->get_group_id('Author','ARO');

Зберігаємо змінений файл.

Обмеження доступу до компонента

Додавання матеріалів на сайт можна організувати не тільки за допомогою стандартного компонента Content, але і із допомогою сторонніх компонентів. Для прикладу можна використати компонент CZ Submit і його модифікації (EZ CZ Submit, Submit). Щоб закрити доступ для неавторизованих користувачів необхідно в пункті меню, яке посилається на компонент, встановити рівень доступу Registered.

Оригінал статті: Добавление материалов пользователями