Comment masquer les options de format d'entrée et le texte d'aide sous une zone de texte lors de l'ajout | d'un noeud?
Comment masquer les options de format d'entrée et le texte d'aide sous une zone de texte lors de l'ajout | d'un noeud?
Réponses:
Pour Drupal 7, vous pouvez utiliser le module Simplify . Il vous permet de masquer les options de format de texte textarea, ainsi que d'autres éléments sur les formes de nœud.
Pour ce faire, vous pouvez utiliser hook_form_alter dans un module personnalisé.
Par exemple, dans 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;
}
Dans Drupal 6, il y a le module Meilleurs formats qui fait exactement ce que vous voulez, il existe une version 7 dev mais il vient avec un avertissement indiquant qu'il est en plein développement. Si votre site est encore en développement, alors il vaut peut-être la peine de l'essayer.
Vous pouvez en fait simplement tuer l'élément de formulaire de format.
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
est conçu comme votre nom de thème personnalisé. Vous ne devez JAMAIS coder en dur une langue, si vous avez besoin de la langue active global $language;
pour la saisir.
LANGUAGE_NONE
est une constante avec valeur und
... ne l'utilisez pas und
.
Je pense que la meilleure solution consiste à interdire l'accès à l'élément de sélection du format de texte. Si vous le supprimez complètement, vous ferez face aux effets secondaires indésirables en tant qu'éditeur WYSIWYG en voie de disparition. Je propose donc le code suivant.
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;
}
Utilisez CSS, le moyen le plus simple.
#body-add-more-wrapper #edit-body-und-0-format {display: none;}
Bonne chance.
POUR 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 autre moyen simple de masquer l'option de format de saisie consiste à supprimer tous les autres formats de saisie des profils utilisateur pour lesquels vous souhaitez masquer l'option. Pour cela, allez dans admin-> configuration-> formats d'entrée et supprimez tous les rôles d'utilisateur de tous les autres formats d'entrée, sauf celui que vous souhaitez attribuer par défaut.
J'ai fait ça:
Décoché "Utiliser le format de texte HTML filtré" et "Administrer les formats et filtres de texte" de personnes> autorisations pour les utilisateurs anonymes et autorisés afin qu'ils ne puissent pas utiliser CKeditor.
Bien sûr, vous pouvez le désactiver à partir de CSS en "display: none;" pour une classe de div particulière (c'est .filter-wrapper) et masquez toute la zone que vous avez indiquée en haut, mais dans ce cas, la zone est masquée pour tout le monde, y compris le superutilisateur.
Installez le module CSS Injector (il n’existe actuellement qu’une version de développement pour Drupal 8).
Ensuite, accédez à la page d'administration de CSS Injector (/ admin / config / development / css-injector). Créez une nouvelle règle CSS avec ce code (ou tout code s'appliquant à une classe du texte de l'aire de mise en forme):
.filter-guidelines {
display: none;
}
Choisissez de l'appliquer sur le thème Seven (ou sur n'importe quel thème d'administrateur utilisé). Enregistrer et profiter!
Vous ne pouvez pas supprimer le format de saisie "Texte brut". Et le RTE ne s'affiche pas lorsque vous utilisez le format de saisie "Texte brut".
Je vais utiliser l'option CSS.
J'utilise à la fois "supprimer tous les autres formats d'entrée des profils utilisateur" et css.
Essayez de simplifier le module.
Simplifier permet de masquer des champs particuliers de l'interface utilisateur. Cela permet de réduire l'encombrement des formulaires et de présenter aux éditeurs de contenu une expérience plus conviviale.
Si vous souhaitez masquer les formats tout en les gardant disponibles, essayez le module " Formats simplifiés ": https://www.drupal.org/project/simplified_formats
Il masque les détails des formats dans une petite icône en forme de point d'interrogation à côté du menu déroulant de sélection de format. Pour de nombreux filtres de format texte, il est inutile de masquer complètement les instructions indiquant comment les utiliser. D'autres filtres sont plus automatiques. Je pense que nous avons besoin d’un module qui permette de choisir ce qui se présente à l’utilisateur final et ce qui ne le fait pas.
Vous pouvez également utiliser le module Cacher les formats .
Masquer les formats vous permet de réduire les menus déroulants "format de texte" ou "format de saisie" pour nettoyer l'interface utilisateur.
Pour Drupal 8. Ceci supprime la zone de formatage pour deux champs.
/**
* 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);
}
Pour Drupal 7, vous pouvez:
1) Utilisez à hook_theme_registry_alter(&$theme_registry)
partir d’un module pour modifier le registre de thèmes, eq. la définition des processeurs de thèmes.
2) Ensuite , modifier trois fonctions à thème, theme_filter_tips
, theme_filter_tips_more_info
et theme_filter_guidelines
, et les forcer à retourner rien. Comme suit:
C'est la fonction cible. Toutes les fonctions de thème ci-dessus seront redirigées vers cela.
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';
}
Lorsque vous effacez votre cache, Drupal recherchera ces définitions de filtre sur le chemin du module de votre choix (voir drupal_get_path
) et ne retournera rien pour chaque filtre. Par conséquent, plus de descriptions de format de texte.
/ 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;
}
Essentiellement travaillé pour moi avec ces petits changements.
$form['body'][LANGUAGE_NONE][0]['format']['#prefix']<br>
$form['body'][LANGUAGE_NONE][0]['format']['#suffix']
hook_form_alter
mais je ne suis pas sûr des détails. Je ne le