Как отключить опцию личной формы контакта в пользовательской форме редактирования? - PullRequest
5 голосов
/ 29 марта 2010

Я новичок в Drupal. Когда пользователи создают свою учетную запись, у них есть возможность иметь личную контактную форму. Куда мне пойти, чтобы отключить это? Это не в разрешениях. Это неплохой вариант, но я знаю, что он запутает пользователей моего сайта. Это может даже отпугнуть!

Ответы [ 8 ]

6 голосов
/ 02 октября 2012

Проверено в 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 (), т.е. Таким образом, мы не вмешиваемся в поток данных.

3 голосов
/ 30 марта 2010

Если вы заходите в admin / build / contact / settings в Drupal 6 или 5, вы можете снять галочку «Включить личную контактную форму по умолчанию»

2 голосов
/ 15 ноября 2014

Drupal 7

Все ответы НЕ удаляют раздел для параметра личного контакта, отображаемый (D7) в " пользователь /% / edit "

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

2 голосов
/ 29 марта 2010

Отключите модуль контактов в разделе «Ядро - опционально». Просмотрите пользовательские разрешения для всего, что связано с «контактом», и снимите его.

Лично рекомендую Webform для работы с контактными формами сайта. Это позволит вам создать форму с помощью пользовательского интерфейса. Самый простой способ получить страницу «Свяжитесь с нами».

2 голосов
/ 29 марта 2010

Личная контактная форма - это не то, что вы получаете по умолчанию в Drupal. Есть модули, которые могут это сделать, вы, вероятно, активировали такой модуль. Проверьте, какие модули вы активировали в admin / build / settings.

Если вы хотите отключить это только для обычных пользователей, вам следует проверить настройки разрешений.

1 голос
/ 08 июля 2010

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) {

    unset ($ form ['contact']);

    }

0 голосов
/ 25 мая 2015

Использование Разрешения на контакт .Он предоставляет разрешение:

«Иметь личную контактную форму», которая позволяет администраторам настраивать, какие роли получают возможность иметь «Личную контактную форму».

Такжемодуль Упростить имеет отдельную опцию для этого.

0 голосов
/ 29 марта 2010

Либо проверьте, какие модули вы установили на drupal, либо проверьте настройки контактных форм. Я полагаю, что у него есть опция для широкой контактной формы сайта и контактной формы пользователя.

...