Comment on fait des liens [url: ????

Comment on fait des liens [url: ???? - PHP - Programmation

Marsh Posté le 16-12-2002 à 03:15:07    

J'ai parfois de longs liens à mettre sur mes sites alors je voudrais faire un système comme sur le forum
 

Code :
  1. [url:ici mon url]nom du site[/url]


 
mais comment ca marche ??? comment dire de "décoder" ca ?


---------------
BattleTag : thekeke#2108 ajoutez moi ;)
Reply

Marsh Posté le 16-12-2002 à 03:15:07   

Reply

Marsh Posté le 16-12-2002 à 03:29:47    

bon j ai trouvé c'est du bbcode mais dès que je fais une recherche la dessus sur google pour savoir comment l utiliser je me tape les pages qui explique aux utilisateurs comment l'écrire... et pas comment l'installer sur un site :(


---------------
BattleTag : thekeke#2108 ajoutez moi ;)
Reply

Marsh Posté le 16-12-2002 à 11:30:51    

si cest toi qui gere le contenu de ton site .. fais directement un lien html <a href="www.....">texte</a>
 
sinon, il faut que les textes de ton site passe par une fnction qui remplace les [ url...] par le code html avant affichage

Reply

Marsh Posté le 16-12-2002 à 11:44:29    

beleg a écrit :

si cest toi qui gere le contenu de ton site .. fais directement un lien html <a href="www.....">texte</a>
 
sinon, il faut que les textes de ton site passe par une fnction qui remplace les [ url...] par le code html avant affichage

bah oui pourquoi utiliser du bbcode plutot que la balise <a> :??:
 
edit: sinon ca doit se faire avec les expressions regulieres ca


Message édité par goueg le 16-12-2002 à 11:53:34

---------------
(Feed-Back HFR) - Funky Tonight!
Reply

Marsh Posté le 16-12-2002 à 12:40:17    

Goueg a écrit :

bah oui pourquoi utiliser du bbcode plutot que la balise <a> :??:
 
edit: sinon ca doit se faire avec les expressions regulieres ca

Pour éviter de ce taper de grosses fonction de désactivations des programmes javascript, des balises dangeureuses (redirection et autre), pour éviter les merdes de mise en page par ce que des utilisateurs vont avoir oublier de fermer une balise ou vont avoir fermé des balises qu'ils ont pas ouvert ...
 
Pour les expression régulière, j'utilises :
 
"/\".$code_deb.\"(.*)\".$code_milieu.\"(.*)\".$code_fin.\"/U\"
comme chaine de recherche générique et
$html_deb."\\1".$html_milieu."\\2".$html_fin
ou
$html_deb."\\1\\2".$html_milieu."\\1\\2".$html_fin
comme chaines de remplacement.
 
La première chaine de remplacement, c'est la chaine de remplacement générique normale, la seconde, c'est pour les URL, adresses email et autre remplacement équivalent à :
[url]http://monsite.com[url]
avec comme chaine d'arrivé à obtenir une chaine du genre :
<A href="http://monsite.com">http://monsite.com</A>
 
PS : J'utilises une base de donnée pour faire ça alors j'ai juste transposé la chaine du concact de mysql en son équivalent php. J'ai donc peut être fait une erreur dans ma traduction ce qui se traduira par un \ en trop ou un \ manquant.
 
EDIT : J'utilises preg_replace, ces chaines sont donc des expression régulières de type perl.


Message édité par omega2 le 16-12-2002 à 12:41:49
Reply

Marsh Posté le 16-12-2002 à 12:55:27    

ah mais j'avais pas vu que CT pour un forum :crazy:  


---------------
(Feed-Back HFR) - Funky Tonight!
Reply

Marsh Posté le 16-12-2002 à 14:17:00    

Justement, je suis en train de le faire moi-même. J'ai opté pour cette solution :
 
(url)htp://www.adresse.com(comment)blabla(/url)
 
ce qui fait que :
 
(url) = <a href="
(comment) = ">
et (/url) = </a>
 
PS : remplacer les ()par des [].


Message édité par Hermes le Messager le 16-12-2002 à 14:17:45
Reply

Marsh Posté le 16-12-2002 à 14:42:40    

Hermes le Messager a écrit :

Justement, je suis en train de le faire moi-même. J'ai opté pour cette solution :
 
(url)htp://www.adresse.com(comment)blabla(/url)
 
ce qui fait que :
 
(url) = <a href="
(comment) = ">
et (/url) = </a>
 
PS : remplacer les ()par des [].


Avec mon système :

Code :
  1. "/\".$code_deb.\"(.*)\".$code_milieu.\"(.*)\".$code_fin.\"/U\"
  2. à remplacer par :
  3. $html_deb."\\1".$html_milieu."\\2".$html_fin


qui donne dans ton cas
 

Code :
  1. "/\(url\)(.*)\(comment\)(.*)\(/url\)"


 
à remplacer par  
 

Code :
  1. "<a href=\"\\1\">\\2</a>"


 
ce qui fait qu'on obtient
 

Code :
  1. <a href="htp://www.adresse.com">blabla</a>


 
 
Tu peux essayer, j'utilises moi aussi des codes en trois parties alors je peux t'assurer que ca marche. Je peux pas te montrer d'exemple sur mon site vu que j'ai pas encore activer ce système (j'ai pas finis de remplir les smilies que j'utilisais avec l'ancien système)
 
EDIT : PS : Il faut remplacer les \( par \[ et les \) par \] pour tomber sur la transformation de l'ubbcode. ;)


Message édité par omega2 le 16-12-2002 à 14:46:25
Reply

Marsh Posté le 16-12-2002 à 15:36:37    

Ce n'est pas moi qui ai un problème  :lol:  Je lui indiquais comment j'avais fait ;)
 

Reply

Marsh Posté le 16-12-2002 à 15:45:34    

Hermes le Messager a écrit :

Ce n'est pas moi qui ai un problème  :lol:  Je lui indiquais comment j'avais fait ;)
 
 

ok, ben on va dire que du coup, je lui ai expliquer ma méthode à l'aide d'un exemple. ;)

Reply

Marsh Posté le 16-12-2002 à 15:45:34   

Reply

Marsh Posté le 16-12-2002 à 19:37:33    

Hermes le Messager a écrit :


 
(url)htp://www.adresse.com(comment)blabla(/url)
 
PS : remplacer les ()par des [].

les utilisateurs doivent taper un truc comme ca :??:


---------------
(Feed-Back HFR) - Funky Tonight!
Reply

Marsh Posté le 16-12-2002 à 21:57:46    

Goueg a écrit :

les utilisateurs doivent taper un truc comme ca :??:


 
Non, suffit d'ouvrir un chti popup (c'est mal mais bon, pour une fois que ça sert à quelque chose...  :D ) et de là, tu crées deux champs à remplir avec un bouton submit. Quand le mec va cliquer dessus, ça va créer le code tout seul et le foutre dans le textarea de la page du forum.
 
(C'est une possibilité, mais il y en a d'autres...)

Reply

Marsh Posté le 16-12-2002 à 22:48:09    

un prompt tout simplement, ca sera + léger.
entrez votre URL ---->hop url pis cliquer sur ok ------> nouvelle invite du pronpt : "entrez le texte a figurer dans le lien" | ou bien  Annuler ---> zap le coment / ou entrage de comment puis Ok ---> comment -----> fermeture du prompt et incluageationage dans le textarea
 [:panchopa]


Message édité par panchopa le 16-12-2002 à 22:51:40
Reply

Marsh Posté le 16-12-2002 à 23:33:36    

Goueg a écrit :

les utilisateurs doivent taper un truc comme ca :??:

Ils peuvent taper ça.
Ou bien comme sur ce site, tu clique sur un bouton, tu met ton texte, tu relique sur le bouton et le tour est jouer. ;) (cliquer trois fois si l'ensemble de balise est diviser en trois parties)

Reply

Marsh Posté le 17-12-2002 à 01:10:25    

omega2 a écrit :

Ils peuvent taper ça.
Ou bien comme sur ce site, tu clique sur un bouton, tu met ton texte, tu relique sur le bouton et le tour est jouer. ;) (cliquer trois fois si l'ensemble de balise est diviser en trois parties)

ouep c encore comme ici que c le + pratique je pense


---------------
(Feed-Back HFR) - Funky Tonight!
Reply

Marsh Posté le 17-12-2002 à 14:08:55    

Pour info j'ai pris cette fonction sur un site...
 
Je l'ai un tout petit peu changée pour qu'elle remplace mes liens par "cliquez ici" avec une balise "a href" correspondante... Je vais rajouter un argument pour mettre un nom au lien autre que "cliquez ici" et un autre pour choisir la target...
 
Si cette fonction peut en aider certains...
 
NB. : elle fait pareil pour les adresses mails mais là elle marque l'adresse au lieu de "cliquez ici"
 

Code :
  1. function add_url_and_email($tmp_url="" ) {
  2.         preg_match_all("/http:\/\/([_a-zA-Z0-9-.\/]+)/si", $tmp_url, $url_array);
  3.         for($i=0;$i<count($url_array[0]);$i++)
  4.         {
  5.                 if($url_done[$url_array[0][$i]]!="done" )
  6.                 {
  7.                         $tmp_url = ereg_replace( $url_array[0][$i], "<A HREF=\"".$url_array[0][$i]."\" target=\"_blank\">cliquez ici</A>", $tmp_url );
  8.                         $url_done[$url_array[0][$i]] = "done";
  9.                 }
  10.         }
  11.         preg_match_all("/[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)/si", $tmp_url, $email_array);
  12.         for($i=0;$i<count($email_array[0]);$i++)
  13.         {
  14.                 $tmp_url = ereg_replace( $email_array[0][$i], "<A HREF=\"mailto:".$email_array[0][$i]."\">".$email_array[0][$i]."</A>", $tmp_url );
  15.         }
  16.         return $tmp_url;
  17. }


---------------
BattleTag : thekeke#2108 ajoutez moi ;)
Reply

Marsh Posté le 17-12-2002 à 15:33:26    

C'est toujours intéressant de regarder des sources, mais personnellement je préfère TOUT faire moi-même, quite à regarder quelques sources APRES.
 
J'ai remarqué que je perds finalement moins de temps comme ça, car j'arrive à débbugger ce que je fais 1000 fois plus vite que ce que je récupère...  :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed