2016-10-03 3 views
0

ユーザーが接続されていることに基づいてフィールドのプレビューを与えるシステムを開発する必要があります。たとえば、3つのComboboxがあります。管理者は3つすべてのComboboxを閲覧して使用することができますが、単純な1人のユーザーのみ2. Webformでこれを行うにはどうしたらいいですか? ありがとうユーザーの対話に基づいてWebフォームフィールドを表示する方法

答えて

1

もっと良いDrupal方法は、Permissionを使うことです。 、フォームで、その後、

/** 
* Implements hook_permission 
*/ 
function yourmodule_permission() { 
    return array(
     'access combobox 1' => array(
      'title'  => t('Access combobox 1'), 
      'description' => t('Allow user to view combobox 1') 
     ), 
     'access combobox 2' => array(
      'title'  => t('Access combobox 2'), 
      'description' => t('Allow user to view combobox 2'), 
     ), 
    ); 
} 

あなたのコンボボックスを表示するには、この権限を使用します:あなたは

は、次のことを宣言し、モジュール

// Définition du composant du choix du schéma de base. 
    $form['combobox_1'] = array(
      '#access'  => user_access('access combobox 1'), 
      '#type'   => 'select', 
      '#title'   => 'yourtitle', 
      '#options'  => array_keys(...), 
    ); 

    $form['combobox_2'] = array(
      '#access'  => user_access('access combobox 2'), 
      '#type'   => 'select', 
      '#title'   => 'yourtitle', 
      '#options'  => array_keys(...), 
    ); 

そして、ちょうどそのユーザー役割を確認する必要があります)/admin/people/permissions "ページにこの許可があります。

+0

これを行うモジュールはありますか? – JoeJoe

+0

この機能はDrupalコアによって直接提供されます。あなたはちょうど正しいフックを書く必要があります;) –

+0

ありがとう@ M.Be、この操作を行うのを手伝ってもらえますか?私はDrupalの新生児です。 1.フックブロックをモジュールWebformに挿入し、コンボボックスをUser Referenceに変更しました(ユーザの選択オプションを作成する必要があるため)。 2. 2番目のコードブロックはどこに入力しますか? ありがとうsoo Much – JoeJoe

関連する問題