Changeset 42429 in spip-zone for _plugins_/boussole/inc/deboussoler.php


Ignore:
Timestamp:
Nov 21, 2010, 10:45:29 AM (10 years ago)
Author:
eric@…
Message:

Si la boussole existe déjà on la met à jour en conservant la configuration d'affichage.
Suppression d'un icone superflu
Mise au point des messages ok du formulaire d'ajout/actualisation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/boussole/inc/deboussoler.php

    r42421 r42429  
    77
    88/**
    9  * Ajout du depot et de ses extensions dans la base de donnees
     9 * Ajout de la boussole dans la base de donnees
    1010 *
    1111 * @param string $url
     
    1616// $url => url ou path du fichier xml de description de la boussole
    1717// $erreur      => message d'erreur deja traduit
    18 function boussole_ajouter($url, &$erreur='') {
     18function boussole_ajouter($url, &$message='') {
    1919
    2020        // On recupere les infos du fichier xml de description de la balise
    2121        $infos = boussole_parser_xml($url);
    2222        if (!infos OR !$infos['boussole']['alias']){
    23                 $erreur = _T('boussole:message_nok_xml_invalide', array('fichier' => $url));
     23                $message = _T('boussole:message_nok_xml_invalide', array('fichier' => $url));
    2424                return false;
    2525        }
    26         // On complete les infos de chaque site par l'id_syndic si ce site est deja reference
    27         // dans la table spip_syndic. On reconnait le site par son url
     26
     27        // On complete les infos de chaque site
     28        // - par l'id_syndic si ce site est deja reference dans la table spip_syndic.
     29        //   On reconnait le site par son url
     30        // - par la configuration de l'affichage si la boussole existe deja
    2831        foreach ($infos['sites'] as $_cle => $_info) {
    29                 // On construit deux urls : l'une avec / l'autre sans
     32                // -- On recherche l'id_syndic en construisant deux urls possibles : l'une avec / l'autre sans
    3033                $urls = array();
    3134                $urls[] = $_info['url_site'];
     
    3336                if ($id_syndic = sql_getfetsel('id_syndic', 'spip_syndic', sql_in('url_site', $urls)))
    3437                        $infos['sites'][$_cle]['id_syndic'] = intval($id_syndic);
     38                // -- On recherche une configuration d'affichage (si elle existe)
     39                $where = array('aka_boussole=' .sql_quote($infos['boussole']['alias']),
     40                                        'aka_site=' . sql_quote($_info['aka_site']));
     41                if ($resultats = sql_fetsel('rang_groupe, rang_site, affiche', 'spip_boussoles', $where)) {
     42                        $infos['sites'][$_cle]['rang_groupe'] = intval($resultats['rang_groupe']);
     43                        $infos['sites'][$_cle]['rang_site'] = intval($resultats['rang_site']);
     44                        $infos['sites'][$_cle]['affiche'] = $resultats['affiche'];
     45                }
    3546        }
    3647       
     
    3849        $meta_boussole = 'boussole_infos_' . $infos['boussole']['alias'];
    3950        // -- suppression au prealable des sites appartenant a la meme boussole si elle existe
    40         if (lire_meta($meta_boussole))
     51        //    et determination du type d'action (ajout ou actualisation)
     52        $actualisation = false;
     53        if (lire_meta($meta_boussole)) {
     54                $actualisation = true;
    4155                boussole_supprimer($infos['boussole']['alias']);
     56        }
    4257        // -- insertion de la nouvelle liste de sites pour cette boussole
    4358        if (!$ids = sql_insertq_multi('spip_boussoles', $infos['sites'])) {
    44                 $erreur = _T('boussole:message_nok_ecriture_bdd');
     59                $message = _T('boussole:message_nok_ecriture_bdd');
    4560                return false;
    4661        }
     
    4964        $infos['boussole']['xml'] = $url;
    5065        ecrire_meta($meta_boussole, serialize($infos['boussole']));
     66
     67        // On definit le message de retour ok (actualisation ou ajout)
     68        if ($actualisation)
     69                $message = _T('boussole:message_ok_boussole_actualisee', array('fichier' => $url));
     70        else
     71                $message = _T('boussole:message_ok_boussole_ajoutee', array('fichier' => $url));
    5172       
    5273        return true;
     
    5576
    5677/**
    57  * Suppression du depot et de ses extensions dans la base de donnees
     78 * Suppression de la boussole dans la base de donnees
    5879 *
    5980 * @param int $aka_boussole
Note: See TracChangeset for help on using the changeset viewer.