24
января

Модуль Auto User

В рамках одного из проектов надо было написать модуль, автоматически создающий юзеров после создания ими ноды. Смысл - скипнуть процесс регистрации юзера полностью.

Решил выложить сюда, может пригодится кому-нибудь.

Что умеет:

Собственно, автоматически создает юзера на основании email поля, имеющегося в ноде при сабмите ноды анонимом. Если email, введенный в поле, уже существует, появится ошибка валидации с предложением залогиниться или ввести другой email.

Условия:

  1. В типе данных необходимо наличие хотя бы одного поля типа "email" (предоставляется модулем Email Field: http://drupal.org/project/email)
  2. Разрешено создание материалов анонимами (иначе нафиг этот модуль?)
  3. Модуль включен для нужного типа контента.

Модуль добавляет форму настроек к форме редактирования типа материала. В данной форме можно:

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

Для версии под Drupal 6 была также поддержка Rules (добавлено условие проверки, юзер нормальный или автосгенеренный) - для D7 пока не работает.

Сам модуль доступен из друпальной песочницы: http://drupal.org/sandbox/ioskevich/1410980 через Git. Там пока версия для Drupal 7, под 6 выложу позже. Здесь не публикую, ибо будет обновляться.

Есть вопросы - пишите в комменты.

Комментарии

Аватар пользователя Klara2

Тут тоже есть.

Аватар пользователя ioskevich

Тут где? И что есть?

Аватар пользователя Webremake

уже есть похожий модуль http://drupal.org/project/inline_registration
пока нашел только одно отличие в этих модулях
Auto User - В типе данных необходимо наличие хотя бы одного поля типа "email" (предоставляется модулем Email Field: http://drupal.org/project/email)
Inline Registration - Adds user_register() form to node/add pages if the user is not logged in

Аватар пользователя ioskevich

Согласен. Цель одна, способы разные.

Аватар пользователя sitx

Добрый день! модуль оказался крайне полезен! но к сожалению отказывается пока функционировать возникает такая ошибка(при отображении формы создания материала)
Warning: array_unshift() expects parameter 1 to be array, null given in autouser_form_alter() (line 103 of /home/sitx/www/alomb/modules/1410980-fcce871/autouser.module).

буду крайне признателен если поможете разобраться.

Аватар пользователя sitx

Ошибка возникает такая
Call to undefined function autouser_content_type_validate() in /home/sitx/www/alomb/includes/form.inc on line 1464" while reading response header from upstream, client: 127.0.0.1, server: alomb, request: "POST /admin/structure/types/manage/element-auto?render=overlay&render=overlay HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "alomb", referrer: "http://alomb/admin/structure/types/manage/element-auto?render=overlay"

Аватар пользователя ioskevich

Ловите в скайпе меня, если будет время - помогу.

Аватар пользователя ioskevich

ipunker