2016-10-03 22 views
0

我必須開發一個系統,它允許我根據用戶連接來預覽字段。例如,我們有3個Combobox。管理員可以看到並使用所有3個Combobox,而只有一個簡單的用戶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.我在哪裏輸入第二個代碼塊? 謝謝soo – JoeJoe

相關問題