Skip to main content Help Control Panel

 

Projets «   Campagnes de tests «   yacs Martin RC7 est livré «  

Copie du code twitter API dans un commentaire

PreviousNextIndex

WorkflowSupport request
StatusProblem has been recorded
OwnerJ.Juraver
Progress0%

Lorsqu'on insère un widget dédié à twitter de type [tsearch=#yacs] dans un article, une partie est recopiée en brut au sein d'un formulaire de commentaire de ladite page : dans le champ textarea permettant de mémoriser le contenu de la page à commenter.

C'est plus simple en illustrant : commentez cette page. Vous verrez dans le champ (sous votre rédaction) qui reprend mon contenu des lignes de code dûes à ce widget.

Files

20100603 patch teasers.tgz - 41,410 bytes, 53 downloads
edited by Bernard Paques on June 3 2010 · details

Comments

J.Juraver - on June 3 2010
La page a été créée


Je ne m'attarde pas, j'ai mon yacs en double file...

Yacs on my blog | Suivez le blog Yacs | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz |
Bernard Paques - on June 3 2010

Problème reproduit, et analysé.

La fonction PHP strip_tags utilisée pour enlever les balises HTML du texte affiché en bas du formulaire préserve tout ce qui est entre des balises allant par paires.

Généralement, c'est ce qu'on veut. Par exemple, pour extraire le contenu d'un titre de niveau 3,

<h3>Ceci est un titre intéressant</h3>

devient après transformation :

Ceci est un titre intéressant

Ce mécanisme, appliqué à du Javascript, révèle les lignes de code comme tu le mentionnes.

La solution est de rajouter une ligne pour supprimer explicitement les balises Javascript et le code lui-même, en s'appuyant sur les expressions régulières de PHP :

$text preg_replace('#<script[^>]*>.*?</script>#is'''$text);

Cette correction est à effectuer dans la fonction Skin::strip() du fichier skins/skin_skeleton.php. Au passage, j'ai aussi simplifié la fonction get_teaser() de articles/article.php pour appeler Skin::strip() au lieu de strip_tags().

Les deux fichiers modifiés sont disponibles ci-dessous, sous forme de correctif à appliquer au serveur.


20100603-patch-teasers.tgz

PreviousNextIndex