Risposte:
Per Drupal 7, è possibile utilizzare il modulo Semplifica . Ti permette di nascondere l'area di testo delle opzioni del Formato testo, così come altri elementi nei moduli dei nodi.
A tale scopo, puoi utilizzare hook_form_alter in un modulo personalizzato.
Ad esempio, 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 c'è il modulo Better Formats che fa esattamente quello che vuoi, c'è una versione 7 dev ma viene fornito con un avviso che è in forte sviluppo. Se il tuo sito è ancora in fase di sviluppo, potrebbe valere la pena provarlo.
In realtà puoi semplicemente uccidere l'elemento del modulo di formato.
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
è inteso come nome del tema personalizzato. Non dovresti MAI codificare una lingua se hai bisogno della lingua attiva da usare global $language;
per afferrarla.
LANGUAGE_NONE
è una costante con valore und
... non usare und
.
Penso che la soluzione migliore sia quella di impedire l'accesso all'elemento di selezione del formato di testo. Se lo annulli completamente, dovrai affrontare gli effetti collaterali indesiderati come un editor WYSIWYG che scompare. Quindi propongo il seguente codice.
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;
}
Usa CSS, il modo più semplice.
#body-add-more-wrapper #edit-body-und-0-format {display: none;}
In bocca al lupo.
PER 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;
}
Un altro modo semplice per nascondere l'opzione del formato di input è rimuovere tutti gli altri formati di input dai profili utente che si desidera nascondere l'opzione. Per questo, vai admin-> configurazione-> formati di input e rimuovi tutti i ruoli utente da tutti gli altri formati di input tranne uno che vuoi assegnare di default.
L'ho fatto:
Deselezionato "Usa il formato di testo HTML filtrato" e "Gestisci formati e filtri di testo" da persone> autorizzazioni per utenti anonimi e autorizzati in modo che non possano usare CKeditor.
Ovviamente puoi disabilitarlo dal CSS tramite "display: none;" per una particolare classe div (è .filter-wrapper) e nascondi tutta l'area che hai indicato in alto, ma in questo caso l'area è nascosta per tutti, incluso il superutente.
Installa il modulo CSS Injector (al momento esiste solo una versione di sviluppo funzionante per Drupal 8).
Quindi vai alla pagina di amministrazione di CSS Injector (/ admin / config / development / css-injector). Crea una nuova regola CSS con questo codice (o qualsiasi codice applicabile a una classe del testo dell'area di formattazione):
.filter-guidelines {
display: none;
}
Scegli di applicarlo sul tema Seven (o su qualsiasi tema admin in uso). Risparmia e divertiti!
Non è possibile rimuovere il formato di input "Testo normale". E l'RTE non viene visualizzato quando si utilizza il formato di input "Testo normale".
Userò l'opzione CSS.
Prova il modulo semplificato .
Semplifica consente di nascondere determinati campi dall'interfaccia utente. Questo aiuta a disordinare i moduli e presentare un'esperienza più user-friendly agli editor dei contenuti.
Se vuoi nascondere i formati ma tenerli ancora disponibili, prova il modulo " Formati semplificati ": https://www.drupal.org/project/simplified_formats
Nasconde i dettagli dei formati in una piccola icona punto interrogativo accanto al menu a discesa di selezione del formato. Per molti filtri in formato testo non serve davvero nascondere completamente le istruzioni che spiegano come usarli. Altri filtri sono più automatici. Penso che abbiamo bisogno di un modulo che ci permetta di scegliere cosa mostrare all'utente finale e cosa no.
Puoi anche utilizzare il modulo Nascondi formati .
Nascondi formati consente di comprimere i menu a discesa "formato testo" o "formato input" per ripulire l'interfaccia utente.
Per Drupal 8. Ciò rimuove l'area del formato per due campi.
/**
* 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);
}
Per Drupal 7, puoi:
1) Utilizzare hook_theme_registry_alter(&$theme_registry)
all'interno di un modulo per modificare il registro temi, eq. la definizione dei processori di temi.
2) Poi alterare tre funzioni a tema, theme_filter_tips
, theme_filter_tips_more_info
, e theme_filter_guidelines
, e costringerli a restituire nulla. Come segue:
Questa è la funzione target. Tutte le funzioni del tema sopra saranno reindirizzate a quello.
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';
}
Quando svuoti la cache, Drupal cercherà quelle definizioni di filtro sul percorso del tuo modulo preferito (vedi drupal_get_path
) e non restituirà nulla per ogni filtro. Quindi, non più descrizioni in formato testo.
/ 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;
}
Principalmente ha funzionato per me con questi piccoli cambiamenti.
$form['body'][LANGUAGE_NONE][0]['format']['#prefix']<br>
$form['body'][LANGUAGE_NONE][0]['format']['#suffix']
hook_form_alter
ma non sono sicuro dei dettagli, quindi non