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

问题描述:

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

如果您在Drupal 6或5访问管理/建设/联系人/设置,您可以取消勾选“默认情况下启用的个人联系表”

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

如果您想为常规用户禁用此功能,则只需要检查您的权限设置。

请检查您在drupal上设置了哪些模块,或者检查联系表单的设置。我相信它可以选择联系表单和用户联系表单。

禁用“核心 - 可选”下的联系人模块。通过用户权限查看与“联系人”相关的任何内容并取消选中。

个人推荐Webform处理网站广泛的联系表格。它会让你用UI构建你的表单。获取联系我们页面的最简单方法。

的Drupal 6:

如果你想拥有的站点范围联系表格启用,但即使不显示选项个人联系表,您的用户则必须按照下列步骤操作:

  1. 创建一个自定义模块

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

  2. 这个代码添加到.module文件:

    功能your_module_name_form_user_profile_form_alter(& $形式,& $ form_state){

    未设置($形式[ '接触']);

    }

+0

我建议使用$ form ['contact'] ['#access'] = FALSE;而不是未设置($ form ['contact']);以防止它干扰核心。 – timofey 2012-10-02 18:31:12

测试在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,而不是unset(),即删除。这样我们就不会干扰数据流。

的Drupal 7个

所有答案不是 “用户/%/编辑

enter image description here

删除显示(D7)个人接触选项一节删除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

+0

我的答案确实删除了显示的个人联系选项。检查简化模块。它完全是你在form_alter中自定义的。 – milkovsky 2015-12-08 11:34:31

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

“有个人联系表”,让 管理员可以配置哪些角色获得有 “个人接触形式的能力”。

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