Forum Programmation.php Aide sur la modification d'une fonction

Posté par  .
Étiquettes : aucune
0
6
juin
2008
Bonjour,

J'utilise WiKiss, et j'aimerais changer le résultat du remplacement des balises wiki des titres par leur équivalent HTML. Les séquences !, !! et !!! suivies d'un texte sont remplacées par h1, h2 et h3, et je voudrais que ce soit par h3, h4 et h5. Je ne suis abouti à rien de concluant... Un connaisseur de PHP saura-t-il m'aider ?

Le bout de code en question :
function name_title($matches) // replace titles
{global $titres;$titres[]=array(strlen($matches[1]),preg_replace("/[^\da-z]/i","_",$matches[2]),$matches[2]);$i=count($titres)-1;return "
$CONTENT = preg_replace_callback('/^(!+?)(.*)$/Um', "name_title", $CONTENT);
  • # Modifier la CSS...

    Posté par  . Évalué à 2.

    ...c'est bien aussi :)

    Bonjour,

    normalement, tu peux modifier la CSS pour qu'ils apparaissent comme tu veux, c'est plus portable car sinon tu est en trai de faire un fork, ce qui ne simplifiera pas les mises à jour.

    Sinon, sans être expert PHP, je pense qu'il faut que tu remplaces la commande:

    return "<h".$titres[$i][0]."><a...

    par:

    return "<h". ($titres[$i][0] + 2) ."><a...

    mais peut-être faut-il ajouter une conversion explicite int -> string après l'addition?
    • [^] # Re: Modifier la CSS...

      Posté par  . Évalué à 2.

      Super, ça marche parfaitement. Vu l'ampleur du "fork", je suis pret à le maintenir ;-)
      Merci pour le coup de pouce !
    • [^] # Re: Modifier la CSS...

      Posté par  . Évalué à 2.

      PS : modifier la CSS n'y ferait rien, c'est un problème de structure. Si on compte le titre du site (h1) et le titre de la page (h2), il ne me resterait alors plus qu'un niveau de titre pour le contenu, à moins de briser la sémantique et de mélanger allègrement les niveaux.
      • [^] # Re: Modifier la CSS...

        Posté par  . Évalué à 1.

        Je viens de jeter un oeil à la norme, il y à par défaut 6 niveaux, c'est déjà pas mal ?

        Sinon, une méthode serait d'utiliser les classes: pour tes titres, tu peux faire <h1 class="titre">, et dans la CSS:
        titre h1 { ... }
        • [^] # Re: Modifier la CSS...

          Posté par  . Évalué à 3.

          Oui mais... WiKiss ne donne accès qu'à 3 niveaux de titres, et dans mon template HTML j'utilise déjà les deux premiers niveaux d'une façon qui ne permet pas d'avoir d'autres h1 et h2 qui traînent.

          Après c'est sûr, tu peux maquiller le forfait avec une classe CSS, mais va donc faire comprendre ça à un robot, un lecteur d'écran, ou tout simplement à un navigateur qui ne prend pas en charge les CSS. J'utilise Links2 de temps en temps, et on voit tout de suite la différence entre un site bien construit sémantiquement et un site mal fichu.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.