Ajouter target_ au bbcode url [Réglé]
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
Est-il possible de modifier le parser pour ajouter le paramètre target_ dans les liens url ? Je trouve agaçant que ce ne soit pas par défaut.
Merci.
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Mais on nous a demandé à de multiples reprises de pouvoir créer des liens qui s'ouvrent dans des nouvelles fenêtres et on a dit qu'on le ferait, mais ça ne sera pas par défaut.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
J'ai un sentiment de « déjà vu ».
Je savais que tu me lancerais ça en fait et je sais que je ne suis pas le premier.
Néanmoins, comment puis-je le faire ? Est-il possible de créer un autre bbcode qui le permettrait ? En fait, un deuxième type de bbcode url avec le paramètre target_ ? Ainsi, on respecterait cette norme puisque l'utilisateur aurait le choix.

Bref, comment je peux m'y prendre sur mon site ? Je modifie le parser ou j'affecte quelque chose de nouveau dans le second parser ?
Merci ben.
Édité par DaaX Le 27/05/2011 à 14h32
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
D'accord, je crois comprendre que tu ne veux pas réellement t'engager dans ce sujet.
J'ai évidemment pu modifier le parser et le unparser pour faire ce que je veux en attendant tout en laissant tomber la rétrocompatibilité avec tinyMCE.
Mais si tu as une idée pour l'ajout d'un bbcode plutôt que la modification, je suis preneur.
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
C'est faisable pour que ce soit compatible avec tinyMCE ou pas ? Est-ce trop complexe ? Tu aurais des pistes pour que j'avance ?
Une autre solution peut-être ?
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Citation :
C'est faisable pour que ce soit compatible avec tinyMCE ou pas ? Est-ce trop complexe ? Tu aurais des pistes pour que j'avance ?
Une autre solution peut-être ?
Une autre solution peut-être ?
Pour le BBCode tu dois modifier, le bbcode_parser.class.php et le bbcode_unparser.class.php
Pour tinymce, il faut regarder si une option est disponible pour target.
Si oui, c'est faisable de la même mannière que le BBCode sauf qu'il faudra vérifier comment est transmis le contenu avec et sans target et transformer cette l'envoi pour qu'il corresponde avec le Unparser du BBCode sinon tu ne pourra pas avoir la rétrocompatibilité avec les deux éditeurs.
ReidLos
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
Je réussis à la faire pour le bbcode. J'ai modifié le parser et le unparser, mais ce n'est pas compatible avec tinyMCE. Alors, je me demande ce que je dois modifier d'autre pour le faire....
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
J'ai une question à ce sujet. La modification que j'ai apportée au bbcode fonctionne pour les news, le forum, les articles.
Je ne sais pas pourquoi, mais lorsque j'édite mon profil, s'il y a des tags url dans la signatures, il ne les interprètes pas de la même façon que dans le forum. On dirait qu'on ne passe pas par le même parser. Pourquoi ? Est-ce le parser de tinyMCE qui fait le travail dans ce cas ?
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
Rectification. En fait, je crois que ceux qui ont généré leur signature avec tinyMCE, ça fout le souk si je vais les modifier.
Il faut donc que je rende compatible ma modification du bbcode dans le parser de tinyMCE. J'imagine que ce ne doit pas être trop compliqué.
Dans le bbcode parser, j'ai fait les modifs suivantes :
Dans le $array_preg_replace
Code PHP :
'url1'=>'<a href="$1" target="_blank">$1</a>', 'url2'=>'<a href="$1" target="_blank">$2</a>', 'url3'=>'$1<a href="$2" target="_blank">$2</a>$3', 'url4'=>'$1<a href="$2" target="_blank">$2</a>$3'
Dans le $array_preg
Code PHP :
'`<a href="([^"]+)" target="_blank">(.*)</a>`isU',
Pour le bbcode, ça fonctionne.
Il faut que je rende ça compatible avec tinyMCE maintenant.
Je m'aperçois que lorsque l'on ajoute un lien à l'aide de tinyMCE, il y a 2 possibilités pour la cible : ouvrir dans la même fenêtre ou dans une nouvelle. Si je sélectionnes nouvelle fenêtre, ça ne fonctionne pas et je crois qu'à la base, cette fonctionnalité est désactivée, est-ce possible ?
En fait, tinyMCE ne parse pas bien le bbcode puisque je l'ai changé. Donc, je dois modifier la fonction parse_bbcode du tinyMCE.
Mais le principal problème est que si j'utilise l'éditeur de bbcode et que je modifie le message de quelqu'un qui utilise tinyMCE, les url ne fonctionnent plus et ce transforment ainsi :
<a href="" ...>....</a>
plutôt que de demeurer en bbcode.
Édité par DaaX Le 24/06/2011 à 16h43
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
J'ai trouvé la solution à mon problème.
Dans le le fichier tinymce_parser.class.php, j'ai modifié dans la fonction parse_bbcode_tags et dans le $array_preg_replace :
Code PHP :
'url'=>"$1<a href="$2" target="_blank">$2</a>$3", 'url2'=>"$1<a href="http://$2" target="_blank">$2</a>$3",
et dans la fonction _parse_tinymce_formatting(), j'ai modifié :
Code PHP :
array_push($array_preg_replace,'<a href="$1" target="_blank">$2</a>');
Voili voilou.
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie