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

Marius Ilie
fonte
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.

BetaRide
fonte
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()).

sobi3ch
fonte
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