Автоматически изменять группу пользователей на основе значения XP в Joomla

Я назначил поле в пользовательской базе данных моего сайта Joomla для хранения значения пользовательского опыта (userxp). Когда новый пользователь регистрируется, ему присваивается значение userxp по умолчанию, равное 0. Я собираюсь разработать систему, в которой пользователь выполняет квесты и зарабатывает XP. Как только пользователь набирает определенное количество XP, я хочу, чтобы Joomla автоматически назначала его новой группе пользователей. Я настроил пользовательские группы пользователей (уровень 1, уровень 2, уровень 3 и т. д.).

Что я хотел бы сделать, так это получить значение XP для пользователей, а затем назначить их соответствующей группе пользователей. Например, если значение XP равно 0, ничего не делайте — группа пользователей по умолчанию имеет уровень 1. Но если значение userxp равно 10, удалите пользователя из группы пользователей уровня 1 и добавьте его в группу пользователей уровня 2. Если значение userxp равно 100, удалите пользователя из группы пользователей уровня 2 и назначьте его группе пользователей уровня 3. Вы уловите суть, стандартная система уровней, как и в любой RPG.

Я провел некоторое исследование, которое предлагает отредактировать файл helper.php и использовать методы addUserToGroup и removeUserFromGroup. Я полный новичок, когда дело доходит до PHP, поэтому мне интересно, может ли кто-нибудь помочь мне здесь.


person Maverick575    schedule 27.03.2014    source источник


Ответы (1)


Не редактируйте основной файл. Что вы, вероятно, захотите сделать, так это создать плагин, который использует либо событие входа в систему, либо событие выхода из системы для изменения членства пользователя в группе. На сайте документации Joomla есть информация о том, как создать плагин, и вы также можете скопировать структуру и шаблоны именования из одного из основных плагинов.

person Elin    schedule 27.03.2014
comment
Я получил аналогичные отзывы на другом форуме, где предлагалось разработать плагин вместо редактирования основных файлов, поэтому я думаю, что это путь, который я выберу. Спасибо, что укрепили это решение. - person Maverick575; 27.03.2014