Відповіді:
Для Drupal 7 можна використовувати модуль спрощення . Він дозволяє приховати параметри текстового формату textarea, а також інші елементи на формах вузлів.
Для цього можна скористатись_у_контактом у спеціальному модулі.
Наприклад, в 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;
}
Ще один простий спосіб приховати параметр формату введення - це видалення всіх інших форматів вводу з профілів користувачів, які ви хочете приховати. Для цього перейдіть у формати введення адміністратора-> конфігурація-> та видаліть усі ролі користувача з усіх інших форматів вводу, крім одного, який ви хочете надати за замовчуванням.
Я зробив це:
Зніміть прапорець "Використовувати відфільтрований текстовий формат HTML" та "Адміністратор текстових форматів та фільтрів" від людей> дозволи для анонімних та авторизованих користувачів, щоб вони не могли використовувати CKeditor.
Звичайно, ви можете відключити його від CSS за допомогою "display: none;" для конкретного класу div (це .filter-обгортка) і приховати всю область, яку ви вказали вгорі, але в цьому випадку область прихована для всіх, включаючи суперпользователь.
Встановіть модуль CSS Injector (наразі існує лише робоча версія для Drupal 8).
Потім перейдіть на сторінку адміністрування CSS Injector (/ admin / config / development / css-injector). Створіть нове правило CSS за допомогою цього коду (або будь-якого коду, який стосується класу тексту форми області):
.filter-guidelines {
display: none;
}
Виберіть, щоб застосувати його до семи теми (або будь-якої теми адміністратора, що використовується). Збережіть і насолоджуйтесь!
Ви не можете видалити формат введення "Звичайний текст". І RTE не відображається при використанні формату введення "Звичайний текст".
Я буду використовувати опцію CSS.
Я використовую як "видалення всіх інших форматів вводу з профілів користувачів", так і 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
проте я не впевнений у деталях, тому я не буду публікувати це як відповідь ...