Changeset 72623 in spip-zone


Ignore:
Timestamp:
May 7, 2013, 1:38:02 PM (7 years ago)
Author:
kent1@…
Message:

On revient sur le commit http://zone.spip.org/trac/spip-zone/changeset/54326 qui comme le disait cedric posait des problèmes de cache : cf http://contrib.spip.net/Table-des-Matieres#forum464853

Par contre, résolution du problème des urls arbos en traitant en js les urls qui posaient problème à cause du base href

On passe tous les éléments js en dur dans un fichier js externe en évitant de casser les retours de crayons en SPIP 3.0.x à cause des document.write

On ajoute une option tdm_flottante dans le formulaire de configuration (cf : http://contrib.spip.net/Table-des-Matieres#forum467667) à tester

Version 2.2.0

Location:
_plugins_/table_matieres/trunk
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/table_matieres/trunk/formulaires/configurer_table_matieres.html

    r54334 r72623  
    4040                                        <input type="text" name="min" class="text" size="4" value="#ENV{min,#EVAL{_MIN_ANCRE}}" />
    4141                                </li>
     42                                <li class="editer_tdm_flottante[ (#ENV**{erreurs}|table_valeur{tdm_flottante}|oui)erreur]">
     43                                        <label for="tdm_flottante"><:tdm:label_tdm_flottante:></label>
     44                                        [<span class='erreur'>(#ENV**{erreurs}|table_valeur{tdm_flottante})</span>]
     45                                        <p class='explications'><:tdm:explication_tdm_flottante:></p>
     46                                        <input type="checkbox" name="tdm_flottante" id="tdm_flottante" [checked="(#ENV{tdm_flottante}|=={on}|?{checked})"] value='on' />
     47                                </li>
    4248                        </ul>
    4349                        <p class="boutons">
  • _plugins_/table_matieres/trunk/lang/tdm_fr.php

    r69782 r72623  
    1212
    1313        // E
     14        'explication_tdm_flottante' => 'Lorsque la table des matières devient invisible lors du scroll de la page, celle-ci se positionne en haut de l\'écran afin d\'être constamment visible.',
    1415        'explication_longueur' => 'Définit le nombre de caractères maximum que constituera chaque ancres.',
    1516        'explication_min' => 'Définit le nombre minimal d\'intertitres d\'un texte à partir duquel une table des matières sera affichée.',
     
    1718
    1819        // L
     20        'label_tdm_flottante' => 'Table des matières flottante',
    1921        'longueur' => 'Longueur :',
    2022
  • _plugins_/table_matieres/trunk/paquet.xml

    r72554 r72623  
    22        prefix="tablematieres"
    33        categorie="edition"
    4         version="2.1.0"
     4        version="2.2.0"
    55        etat="stable"
    66        compatibilite="[2.0.0;3.0.99]"
     
    1818
    1919        <pipeline nom="declarer_tables_interfaces" inclure="tdm_pipelines.php" />
     20        <pipeline nom="jquery_plugins" inclure="tdm_pipelines.php" />
     21        <pipeline nom="insert_head" inclure="tdm_pipelines.php" />
    2022</paquet>
  • _plugins_/table_matieres/trunk/plugin.xml

    r72554 r72623  
    1212                </multi>
    1313        </slogan>
    14         <version>2.1.0</version>
     14        <version>2.2.0</version>
    1515        <prefix>tablematieres</prefix>
    1616        <fonctions>tablematieres_fonctions.php</fonctions>
     
    3333                <inclure>tdm_pipelines.php</inclure>
    3434        </pipeline>
     35        <pipeline>
     36                <nom>jquery_plugins</nom>
     37                <inclure>tdm_pipelines.php</inclure>
     38        </pipeline>
     39        <pipeline>
     40                <nom>insert_head</nom>
     41                <inclure>tdm_pipelines.php</inclure>
     42        </pipeline>
    3543</plugin>
  • _plugins_/table_matieres/trunk/tablematieres_fonctions.php

    r71375 r72623  
    22
    33if (!defined("_ECRIRE_INC_VERSION")) return;
    4 
    54
    65// tester la presence de CFG
     
    1110define('_SEP_ANCRE', isset($tm['sep']) ? $tm['sep'] : '-');
    1211define('_MIN_ANCRE', isset($tm['min']) ? $tm['min'] : 3);
    13 define('_RETOUR_TDM', '<a href="'.ancre_url($GLOBALS['REQUEST_URI'],'tdm').'" class="tdm"><img src="' .
     12define('_RETOUR_TDM', '<a href="#tdm" class="tdm"><img src="' .
    1413        find_in_path('images/tdm.png') .
    1514        '" /></a>');
     
    4140                $table_matieres = charger_fonction('table_matieres', 'inc');
    4241        }
    43        
    4442        return $table_matieres($texte, $retourner);
    4543}
     
    144142        );
    145143}
    146 
    147144
    148145/**
     
    191188        }
    192189
    193         return array($titre, $url);
    194 }
    195 
     190        return array($titre, strtolower($url));
     191}
    196192
    197193/**
     
    209205        return tdm_stocker_intertitre('');
    210206}
    211 
    212207
    213208/**
     
    233228}
    234229
    235 
    236 
    237230/**
    238231 * Remplace les @@RETOUR_TDM@@ laissés par les callback de recherche d'intertitres
     
    251244                _RETOUR_TDM);
    252245
    253         # Si demande en javascript... (pas tres propre, a refaire avec un js externe)
    254246        if (TDM_JAVASCRIPT AND !test_espace_prive() AND !_AJAX # crayons
    255247        ) {
    256                 $_RETOUR_TDM = '<script type="text/javascript"><!--
    257                 document.write("'.str_replace('"', '\\"', $_RETOUR_TDM).'");
    258                 --></script>';
    259         }
    260        
     248                $_RETOUR_TDM = '';
     249        }
    261250        return str_replace('@@RETOUR_TDM@@', $_RETOUR_TDM, $texte);
    262251}
    263 
    264252
    265253/**
     
    274262        $code = "";
    275263        foreach ($intertitres as $url=>$titre) {
    276                 $code .= "<li><a href='".ancre_url($GLOBALS['REQUEST_URI'],$url)."'>$titre</a></li>\n";
     264                spip_log(self(),'test.'._LOG_ERREUR);
     265                $code .= "<li><a href='#$url'>$titre</a></li>\n";
    277266        }
    278267
     
    283272        ));
    284273
    285         # version en javascript (pas tres propre, a refaire avec un js externe)
    286274        if (TDM_JAVASCRIPT AND $_table AND !test_espace_prive()
    287275        AND !_AJAX # crayons
    288276        ) {
    289277                $_table = inserer_attribut('<div class="encart"></div>',
    290                         'rel', $_table)
    291                         .'<script type="text/javascript"><!--
    292                         $("div.encart").html($("div.encart").attr("rel")).attr("rel","");
    293                         --></script>';
     278                        'rel', $_table);
    294279        }
    295280
     
    317302}
    318303
    319 
    320 
    321304?>
  • _plugins_/table_matieres/trunk/tdm_pipelines.php

    r72550 r72623  
    3232}
    3333
     34/**
     35 * Insertion dans le pipeline jquery_plugins (SPIP)
     36 *
     37 * Ajout du fichier javascript du plugin
     38 *
     39 * @param array $plugins
     40 *              Le tableau des js déjà insérés
     41 * @return array $plugins
     42 *              Le tableau des js complété
     43 */
     44function tablematieres_jquery_plugins($plugins){
     45        $plugins[] = 'javascript/table_matieres.js';
     46        return $plugins;
     47}
     48
     49/**
     50 * Insertion dans le pipeline insert_head (SPIP)
     51 *
     52 * @param string $flux
     53 *              Le contenu de la balise #INSERT_HEAD
     54 * @return string $flux
     55 *              Le contenu de la balise #INSERT_HEAD complétée         
     56 */
     57function tablematieres_insert_head($flux){
     58        include_spip('inc/config');
     59        $flux .= "<script type='text/javascript'>/* <![CDATA[ */
     60var tdm_retour = '".preg_replace(
     61                ',<img,i',
     62                '<img alt="' . _T('tdm:retour_table_matiere')
     63                .'" title="' . _T('tdm:retour_table_matiere') . '"',
     64                _RETOUR_TDM)."';
     65var tdm_flottante = ".((lire_config('table_matieres/tdm_flottante','off') == 'on') ? 'true': 'false').";
     66/* ]]> */</script>";
     67        return $flux;
     68}
    3469?>
Note: See TracChangeset for help on using the changeset viewer.