Merci à vous deux pour vos réponses plus rapides que l’éclair !
Donc, simplecotée cela veut dire qu’il est inutile de mettre des slash devant le " ?
En effet, cela semble marcher sans
Merci pour le lien sur le forum anglais.
Voici donc une suggestion de code avec un balisage css pour controler davantage la mise en forme, si cela vous semble correcte (modif en rouge) :
$e = &$modx->Event;
switch ($e->name) {
case "OnLoadWebDocument":
$o = &$modx->documentObject[’content’]; // Référence de la sortie
// récupération de tous les Npp {-NPP-}
if(preg_match_all( ’~\{-(.*?)\-\}~’ , $o, $tbl_npp)){
if($modx->config[’friendly_urls’] == 1){$page = $modx->documentObject[’alias’];}else {$page= ’index.php?id=’.$modx->documentObject[’id’];}
$tbl_npp1 = array_unique($tbl_npp[0]);
for($i=0;$i<count($tbl_npp1);$i++) {
$numbNote = $i+1;
$o = str_replace($tbl_npp1[$i],’<sup class="footnotes_number"><a href="’. $page.’#nb’.$numbNote.’" name="nh’.$numbNote.’">’.($i+1).’</a></sup>’,$o);
}
$npp .= ’<div id="footnotes_zone">
--- Notes ---’;
for($i=0;$i<count($tbl_npp1);$i++) {
$numbNote = $i+1;
$npp .= ’
[<a href="’. $page.’#nh’.$numbNote.’" name="nb’.$numbNote.’">’.($i+1).’</a>] ’.substr(substr($tbl_npp1[$i],2),0,strlen($tbl_npp1[$i])-4);
//$modx->documentObject[’footnotes’][$i]=substr(substr($tbl_npp1[$i],2),0,strlen($tbl_npp1[$i])-4);
}
$npp .= ’</div>’;
$o .= $npp;
}
else{
return;
}
break;
default :
return;
break;
}
J’ai pas osé aller plus loin, mais ça permet de styliser les appels et surtout de mettre en forme la zone de notes grâce au div (comme suggéré par guillaume sur le forum anglais).
Pour parfaire le tout côté css, je verrais bien trois petites améliorations supplémentaires, mais là j’ose pas tout casser...:
1) faire un hyperlien sur l’intégralité des notes (c’est-à-dire son n° et son texte) de sorte à cliquer sur une zone quelconque de la note (et non son seul N°) pour revenir à l’appel dans le texte. Cela suppose évidemment de styliser la balise <a> avec une class pour le N° [1] et une class pour le texte de la note proprement dit.
2) Prévoir (si c’est possible) que l’ancre ne replace pas directement sur l’appel de la note en haut de l’écran mais avec un léger décalage (c’est plus sympa pour la lecture ....et idéalement utiliser le scroll effect de Scriptaculous (mais là, je sais pas faire non plus...
3) permettre un affichage du texte de la note au survol de son numero (avec une infobulle CSS), puisque cela semble somme toute adapté pour un media Ecran (le tout restant exploitable pour une impression papier)
Bon, mais c’est déjà super ! Merci bp