воскресенье, 9 октября 2011 г.

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

Суть бага:
При связке с 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 - ткните носом, пожалуйста.

Оригинал статьи: http://www.drupal.ru/node/48783