我是 Drupal 初学者。当用户创建他们的帐户时,他们可以选择拥有个人联系表格。我该去哪里禁用它?它不在权限范围内。这不是一个糟糕的选择,但我知道它会让我网站的用户感到困惑。它甚至可能吓跑一些人!
8 回答
在 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(),即删除。这样我们就不会干扰数据流。
如果您访问 Drupal 6 或 5 中的 admin/build/contact/settings,您可以取消勾选“默认启用个人联系表”
个人联系表不是您在 Drupal 中默认获得的。有些模块可以做到这一点,您可能已经激活了这样的模块。检查您在 admin/build/settings 中激活了哪些模块。
如果您只想为普通用户禁用此功能,您应该检查您的权限设置。
禁用“核心 - 可选”下的联系人模块。查看与“联系人”相关的任何用户权限并取消选中它。
个人推荐 Webform 来处理站点范围的联系表单。它将允许您使用 UI 构建表单。获取联系我们页面的最简单方法。
德鲁巴 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;
}
}
后:
Drupal 6:
如果您想启用站点范围的联系表单,但甚至不向您的用户显示个人联系表单的选项,您必须按照以下步骤操作:
创建自定义模块
http://www.hankpalan.com/blog/drupal/make-custom-drupal-module
将此代码添加到您的 .module 文件中:
功能 your_module_name_form_user_profile_form_alter(&$form, &$form_state) {
未设置($form['contact']);
}
检查您在 drupal 上设置的模块,或检查联系表单的设置。我相信它可以选择站点范围的联系表和用户联系表。