web-dev-qa-db-fra.com

Comment obtenir une instance JFilterInput avec 'liste noire par défaut' configurée

J'aimerais utiliser la liste noire d'attributs/balises HTML par défaut de Joomla pour filtrer certaines données entrant dans une API personnalisée que j'ai dans un composant Joomla. Le texte au bas de la page de configuration 'Filtres de texte' inclut la note suivante:

- Les tags de la liste noire par défaut incluent: 'applet', 'body', 'bgsound', 'base', 'basefont', 'embed', 'frame', 'frameset', 'head', 'html', ' id ',' iframe ',' ilayer ',' layer ',' link ',' meta ',' name ',' object ',' script ',' style ',' title ',' xml '

J'ai passé la dernière heure à parcourir le code Joomla en essayant de déterminer où et quand il crée une instance de JFilterInput qui utilise cette liste noire par défaut. Le plus proche que je puisse trouver est JComponentHelper, ce qui semble le faire dans sa méthode filterText (), mais je ne vois toujours pas d'où cette liste par défaut provient réellement (je ne pouvais même pas faire fonctionner JComponentHelper :: filterText () d'ailleurs).

Existe-t-il un moyen pratique d'obtenir une telle instance configurée JFilterInput, ou vais-je devoir capturer le jeu de balises de liste noire quelque part dans mon propre composant et le transmettre à JFilterInput :: getInstance ()?

2
John Rix

Je suis revenu sur cette question ce soir et suis allé au fond après avoir ouvert les yeux un peu plus grand. En substance, je dois effectuer l’une des opérations suivantes:

A) Configurez une instance de JInputFilter en mode liste noire:

$filter = JInputFilter::getInstance([], [], 1, 1);

ou

B) utilisez JComponentHelper::filterText(), qui appliquera les règles de filtrage configurées dans la page "Filtres de texte".

J'ai posté une réponse plus détaillée ici .

1
John Rix