web-dev-qa-db-fra.com

Comment masquer les options de format d'entrée et le texte d'aide sous une zone de texte?

Comment masquer les options de format d'entrée et le texte d'aide sous une zone de texte lors de l'ajout | modification d'un nœud?

Screenshot - part to hide selected with red rectangle

32
Cosmodrom

Pour Drupal 7, vous pouvez utiliser le module Simplify . Il vous permet de masquer la zone de texte des options de format de texte, ainsi que d'autres éléments sur les formulaires de nœuds.

26
BWPanda

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;
}
25
fourmi4x

Dans drupal 6 il y a le module Better Formats qui fait exactement ce que vous voulez, il y a une version 7 dev mais elle vient avec un avertissement qu'elle est en cours de développement. Si votre site est encore en développement, cela peut valoir la peine de lui donner une chance.

12
digital

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;
}
9
doublejosh

Je pense que la meilleure solution consiste à interdire l'accès à l'élément de sélection du format texte. Si vous le désactivez complètement, vous serez confronté à des 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;
}
7
user5950

Utilisez CSS, la manière la plus simple. Firebug

#body-add-more-wrapper #edit-body-und-0-format {display: none;}

The power of CSS and Firebug

Bonne chance.

6

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;
}
5
nxplace

J'ai fait ça:

Décochez "Utiliser le format de texte HTML filtré" et "Administrer les formats de texte et les filtres" des 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 par "display: none;" pour une classe div particulière (c'est .filter-wrapper) et masquez toute la zone que vous avez pointée vers le haut, mais dans ce cas, la zone est masquée pour tout le monde, y compris le superutilisateur.

2
zurab lanchava

Une autre façon simple de masquer l'option de format d'entrée consiste à supprimer tous les autres formats d'entrée des profils utilisateur dont vous souhaitez masquer l'option. Pour cela, allez dans admin-> configuration-> formats d'entrée et supprimez tous les rôles utilisateur de tous les autres formats d'entrée sauf celui que vous souhaitez donner par défaut.

2
Ashok Sharma

Installez le module CSS Injector (actuellement il n'y a qu'une version de développement fonctionnelle pour Drupal 8).

Allez ensuite sur 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 qui s'applique à une classe du texte de la zone de formatage):

.filter-guidelines {
    display: none;
}

Choisissez de l'appliquer sur le thème Seven (ou sur n'importe quel thème administrateur utilisé). Économisez et profitez!

1
Whatwatt

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 de point d'interrogation à côté de la liste déroulante de sélection de format. Pour de nombreux filtres au format texte, cela ne sert à rien de masquer complètement les instructions qui indiquent comment les utiliser. D'autres filtres sont plus automatiques. Je pense que nous avons besoin d'un module qui nous permet de choisir ce qui apparaît à l'utilisateur final et ce qui ne s'affiche pas.

0
deanflory

J'utilise à la fois "supprimer tous les autres formats d'entrée des profils utilisateur" et la manière css.

0
fishfree

Vous ne pouvez pas supprimer le format de saisie "Texte brut". Et le RTE ne s'affiche pas lorsque vous utilisez le format d'entrée "Texte brut".

J'utiliserai l'option CSS.

0
ibakayoko

Vous pouvez également utiliser le module Hide formats .

Masquer les formats vous permet de réduire les listes déroulantes "format texte" ou "format d'entrée" pour nettoyer l'interface utilisateur.

0
disnel

Pour Drupal 7, vous pouvez:

1) Utilisez hook_theme_registry_alter(&$theme_registry) à partir d'un module pour modifier le registre des thèmes, par exemple. la définition des processeurs thématiques.

2) Modifiez ensuite trois fonctions de thème, theme_filter_tips, theme_filter_tips_more_info, et theme_filter_guidelines, et les forcer à ne rien retourner. Comme suit:

Ceci 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 videz votre cache, Drupal recherchera ces définitions de filtre sur le chemin de votre module de choix (voir drupal_get_path), et ne renvoie rien pour chaque filtre. Par conséquent, plus de descriptions de format de texte.

0
Mauro Colella

Essayez simplifiez le module.

Simplifier permet de masquer des champs particuliers de l'interface utilisateur. Cela permet de désencombrer les formulaires et de présenter une expérience plus conviviale aux éditeurs de contenu.

0
allabakash.g
/ 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;
}

Surtout travaillé pour moi avec ces petits changements.

$form['body'][LANGUAGE_NONE][0]['format']['#prefix']<br>
$form['body'][LANGUAGE_NONE][0]['format']['#suffix']
0
miske

Pour Drupal 8. Cela 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);
}
0