Как я могу изменить поле на «обязательное» на основной странице регистрации Drupal? - PullRequest
0 голосов
/ 28 ноября 2010

На сайте электронной коммерции у меня есть две роли: оптовик и продавец : я использую Auto-assign Role для управления регистрациями с двумя разными страницами регистрации.

  • Розничные продавцы зарегистрироваться на mysite.com/user/register;
  • Оптовики Зарегистрируйтесь на mysite.com/user/wholesale

Я также использую Ubercart и Адреса Ubercart , и мне нужно, чтобы кандидаты на роль оптового торговца в обязательном порядке вводили название компании: как я могу установить ее?

CCK не является решением, равно как и другие модули, потому что все, что мне нужно, это обязательное поле.

Ответы [ 2 ]

1 голос
/ 29 ноября 2010

Вот учебник от Lullabot, который объясняет два способа сделать это: http://www.lullabot.com/articles/modifying-forms-drupal-5-and-6

В методе модуля вы захотите установить что-то вроде этого:

$form['company-field-name']['#required'] = TRUE;

Iне знаю фактического имени рассматриваемого поля (где я поставил название компании-поля), поэтому вам придется исследовать его, напечатав $ form на экране или в файле и прочитав вывод.

Дополнительная информация о создании модуля:

Я собираюсь предположить, что вы выполняете модуль поверх Drupal 6, который указан под заголовком "Module hook_form_alter (): D6" вссылка, которую я разместил выше.

Эту информацию можно найти на сайте Drupal, здесь: http://drupal.org/node/231276

Что вам нужно сделать, это создать каталог модулей, где когда-либо находится файл settings.php вашего сайтанаходится (вероятно, в сайтах / по умолчанию).В каталоге модулей создайте другой каталог, который является именем вашего модуля.Я обычно называю такие модули как zzzmods или аналогично.В этом каталоге создайте информационный файл с тем же именем (например, zzzmods.info).В этом файле добавьте следующие три ключа с соответствующими значениями:

name = "Module name"
description = "Module description."
core = 6.x

Теперь создайте файл модуля с тем же именем в этом каталоге, то есть: zzzmods.module.В этот файл вы должны поместить соответствующий код, например, так:

function zzzmods_form_alter(&$form, $form_state, $form_id) {
  switch ($form_id) {
    // You need to figure out what the id is of the form and put it here.
    // You can use the Form Inspect module to help with this and the field name below.
    case 'relevant_form_id_here':
      global $user;
      // Specify the role you're looking for here.
      if (in_array('Wholesalers', $user->roles)) {
        $form['relevant-field-name-here']['#required'] = TRUE;
      }
      break;
  }
}

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

0 голосов
/ 09 декабря 2010
<?php 

function dag729_form_alter(&$form, &$form_state, $form_id ) {
    if ($form_id == 'user_register' && $_GET['q']=='user/wholesale') {   
    $form[0]['company']['#required'] = TRUE;
  }
}

Вот и все.

На самом деле требование UID не может быть выполнено, поскольку при регистрации пользователь является анонимным.

...