dixy / Connectix-Boards

Open source bulletin boards
3 stars 0 forks source link

Changement pour la coloration des codes PHP #4

Open MissGeek opened 12 years ago

MissGeek commented 12 years ago

comme tu l'as peut-être remarqué, la balise bbcode PHP utilise le fonction highlight_string pour la coloration syntaxique. La fonction en elle-même génère soit des , soit des selon la version de PHP utilisée, ce qui pouvait causer des problèmes de validité. De plus, puisque les codes de couleur sont utilisés à même le code, il devenait impossible de changer le fond des blocs d'affichage des codes puisque si on mettait un fond foncé, une partie du code devenait illisible, ce qui fait que l'on était obligé de garder le fond blanc même quand on utilise un style sombre, ce qui flashe assez mettons… Bien que Martin ait apporté des améliorations, il reste que je trouvais que ce n'est pas suffisant car l'attribut style était quand même utilisé juste après l'attribut class, ce qui pouvait poser des problèmes de priorité.

Je me suis donc inspirée de la façon de faire de phpBB3 pour faire cette modification que je viens de tester un local sur un CB 0.8 :

<div class="phpcode"><p>{--CONTENTS--}</p></div>
-noparse-
$c = str_replace("\r\n","\n",preg_replace('#color="(.*?)"#', 'class="php_$1"', preg_replace('#style="color: \#(.*?)"#','class="php_$1"', str_replace(array('000000','0000BB','FF8000','007700','DD0000'),array('default','var','comment','functions','string'),str_replace(array('<font ', '</font>'."\n", "'"),array('<span ', '</span>'."\n", '&#39;'), highlight_string(html_entity_decode(trim($c),ENT_QUOTES) ,true))))));

De cette façon, la coloration syntaxique pourra aisément être modifié avec le CSS, tout comme c'est le cas dans phpBB3 !

Donc c'est ce que je propose pour régler enfin le problème de lisibilité des codes lorsqu'on utilise un fond sombre.

Bien sûr, tu vas avoir des balises br si tu le testes sur une 0.8, donc il faudra le tester sur une copie de la 1.0 pour être certain qu'on n'a rien à modifier dans ce code.