SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano

273 Plugins, 191 contribs sur SPIP-Zone, 60 visiteurs en ce moment

Accueil du site > Navigation > Hyperliens > VarianteContrib Ajouter-des-ID-aux-intertitres

VarianteContrib Ajouter-des-ID-aux-intertitres

24 octobre 2005

Appliquer ce filtre sur toutes les formes d’intertitres

[Erreur...3]Cette dernière nécessite de redéfinir les intertitres en <h2>...</h2>

[Erreur...5]Si le titre comporte des caractères non translittérable, on met ancreX (X étant le numéros de l’intertitre), de même si le titre est de moins de 2 caractères.

function ancres_intertitre($texte) {
       $regexp = "/{{{(.*?)}}}/";
       $texte = preg_replace_callback($regexp,'remplace_intertitre',$texte);
        $texte = avant_propre_ancres($texte); //on est obligé de le refaire ici, parce que dans inc_texte, c'est fait avant l'apel à avant_propre, bizarre.
       return $texte;
}

function remplace_intertitre ($matches) {
       static $cId = 0;
       global $sommaire_intertitre;
       $cId++;
        $url = translitteration(corriger_caracteres(
                supprimer_tags(supprimer_numero(extraire_multi($matches[1])))
                ));
        $url = @preg_replace(',[[:punct:][:space:]]+,u', ' ', $url);
        // S'il reste des caracteres non latins, utiliser l'id a la place
        if (preg_match(",[^a-zA-Z0-9 ],", $url)) {
          $url = "ancre$cId";
        }
        else {
                $mots = explode(' ', $url);
                $url = '';
                foreach ($mots as $mot) {
                        if (!$mot) continue;
                        $url2 = $url.'-'.$mot;
                        if (strlen($url2) > 35) {
                                break;
                        }
                        $url = $url2;
                }
                $url = substr($url, 1);
                //echo "$url<br>";
                if (strlen($url) < 2) $url = "ancre$cId";
        }
       $sommaire_intertitre[$url] = $matches[1];
        return '{{{ ['.$url.'<-] '.$matches[1].' }}}';
}

Puis dans le fichier mes_options.php3 :

  • si la fonction avant_propre n’existe pas, ajouter :
    function avant_propre($texte) {
     $texte =  ancres_intertitre($texte);
     return $texte;
    }
  • sinon, ajouter : $texte =  ancres_intertitre($texte); juste après la ligne function avant_propre($texte) {

De plus, à placer dans mes_fonctions.php3 cette fois :

[Erreur...11] function compose($tableau) $texte = ’’ ; foreach($tableau as $url => $lien) $texte .= « 

  •  ».$lien."
  • " ; return $texte ?"

      ".$texte."

    " :"" ;

    [Erreur...13]à revoir : l’utilisation d’une variable globale : éventuellement passer par une static dans une fonction appelée soit pour la composition, soit pour l’affichage. (à la mode de l’agenda_memo)

    et aussi. ça marche que si on affiche #TEXTE avant #SOMMAIRE_INTERTITRE, donc, faut trouver une solution plus générique


    (Stephane Deschamps) Tu as raison, c’est plus propre, et surtout ça génère du spip-code et pas un truc hybride comme notre contrib. Bien vu.

    Retour en haut de la page

    Répondre à cet article

    Qui êtes-vous ?

    Pour afficher votre trombine avec votre message, enregistrez-la d'abord sur gravatar.com (gratuit et indolore) et n'oubliez pas d'indiquer votre adresse e-mail ici.

    Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
    Ajouter un document

    Retour en haut de la page

    Ça discute par ici

    • Zpip-dist en HTML5

      15 juin 2010 – 10 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

      Une surcharge des squelettes Zpip-dist qui tire parti des nouvelles balises offertes par la spécification HTML5. Attention, ce plugin n’est plus compatible avec les nouvelles versions de Zpip, qui a connu plusieurs incompatibilités de nomenclature (...)

    • Une licence pour un article

      18 avril 2007 – 25 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

      Sur une idée originale de erational, voici un plugin permettant de lier une licence à un article.

    • Plugin Parrainage

      6 novembre 2011 – <blink style='color:red;'>public|spip|ecrire:commentaire</blink>

      Permettre aux utilisateurs d’inviter leurs contacts à s’inscrire sur le site. Description Vous connaissez le web moderne et son cortège d’applis toujours en version « beta » et de buzz sur le dernier réseau à la mode ? Vous voulez vous aussi vous y (...)

    • Formulaire de contact libre

      27 avril 2011 – 36 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

      Dans SPIP il n’y a pas un formulaire de contact, mais autant de formulaires de contact que d’auteurs. Cette phrase de Romy, dans son article Une page de contact dans mon SPIP, pointe un petit manque de SPIP. La possibilité d’insérer rapidement un (...)

    • Plugin Mot de Passe Compliqué

      2 novembre 2007 – 16 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

      Ce plugin ajoute un testeur de complexité de mot de passes dans les formulaires de choix de mot de passe de SPIP.