Changeset 88471 in spip-zone


Ignore:
Timestamp:
Apr 5, 2015, 11:40:00 AM (4 years ago)
Author:
eric@…
Message:

Optimiser l'actualisation des boussoles en proposant soit tout soit une liste de boussoles.
Utilisée dans l'importation de boussole.

Location:
_plugins_/boussole/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/boussole/trunk/formulaires/importer_boussole.php

    r88468 r88471  
    3535        $nb_sites = importer_sites_boussole($boussole, $id_parent, $langue_site, $forcer_statut_publie);
    3636        // Actualiser la boussole (en fait uniquement les id_syndic) maintenant que les sites référencés sont créés.
    37         // On utilise la fonction qui actualise toutes les boussoles même si ce n'est pas nécessaire pour les autres boussoles.
    3837        include_spip('inc/client');
    39         boussole_actualiser_boussoles();
     38        boussole_actualiser_boussoles(array($boussole));
    4039
    4140        if (!$nb_sites)
  • _plugins_/boussole/trunk/inc/client.php

    r88468 r88471  
    1010
    1111/**
    12  * Mise à jour en base de données de toutes les boussoles installées sur le site client.
    13  *
    14  * La fonction appelle, pour toutes les boussoles installées dans la base de données du site client,
     12 * Mise à jour en base de données d'une liste ou de toutes les boussoles installées sur le site client.
     13 *
     14 * La fonction appelle, pour toutes les boussoles identifiées dans la base de données du site client,
    1515 * l'api d'ajout/actualisation d'une boussole.
    1616 *
     
    1818 * @uses boussole_ajouter()
    1919 *
     20 * @param array $boussoles
     21 *              Tableau des alias des boussoles à actualiser ou tableau vide pour toutes les boussoles
     22 *
    2023 * @return void
    2124 */
    22 function boussole_actualiser_boussoles() {
    23 
    24         // Recherche des metas commençant par "boussole_infos" pour connaitre la liste des boussoles ajoutées par le client
    25         $boussoles_ajoutees = sql_allfetsel('valeur', 'spip_meta', array('nom LIKE ' . sql_quote('boussole_infos%')));
     25function boussole_actualiser_boussoles($boussoles=array()) {
     26
     27        if (!$boussoles) {
     28                // On doit actualiser toutes les balises
     29                // -> Recherche des metas commençant par "boussole_infos" pour connaitre la liste des boussoles ajoutées par le client
     30                $boussoles_ajoutees = sql_allfetsel('valeur', 'spip_meta', array('nom LIKE ' . sql_quote('boussole_infos%')));
     31        }
     32        else {
     33                $metas =array();
     34                foreach($boussoles as $_alias) {
     35                        $metas[] = 'boussole_infos_' . $_alias;
     36                }
     37                $boussoles_ajoutees = sql_allfetsel('valeur', 'spip_meta', sql_in('nom', $metas));
     38        }
     39
     40        // Traitement des boussoles identifiées
    2641        if ($boussoles_ajoutees) {
    2742                $infos = array_map('unserialize', array_map('reset', $boussoles_ajoutees));
Note: See TracChangeset for help on using the changeset viewer.