Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 05-08-2009 13:05:05

Damien
Membre
Lieu: Tassin la Demi Lune
Date d'inscription: 22-03-2007
Messages: 88

BBCode like

Bonjour,

Je suis entrain de développer un CMS basé sur le ZF.

Je souhaiterais ajouter des urls "internes" dans les textes des articles que l'on peut créer à l'aide du CMS. J'ai pensé utiliser la même forme que les bbcode un peu modifié car ils ne prennent pas en compte les spécificités de zf pour les liens internes. J'entend par lien interne un lien faisant référence à un autre article d'un même site basé sur mon CMS.

Je pensais utiliser un bbcode like du style :

Code:

[url module=default controller=news action=show id=1 route=news]lien vers article 2[/url]

Ce que j'aimerais, c'est récupérer toutes les chaines de cette forme dans un texte et les remplacer par leur équivalent code HTML et la balise A.

Pour faire cela, je dois, il me semble, utiliser les expressions régulières afin de récupérer tous les éléments que je devrais passer à la fonction url() de zf pour construire mon url. Le problème, c'est que je ne vois pas du tout comment faire étant une bille en expression régulière smile

Si une bonne âme pouvait me diriger, voir me dire comment il faudrait faire, voir même encore m'indiquer si quelque chose existe déjà que je pourrais intégrer facilement : elle est la bienvenue.

Merci

PS : j'ai trouvé quelque chose qui existe sous PEAR.

Hors ligne

 

#2 13-08-2009 17:09:20

Damien
Membre
Lieu: Tassin la Demi Lune
Date d'inscription: 22-03-2007
Messages: 88

Re: BBCode like

Bon, j'ai trouvé une solution.

Je me suis inspiré du module HTML_BBCodeParser de PEAR et j'ai créé un jeu de class qui me permet de gérer tout ça et le pire, c'est que ça fonctionne. Bon, certes, avec quelques contraintes notamment dans l'ordre des paramètres à fournir, mais c'est un bon début.

Pour info, je vous donne l'expression régulière que j'ai utilisé pour traiter les tags :

Code:

"!\[url module=(.*) controller=(.*) action=(.*) id=(.*) title=(.*) route=(.*)\](.*)\[/url\]!i"

Voila, merci PEAR smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages