Баг в модуле Auto Assign Role 6.x-1.2

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

Аватар пользователя riyuzakki riyuzakki 21 августа 2010 в 0:17

Суть бага:
При связке с Content Profile невозможно приаттачить поля из дополнительного профиля к форме регистрации.

Симптомы:
Когда создаем в модуле Auto Assign Role альтернативную форму регистрации для определенной роли (назначив ей путь), и пытаемся поставить галочку Use on Auto Assign Role paths в настройках соответствующего профиля в Content Profile, ничего не сохраняется. Как следствие - дополнительные поля из Content Profile не отображаются в альтернативной форме регистрации.

Описание бага:
Модуль Content Profile использует хук hook_content_profile_settings() для того, чтобы сторонние модули могли расширить настройки профиля. Причина бага кроется в неправильной реализации хука в модуле Auto Assign Role.

Исходный код из файла autoassignrole.module (со сторки 473):

<?php
/**
 * Implementation of hook_content_profile_settings().
*/                                                                                                             
function autoassignrole_content_profile_settings()
{
  static 
$autoassignrole;
  if (empty(
$autoassignrole)) {
    
$autoassignrole['values'] = array_keys(user_roles((TRUE)));
  }

  return 

$autoassignrole;
}
?>

Исправление:

<?php
/**
 * Implementation of hook_content_profile_settings().
*/                                                                                                             
function autoassignrole_content_profile_settings()
{
  static 
$autoassignrole;
  if (empty(
$autoassignrole)) {
    
$autoassignrole['autoassignrole_use'] = array();
  }

  return 

$autoassignrole;
}
?>

З.Ы. Поправите если протупил. Если натыкались на подобное на d.org - ткните носом, пожалуйста.

Комментарии

Аватар пользователя sv2109 sv2109 25 августа 2010 в 15:36

Здравствуйте! У вас получилось связать эти 2 модуля?
Если да, то скажите как вам это удалось? (Кикие версии модулей использовали и какие патчи применяли)

Я уже второй день мучаюсь.. Результат: по user/register вижу форму регистрации с допольнительными полями одной из ролей. А по user/register/role1 обычная форма регистрации..

Вот тут http://www.drupal.ru/node/25591 полтора года назад обсуждалось, там по ходу нужно кучу патчей применять чтобы все заработало. Проблема в том, что несовсем понятно какие именно патчи + эти патчи для старых дев версий.. Wacko

Аватар пользователя riyuzakki riyuzakki 25 августа 2010 в 16:02

drupal-6.19
autoassignrole-6.x-1.2
content_profile-6.x-1.0

Из патчей применял только тот, что описал выше. У меня получилась следующая схема:
/register - подмена страницы регистрации по-умолчанию, обычный материал со ссылками на две формы регистрации;
/register/fiz - первая форма регистрации, пользователь получает роль "физическое лицо"
/register/yur - вторая форма - "юридическое лицо".

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

Аватар пользователя sv2109 sv2109 25 августа 2010 в 17:24

Спасибо огромное!
Я использовал дев версии..
Снес все нафиг, сделал унинстал модулей, поудалял созданные профили,
поставил указанные вами версии, патч.. Все работает! Smile

Я уже даже хотел использовать user_types, но этот вариант мне нравится куда больше, так как тут можно использовать сск и все преимущества ноды, а там только profile.

Аватар пользователя Enemy Enemy 20 августа 2011 в 0:09

подскажите. как можно сделать выше стандартной формы ссылки и при нажатии на одну из подгружалась форма?