Browse Source

Choses qui était discutée sur spip-dev il y a quelques mois.

Option pour permettre que le liens de retour renvoient vers le haut du
sommaire plutôt que vers l'emplacement du titre dans le sommaire.
pull/3/head
Maïeul 9 months ago
parent
commit
9b4550a532
  1. 18
      formulaires/configurer_sommaire.html
  2. 3
      lang/sommaire_fr.php
  3. 2
      modeles/sommaire.html
  4. 8
      sommaire_fonctions.php

18
formulaires/configurer_sommaire.html

@ -73,6 +73,24 @@
</BOUCLE_niveaux>
</li>
#SET{name,sommaire_retour}#SET{obli,''}#SET{defaut,'titre'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label>[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
<span class='erreur_message'>(#GET{erreurs})</span>
]
#SET{val,titre}
<div class="choix">
<input type="radio" name="#GET{name}" class="radio" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
<label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
<br/>
</div>
#SET{val,haut}
<div class="choix">
<input type="radio" name="#GET{name}" class="radio" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
<label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
</div>
</li>
</ul>
<p class="boutons"><span class="image_loading">&nbsp;</span><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>

3
lang/sommaire_fr.php

@ -33,6 +33,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'label_sommaire_niveau_max_4' => '4 niveaux',
'label_sommaire_niveau_max_5' => '5 niveaux',
'label_sommaire_niveau_max_6' => '6 niveaux',
'label_sommaire_retour' => 'Lieu où renvoient les liens de retour',
'label_sommaire_retour_titre' => 'Au niveau de l\'emplacement du titre dans le sommaire',
'label_sommaire_retour_haut' => 'En haut du sommaire',
// S
'sommaire_titre' => 'Sommaire automatique',

2
modeles/sommaire.html

@ -3,7 +3,7 @@
#SET{liste, '#'}
]
<B_somm>
<div class="well nav-sommaire nav-sommaire-[(#ENV{sommaire}|count)]">
<div class="well nav-sommaire nav-sommaire-[(#ENV{sommaire}|count)]" id="sommaire">
<h2><:sommaire:titre_cadre_sommaire:></h2>
<BOUCLE_somm(POUR){tableau #ENV{sommaire}}>
-[(#GET{liste}|str_pad{#VALEUR{niveau},#GET{liste}})] [#VALEUR{id}<-][#VALEUR{titre}->#VALEUR{href}]</BOUCLE_somm>

8
sommaire_fonctions.php

@ -9,6 +9,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('inc/config');
/**
* Filtre |retire_sommaire
* pour retirer le sommaire automatique et les ancres d'un texte
@ -341,6 +342,7 @@ function sommaire_recenser(&$texte) {
$currentpos = 0;
$titleretour = attribut_html(_T('sommaire:titre_retour_sommaire'));
$retour = lire_config('sommaire_retour') ? lire_config('sommaire_retour') : 'titre';
foreach ($matches as $m) {
if (($pos = strpos($texte, $m[0], $currentpos)) !==false
and ($pos < $debutsommairedejala or $pos >= $finsommairedejala)) {
@ -355,8 +357,12 @@ function sommaire_recenser(&$texte) {
'href' => "#$ancre",
'id' => "s-$ancre"
);
if ($retour == 'titre') {
$lien_back = "<a class='sommaire-back' href='#s-$ancre' title='$titleretour'></a>";
} else {
$lien_back = "<a class='sommaire-back' href='#sommaire' title='$titleretour'></a>";
}
$lien_back = "<a class='sommaire-back' href='#s-$ancre' title='$titleretour'></a>";
$h = inserer_attribut($m[1], 'id', $ancre).retire_ancres_sommaire($m[3]).$lien_back.$m[4];
$texte = substr_replace($texte, $h, $pos, strlen($m[0]));
$currentpos = $pos + strlen($h);

Loading…
Cancel
Save