Je pense que cela devrait être vraiment simple, mais cela me rend fou.
J'ai "texte brut" sélectionné pour tous mes éléments de corps. Je ne veux pas que quiconque puisse mettre du html lors du remplissage des formulaires.
Cependant, je veux que les sauts de ligne soient préservés. Sur la page de configuration de plain, il y a en effet une `` cochez cette case pour transformer les sauts de ligne en br et p, mais peu importe ce que je vérifie ou comment je réorganise le poids des filtres, je ne parviens pas à conserver les sauts.
Quelle est la configuration correcte pour que cela fonctionne afin que je puisse conserver les retours dans les textes?
Ressemble à un bogue dans Drupal core http://drupal.org/node/1019042
Cela ressemble à un Drupal 7.x bug. Changer l'ordre des filtres ne fonctionne pas dans mon cas.
Ma solution à court terme a été de jeter ceci dans le template.php de mon thème ( ref ):
<?php
/**
* Implements template_preprocess_field().
*/
function THEMENAME_preprocess_field(&$vars, $hook) {
// Add line breaks to plain text textareas.
if (
// Make sure this is a text_long field type.
$vars['element']['#field_type'] == 'text_long'
// Check that the field's format is set to null, which equates to plain_text.
&& $vars['element']['#items'][0]['format'] == null
) {
$vars['items'][0]['#markup'] = nl2br($vars['items'][0]['#markup']);
}
}
?>
Pour les champs dans les vues, il est nécessaire de définir cette option séparément dans la section "Résultats de la réécriture" des paramètres de champ.
En fait, cela devrait fonctionner avec ce paramètre d'ordre de filtres dans "admin/config/content/formats/plain_text"
Essayez les filtres ci-dessous en supprimant "Afficher tout HTML en texte brut":
La solution est simple. Affichez simplement le contenu en texte brut avec les CSS suivants.
white-space: pre-line;
J'ai utilisé le module Advanced Text Formatter pour résoudre rapidement ce problème sans code.
Cliquez sur l'engrenage à droite (ou sur un lien pour formater les paramètres)
Je ne pense pas que ce soit le filtrage d'entrée: c'est probablement le paramètre d'affichage du champ. S'il est défini sur "Texte brut", remplacez-le par "Par défaut". Sinon, les balises générées pour les sauts de ligne en entrée sont supprimées avant l'affichage du champ.
Pour plus de clarté, cela se trouve dans le panneau "Gérer l'affichage" pour le type de contenu en question. Dans Administration "Structure" Type de contenu "MyContentType" Gérer l'affichage. Sous la colonne Format du champ.
Je ne pense pas que ce soit un bug mais le résultat d'une confusion (pas aidé par la manière Drupal est configuré) entre un champ avec un format d'entrée "texte filtré" réglé sur "texte brut" et un champ "texte brut". Si, lorsque vous créez votre champ, vous sélectionnez "texte filtré", l'utilisateur aura la possibilité de sélectionner parmi "texte brut" et tout autre format d'entrée disponible, et en utilisant l'option "texte brut" ici lors de la création de votre contenu, les sauts de ligne et les liens sortiront de la boîte. Si toutefois, lors de la création du champ, vous sélectionnez "texte brut", aucune balise ne sera disponible/rendue du tout, quelle que soit la configuration du format d'entrée "texte brut" . Donc, avant de paniquer que le "texte brut" ne fonctionne pas, vérifiez d'abord dans votre configuration de type de contenu que le champ a "texte filtré" sélectionné. C'est paradoxal et ennuyeux, mais, Drupal ...;)
Le "format de texte brut" comme la méthode de "traitement de texte" ne prend en charge aucune balise HTML, les sauts de ligne ne fonctionnent donc pas normalement.
Créez un "format de texte" pour "Texte filtré (l'utilisateur sélectionne le format de texte)" et définissez le "Format de texte" sur "Texte brut".