如何在用户编辑表单中禁用个人联系表单选项?

时间:2010-03-29 19:12:05

标签: drupal drupal-contact-form

我是Drupal的初学者。当用户创建他们的帐户时,他们可以选择拥有个人联系表单。我该去哪里禁用它?这不是权限。这不是一个糟糕的选择,但我知道这会让我的网站用户感到困惑。它甚至可能吓跑了一些人!

8 个答案:

答案 0 :(得分:6)

在Drupal 7中测试。

将以下内容放在主题的template.php中。将MYTHEME更改为您的主题名称。

function MYTHEME_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'user_profile_form') {
    $form['contact']['#access'] = FALSE;
  }
}

请注意,访问权限设置为false,而不是取消设置(),即删除。这样我们就不会干扰数据流。

答案 1 :(得分:3)

如果您在Drupal 6或5中访问admin / build / contact / settings,您可以取消选中“默认启用个人联系表单”

答案 2 :(得分:2)

个人联系表单不是您在Drupal中默认获得的。有些模块可以做到这一点,你可能已经激活了这样一个模块。检查您在admin / build / settings中激活了哪些模块。

如果您只想为普通用户禁用此选项,则应该检查您的权限设置。

答案 3 :(得分:2)

在“核心 - 可选”下禁用“联系”模块。查看与“联系”相关的任何内容的用户权限,然后取消选中它。

个人推荐Webform处理网站范围的联系表格。它将允许您使用UI构建表单。获取“联系我们”页面的最简单方法。

答案 4 :(得分:2)

Drupal 7

所有答案请勿删除“ 用户/%/编辑 ”中显示的个人联系选项部分(D7)

enter image description here

对于Drupal 7的删除标签和设置:

/**
 * Implements hook_form_alter().
 */
function MY_MODULE_form_alter(&$form, &$form_state, $form_id) {
  if ('user_profile_form' === $form_id) {
     $form['contact']['#access'] = FALSE;
  }
}

/**
 * Implements hook_preprocess_page().
 */
function MY_MODULE_preprocess_page(&$variables) {
    $menu_items = menu_get_item();
    if('user/%/edit' === $menu_items['path']){
         $variables['page']['content']['content']['content']['system_main']['contact']['#access'] = FALSE;
    }
}

后:

enter image description here

答案 5 :(得分:1)

Drupal 6:

如果您希望启用网站范围的联系表单,但甚至不向用户显示个人联系表单的选项,则必须执行以下步骤:

  1. 创建自定义模块

    http://www.hankpalan.com/blog/drupal/make-custom-drupal-module

  2. 将此代码添加到.module文件中:

    function your_module_name_form_user_profile_form_alter(& $ form,& $ form_state){

    取消设置($ form ['contact']);

    }

答案 6 :(得分:0)

检查您在drupal上设置的模块,或检查联系表单的设置。我相信它可以选择网站范围的联系表格和用户联系表格。

答案 7 :(得分:-1)

使用Contact permissions。 它提供了一个权限:

  

“有个人联系表”允许   管理员配置哪些角色能够拥有   “个人联系表”。

此外,Simplify模块还有一个单独的选项。

相关问题