Suite à mon dernier post j'ai recherché un colorisateur syntaxique pour enjolivé la présentation de ce cher petit blog. Un plugins existe pour dotclear magnifique donc ! Mais celui-ci me pose un problème très rapidement. Il faut absolument mettre l'ouverture et la fermeture de code php pour qu'il colorise ce fameux langage.

Après une petite recherche googléenne, j'ai trouvé ce blog qui parle de ce problème et d'autres.

J'ai donc décider d'améliorer tout ça !

Voici la méthode à suivre pour corrigé l'affichage des . Il faut modifier le fichier ecrire/tools/syntaxhl/functions.php ligne 33

  1. $language = preg_replace('/.*[(.*)].*/si', '\\1', $matches[1][$i]);

par

  1. $language = preg_replace('/.*[([a-z]*)].*/si', '\\1', $matches[1][$i]);

Ensuite pour pouvoir coloriser le php sans avoir à mettre <?php et ?> il faut aujouter dans le fichier ecrire/tools/syntaxhl/geshi/php.php aux lignes suivantes :

Ligne 261 :

  1. 4 => array(
  2. '@?php', 'php?@'
  3. )

Ne pas oublier la virgule dernière la parenthèse fermente ligne 260 :

ligne 273 :

  1. 4 => false

Ne pas oublier la virgule dernière false pour la ligne précédente. Ligne 280 :

  1. 4 => 'display: none;'

Pensez toujours à la virgule... Ligne 314&nbsp;:

  1. 4 => ''

Et notre virgule favorite ! Ligne 345 :

  1. 4 => array(
  2. '@?php' => 'php?@'
  3. )

Sans oublier vous savez qui. Et finalement ligne 354 :

  1. 4 => true

Et la dernière petite chérie juste au dessus.

Voilà c'est fait ! mais qu'est ce qu'on à fait ? On a ajouter à php (pour la colorisation syntaxique !) un nouveau code d'ouverture @?php et un nouveau code de fermeture php?@ qui ont la particularité d'avoir un style appliqué à display:none.

Ainsi vous pourrez indiquer au colorisateur syntaxique de coloriser façon php tout ce qui se trouve entre @?php et php?@ sans que ces derniers n'apparaissent à l'écran. Magnifique non ?