Как отключить опцию личной формы контакта в пользовательской форме редактирования?
Я начинающий 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:
Если вы хотите, чтобы форма контакта для всего сайта была включена, но не отображать опцию личной формы контакта для ваших пользователей, вы должны выполнить следующие действия:
Создать пользовательский модуль
http://www.hankpalan.com/blog/drupal/make-custom-drupal-module
Добавьте этот код в ваш файл.module:
function your_module_name_form_user_profile_form_alter (& $ form, & $ form_state) {
unset ($ form ['contact']);
}
Либо проверьте, какие модули вы установили на drupal, либо проверьте настройки контактных форм. Я полагаю, что у этого есть выбор для широкой контактной формы сайта и пользовательской контактной формы.
Используйте контактные разрешения. Это дает разрешение:
"Иметь личную контактную форму", которая позволяет администраторам настраивать, какие роли получают возможность иметь "Личную контактную форму".
Также у модуля Simplify есть отдельная опция для этого.