Role Delay для Drupal 6 или автоматический перенос ролей в Drupal 6. [РЕШЕНО]

Главные вкладки

Аватар пользователя Dishvola@drupal.org Dishvola@drupal.org 23 сентября 2010 в 22:05

Здравствуйте уважаемые!
У меня такая проблема. Я хочу чтобы пользователи, которые зарегистрировались у меня на сайте, через три месяца после даты регистрации автоматически переносились в другую роль. Я нашел модуль Role Delay, который выполняет эту функцию, но он подходит для 5й версии, а сайт я уже делаю на Drupal 6.

Кто-то сталкивался с такой проблемой? Я не опытный пользователь Drupal, но голова на плечах есть. Может хоть кто-то подтолкнет в правильном направлении Smile
Очень хочу реализовать такую штуку. По сути это не сложно. Можно при авторизации написать проверку на php мол если пользователь такой-то роли и дата регистрации + 3 месяца меньше чем сегодня, то присвоить ему роль такую-то.
Написать я бы смог, но вот как это внедрить в друпал и с помощью чего... Вообще не представляю.
Может уже есть готовые решения? Или какой-то обходной путь такой проблемы...

Заранее благодарен и жду ответа.

Комментарии

Аватар пользователя cinderella cinderella 27 сентября 2010 в 10:40

создаешь новое правило даешь ему название и присваиваешь событие пользователь авторизовался
добавляешь условие ВЫПОЛНЕНИЕ РНР КОДА и пишешь туда свое условие
затем в поле выполнить выбираешь ДОБАВИТЬ РОЛЬ ПОЛЬЗОВАТЕЛЯ выбираешь свою роль и все

Аватар пользователя Dishvola@drupal.org Dishvola@drupal.org 1 октября 2010 в 1:11

Разобрался! Smile
Итак. Чтобы можно было вставить php, нужно включить модуль PHP filter. Я чёт долго тупил, но прошел этот этап Smile
Далее всё как говорила cinderella. Кстати, советую сначала поставить перевод модуля rules.
Я написал такой php код, используя один маркер (маркеры появляются когда стоит модуль Token):

<?php
$reg
=[account:user-created-raw];
$rolup=$reg+7776000;
$today mktime(date("H"), date("i"), date("s"), date("m") , date("d"), date("Y"));
return 
$today $rolup;
?>

Первая строчка - из базы получаем дату регистрации в формате UNIX (в секундах).
Вторая строчка - прибавляем время, через которое нужно чтобы пользователь получил другую роль. В моем случае это 90 дней (7776000 секунд).
Третья строчка - получаем время на момент авторизации пользователя в формате UNIX.
Четвертая строчка - сравниваем давать роль или нет.

Спасибо за помощь!!!