5

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

4

8 回答 8

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;
  }
}

请注意,access 设置为 false,而不是 unset(),即删除。这样我们就不会干扰数据流。

于 2012-10-02T18:28:28.400 回答
3

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

于 2010-03-30T11:04:32.497 回答
2

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

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

于 2010-03-29T19:56:31.597 回答
2

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

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

于 2010-03-29T19:59:54.890 回答
2

德鲁巴 7

所有答案都不会删除“ user/%/edit ”处显示的个人联系选项部分(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;
    }
}

后:

在此处输入图像描述

于 2014-11-14T23:13:36.783 回答
1

Drupal 6:

如果您想启用站点范围的联系表单,但甚至不向您的用户显示个人联系表单的选项,您必须按照以下步骤操作:

  1. 创建自定义模块

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

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

    功能 your_module_name_form_user_profile_form_alter(&$form, &$form_state) {

    未设置($form['contact']);

    }

于 2010-07-08T16:04:22.977 回答
0

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

于 2010-03-29T19:58:34.617 回答
-1

使用联系人权限。它提供了一个权限:

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

Simplify模块也有一个单独的选项。

于 2015-05-25T15:42:35.427 回答