Toc
Dernière modification : -
// 2007/08/04 00:50 / 86.220.199.82
Permettre d'ajouter à la demande une Table des matières automatique.
Voici les modifications à apporter à une version 2.21 :
par
ajouter :
ajouter
ajouter :
Permettre d'ajouter à la demande une Table des matières automatique.
Code
Voici les modifications à apporter à une version 2.21 :
- index.php
- création des ancres ligne 230 remplacer :
$CONTENT = preg_replace('/^!!!(.*)(\n)/Um', '<h1>$1</h1>$2', $CONTENT);
$CONTENT = preg_replace('/^!!(.*)(\n)/Um', '<h2>$1</h2>$2', $CONTENT);
$CONTENT = preg_replace('/^!(.*)(\n)/Um', '<h3>$1</h3>$2', $CONTENT);
par
$CONTENT = preg_replace('/^!!!(.*)$/Um', '<a name="$1"><h1>$1</h1></a>', $CONTENT);
$CONTENT = preg_replace('/^!!(.*)$/Um', '<a name="$1"><h2>$1</h2></a>', $CONTENT);
$CONTENT = preg_replace('/^!(.*)$/Um', '<a name="$1"><h3>$1</h3></a>', $CONTENT);
- calcul de la toc ligne 257 avant
$CONTENT = substr($CONTENT, 6, strlen($CONTENT) - 6);
ajouter :
// TOC
if (strpos($CONTENT,"TOC"))
{
$CONTENT = str_replace("TOC","",$CONTENT);
$nbAncres = preg_match_all('/<a name="(.+)">(.+)<\/a>/Ums',$CONTENT,$matches_ancres);
//~ print "<pre>".htmlentities(var_dump($matches_ancres,TRUE))."</pre>"; //DBG
$toc = "<div id=toc>";
for ($i=0;$i<$nbAncres;$i++) $toc .= '<a href="#'.$matches_ancres[1][$i].'">'.$matches_ancres[2][$i].'</a> ';
$toc .= "</div>";
}
else
$toc = "";
- remplacement dans le template, ligne 270 après
$html = preg_replace('/44.222.122.246/', $_SERVER['REMOTE_ADDR'], $html);
ajouter
$html = str_replace('', $toc, $html);
- template.html
- ligne 27 après :
<td id="mainContent" colspan="3">
ajouter :
<div id="toc"></div>
- style.css, ajouter :
/* Table Of Content */
#toc {
border: 1px dashed #11141A;
float:right;
padding-right: 2em;
}
#toc h1 {
font-size: 10px;
padding-left: .5em;
}
#toc h2 {
font-size: 9px;
padding-left: 1.5em;
}
#toc h3 {
font-size: 8px;
padding-left: 2em;
}
Todo
- ajouter une balise { { TOC } } dans le template
- ajouter un marqueur dans le code de la page pour activer sur cette page
TOC
- modifier les titres pour inclure → ok
<a name="Titre"><h1>Titre</h1></a>
- détecter tous les a name → ok
- générer la toc
-
en ligne ? - en boite flottante ? → oui (en css)
- hiérarchisée ? → oui
-