¿Cómo filtrar programáticamente el texto?


8

Necesito mostrar un texto y aplicarle el filtro elegido. El texto se guarda usando el text_formattipo de campo.

Entonces sé el texto original, sé el tipo de formato elegido, pero no sé cómo filtrar el texto.

¿Cómo puedo filtrar el texto mediante programación? Gracias


2
¿Quieres hacer esto mediante programación? En caso afirmativo, eche un vistazo a este enlace: stackoverflow.com/questions/2959962/…
— BetaRide

Hoy fue un mal día. Lo usé muchas veces antes, pero ahora no podía recordarlo. ¿Puedes agregar esto como respuesta para que pueda aceptarlo?
— Marius Ilie

La respuesta es corta. Se convirtió en comentario automáticamente :-(. Todavía puedes votar el comentario ;-).
— BetaRide

@BetaRide si agrega un enlace check_markup()y también copia la descripción resumida, tendrá una respuesta perfectamente aceptable (incluso buena ) :)
— Clive

Respuestas:


8

Esta publicación en stackoverflow describe cómo hacer esto mediante programación.

Simplemente llame a check_markup y pase su texto y la identificación del filtro.

check_markup($text, $format_id = NULL, $langcode = '', $cache = FALSE)

Ejecute todos los filtros habilitados en un fragmento de texto.


Hay una diferencia entre filter_id y format_id . check_markup()acepta un format_id y ejecutará todos los filtros aplicados a ese formato.
— komlenic

4

Con la check_markup()función, está obligado a utilizar el formato de texto (formato de texto = banch de filtros).

Si desea utilizar solo UNO , filtro exacto sin formato de filtro completo (como: Convertir saltos de línea en HTML ), utilice esta función personalizada.

/**
 * Custom function to use only ONE filter wightout full format.
 *
 * @param {string} $string String to filter.
 * @param {string} $filter Filter name to use on $string
 * @return {string}        Filtered string.
 */
function filter($string, $filter) {
  $filters = filter_get_filters();
  $filter_autop = $filters[$filter];

  return $filter_autop['process callback']($string);
}

Puede consultar la lista de filtros disponibles con dpm(filter_get_filters()).


1
Esta es una respuesta correcta!
— Alex Skrypnyk

1
Esto puede funcionar para algunos filtros, pero solo para los simples. En general, el proceso de devolución de llamada api.drupal.org/api/drupal/modules%21filter%21filter.api.php/… toma más parámetros, incluida la configuración del filtro. También hay una devolución de llamada de preparación.
— AdamS
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.