【问题标题】:How to display a web form fields based on the user interacts如何根据用户交互显示 Web 表单字段
【发布时间】:2016-10-03 13:35:59
【问题描述】:

我必须开发一个系统,允许我根据连接的用户预览字段。例如,我们有 3 个 Combobox。管理员可以查看和使用所有 3 个 Combobox,而简单的只有一个用户 2. 我如何在 Webform 上执行此操作? 谢谢

【问题讨论】:

    标签: drupal-7 drupal-webform


    【解决方案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”页面中检查哪个用户角色拥有此权限;)

    【讨论】:

    • 有模块可以做吗?
    • 此功能由 Drupal 核心直接提供。你只需要编写正确的钩子;)
    • 谢谢@M.Be,你能帮我做这个操作吗?我是 Drupal 的新手。 1.我已经将钩子块插入到模块Webform中,将组合框更改为用户参考(因为我需要创建用户的选择选项)。 2.我在哪里输入第二个代码块?非常感谢
    • 第二个代码块是声明Drupal表单组件的标准方式。因此,您应该使用这种组件构建您的表单。有关它的更多信息,您可以阅读以下链接并将其添加书签:api.drupal.org/api/drupal/… 回答您的问题:1:更改您想要的任何内容,只要保持一致即可;) 2:在定义您的网络表单的方法中,如果您可以使用 hook_form用它 ?即“yourmodule_form”?
    • 我通过图形方式创建表单,定义我的网络表单(文件夹)的方法在哪里?请原谅我的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多