Как отключить опцию личной формы контакта в пользовательской форме редактирования?

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

8 ответов

Решение

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

Протестировано в Drupal 7.

Поместите следующее в template.php вашей темы. Поменяйте МИФЕМУ на название вашей темы.

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

Обратите внимание, что доступ имеет значение false, а не unset(), т.е. удален. Таким образом, мы не вмешиваемся в поток данных.

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

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

Drupal 7

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

Для удаления вкладки И настроек для 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. Есть модули, которые могут сделать это, вы, вероятно, активировали такой модуль. Проверьте, какие модули вы активировали в admin/build/settings.

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

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

    unset ($ form ['contact']);

    }

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

Используйте контактные разрешения. Это дает разрешение:

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

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

Другие вопросы по тегам