¿Cómo obtengo saltos de línea cuando uso el formato de Texto sin formato?

11

Siento que esto debería ser realmente simple, pero me está volviendo loco.

Tengo 'texto plano' seleccionado para todos los elementos de mi cuerpo. No quiero que nadie pueda poner ningún html al completar formularios.

Sin embargo, quiero preservar los saltos de línea. En la página de configuración de plano, de hecho, hay un 'marque esta casilla para convertir los saltos de línea en br y p, pero no importa lo que verifique o cómo reorganice el peso de los filtros, no puedo lograr que conserve los saltos.

¿Cuál es la configuración correcta para que esto funcione y pueda preservar los retornos en los textos?

blue928
fuente
1
Eso es raro. Tengo la misma configuración y funciona para mí. ¿Es esta una instalación limpia o una actualización? ¿Está utilizando un módulo personalizado, tal vez haciendo algunas sobrescrituras u otra cosa?
Emil Orol
Se sentía como un error o como si algo estuviera un poco fuera de lugar. Lo que supuse que estaba sucediendo es que podría devolver las etiquetas br y p para los saltos de línea, pero luego se filtraron para preservar el verdadero 'texto plano' ¿Qué ha verificado y cuál es el orden de sus filtros?
blue928
Todavía tengo ese problema con el texto sin formato. También he agregado etiquetas <p> y <br> pero no tuve suerte. ¿Me estoy perdiendo algo?
sokratis

Respuestas:

11

Esto parece un error de Drupal 7.x. Cambiar el orden de los filtros no funciona en mi caso.

Mi solución a corto plazo fue lanzar esto dentro de template.php ( ref ) de mi tema :

<?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']);
  }
}
?>

Para los campos en las vistas, es necesario establecer esta opción por separado en la sección "Reescribir resultados" de la configuración del campo.

Druvision
fuente
3

En realidad, debería funcionar con esta configuración de orden de filtros en "admin / config / content / format / plain_text"

  1. Mostrar cualquier HTML como texto sin formato
  2. Convierte URLs en enlaces
  3. Convierta saltos de línea en HTML (es decir, <br> y <p>)

Pruebe los siguientes filtros eliminando "Mostrar cualquier HTML como texto sin formato":

  1. Limite las etiquetas HTML permitidas (configure solo <a> y <br> para la lista de etiquetas HTML permitidas)
  2. Convierte URLs en enlaces
  3. Convierta saltos de línea en HTML (es decir, <br> y <p>)
Sithu
fuente
2
esto no funcionará si el formato de entrada no es Texto filtrado.
artfulrobot
3

La solución es simple. Simplemente muestre el contenido de texto sin formato con el siguiente CSS.

white-space: pre-line;
Kevin Siji
fuente
2
En realidad, white-space: pre-line;como se menciona en drupal.org/node/1095838#comment-6679314 es mejor.
Jeroen
Una solución tan elegante.
sephiith
Esto funciona, pero solo si desea orientar cada uno de sus campos manualmente, o si todos sus campos de texto largo necesitan hacerlo. Si ha mezclado campos de "texto sin formato" con otros tipos de campos, y si está usando esto con mpdf para hacer un archivo PDF, entonces solo la solución de Druvision funciona.
Richard
1

Utilicé el módulo Advanced Text Formatter para resolver rápidamente este problema sin código.

  1. Instalar y habilitar el módulo.
  2. Haga clic en 'Administrar pantalla' de su tipo de contenido.
  3. Cambie el 'Texto sin formato' del formato de su campo a 'Texto avanzado'
  4. Haga clic en el engranaje a la derecha (o en un enlace para formatear la configuración)

    1. Establecer la longitud de corte a 0
    2. Establezca el filtro en 'Limitar etiquetas HTML permitidas'
    3. Eliminar todos los elementos de 'Etiquetas HTML permitidas'
    4. Marque 'Convierte saltos de línea en HTML'
    5. Haga clic en 'Actualizar' y guarde su pantalla de campo.

Configuración de formato del módulo Formateador de texto avanzado para permitir solo saltos de línea

StackAttack
fuente
0

No creo que sea el filtrado de entrada: probablemente sea la configuración de visualización para el campo. Si está configurado en "Texto sin formato", cámbielo a "Predeterminado". De lo contrario, las etiquetas generadas para los saltos de línea de entrada se eliminan antes de que se muestre el campo.

Para mayor claridad, esto se encuentra en el panel "Administrar pantalla" para el tipo de contenido en cuestión. En Administración »Estructura» Tipo de contenido »MyContentType» Gestionar pantalla. Debajo de la columna Formato para el campo.

Alfred Armstrong
fuente
0

No creo que esto sea un error, pero el resultado de la confusión (no ayudado por la forma en que se configura Drupal) entre un campo con un formato de entrada de "texto filtrado" establecido en "texto sin formato" y un campo de "texto sin formato". Si cuando crea su campo selecciona "texto filtrado", el usuario tendrá la opción de seleccionar entre "texto sin formato" y cualquier otro formato de entrada disponible, y usar la opción "texto sin formato" aquí al crear su contenido mostrará la línea saltos y enlaces fuera de la caja. Sin embargo, si en la creación de campo selecciona "texto sin formato", no habrá etiquetas disponibles / representadas, sin importar cómo configure el formato de entrada de "texto sin formato". Entonces, antes de entrar en pánico porque el "texto plano" no funciona, primero verifique en su configuración de tipo de contenido que el campo tenga "texto filtrado" seleccionado. Es paradójico y molesto, pero, Drupal ...;)

Thoughtcat
fuente
0

El "formato de texto sin formato" como método de "procesamiento de texto" NO admite ninguna etiqueta HTML, por lo tanto, los saltos de línea no funcionan normalmente.

Cree un "formato de texto" para "Texto filtrado (el usuario selecciona el formato de texto)" y establezca el "Formato de texto" en "Texto sin formato".

usuario9616
fuente
Lo que resolvió esto para mí fue cambiar el campo en el tipo de contenido a "texto filtrado - selección de usuario", pero luego me aseguré de que el usuario solo tuviera acceso al editor de texto sin formato. De alguna manera eso funcionó. Si el usuario tuviera acceso a otros editores de texto, esto no sería tan bueno.
Christia
-2

Este gran módulo puede ayudarte https://drupal.org/project/wysiwyg_linebreaks

WYSIWYG saltos de línea permite a los usuarios de los editores WYSIWYG para guardar y marcado abierto de su sitio web con saltos de línea en lugar de <p>y <br /> etiquetas.

user24291
fuente