Changeset 43939 in spip-zone


Ignore:
Timestamp:
Jan 28, 2011, 8:27:36 PM (9 years ago)
Author:
joseph@…
Message:

Pouvoir indiquer qu'une noisette ne doit pas être ajaxifiée avec ajax: 'non' dans le YAML

Location:
_plugins_/noiZetier
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/noiZetier/balise/noizetier_afficher_noisette.php

    r43427 r43939  
    1111        $noisette = champ_sql('noisette', $p);
    1212        $parametres = champ_sql('parametres', $p);
     13       
     14        // As-ton demandé explicitement à ne pas ajaxifier ? #NOIZETIER_AFFICHER_NOISETTE{noajax}
    1315        $_ajax = 'true';
    14        
    1516        if (($v = interprete_argument_balise(1,$p))!==NULL)
    1617                $_ajax = 'false';
     
    2526                'noisettes/'.$noisette,
    2627                array_merge(unserialize($parametres), noizetier_choisir_contexte($noisette, $environnement)),
    27                 array('ajax'=>$_ajax)
     28                array('ajax'=>($_ajax && noizetier_ajaxifier_noisette($noisette)))
    2829        )";
    2930               
  • _plugins_/noiZetier/inc/noizetier.php

    r43830 r43939  
    55
    66
    7 
     7define('_CACHE_AJAX_NOISETTES', 'noisettes_ajax.php');
    88define('_CACHE_CONTEXTE_NOISETTES', 'noisettes_contextes.php');
    99define('_CACHE_DESCRIPTIONS_NOISETTES', 'noisettes_descriptions.php');
     
    5656        // seulement 1 fois par appel, on lit ou calcule tous les contextes
    5757        if ($noisettes === false) {
    58                 // lire le cache des contextes sauves
     58                // lire le cache des descriptions sauvées
    5959                lire_fichier_securise(_DIR_CACHE . _CACHE_DESCRIPTIONS_NOISETTES, $noisettes);
    6060                $noisettes = @unserialize($noisettes);
     
    139139                                $infos_noisette['contexte'] = array($infos_noisette['contexte']);
    140140                        }
    141 
     141                       
     142                        // ajax
     143                        if (!isset($infos_noisette['ajax'])) {
     144                                $infos_noisette['ajax'] = 'oui';
     145                        }
    142146                }
    143147
     
    570574}
    571575
     576/**
     577 * Retourne true ou false pour indiquer si la noisette doit être inclue en ajax
     578 *
     579 * @param
     580 * @return
     581**/
     582function noizetier_ajaxifier_noisette($noisette) {
     583        static $noisettes = false;
     584       
     585        // seulement 1 fois par appel, on lit ou calcule tous les contextes
     586        if ($noisettes === false) {
     587                // lire le cache des contextes sauves
     588                lire_fichier_securise(_DIR_CACHE . _CACHE_AJAX_NOISETTES, $noisettes);
     589                $noisettes = @unserialize($noisettes);
     590               
     591                // s'il en mode recalcul, on recalcule tous les contextes des noisettes trouvees.
     592                if (!$noisettes or (_request('var_mode') == 'recalcul')) {
     593                        include_spip('inc/noizetier');
     594                        $infos = noizetier_lister_noisettes();
     595                        $noisettes = array();
     596                        foreach ($infos as $cle_noisette => $infos) {
     597                                $noisettes[$cle_noisette] = ($infos['ajax'] == 'non') ? false : true ;
     598                        }
     599                        ecrire_fichier_securise(_DIR_CACHE . _CACHE_AJAX_NOISETTES, serialize($noisettes));
     600                }
     601        }
     602
     603        if (isset($noisettes[$noisette])) {
     604                return $noisettes[$noisette];
     605        }
     606       
     607        return true;
     608}
     609
    572610
    573611/**
  • _plugins_/noiZetier/plugin.xml

    r43830 r43939  
    33        <auteur>Joseph, Matthieu Marcillaud</auteur>
    44        <licence>GPL v3</licence>
    5         <version>0.9.3</version>
     5        <version>0.9.4</version>
    66        <version_base>0.3</version_base>
    77        <etat>test</etat>
Note: See TracChangeset for help on using the changeset viewer.