#1 

08-08-2009 11:47:51

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 90.56.17.55
Courriel

Suite à la proposition de Nico, nous allons essayer d'implanter une coloration syntaxique pour ce qui est du code C++.

étant pas vraiment une bête en ce qui concerne tout ce qui touche à la programmation WEB, tout aide sra la bienvnue wink


Force et sagesse...

Hors ligne


#2 

08-08-2009 12:04:55

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.255.159
Courriel

dernier message de nico sur le sujet

Salut, j'ai reussi a faire des balises correctes(hier j'avais un message d'erreur)

Code c++ :

[/code.]
Il me disait qu'il manquait la balise d'ouverture [code.] car punbb verifie la syntaxe.
donc il suffit de modifier la fontion check_tag_order($text, &$error) vers la ligne 110, puis de remplacer ce texte:
[code] 
// Look for regular code and quote tags 
		$c_start = strpos($text, '[code.]');
		$c_end = strpos($text, '[/code.]');
		$q_start = strpos($text, '[quote.]');
		$q_end = strpos($text, '[/quote.]
');

par:
 
// Look for regular code and quote tags
		$c_start = strpos($text, '[code.]');
		$c_end = strpos($text, '[/code.]');
		$c_start = strpos($text, '[code=cpp.]');                //mod
		$c_end = strpos($text, '[/code.]');                       //mod
		$q_start = strpos($text, '[quote.]');
		$q_end = strpos($text, '[/quote.]
');

Et dans do_bbcode on met a jour notre code :
$text=preg_replace_callback("#\\[code=cpp\\](.+)\\[/code\\]#isU","cpp",$text);            //mod

Voila, cela serais bien que tu creée un topic pour la coloration syntaxique(enfin si ça te dis) et on se rejoint la-bas.

ps: Il faut supprimer les points que j'ai mit dans les balises, je les ai mit pour pouvoir afficher le code sur ce forum, autrement il me disait syntaxe error.


Force et sagesse...

Hors ligne


#3 

08-08-2009 12:07:35

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.255.159
Courriel

Bon j'ai essayé, mais cela ne foncitonne pas vraiment

Quand je met [code=cpp.][/code.]
, je n'ai pas de coloration, et de plus lorsque que je veux repasser en [code.][/code.]
il me génère une erreur qui me dit en gros que je n'ai pas placé de balise[/code.].


Force et sagesse...

Hors ligne


#4 

08-08-2009 12:19:51

nico
Administrateurs
Avatar de nico
Date d'inscription:
Messages: 563
IP: 82.232.128.163
Courriel

Et mince, je crois que je me suis gouré de forum lol, j'ai pris fluxbb 1_2_21 fr. quelle est la version de ce forum?


Hors ligne


#5 

08-08-2009 12:34:30

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.255.159
Courriel

FluxBB version française 1.2.12 basée sur FluxBB 1.2.12 wink

globalement, je ne suis pas un spécialiste, mais entre les deux version, cela ne doit pas changer radicalement le principe, non ?


Force et sagesse...

Hors ligne


#6 

08-08-2009 12:51:02

nico
Administrateurs
Avatar de nico
Date d'inscription:
Messages: 563
IP: 82.232.128.163
Courriel

Ok je vais voir si 'il y a des différences, mais en principe ça devrait marcher quand même, as-tu bien enlevé les points?

Au sinon a part ça mon exemple est pas terrible car j'ai declaré la fonction cpp($matches); dans la fonction do_bbcode($text); ce qui engendre des erreur du type " function cpp() previously declared)
Mais ça tombe bien, du coup j'ai rendu le code plus propre.
donc voila comment j'ai fait:

J'ai creer un fichier coloration_syntaxique.php (toujours dans include/), ou je place la fonction cpp();

<?php
function cpp($matches)
{
     $matches[1]=preg_replace('#(void|int|char|long|double|float|bool|unsigned|true|false)( |;|:)#isU', '<span style="color:0000ff">$1$2$3</span>',$matches[1]);
     return ($matches[1]);
}
?>

Ensuite, dans le fichier parser.php on rajoute au debut du fichier:

require PUN_ROOT.'include/coloration_syntaxique.php';           //mod

Ensuite, dans la fonction check_tag_order($text, &$error) la manip reste la meme:
       
        $c_start = strpos($text, '[code=cpp.]');                //mod
        $c_end = strpos($text, '[/code.]');                       //mod

Et dans la fonction do_bbcode(); il suffit de mettre cette ligne
$text=preg_replace_callback("#\\[code=cpp\\](.+)\\[/code\\]#isU","cpp",$text);            //mod

Voila l'avantage de faire ça est qu'après on à plus besoins de toucher au fichier parser.php qui est assez saoulant avec ces centaines de lignes.
On modifira juste le fichier coloration_syntaxique.php.


Hors ligne


#7 

08-08-2009 12:58:01

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.255.159
Courriel

OK, je teste dès que le forum est libre d'utilisateur wink


Force et sagesse...

Hors ligne


#8 

08-08-2009 13:07:12

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.255.159
Courriel

toujours le meme soucis que précedement:

tmyke Ecris:

Bon j'ai essayé, mais cela ne foncitonne pas vraiment

Quand je met [code=cpp.][/code.]
, je n'ai pas de coloration, et de plus lorsque que je veux repasser en [code.][/code.]
il me génère une erreur qui me dit en gros que je n'ai pas placé de balise[/code.].


Force et sagesse...

Hors ligne


#9 

08-08-2009 13:11:52

nico
Administrateurs
Avatar de nico
Date d'inscription:
Messages: 563
IP: 82.232.128.163
Courriel

Peut-tu m'envoyer le fichier parser.php que tu as modifié dans ma boite mail stp ? comme ca je compare avec ma version, merci.


Hors ligne


#10 

08-08-2009 13:23:40

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.255.159
Courriel

Hors ligne


#11 

08-08-2009 13:51:40

nico
Administrateurs
Avatar de nico
Date d'inscription:
Messages: 563
IP: 82.232.128.163
Courriel

A ouai mince, j'avais pa vu que la balise [code.] marchait plus, en fait c'est logique car j'utilise 2 fois le mot[/code.] pour la vérification,
donc en attentant que je trouve une parade, on a qu'a utilisé une autre orthographe comme par exemple

Code cpp. :

[/Code.] (avec des majuscules).

ce qui nous donne donc ça:
[code]       $c_start = strpos($text, '[Code=cpp.]');                //mod
       $c_end = strpos($text, '[/Code.]');                       //mod

Et dans la fonction do_bbcode il faut placer l'instruction au tout debut, car toi tu l'a mis dans le if pour les quotes:
       function do_bbcode($text)
{
 $text=preg_replace_callback("#\\[Code=cpp\\](.+)\\[/Code\\]#isU","cpp",$text);        //mod

Voila, là ça devrait marcher.


Hors ligne


#12 

08-08-2009 14:01:14

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.255.159
Courriel

C'est pas gagné smile

j'ai un beau

Error 500 - Internal server error

Un problème inattendu est survenu.
Veuillez réessayer ultérieurement.

quand j'essais de modifer les balises...


Force et sagesse...

Hors ligne


#13 

08-08-2009 14:10:56

nico
Administrateurs
Avatar de nico
Date d'inscription:
Messages: 563
IP: 82.232.128.163
Courriel

Je vois vraiment pas d'ou vient cette erreur, quesque tu veut dire par modifier les balises ? Quand tu met les majuscules ça plante ?

au sinon met le code dans cet ordre là pour voir:

    $c_start = strpos($text, '[Code=cpp.]');                //mod
    $c_end = strpos($text, '[/Code.]');                       //mod
    $c_start = strpos($text, '[code.]');              
    $c_end = strpos($text, '[/code.]');


Hors ligne


#14 

08-08-2009 14:36:42

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.255.159
Courriel

Cette fois c'est moi qui ai fait une boulette, je recommence le test hmm


Force et sagesse...

Hors ligne


#15 

08-08-2009 14:41:35

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.255.159
Courriel

Bon, en fait j'avais fait une erreur de syntaxe.

Maintenant, quand je met un code dans les balsies [Code=cpp.] et [/Code.]; il me met Il manque la balise d'ouverture pour [/code.].
pour valider
mon message.
Si je met la balise [/code.], pas de soucis, mais j'ai un text normal, sans code et encore moins avec coloration.


Force et sagesse...

Hors ligne


#16 

08-08-2009 14:50:42

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.255.159
Courriel

D'ailleurs, je l'ai laissé, c'est la version modifiée qui tourne en ce moment, cela te permettra de mieux voir je pense.
wink

Code c++ :

 float test = 0.0F; 


Force et sagesse...

Hors ligne


#17 

08-08-2009 14:50:53

nico
Administrateurs
Avatar de nico
Date d'inscription:
Messages: 563
IP: 82.232.128.163
Courriel

peut tu remettre le fichier modifié en ligne stp. cool

Code c++ :

 float test = 0.0F;

 float test = 0.0F;


Hors ligne


#18 

08-08-2009 14:53:33

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.255.159
Courriel

Mon serveur est HS pour le moment, dès que cela reviens je poste 8)


Force et sagesse...

Hors ligne


#19 

08-08-2009 15:16:13

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.255.159
Courriel

Bon, je passe par un autre serveur:

http://www.n3xt-d.org/_download/parser.phpt


Force et sagesse...

Hors ligne


#20 

08-08-2009 15:28:38

nico
Administrateurs
Avatar de nico
Date d'inscription:
Messages: 563
IP: 82.232.128.163
Courriel

Mais c'est l'ancien fichier ça?!, peut-tu mettre les dernieres modifs que tu as fait stp.


Hors ligne


#21 

08-08-2009 15:57:19

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.255.159
Courriel

J'ai refait un truc de base avec les modif.

Tu peux tester, c'est lui qui tourne en ce moment. Pour ce qui est des balise traditionnelles, pas d'erreur cette fois, cela tourne.

Par contre, toujours pas de coloration entre les balises

Code cpp. :

 et [/Code.]

donc: 

[Code=cpp] float test = 0.0F;




Voici le listing de ce fichier : http://www.portail-irrlicht.fr/_upload/archives/parser.phpt


Force et sagesse...

Hors ligne


#22 

08-08-2009 16:02:40

nico
Administrateurs
Avatar de nico
Date d'inscription:
Messages: 563
IP: 82.232.128.163
Courriel

bein oui cette ligne:

 $text=preg_replace_callback("#\\[Code=cpp\\](.+)\\[/Code\\]#isU","cpp",$text);        //mod

Il ne faut pas la mettre dans le if(strpos($text, 'quote') !== false), mais au debut de la fonction wink
Comme ça.
 function do_bbcode($text)
{
 $text=preg_replace_callback("#\\[Code=cpp\\](.+)\\[/Code\\]#isU","cpp",$text);    //mod
 
 global $lang_common, $pun_user;

	if (strpos($text, 'quote') !== false)
	{
		$text = str_replace('[quote]', '</p><blockquote><div class="incqbox"><p>', $text);
		$text = preg_replace('#\\[quote=(&quot;|"|\\'|)(.*)\\\\1\\]#seU', '"</p><blockquote><div class=\\"incqbox\\"><h4>".str_replace(array(\\'[\\', \\'\\\\"\\'), array(\\'[\\', \\'"\\'), \\'$2\\')." ".$lang_common[\\'wrote\\'].":</h4><p>"', $text);
		$text = preg_replace('#\\[\\/quote\\]\\s*#', '</p></div></blockquote><p>', $text);
	}


Hors ligne


#23 

08-08-2009 16:09:27

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.255.159
Courriel

Effectivement, cela fonctionne mieux.

Là c'est cool, cela semble fonctionner. smile

Par contre, le code n'est pas dans un cadre à liserais sur les bord wink


Force et sagesse...

Hors ligne


#24 

08-08-2009 16:29:20

nico
Administrateurs
Avatar de nico
Date d'inscription:
Messages: 563
IP: 82.232.128.163
Courriel

Oui on y va doucement smile
je vais voir ce que je peut faire pour le cadre, il reste plus qu'a trouver le bon bleu parceque là on voit rien yikes
A dessuite.


Hors ligne


#25 

08-08-2009 16:41:55

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.255.159
Courriel

nico Ecris:

Oui on y va doucement smile

Tout à fait, surtout que c'est toi qui fait tout le boulot.

nico Ecris:

il reste plus qu'a trouver le bon bleu parceque là on voit rien yikes
A dessuite.

Oui, la soucis est de trouver des couleurs qui s'adapte au différents thèmes du forum (perso par exemple je suis en Mercury, donc
un fond plutôt gris).


Force et sagesse...

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
159 invités en ligne
membre en ligne: -
RSS Feed