2016-10-03 31 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

相关问题