Come filtrare programmaticamente il testo?


8

Devo visualizzare un testo e applicare ad esso il filtro scelto. Il testo viene salvato utilizzando il text_formattipo di campo.

Quindi conosco il testo originale, conosco il tipo di formato scelto ma non so come filtrare effettivamente il testo.

Come posso filtrare programmaticamente il testo? Grazie


2
Vuoi farlo a livello di codice. Se sì, date un'occhiata a questo link: stackoverflow.com/questions/2959962/...
BetaRide

è stata una brutta giornata oggi. L'ho usato così tante volte prima ma non riuscivo a ricordare ora. Puoi aggiungere questo come risposta in modo che io possa accettarlo?
Marius Ilie,

La risposta è troppo breve. È stato convertito in commento automaticamente :-(. Puoi ancora votare il commento ;-).
BetaRide,

@BetaRide se aggiungi un link a check_markup(), e copi anche la descrizione di riepilogo, avrai una risposta perfettamente accettabile (anche buona ) :)
Clive

Risposte:


8

Questo post su StackOverflow descrive come farlo a livello di codice.

Chiama check_markup e passa il tuo testo e l'ID filtro.

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

Esegui tutti i filtri abilitati su un pezzo di testo.


C'è una differenza tra filter_id e format_id . check_markup()accetta un format_id e eseguirà tutti i filtri applicati a quel formato.
komlenic

4

Con la check_markup()funzione sei costretto a utilizzare il formato testo (formato testo = banch di filtri).

Se si desidera utilizzare solo UNO , filtro esatto senza formato di filtro completo (come: Converti interruzioni di riga in HTML ), utilizzare questa funzione personalizzata.

/**
 * 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);
}

Puoi controllare l'elenco dei filtri disponibili con dpm(filter_get_filters()).


1
Questa è una risposta corretta!
Alex Skrypnyk,

1
Questo può funzionare per alcuni filtri, ma solo quelli semplici. In generale, il processo di callback api.drupal.org/api/drupal/modules%21filter%21filter.api.php/… accetta più parametri, comprese le impostazioni del filtro. C'è anche un callback preparato.
AdamS,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.