Como filtrar programaticamente o texto?


8

Preciso exibir um texto e aplicar o filtro escolhido. O texto é salvo usando o text_formattipo de campo.

Conheço o texto original, o tipo de formato escolhido, mas não sei como filtrar o texto.

Como filtrar programaticamente o texto? obrigado


2
Deseja fazer isso programaticamente. Se sim, dê uma olhada neste link: stackoverflow.com/questions/2959962/…
BetaRide

foi um dia ruim hoje. Eu usei isso tantas vezes antes, mas eu simplesmente não conseguia me lembrar agora. Você pode adicionar isso como uma resposta para que eu possa aceitá-lo?
Marius Ilie

A resposta é curta. Ele foi convertido para comentar automaticamente :-(. Você ainda pode votar o comentário ;-).
BetaRide 25/06

@BetaRide se você adicionar um link para check_markup(), e também copiar a descrição sumária, você terá um perfeitamente aceitável (mesmo boa resposta) :)
Clive

Respostas:


8

Esta postagem no stackoverflow descreve como fazer isso programaticamente.

Basta ligar para check_markup e passar seu texto e o ID do filtro.

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

Execute todos os filtros ativados em um pedaço de texto.


Há uma diferença entre filter_id e format_id . check_markup()aceita um format_id e executará todos os filtros aplicados a esse formato.
komlenic

4

Com a check_markup()função, você é forçado a usar o formato de texto (formato de texto = banch de filtros).

Se você deseja usar apenas UM , filtro exato sem formato de filtro completo (como: Converter quebras de linha em HTML ), use esta função 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);
}

Você pode verificar a lista de filtros disponíveis com dpm(filter_get_filters()).


11
Esta é uma resposta correta!
Alex Skrypnyk

11
Isso pode funcionar para alguns filtros, mas apenas os simples. Em geral, o retorno de chamada do processo api.drupal.org/api/drupal/modules%21filter%21filter.api.php/… utiliza mais parâmetros, incluindo configurações de filtro. Há também um retorno de chamada de preparação.
Adams
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.