0

eコマースサイトには、卸売業者小売業者Auto-assign Roleの2つの役割があります。2つの異なる登録ページで登録を管理するために使用しています。

  • 小売業者はで登録し mysite.com/user/registerます;
  • 卸売業者はで登録しますmysite.com/user/wholesale

UbercartアドレスとUbercartアドレス使用していますが、卸売業者の役割の申請者が会社名を強制的に入力する必要があります。どうすれば設定できますか?

CCKは解決策ではなく、他のモジュールでもありません。必要なのは、そのフィールドが必須であるためです。

4

2 に答える 2

1

これを行う2つの方法を説明するLullabotのチュートリアルは次のとおりです。http ://www.lullabot.com/articles/modifying-forms-drupal-5-and-6

moduleメソッドでは、次のように設定する必要があります。

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

問題のフィールドの実際の名前(company-field-nameを入力した場所)がわからないため、$ formを画面またはファイルに出力し、出力を読み取ることによって、それを調査する必要があります。

モジュールの作成に関する追加情報:

上記のリンクの「Modulehook_form_alter():D6」の見出しの下にリストされているDrupal6からモジュールをオーバーライドしていると仮定します。

この情報は、DrupalのWebサイト(http://drupal.org/node/231276 )にあります。

あなたがする必要があるのはあなたのウェブサイトのsettings.phpファイルがどこにでもあるところにモジュールディレクトリを作成することです(おそらくsites / defaultに)。modulesディレクトリに、モジュールの名前である別のディレクトリを作成します。私は通常、このzzzmodsなどのモジュールに名前を付けます。そのディレクトリに、同じ名前の情報ファイル(zzzmods.infoなど)を作成します。そのファイルに、関連する値を持つ次の3つのキーを追加します。

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;
  }
}

上記をテストしていないので、微調整が必​​要な場合があります。

于 2010-11-28T21:29:44.097 に答える
0
<?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要件を満たすことができませんでした。

于 2010-12-09T15:49:52.557 に答える