Ответы:
Для Drupal 7 вы можете использовать модуль Simplify . Это позволяет скрыть опции Text Format textarea, а также другие элементы на формах узлов.
Вы можете использовать hook_form_alter в пользовательском модуле, чтобы сделать это.
Например, в Drupal 7:
// hook_form_alter function
function CUSTOM_MODULE_form_alter(&$form, &$form_state, $form_id) {
// We want this on a specific node type
if ($form_id == 'NODE_TYPE_node_form') {
$form['#after_build'][] = 'CUSTOM_MODULE_NODE_TYPE_node_form_after_build';
}
}
// afterbuild function
function CUSTOM_MODULE_NODE_TYPE_node_form_after_build($form) {
// We want this on a specific field
$form['YOUR_FIELD']['und']['0']['format']['#access'] = FALSE;
return $form;
}
В Drupal 6 есть модуль Better Formats, который делает именно то, что вы хотите, есть версия для 7 разработчиков, но он поставляется с предупреждением, что он находится в стадии разработки. Если ваш сайт все еще находится в разработке, возможно, стоит попробовать.
Вы можете просто убить элемент формы формата.
function MY_THEME_form_comment_form_alter(&$form, &$form_state, &$form_id) {
$form['comment_body']['#after_build'][] = 'MY_THEME_configure_comment_form';
}
function MY_THEME_configure_comment_form(&$form) {
unset($form[LANGUAGE_NONE][0]['format']);
return $form;
}
CUSTOM
предназначен в качестве вашего собственного имени темы. Вы НИКОГДА не должны жестко кодировать язык, если вам нужно активное использование языка, global $language;
чтобы схватить его.
LANGUAGE_NONE
константа со значением und
... не используйте und
.
Я думаю, что лучшее решение - запретить доступ к элементу выбора формата текста. Если вы полностью отключите его, вы столкнетесь с нежелательными побочными эффектами как исчезающий редактор WYSIWYG. Поэтому я предлагаю следующий код.
function MY_MODULE_form_comment_form_alter(&$form, &$form_state, &$form_id) {
$form['comment_body']['#after_build'][] = 'MY_MODULE_hide_text_format';
}
function MY_MODULE_hide_text_format(&$form) {
$form[LANGUAGE_NONE][0]['format']['#access'] = false;
return $form;
}
Используйте CSS, самый простой способ.
#body-add-more-wrapper #edit-body-und-0-format {display: none;}
Удачи.
ДЛЯ Drupal 7
function MODULENAME_element_info_alter(&$type) {
if (isset($type['text_format']['#process'])) {
foreach ($type['text_format']['#process'] as &$callback) {
if ($callback === 'filter_process_format') {
$callback = 'MODULENAME_filter_process_format';
}
}
}
}
function MODULENAME_filter_process_format($element) {
$element = filter_process_format($element);
// Change input format to "Filtered HTML" for body fields of NODETYPE_NAME
if ($element['#bundle'] == 'NODETYPE_NAME' && $element['#field_name'] == 'body') {
$element['format']['format']['#default_value'] = 'filtered_html';
$element['format']['format']['#format'] = 'filtered_html';
$element['format']['format']['#value'] = 'filtered_html';
$element['#format'] = 'filtered_html';
}
return $element;
}
Другой простой способ скрыть параметр формата ввода - удалить все остальные форматы ввода из профилей пользователей, для которых вы хотите скрыть параметр. Для этого зайдите в admin-> configuration-> входные форматы и удалите все пользовательские роли из всех других форматов ввода, кроме того, который вы хотите назначить по умолчанию.
Я сделал это:
Снимите флажок «Использовать отфильтрованный текстовый формат HTML» и «Управлять текстовыми форматами и фильтрами» из списка разрешений «Люди» для анонимных и авторизованных пользователей, чтобы они не могли использовать CKeditor.
Конечно, вы можете отключить его из CSS с помощью «display: none;» для определенного класса div (это .filter-wrapper) и скрыть всю область, которую вы указали выше, но в этом случае область скрыта для всех, включая суперпользователя.
Установите модуль CSS Injector (в настоящее время существует только рабочая версия для разработки для Drupal 8).
Затем перейдите на страницу администрирования CSS Injector (/ admin / config / development / css-injector). Создайте новое правило CSS с этим кодом (или любым кодом, который применяется к классу текста области форматирования):
.filter-guidelines {
display: none;
}
Выберите применить его к Семи темам (или любой используемой теме администратора). Сохранить и наслаждаться!
Вы не можете удалить формат ввода «Простой текст». И RTE не отображается, когда вы используете формат ввода «Простой текст».
Я буду использовать опцию CSS.
Попробуйте упростить модуль.
Упрощение позволяет скрывать определенные поля от пользовательского интерфейса. Это помогает избавиться от ненужных форм и сделать редакторы контента более удобными для пользователя.
Если вы хотите скрыть форматы, но при этом сохранить их доступными, попробуйте модуль « Упрощенные форматы »: https://www.drupal.org/project/simplified_formats
Он скрывает сведения о форматах в небольшом значке вопросительного знака рядом с раскрывающимся списком выбора формата. Для многих фильтров текстовых форматов действительно бесполезно полностью скрывать инструкции, в которых указано, как их использовать. Другие фильтры более автоматические. Я думаю, что нам нужен модуль, который позволяет нам выбирать, что показывать конечному пользователю, а что нет.
Вы также можете использовать модуль Скрыть форматы .
Скрыть форматы позволяет свернуть раскрывающиеся списки «текстовый формат» или «формат ввода» для очистки пользовательского интерфейса.
Для Drupal 8. Это удаляет область форматирования для двух полей.
/**
* Implements hook_form_FORM_ID_alter().
*/
function CUSTOM_MODULE_form_FORM_ID_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
$form['#after_build'][] = 'CUSTOM_MODULE_eform_application_after_build';
}
function CUSTOM_MODULE_eform_application_after_build ($form) {
unset($form['field_experience']['widget'][0]['format']);
unset($form['field_miscellaneous']['widget'][0]['format']);
return ($form);
}
Для Drupal 7 вы можете:
1) Используйте hook_theme_registry_alter(&$theme_registry)
из модуля для изменения реестра темы, экв. определение процессоров темы.
2) Затем изменить три тематические функции, theme_filter_tips
, theme_filter_tips_more_info
и theme_filter_guidelines
, и заставить их не возвращать ничего. Следующее:
Это целевая функция. Все вышеперечисленные функции темы будут перенаправлены на это.
function _mymodule_filter_tips($tips, $long = FALSE, $extra = ''){
return '';
}
/**
* Implements hook_theme_registry_alter
*/
function mymodule_theme_registry_alter(&$theme_registry) {
$theme_registry['filter_tips']['theme path'] = drupal_get_path( 'module', 'mymodule' );
$theme_registry['filter_tips']['function'] = '_mymodule_filter_tips';
$theme_registry['filter_guidelines']['theme path'] = drupal_get_path( 'module', 'mymodule' );
$theme_registry['filter_guidelines']['function'] = '_mymodule_filter_tips';
$theme_registry['filter_tips_more_info']['theme path'] = drupal_get_path( 'module', 'mymodule' );
$theme_registry['filter_tips_more_info']['function'] = '_mymodule_filter_tips';
}
Когда вы очистите свой кэш, Drupal будет искать эти определения фильтров по пути вашего выбранного модуля (см. drupal_get_path
) И ничего не возвращать для каждого фильтра. Следовательно, больше нет текстовых описаний формата.
/ hook_form_alter function
function CUSTOM_MODULE_form_alter(&$form, &$form_state, $form_id) {
// We want this on a specific node type
if ($form_id == 'NODE_TYPE_node_form') {
$form['#after_build'][] = 'CUSTOM_MODULE_NODE_TYPE_node_form_after_build';
}
}
// afterbuild function
function CUSTOM_MODULE_NODE_TYPE_node_form_after_build($form) {
// We want to hide input formats and we can do it like following
$form['body']['und']['0']['format']= '<div style="display:none;">';
$form['body']['und']['0']['format']= '</div>';
return $form;
}
В основном работал для меня с этими небольшими изменениями.
$form['body'][LANGUAGE_NONE][0]['format']['#prefix']<br>
$form['body'][LANGUAGE_NONE][0]['format']['#suffix']
hook_form_alter
однако я не уверен в деталях, поэтому я не буду публиковать это как ответ ...