Changeset 74709 in spip-zone


Ignore:
Timestamp:
Aug 11, 2013, 6:24:47 PM (6 years ago)
Author:
eric@…
Message:

Ajout d'une page de gestion des fonctions serveur de boussole.
Reste encore à faire fonctionner l'action d'actualisation des caches et à synchroniser la fonction simplexml_to_array avec celle de SPIP car j'aime bien faire et refaire...

Location:
_plugins_/boussole/trunk
Files:
5 added
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/boussole/trunk/genie/boussole_actualiser_serveur.php

    r74701 r74709  
    55
    66        include_spip('inc/cacher');
    7 
    8         // Acquisition de la liste des boussoles disponibles sur le serveur.
    9         // (on sait déjà que le mode serveur est actif)
    10         $boussoles = $GLOBALS['serveur_boussoles_disponibles'];
    11         $boussoles = pipeline('declarer_boussoles', $boussoles);
    12 
    13         if ($boussoles) {
    14                 // Génération du cache de chaque boussole disponible pour l'action serveur_informer_boussole
    15                 foreach($boussoles as $_alias => $_infos) {
    16                         boussole_cacher_xml($_alias, $_infos['prefixe']);
    17                 }
    18 
    19                 // Génération du cache de la liste des boussoles disponibles pour l'action serveur_lister_boussoles
    20                 boussole_cacher_liste($boussoles);
    21         }
     7        boussole_actualiser_caches();
    228
    239        return 1;
  • _plugins_/boussole/trunk/inc/cacher.php

    r74701 r74709  
    55if (!defined('_BOUSSOLE_PATTERN_SHA'))
    66        define('_BOUSSOLE_PATTERN_SHA', '%sha_contenu%');
     7
     8
     9/**
     10 * Génération du cache de chaque boussole hébergée par le serveur et du cache de la liste
     11 * de ces boussoles.
     12 *
     13 * @package BOUSSOLE\Serveur
     14 * @api
     15 *
     16 * @return bool
     17 */
     18function boussole_actualiser_caches() {
     19
     20        // Acquisition de la liste des boussoles disponibles sur le serveur.
     21        // (on sait déjà que le mode serveur est actif)
     22        $boussoles = $GLOBALS['serveur_boussoles_disponibles'];
     23        $boussoles = pipeline('declarer_boussoles', $boussoles);
     24
     25        if ($boussoles) {
     26                // Génération du cache de chaque boussole disponible pour l'action serveur_informer_boussole
     27                foreach($boussoles as $_alias => $_infos) {
     28                        boussole_cacher_xml($_alias, $_infos['prefixe']);
     29                }
     30
     31                // Génération du cache de la liste des boussoles disponibles pour l'action serveur_lister_boussoles
     32                boussole_cacher_liste($boussoles);
     33        }
     34
     35        return true;
     36}
     37
    738
    839/**
     
    177208                $att_boussole['logo'] = url_absolue(find_in_path("images/boussole/boussole-${alias_boussole}.png"));
    178209                // -- insertion de la version du plugin comme version du xml
    179                 $att_boussole['version'] = acquerir_version($prefixe_plugin);
     210                $informer = charger_fonction('informer_plugin', 'inc');
     211                $infos_plugin = $informer($prefixe_plugin);
     212                $att_boussole['version'] = (isset($infos_plugin['version']) ? $infos_plugin['version'] : '');
    180213                // -- insertion de l'alias du serveur
    181214                $att_boussole['serveur'] = _BOUSSOLE_ALIAS_SERVEUR;
     
    368401
    369402/**
    370  * Récupération de la version d'un plugin connu par son préfixe.
    371  * Cette fonction reloade systématiquement le cache des plugins afin d'être sur
    372  * de lire la version à jour
    373  *
    374  * @package     BOUSSOLE\Outils
    375  *
    376  * @param $prefixe
    377  *
    378  * @return string
    379  */function acquerir_version($prefixe) {
    380 
    381         include_spip('inc/plugin');
    382         $prefixe = strtoupper($prefixe);
    383         $plugins_actifs = liste_plugin_actifs();
    384 
    385         if (!is_dir($plugins_actifs[$prefixe]['dir_type']))
    386                 $dir_plugins = constant($plugins_actifs[$prefixe]['dir_type']);
    387         else
    388                 $dir_plugins = $plugins_actifs[$prefixe]['dir_type'];
    389 
    390         $informer = charger_fonction('get_infos','plugins');
    391         $infos = $informer($plugins_actifs[$prefixe]['dir'], true, $dir_plugins);
    392         $version = (is_array($infos) AND isset($infos['version'])) ? $infos['version'] : '';
    393 
    394         return $version;
    395 }
    396 
    397 
    398 /**
    399403 * Insertion d'un balise ouvrante, fermante ou vide
    400404 *
  • _plugins_/boussole/trunk/lang/boussole_fr.php

    r70957 r74709  
    77
    88        // B
     9        'bouton_actualiser_caches' => 'Actualiser les caches',
    910        'bouton_boussole' => 'Boussole',
    1011        'bouton_supprimer' => 'Supprimer',
     
    2021        'colonne_titre' => 'Titre',
    2122        'colonne_version' => 'Version',
     23        'colonne_fichier_cache' => 'Cache',
     24        'colonne_description_cache' => 'Description',
     25        'colonne_prefixe_plugin' => 'Plugin ?',
    2226
    2327        // D
     
    3034        // I
    3135        'info_ajouter_boussole' => 'En ajoutant des boussoles à votre base de données, vous aurez la possiblité d\'utiliser les modèles fournis pour les afficher dans vos pages publiques.<br />Si la boussole existe déjà ce formulaire permettra de la mettre à jour en conservant la configuration d\'affichage.',
    32         'info_boite_boussoles_gerer' => '<strong>Cette page est uniquement accessible aux responsables du site.</strong><p>Elle permet l’ajout, la mise à jour et la suppression des boussoles. Il est aussi possible de se rendre sur la page de configuration de l\'affichage de chaque boussole.</p>',
     36        'info_boite_boussoles_gerer_client' => '<strong>Cette page est uniquement accessible aux responsables du site.</strong><p>Elle permet l’ajout, la mise à jour et la suppression des boussoles en base de données en vue de leur affichage sur ce site. Il est aussi possible de se rendre sur la page de configuration de l\'affichage de chaque boussole en cliquant sur son nom dans la liste.</p>',
     37        'info_boite_boussoles_gerer_serveur' => '<strong>Cette page est uniquement accessible aux responsables du site.</strong><p>Elle permet de mettre à jour manuellement le cache des boussoles hébergées par ce site serveur. Il est possible de télécharger les caches en cliquant sur leur nom dans la liste.</p>',
    3338        'info_configurer_boussole' => 'Ce formulaire vous permet de configurer l\'affichage de la boussole en choisissant les sites à afficher ou pas et l\'ordre d\'affichage dans un groupe. Les sites non affichés sont repérés par un fond hachuré et une police grise.',
    3439        'info_fichier_boussole' => 'Saisissez l\'url du fichier de description de votre boussole',
     40        'info_liste_aucun_cache' => 'Aucun cache n\'a encore été créé pour les boussoles hébérgées. Utilisez le bouton &#171;actualiser les caches&#187; pour les générer.',
    3541        'info_liste_aucune_boussole' => 'Aucune boussole n\'a encore été chargée dans votre base. Utilisez le formulaire ci-dessous pour en ajouter.',
    3642        'info_site_boussole' => 'Ce site fait partie de la boussole :',
    3743        'info_site_boussoles' => 'Ce site fait partie des boussoles :',
     44        'info_boussole_manuelle' => 'Manuelle',
     45        'info_cache_boussoles' => 'Cache des boussoles hébergées',
     46        'info_cache_boussole' => 'Cache de la boussole &#171;@boussole@&#187;',
    3847
    3948        // L
     
    95104
    96105        // O
     106        'onglet_client' => 'Fonction Client',
     107        'onglet_serveur' => 'Fonction Serveur',
    97108        'option_aucune_description' => 'Aucune description',
    98109        'option_descriptif_site' => 'Descriptif du site',
     
    107118        'titre_form_ajouter_boussole' => 'Ajouter ou mettre à jour une boussole',
    108119        'titre_formulaire_configurer' => 'Configuration de l\'affichage de la boussole',
    109         'titre_liste_boussoles' => 'Liste des boussoles disponibles',
     120        'titre_liste_boussoles' => 'Liste des boussoles disponibles à l\'affichage',
     121        'titre_liste_caches' => 'Liste des caches des boussoles hébergées',
    110122        'titre_page_boussole' => 'Gestion des boussoles'
    111123);
  • _plugins_/boussole/trunk/prive/squelettes/contenu/boussoles.html

    r62034 r74709  
    22<h1><:boussole:titre_page_boussole:></h1>
    33
    4 [(#REM) <!-- Liste des boussoles --> ]
    5 <INCLURE{fond=prive/squelettes/liste/boussoles,
    6         titre=<:boussole:titre_liste_boussoles:>,
    7         par=aka_boussole,
    8         pas=10,
    9         affichage=complet,
    10         env, ajax} />
     4[(#REM) <!-- Suivant la fonction client ou serveur affichée, le contenu est soit :
     5        - la liste des boussoles et le formulaire d'ajout/mise à jour (client)
     6        - la liste des caches pour les boussoles hébergées
     7 --> ]
    118
    12 [(#REM) <!-- Formulaire d'ajout ou de mise à jour manuelle d'une boussole --> ]
    13 <div class="noajax">
    14         #FORMULAIRE_AJOUTER_BOUSSOLE
    15 </div>
     9[(#ENV{fonction, client}|=={client}|oui)
     10        [(#REM) <!-- Liste des boussoles --> ]
     11        <INCLURE{fond=prive/squelettes/liste/boussoles,
     12                titre=<:boussole:titre_liste_boussoles:>,
     13                par=aka_boussole,
     14                pas=10,
     15                affichage=complet,
     16                env, ajax} />
     17
     18        [(#REM) <!-- Formulaire d'ajout ou de mise à jour manuelle d'une boussole --> ]
     19        <div class="noajax">
     20                #FORMULAIRE_AJOUTER_BOUSSOLE
     21        </div>
     22]
     23
     24[(#ENV{fonction, client}|=={serveur}|oui)
     25        <INCLURE{fond=prive/squelettes/liste/caches,
     26                titre=<:boussole:titre_liste_caches:>,
     27                par=maj,
     28                pas=10,
     29                env, ajax} />
     30]
  • _plugins_/boussole/trunk/prive/squelettes/navigation/boussoles.html

    r62046 r74709  
    1 #BOITE_OUVRIR{#CHEMIN_IMAGE{boussole_gerer-24.png}|balise_img{'',cadre-icone}, info}
    2         <:boussole:info_boite_boussoles_gerer:>
    3 #BOITE_FERMER
     1[(#REM) <!-- Boite d'information sur la fonction client ou serveur --> ]
     2[#BOITE_OUVRIR{#CHEMIN_IMAGE{boussole_gerer-24.png}|balise_img{'',cadre-icone}, info}
     3        (#VAL{boussole:info_boite_boussoles_gerer_}|concat{#ENV{fonction, client}}|_T)
     4        [(#ENV{fonction, client}|=={serveur}|oui)
     5                [(#BOUTON_ACTION{<:boussole:bouton_actualiser_caches:>, #URL_ACTION_AUTEUR{serveur_actualiser_caches, '', #SELF}, '', '', ''})]
     6        ]
     7#BOITE_FERMER]
     8
     9[(#REM) <!-- Menu des onglets "fonction client" et "fonction serveur"
     10        Ce menu n'est présent que si la fonction serveur est activée sur le site
     11        ce qui évite de changer l'interface pour les sites exclusivement client.
     12 --> ]
     13<BOUCLE_si_serveur(CONDITION){si #EVAL{_BOUSSOLE_ALIAS_SERVEUR}}>
     14<ul class="liste-items sous_navigation">
     15        <BOUCLE_navigation_fonctions(DATA){liste client, serveur}{par cle}>
     16        [<li class="item">
     17                (#URL_ECRIRE{#ENV{exec}}|parametre_url{fonction, #VALEUR}
     18                        |lien_ou_expose{
     19                                [(#VAL{boussole:onglet_}|concat{#VALEUR}|_T)],
     20                                [(#ENV{fonction, client}|=={#VALEUR})]})
     21        </li>]
     22        </BOUCLE_navigation_fonctions>
     23</ul>
     24</BOUCLE_si_serveur>
Note: See TracChangeset for help on using the changeset viewer.