[РЕШЕНО] Разные формы регистрации для разных ролей

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

Аватар пользователя HSV HSV 14 декабря 2011 в 22:41

Здравствуйте.
Тема поднималась уже не раз. Нашел штук до 10, перечитал все, но решения своей проблемы не нашел.
На сайте 2 роли. При помощи views на странице /user/register вывожу ссылки регистрации для разных ролей.
В Auto Assign Role -> Assign from Path настраиваю соответствующие адреса для каждой роли.
При помощи Content Profile создаю два типа материала для ролей, отмечаю "Use this content type as a content profile for users". На вкладке Content profile (в типе материала) отмечаю "Use on Registration" и пробую отметить нужную мне роль в групе "Use on Auto Assign Role paths". Но при сохрании получаю ошибку
"warning: Invalid argument supplied for foreach() in Z:\home\dreg\www\includes\form.inc on line 1212."
и, соответственно, никакая роль не выбрана.

Когда перехожу по ссылке регистрации для любой из ролей выводится стандартная форма и ошибка
"warning: in_array() expects parameter 2 to be array, null given in Z:\home\dreg\www\sites\all\modules\autoassignrole\autoassignrole.module on line 461."

Помогите разобраться, три дня дня уже мучаюсь

Комментарии

Аватар пользователя HSV HSV 15 декабря 2011 в 10:18

Enemy wrote:
попробуйте дев версию

Спасибо за совет!!! Помогло

imarat wrote:
можно сделать тоже самое на рулез + кондишинал филдз, и смотреться лучше будет, и ошибок нет

Если не сложно опишите ход действий, с использованием кондишинал филдз, может кому полезно будет

Аватар пользователя imarat imarat 16 декабря 2011 в 0:40

все просто как-бы, делаем поле Роль с двумя вариантами, на станице регистрации через конд.филдз показываем только нужные поля в зависимости от того, какую роль выбрал автор. В рулезах делаем правило, которое проверяет значение поля Роль и реагирует на событие акк создан, и дает нужную роль. Можно глянуть в действuu - carmastera.ru/user/register

Аватар пользователя HSV HSV 16 декабря 2011 в 12:28

"imarat" wrote:
В рулезах делаем правило, которое проверяет значение поля Роль и реагирует на событие акк создан, и дает нужную роль.

Можно об этом подробней (какой модуль использовали и как создавали правила)? До этого момента все ясно.

Аватар пользователя imarat imarat 18 декабря 2011 в 2:37

модуль rules.
лезем на страницу его настроект, добавляем правило:
событие - после оегистрации нового аккаунта
условие- поле 'ваше поле' = 1
действие - дать пользователю роль

и еще одно такое же правило, только в условии =2

Аватар пользователя Dan Dan 18 декабря 2011 в 2:46

"HSV" wrote:
При помощи views на странице /user/register вывожу ссылки регистрации для разных ролей.

Ахринеть! Это как?

Аватар пользователя HSV HSV 18 декабря 2011 в 18:55

Dan wrote:
"HSV" wrote:
При помощи views на странице /user/register вывожу ссылки регистрации для разных ролей.

Ахринеть! Это как?

Нашел такой вариант реализации в этой теме - http://www.drupal.ru/node/25591 предложеный Stan.Ezersky

Аватар пользователя OldWarrior OldWarrior 18 декабря 2011 в 19:39

Имхо, лучше не париться, а накатать простейший модуль - эффективнее по всем критериям. После чего с формой можно делать всё, что угодно.

Аватар пользователя HSV HSV 19 декабря 2011 в 11:21

Dan wrote:
Да-а-а, оригинально. А просто создать страницу и дать её адрес user/register проблема?

Даа... Все на много проще Smile Спасибо за подсказку, переделаю.

Аватар пользователя WadimKo51 WadimKo51 19 января 2012 в 4:13

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

Вы знаете способ, чтобы пользователь не мог изменить значение у себя в профиле после регистрации, но мог выбрать значение при регистрации?

Можете написать хоть прмиерно, как это сделать?

Еще раз извиняюсь за тупой вопрос, но пока не сообразил как решить вышеописаный вопрос.

Аватар пользователя WadimKo51 WadimKo51 22 января 2012 в 2:43

Спасибо.
Сделал, вроде все работает.
Использовал модуль
user_readonly для того чтобы заптерить редактироание в профиле поля роль.

Аватар пользователя agent-000 agent-000 26 января 2012 в 17:29

Предлагаю интересное решение.
Есть модуль http://drupal.org/project/profile2_regpath

Используя модуль Profile2 создаете несколько вариантов профилей. Также несколько ролей для пользователей.

Модуль profile2_regpath позволяет создать свой путь на который выносит различную форму для регистрации с соответствующими полями и при регистрации относит пользователя в указанную роль.

Остается разобраться с правами.

-------------------

Есть также модуль http://drupal.org/project/autoassignrole который при регистрации дает выбрать роль, ну, и потом можно уже подставить профиль для этой роли.

Аватар пользователя WadimKo51 WadimKo51 2 февраля 2012 в 9:28

autoassignrole глючит в связке с content_profile, вернее требует кучи патчей, а потом усиленного тесторовария на дельнейшую глючность.

profile2_regpath он же для 7 версии, а тут вроде про 6 говорили.

для 6 все-таки думаю то чо было предложено идеальный вариант.
За идею для 7 СПАСИБО.