online faq recherche accueil
 

La Taverne : guigolum World of Warcraft : Elodia, 1 utilisateur anonyme et 36 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

Du php ! à l'aide !

 
n°4605254
Le redempt​eur
Posté le 26-05-2005 à 22:43:22  profilanswer
 

Enfin indirectement mais quand même : j'aimerais créer une regex de bbcode pour faire une liste
 

  • comme
  • ça
  • mais
  • je
  • n'ai
  • aucune
  • idée
  • de
  • comment
  • procéder


quelqu'un pourrait éclairer ma lanterne ? :) rien de ce que j'ai essayé ne marche ;)
 
PS : inutile de me donner le lien vers le sdz, personne n'a pu me répondre convenablement.

n°4605257
Constance
[ms]Modo Maudit®
Profil : Modérateur
Posté le 26-05-2005 à 23:23:00  profilanswer
 

Euh ... tu lui fais générer du HTML ?
Genre :

<UL>
 <LI>comme
 <LI>ça
 <LI>mais
 ...
</UL>


? :ack:


---------------
« L'inconvénient des écrans plats par rapport aux CRT, c'est qu'on peut rien poser dessus :ack: »
n°4605273
chewy
Posté le 27-05-2005 à 09:59:18  profilanswer
 

Pas mieux

n°4605302
Joe Jinis
Empereur Paladin
Posté le 27-05-2005 à 14:18:37  profilanswer
 

Même moi je le sais :ack:
 
: bhouu : : honte :


---------------
Je braverai l'ombre et tous les ennemis qui se dresseront devant moi afin de faire briller la lumière dans ce monde de ténèbres car je suis l'Alpha et l'Oméga.  
 
Be Faster, Stronger, Better [:malacath]
n°4605347
Le redempt​eur
Posté le 27-05-2005 à 19:44:11  profilanswer
 

Constance a écrit :

Euh ... tu lui fais générer du HTML ?
Genre :

<UL>
 <LI>comme
 <LI>ça
 <LI>mais
 ...
</UL>


? :ack:


 
justement, comment on peut faire remplacer ça sur une regex ? :ack:
je veux dire, sur le forum, il faut mettre [ * ] sans espaces pour créer la puce, comment ça marche en réalité ?


Message édité par Le redempteur le 27-05-2005 à 19:45:04
n°4605365
Balu
Posté le 27-05-2005 à 21:45:19  profilanswer
 

Le redempteur a écrit :

comment ça marche en réalité ?


Tu peux regarder les fichiers bbcode.tpl et bbcode.php d'un forum phpbb.


Message édité par Balu le 27-05-2005 à 21:47:51
n°4605396
Constance
[ms]Modo Maudit®
Profil : Modérateur
Posté le 27-05-2005 à 23:17:37  profilanswer
 

Une puce dans les expressions régulières ? :what: ...


---------------
« L'inconvénient des écrans plats par rapport aux CRT, c'est qu'on peut rien poser dessus :ack: »
n°4605418
Balu
Posté le 28-05-2005 à 02:06:20  profilanswer
 

Non, il demandait comment fonctionnait les bbcodes, comment le code de la puce est remplacé par le code html.

n°4605424
Constance
[ms]Modo Maudit®
Profil : Modérateur
Posté le 28-05-2005 à 07:50:07  profilanswer
 

Euh d'accord mais regex c'est pas "regular expression" ? :hmm:


---------------
« L'inconvénient des écrans plats par rapport aux CRT, c'est qu'on peut rien poser dessus :ack: »
n°4605438
Le redempt​eur
Posté le 28-05-2005 à 13:53:49  profilanswer
 

oui c'est ça et alors ? :ack:
 
le bbcode se base bien sur des regex de remplacement comme preg_replace() n'est-ce pas ?
 
Alors comment ça marche la liste sur JH par exemple ?
 
EDIT : @ Balu : et ils sont où ces fichiers ? en tout cas bbcode.php parce que ya rien dans l'autre :ack:


Message édité par Le redempteur le 28-05-2005 à 13:55:30
n°4605447
Constance
[ms]Modo Maudit®
Profil : Modérateur
Posté le 28-05-2005 à 15:57:38  profilanswer
 

Pas grave, je pense qu'on ne parle pas des mêmes expressions régulières ;)
(Je pensais à celles qu'on utilise avec des commandes comme grep par exemple ^^ )


---------------
« L'inconvénient des écrans plats par rapport aux CRT, c'est qu'on peut rien poser dessus :ack: »
n°4605456
Balu
Posté le 28-05-2005 à 18:00:07  profilanswer
 

Le redempteur a écrit :

@ Balu : et ils sont où ces fichiers ? en tout cas bbcode.php parce que ya rien dans l'autre :ack:

Tu trouves ces fichiers en téléchargeant phpbb.
 
bbcode.tpl est le template contenant le code html de remplacement.
 
Dans bbcode.php, la fonction load_bbcode_template() permet de récupérer les codes html du fichier bbcode.tpl correspondant aux bbcodes.
 
Code concernant les listes pour t'aider
 
bbcode.tpl

<!-- BEGIN ulist_open --><ul><!-- END ulist_open -->
<!-- BEGIN ulist_close --></ul><!-- END ulist_close -->
 
<!-- BEGIN olist_open --><ol type="{LIST_TYPE}"><!-- END olist_open -->
<!-- BEGIN olist_close --></ol><!-- END olist_close -->
 
<!-- BEGIN listitem --><li><!-- END listitem -->


bbcode.php
 
Dans la fonction prepare_bbcode_template($bbcode_tpl) :

$bbcode_tpl['olist_open'] = str_replace('{LIST_TYPE}', '\\1', $bbcode_tpl['olist_open']);


Dans la fonction bbencode_second_pass($text, $uid) :

// [list] and [list=x] for (un)ordered lists.
// unordered lists
$text = str_replace("[list:$uid]", $bbcode_tpl['ulist_open'], $text);
// li tags
$text = str_replace("[*:$uid]", $bbcode_tpl['listitem'], $text);
// ending tags
$text = str_replace("[/list:u:$uid]", $bbcode_tpl['ulist_close'], $text);
$text = str_replace("[/list:o:$uid]", $bbcode_tpl['olist_close'], $text);
// Ordered lists
$text = preg_replace("/\[list=([a1]):$uid\]/si", $bbcode_tpl['olist_open'], $text);


Dans la fonction bbencode_first_pass($text, $uid) :

// [list] and [list=x] for (un)ordered lists.
$open_tag = array();
$open_tag[0] = "[list]";
 
// unordered..
$text = bbencode_first_pass_pda($text, $uid, $open_tag, "[/list]", "[/list:u]", false, 'replace_listitems');
 
$open_tag[0] = "[list=1]";
$open_tag[1] = "[list=a]";
 
// ordered.
$text = bbencode_first_pass_pda($text, $uid, $open_tag, "[/list]", "[/list:o]",  false, 'replace_listitems');


Voir aussi la fonction replace_listitems($text, $uid)


Message édité par Balu le 28-05-2005 à 18:28:27
n°4605495
Le redempt​eur
Posté le 28-05-2005 à 21:54:18  profilanswer
 

ya du javascript aussi dans le lot :ack:
 
mais je trouve ce code bien trop compliqué ! comment ils font sur JH, puisqu'ils n'utilisent pas de [list][/list] ? ils utilisent seulement un [ * ] !

n°4605499
darathor
Mage vampire
Posté le 28-05-2005 à 22:56:26  profilanswer
 

Doivent avoir un algo un peu plus compliqué pour la conversion :P
 
J'ai programmé un truc similaire en java y a quelques jours, c'est chiant :P C'est nettement plus simple avec des ouvertures et fermeture via des balises [list] [:darathor:1]
 
En gros ce que doit faire md.net pour les listes c'est  
1) Quand il trouve une [ *], il note qu'il commence une liste et ouvre les balises html.
2) Tant qu'il a des lignes commençant par [ *], il les considère comme de s'li' et ouvre et ferme les balises correspondantes.
2) Quand il a une ligne ne commençant pas par [ *], il ferme la liste et se note qu'il n'est plus dans une liste...  
Enfin c'est comme ça que je ferais à première vue... Mais ça demanderait d'analyser le code ligne par ligne, par juste ne appliquant une expression rationnelle simple (quoique si en fait, même avec des expression rationnelles ça doit marcher, vu qu'il y a moyen d'indiquer que tu cherches une expression en début de ligne ou en fin de ligne)...
 
EDIT : Tu peux voir comment ils font là : http://www.neokraft.net/sottises/wiki2xhtml/ vu que ce que tu veux est du même genre que leur gestion des lsites ;)
 
EDIT 2 : Rah on peut même pas faire [b][/b] pour afficher une balise sans qu'elle soit traduite... J'aime décidément pas md.net [:darathor:1]


Message édité par darathor le 28-05-2005 à 23:21:42
n°4605501
Constance
[ms]Modo Maudit®
Profil : Modérateur
Posté le 28-05-2005 à 23:00:51  profilanswer
 

En tout cas c'est chiant comme c'est fait là, car ça merdouille pour l'alignement si on veut faire plusieurs lignes différentes pour une même puce...
 
exemple :

[*] blabla ligne 1 puce numéro 1
blabla ligne 2 puce numéro 1
[*]blabla ligne 1 puce numéro 2


 

  • blabla ligne 1 puce numéro 1

blabla ligne 2 puce numéro 1

  • blabla ligne 1 puce numéro 2


---------------
« L'inconvénient des écrans plats par rapport aux CRT, c'est qu'on peut rien poser dessus :ack: »
n°4605506
darathor
Mage vampire
Posté le 28-05-2005 à 23:21:19  profilanswer
 

Oué et si tu le mets en milieu de ligne il le traduit aussi... C'est assez chiant comme gestion [:darathor:1]

n°4605595
Le redempt​eur
Posté le 29-05-2005 à 21:25:41  profilanswer
 

darathor a écrit :

EDIT : Tu peux voir comment ils font là : http://www.neokraft.net/sottises/wiki2xhtml/ vu que ce que tu veux est du même genre que leur gestion des lsites ;)


 
comprend rien :ack: je vais essayer ce que tu m'as dit quand même merci ;)


Aller à :
Ajouter une réponse