Changeset 2340 in spip-zone


Ignore:
Timestamp:
Mar 11, 2006, 4:11:23 PM (14 years ago)
Author:
james@…
Message:

table des matières, ça progresse

Location:
_plugins_/_typo_/ancres_intertitres
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_typo_/ancres_intertitres/README.txt

    r1305 r2340  
    11Nom : ancres_intertitres
    2 Version : 0.1
    3 Version spip minimale requise : 1.9alpha
     2Version : 0.2
     3Version spip minimale requise : 1.9beta1
    44
    5 Objectif : ajouter des ancres html calculées en fonction du texte de l'intertitre. Fournir une balise pour afficher la "table des matieres" d'un article (contenu de #TEXTE)
     5Objectif : ajouter des ancres html calculees en fonction du texte de l'intertitre. Fournir une balise pour afficher la "table des matieres" d'un article (contenu de #TEXTE)
    66
    77Fonctionnement :
     
    1414
    1515- copier le repertoire ancres_intertitres dans le repertoire plugins de votre site spip.
    16 - creer un fichier ecrire/mes_options.php3 s'il n'existe pas
    17 - ajouter dans ce fichier les lignes :
    18 
    19 ---rien avant les lignes ci-dessous---
    20 <?php
    21 
    22 $plugins[] = 'ancres_intertitres';
    23 $plugins[] = 'ancres'; //plugin d'exemple de la distribution de spip
    24 
    25 ?>
    26 ---rien apres la ligne ci-dessus---
     16- activer le plugin via l'interface
    2717
    2818Utilisation : les intertitres seront calcules automatiquement. Pour afficher la table des matieres, ajouter la balise #TABLE_MATIERE dans votre squelette.
     
    3727(l'appel de #TEXTE calcule la table et les notes. L'astuce permet aussi d'eviter l'affichage des notes en double)
    3828
     29#TABLE_MATIERE affichera les ancres de la maniere suivante par defaut :
     30
     31- <a href="lienA">intertitreA</a><br />
     32- <a href="lienB">intertitreB</a><br />
     33
     34pour faire une belle noisettes
     35on peut parametrer la balise comme suit :
     36
     37[<div id="table_matiere">
     38        <h2><:table_matiere:></h2>
     39        <ul>
     40                (#TABLE_MATIERE{<li>,</li>})
     41        </ul>
     42</div>]
     43
     44ou <li> sera affiche avant chaque lien et </li> apres
     45
    3946ChangeLog :
    4047
    41482005-11-17 : version initiale 0.1
    42 
    43 Todo :
    44 
    45 - Trouver un moyen de remplir la table des matieres avant l'appel a la balise #TEXTE
     492006-03-11 : version 0.2, adaptation pour SPIP1.9b1 et parametrage du rendu
  • _plugins_/_typo_/ancres_intertitres/ancres_intertitres.php

    r2305 r2340  
    3939                return '{{{ ['.$url.'<-] '.$matches[1].' }}}';
    4040        }
     41       
    4142        function AncresIntertitres_table_matiere($mode = '', $url = '', $titre ='') {
    4243                static $tableau = array();
     
    4647        }
    4748       
    48         function AncresIntertitres_compose_table_matiere($cadre_lien,   $cadre_global, $table_matiere) {
     49        function AncresIntertitres_compose_table_matiere($table_matiere, $avant, $apres) {
    4950                $texte = '';
    5051                if(!empty($table_matiere))
    5152                        foreach($table_matiere as $url => $titre)
    52                                 $texte .= preg_replace(array(',@url@,', ',@titre@,'), array($url, $titre), $cadre_lien);
    53                 return $texte ? preg_replace(',@texte@,', $texte, $cadre_global) : ''
     53                                $texte .= $avant.'<a href="#'.$url.'">'.$titre.'</a>'.$apres."\n";
     54                return $texte
    5455        }
    5556 
  • _plugins_/_typo_/ancres_intertitres/mes_fonctions.php

    r2266 r2340  
    55        //
    66        function balise_TABLE_MATIERE_dist($p) {
     7                $b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
     8                if ($b === '') {
     9                        erreur_squelette(
     10                                _T('zbug_champ_hors_boucle',
     11                                        array('champ' => '#TABLE_MATIERE')
     12                                ), $p->id_boucle);
     13                        $p->code = "''";
     14                }
     15                elseif (!$p->param || $p->param[0][0]) {
     16                        $avant = "'- '";
     17                        $apres = "'<br />'";
     18                }
     19                else {
     20                        $avant =  calculer_liste($p->param[0][1],
     21                                $p->descr,
     22                                $p->boucles,
     23                                $p->id_boucle);
     24                        $apres =  calculer_liste($p->param[0][2],
     25                                $p->descr,
     26                                $p->boucles,
     27                                $p->id_boucle);
     28                }
    729                $p->code = "
    830                AncresIntertitres_compose_table_matiere(
    9                         '\t<li><a href=\"#@url@\">@titre@</a></li>\n',
    10                         '\n<ul>\n@texte@</ul>\n',
    11                         AncresIntertitres_table_matiere(\"retour\")
     31                        AncresIntertitres_table_matiere(\"retour\"),
     32                        $avant,
     33                        $apres
    1234                )";
     35                $p->interdire_script = true;
    1336                return $p;
    1437        }
Note: See TracChangeset for help on using the changeset viewer.