Действие на заполнение в профайле пользователя поля значением, равным заранее сгенерированному коду. Как?

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

Аватар пользователя Softovick Softovick 2 октября 2010 в 19:07

Друже, подскажите или подтолкните в каком направлении двигаться.
Алгоритм таков:

  • админ генерирует случайный код и выдает пользователю или отсылает по почте человеку
  • пользователь может ввести этот код при регистрации или на уже зарегистрированной учетке (это поле не обязательное)
  • как только код введен, поле ввода кода блокируется для изменения, а в другом поле выводится случайное число из заданного диапазона (четко фиксированные диапазоны для каждого сгенерированного кода)

Вопрос - есть модули, с которыми кто-то реально работал в таком ключе? Или может это только программировать свое? Или хотя бы натолкните в направлении, которое думать...
С помощью чего сделать так, чтобы среагировать на факт заполнения поля и сделать что-то?
Как сделать так, чтобы поле закрылось от исправления для пользователя, но не для админа?

Из того, что сам набрел, например:
модуль http://drupal.org/project/regcode - генерация кодов с привязкой к роли или интеграция с другими вариантами.
модуль http://drupal.org/project/registration_role

Даже если у вас нет решения, но вы примерно представляете, в каком направлении смотреть - тоже пишите! Спасибо!

Комментарии

Аватар пользователя graker graker 2 октября 2010 в 20:14

Так это вроде все одним хук_юзером делается (ну если не считать генерации самих кодов). Или необходимо готовое решение, а не программирование?

Аватар пользователя Softovick Softovick 2 октября 2010 в 20:15

graker wrote:
Так это вроде все одним хук_юзером делается (ну если не считать генерации самих кодов). Или необходимо готовое решение, а не программирование?

Не обязательно, но приоритет именно на что-то готовое, либо с минимальным программированием...

Аватар пользователя graker graker 2 октября 2010 в 20:20

Насколько минимальным?
Потому что, я ж говорю, всё, кроме генерации этих чисел, умещается в один hook_user.

Аватар пользователя Softovick Softovick 2 октября 2010 в 20:33

graker wrote:
Насколько минимальным?
Потому что, я ж говорю, всё, кроме генерации этих чисел, умещается в один hook_user.

Ну вот, смотри как мыслю я:

  • content profile, content, content permission.
  • роль Роль1.

Теперь определяется доступ к редактированию нужного поля для обычного зарегистрированного пользователя и для админа, но запрещается редактирование для роли Роль1. Соответственно нужно среагировать на изменение материала профиля, чтобы пользователю присвоилась Роль1 (вроде есть модуль http://drupal.org/project/autoassignrole )... И когда в это поле вписывается значение, определенное в модуле http://drupal.org/project/regcode , нужно по его значению вписать в другое поле какое-то значение.
Как то так... Вопрос еще в том, есть ли модуль, в котором можно определять сложное действие наподобие Trigger ?
Или я сумбурно рассказываю? В программирование лезть не хочу пока... Пока есть вероятность решения с помощью модулей.

Аватар пользователя Softovick Softovick 2 октября 2010 в 21:18

RxB wrote:
обоги. Тут написать быстрее чем лепить эти модули

Т.е. ты тоже считаешь, что проще плюнуть и написать код?

Аватар пользователя Softovick Softovick 2 октября 2010 в 22:01

Друже, буду наглеть дальше, вы не против? Smile
Почитал про hook_user. А теперь подскажите, правильно я понял или нет:

  • в файле profile.module описана функция pofile_user, судя по API - это как раз реализации hook_user
  • по всей видимости мне нужно событие validate
    <?php    case 'validate':
          return 
    profile_validate_profile($edit$category);?>

    соответственно править нужно функцию profile_validate_profile?

Аватар пользователя Softovick Softovick 2 октября 2010 в 23:26

RxB wrote:
Двойка тебе

Ачоачо? Я сразу говорил, что код то я понимаю, но в Drupal секу пока мало. Впрочем я уже тут полазил... В итоге пришел к выводу, что мыслил то я правильно, но надо делать свой модуль, со своей реализацией hook_user. Так? Или щас ваще кол влепишь?

Аватар пользователя Softovick Softovick 2 октября 2010 в 23:36

Tisar wrote:
А не проще отредактировать модуль User, под ваши нужды?

Я пока тут читал, понял, что править системные модули не очень хорошая идея, ибо при обновлении Drupal и core-модулей может возникнуть коллизия, в плане "а исправлений безопасности то и нет..."

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 2 октября 2010 в 23:36

"Tisar" wrote:
А не проще отредактировать модуль User, под ваши нужды?

Ога, давай-ка, расскажи, что и как редактировать, я тогда, клянусь, напишу Софтовику модуль под его задачу по всем правилам.

Аватар пользователя Tisar Tisar 2 октября 2010 в 23:44

"Softovick" wrote:
Я пока тут читал, понял, что править системные модули не очень хорошая идея, ибо при обновлении Drupal и core-модулей может возникнуть коллизия, в плане "а исправлений безопасности то и нет..."

Согласен, не лучшее предложение, каюсь.(

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 2 октября 2010 в 23:49

"Tisar" wrote:
Согласен, не лучшее предложение, каюсь.(

Неееееее, давай уж:
"RxB" wrote:
расскажи, что и как редактировать

забей на обновления, мне просто интересно как ты редактированием одного модуля User этого добьёшься.
Так же напоминаю про инициативу http://www.drupal.ru/node/50406
вкратце: банить особо упоротых кто учит плохому