Antworten:
Für Drupal 7 können Sie das Simplify- Modul verwenden. Sie können den Textbereich mit den Textformatoptionen sowie andere Elemente in Knotenformularen ausblenden.
Sie können hook_form_alter in einem benutzerdefinierten Modul verwenden, um dies zu tun.
Zum Beispiel in 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;
}
In Drupal 6 gibt es das Modul Better Formats, das genau das tut, was Sie wollen. Es gibt eine 7-Dev-Version, die jedoch mit einer Warnung versehen ist, dass sie sich in einer intensiven Entwicklung befindet. Wenn sich Ihre Site noch in der Entwicklung befindet, lohnt es sich möglicherweise, sie einmal auszuprobieren.
Sie können tatsächlich nur das Format Formularelement töten.
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
ist als Ihr benutzerdefinierter Themenname vorgesehen. Sie sollten eine Sprache NIEMALS hart codieren, wenn Sie die aktive Sprache global $language;
zum Aufrufen benötigen .
LANGUAGE_NONE
Ist eine Konstante mit Wert und
... nicht verwenden und
.
Ich denke, die beste Lösung ist, den Zugriff auf das Textformat-Auswahlelement zu verweigern. Wenn Sie es vollständig deaktivieren, werden Sie als verschwindender WYSIWYG-Editor mit unerwünschten Nebenwirkungen konfrontiert. Also schlage ich folgenden Code vor.
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;
}
Verwenden Sie am einfachsten CSS.
#body-add-more-wrapper #edit-body-und-0-format {display: none;}
Viel Glück.
FÜR 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;
}
Die andere einfache Möglichkeit, die Eingabeformatoption auszublenden, besteht darin, alle anderen Eingabeformate aus den Benutzerprofilen zu entfernen, die Sie ausblenden möchten. Gehen Sie dazu auf admin-> configuration-> input formats und entfernen Sie alle Benutzerrollen aus allen anderen Eingabeformaten mit Ausnahme derjenigen, die Sie standardmäßig angeben möchten.
Ich tat dies:
Deaktivieren Sie die Kontrollkästchen "Gefiltertes HTML-Textformat verwenden" und "Textformate und Filter verwalten" unter Personenberechtigungen für anonyme und autorisierte Benutzer, damit diese CKeditor nicht verwenden können.
Natürlich können Sie CSS deaktivieren, indem Sie "display: none;" für bestimmte div-Klassen (es ist .filter-wrapper) und verstecke alle Bereiche, auf die du oben gezeigt hast, aber in diesem Fall ist der Bereich für alle, einschließlich Superuser, ausgeblendet.
Installieren Sie das CSS Injector- Modul (derzeit gibt es nur eine funktionierende Entwicklungsversion für Drupal 8).
Gehen Sie dann zur Administrationsseite von CSS Injector (/ admin / config / development / css-injector). Erstellen Sie eine neue CSS-Regel mit diesem Code (oder einem beliebigen Code, der für eine Klasse des Formatierungsbereichstextes gilt):
.filter-guidelines {
display: none;
}
Wenden Sie es auf das Seven- Design (oder ein beliebiges aktuelles Admin-Design) an. Speichern und genießen!
Sie können das Eingabeformat "Nur Text" nicht entfernen. Und die RTE wird nicht angezeigt, wenn Sie das Eingabeformat "Nur Text" verwenden.
Ich werde die CSS-Option verwenden.
Probieren Sie das simplify- Modul aus.
Mit Simplify können bestimmte Felder von der Benutzeroberfläche ausgeblendet werden. Dies hilft, Formulare übersichtlicher zu gestalten und den Redakteuren eine benutzerfreundlichere Erfahrung zu bieten.
Wenn Sie die Formate ausblenden und dennoch verfügbar halten möchten, versuchen Sie es mit dem Modul " Vereinfachte Formate ": https://www.drupal.org/project/simplified_formats
Die Formatdetails werden in einem kleinen Fragezeichen neben dem Dropdown-Menü für die Formatauswahl ausgeblendet. Bei vielen Textformatfiltern hilft es nicht, die Anweisungen zur Verwendung vollständig auszublenden. Andere Filter sind automatischer. Ich denke, wir brauchen ein Modul, mit dem wir auswählen können, was dem Endbenutzer angezeigt wird und was nicht.
Sie können auch das Modul Formate ausblenden verwenden .
Mit "Formate ausblenden" können Sie die Dropdown-Listen "Textformat" oder "Eingabeformat" ausblenden, um die Benutzeroberfläche zu bereinigen.
Für Drupal 8. Dadurch wird der Formatbereich für zwei Felder entfernt.
/**
* 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);
}
Für Drupal 7 können Sie:
1) Verwenden Sie hook_theme_registry_alter(&$theme_registry)
innerhalb eines Moduls, um die Themenregistrierung zu ändern, Gl. die Definition des Themenprozessors.
2) Dann ändern drei Themenfunktionen theme_filter_tips
, theme_filter_tips_more_info
und theme_filter_guidelines
, und zwingen sie nichts zurückzukehren. Wie folgt:
Dies ist die Zielfunktion. Alle oben genannten Themenfunktionen werden darauf umgeleitet.
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';
}
Wenn Sie Ihren Cache leeren, sucht Drupal diese Filterdefinitionen im Pfad des Moduls Ihrer Wahl (siehe drupal_get_path
) und gibt für jeden Filter nichts zurück. Daher keine Textformatbeschreibungen mehr.
/ 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;
}
Arbeitete meistens für mich mit diesen kleinen Änderungen.
$form['body'][LANGUAGE_NONE][0]['format']['#prefix']<br>
$form['body'][LANGUAGE_NONE][0]['format']['#suffix']
hook_form_alter
aber ich bin nicht sicher, über die Details, so dass ich dies nicht als Antwort