Odpowiedzi:
W przypadku Drupala 7 możesz użyć modułu Uprość . Pozwala ukryć obszar tekstowy opcji Format tekstu, a także inne elementy formularzy węzłów.
Aby to zrobić, możesz użyć hook_form_alter w niestandardowym module.
Na przykład w 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;
}
W drupal 6 jest moduł Better Formats, który robi dokładnie to, co chcesz, jest wersja 7 dev, ale zawiera ostrzeżenie, że jest w trakcie intensywnego rozwoju. Jeśli Twoja strona jest wciąż w fazie rozwoju, warto spróbować.
Możesz po prostu zabić element formularza formatu.
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
jest przeznaczona jako nazwa niestandardowego motywu. NIGDY nie powinieneś kodować na stałe języka, jeśli potrzebujesz aktywnego języka, global $language;
aby go złapać.
LANGUAGE_NONE
jest stałą o wartości und
... nie używaj und
.
Myślę, że najlepszym rozwiązaniem jest zablokowanie dostępu do elementu wyboru formatu tekstu. Jeśli całkowicie go rozbroisz, będziesz musiał stawić czoła niepożądanym efektom ubocznym jako znikający edytor WYSIWYG. Więc proponuję następujący kod.
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;
}
Użyj CSS, najprostszego sposobu.
#body-add-more-wrapper #edit-body-und-0-format {display: none;}
Powodzenia.
DLA Drupala 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;
}
Innym prostym sposobem na ukrycie opcji formatu wejściowego jest usunięcie wszystkich innych formatów wejściowych z profili użytkowników, które chcesz ukryć. W tym celu przejdź do admin-> konfiguracja-> formaty wejściowe i usuń wszystkie role użytkownika z wszystkich innych formatów wejściowych oprócz domyślnie określonego.
Ja to zrobiłem:
Odznaczone „Używaj filtrowanego formatu tekstowego HTML” i „Administruj formatami tekstowymi i filtrami” z osób> uprawnienia dla anonimowych i autoryzowanych użytkowników, aby nie mogli używać CKeditor.
Oczywiście możesz wyłączyć go z CSS poprzez „display: none;” dla konkretnej klasy div (to .filter-wrapper) i ukryj cały wskazany obszar górny, ale w tym przypadku obszar ten jest ukryty dla wszystkich, w tym superużytkownika.
Zainstaluj moduł CSS Injector (obecnie istnieje tylko działająca wersja programistyczna dla Drupal 8).
Następnie przejdź do strony administracyjnej CSS Injector (/ admin / config / development / css-injector). Utwórz nową regułę CSS za pomocą tego kodu (lub dowolnego kodu, który ma zastosowanie do klasy tekstu obszaru formowania):
.filter-guidelines {
display: none;
}
Wybierz zastosowanie go do motywu Siedem (lub dowolnego używanego motywu administratora). Oszczędzaj i ciesz się!
Nie można usunąć formatu wejściowego „Zwykły tekst”. RTE nie wyświetla się, gdy używasz formatu wejściowego „Zwykły tekst”.
Będę korzystać z opcji CSS.
Wypróbuj moduł upraszczający .
Uproszczenie pozwala ukryć określone pola przed interfejsem użytkownika. Pomaga to uporządkować formularze i zapewnia edytorom treści bardziej przyjazną obsługę.
Jeśli chcesz ukryć formaty, ale nadal je zachować, wypróbuj moduł „ Formaty uproszczone ”: https://www.drupal.org/project/simplified_formats
Ukrywa szczegóły dotyczące formatów w małej ikonce ze znakiem zapytania obok menu wyboru formatu. W przypadku wielu filtrów formatów tekstowych naprawdę nie warto całkowicie ukrywać instrukcji, które podpowiadają, jak ich używać. Inne filtry są bardziej automatyczne. Myślę, że potrzebujemy modułu, który pozwala nam wybierać, co pokaże użytkownikowi końcowemu, a co nie.
Możesz także użyć modułu Ukryj formaty .
Ukryj formaty pozwala zwinąć menu rozwijane „format tekstowy” lub „format wejściowy” w celu wyczyszczenia interfejsu użytkownika.
Dla Drupal 8. To usuwa obszar formatu dla dwóch pól.
/**
* 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);
}
W przypadku Drupal 7 możesz:
1) Użyj hook_theme_registry_alter(&$theme_registry)
z poziomu modułu, aby zmienić rejestr motywów, np. definicja procesorów tematycznych.
2) Następnie zmienić trzy funkcje motywu, theme_filter_tips
, theme_filter_tips_more_info
, i theme_filter_guidelines
, i zmusić ich do powrotu nic. Następująco:
To jest funkcja celu. Wszystkie powyższe funkcje motywu zostaną przekierowane do tego.
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';
}
Po wyczyszczeniu pamięci podręcznej Drupal będzie szukał tych definicji filtrów na ścieżce wybranego modułu (patrz drupal_get_path
) i nic nie zwróci dla każdego filtra. Dlatego nie ma już opisów formatów tekstowych.
/ 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;
}
Przeważnie pracował dla mnie z tymi małymi zmianami.
$form['body'][LANGUAGE_NONE][0]['format']['#prefix']<br>
$form['body'][LANGUAGE_NONE][0]['format']['#suffix']
hook_form_alter
jednak nie jestem pewien co do szczegółów, więc nie opublikuję tego jako odpowiedzi ...