Changeset 70354 in spip-zone


Ignore:
Timestamp:
Mar 3, 2013, 2:17:33 PM (6 years ago)
Author:
eric@…
Message:

Mise à jour du filtre boussole_traduire() pour aller chercher les informations en bdd.
Renommage des globales

Location:
_plugins_/boussole/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/boussole/trunk/boussole_fonctions.php

    r62034 r70354  
    5555 * Renvoie la traduction d'un champ d'une boussole, d'un groupe ou d'un site
    5656 *
     57 * @api
     58 *
    5759 * @param string $aka_boussole  alias de la boussole
    5860 * @param string $champ                 champ a traduire
     
    6163 */
    6264function boussole_traduire($aka_boussole, $champ, $alias='') {
    63         if ($champ == 'non')
    64                 return false;
    65         $champs_boussole = array('nom_boussole', 'slogan_boussole','descriptif_boussole', 'titre_actualite');
    66         $champs_groupe_site = array('nom_groupe', 'nom_site', 'slogan_site', 'nom_slogan_site', 'descriptif_site');
     65        static  $champs_boussole = array('nom_boussole', 'slogan_boussole', 'descriptif_boussole');
     66        static  $champs_groupe = array('nom_groupe');
     67        static  $champs_site = array('nom_site', 'slogan_site', 'descriptif_site');
    6768
    6869        $traduction = '';
     70
     71        if ($champ == '')
     72                return $traduction;
     73
     74
     75        // Détermination de la traduction à rechercher dans les extras de boussole
    6976        if ($aka_boussole) {
    70                 if (in_array($champ, $champs_boussole))
    71                         $traduction = _T('boussole:' . $champ . '_' . $aka_boussole);
    72                 elseif (in_array($champ, $champs_groupe_site))
    73                         if ($champ != 'nom_slogan_site')
    74                                 $traduction = _T('boussole:' . $champ . '_' . $aka_boussole . '_' . $alias);
    75                         else
    76                                 $traduction = _T('boussole:nom_site_' . $aka_boussole . '_' . $alias) . ' - ' .
    77                                                           _T('boussole:slogan_site_' . $aka_boussole . '_' . $alias);
     77                if (in_array($champ, $champs_boussole)) {
     78                        $type_objet = 'boussole';
     79                        $aka_objet = $aka_boussole;
     80                        $info = str_replace('boussole', 'objet', $champ);
     81                }
     82                elseif (in_array($champ, $champs_groupe)) {
     83                        $type_objet = 'groupe';
     84                        $aka_objet = $alias;
     85                        $info = str_replace('groupe', 'objet', $champ);
     86                }
     87                elseif (in_array($champ, $champs_site)) {
     88                        $type_objet = 'site';
     89                        $aka_objet = $alias;
     90                        $info = str_replace('site', 'objet', $champ);
     91                }
     92                elseif ($champ == 'nom_slogan_site') {
     93                        $type_objet = 'site';
     94                        $aka_objet = $alias;
     95                        $info = array('nom_objet', 'slogan_objet');
     96                }
     97                else
     98                        return $traduction;
    7899        }
     100
     101        // Accès à la table boussoles_extras où sont stockées les traductions
     102        $where = array(
     103                'aka_boussole=' . sql_quote($aka_boussole),
     104                'type_objet=' . sql_quote($type_objet),
     105                'aka_objet=' . sql_quote($aka_objet));
     106        $traductions = sql_fetsel($info, 'spip_boussoles_extras', $where);
     107        if (count($traductions) == 1)
     108                $traduction = extraire_multi($traductions[$info]);
     109        else if (count($traductions) == 2)
     110                $traduction = extraire_multi($traductions['nom_objet']) . '-' . extraire_multi($traductions['slogan_objet']);
    79111
    80112        return $traduction;
  • _plugins_/boussole/trunk/boussole_options.php

    r70346 r70354  
    11<?php
    22
    3 $GLOBALS['serveurs_boussoles'] = array(
    4         'spip' => 'http://localhost/BOUSSOLE/spip.php?action=serveur_informer_boussole&arg=[arguments]'
     3$GLOBALS['client_serveurs_disponibles'] = array(
     4        'spip' => array('apip' => 'http://localhost/BOUSSOLE/spip.php?action=[action]&arg=[arguments]')
    55);
    6 $GLOBALS['boussoles_disponibles'] = array();
     6$GLOBALS['serveur_boussoles_disponibles'] = array();
    77
    88?>
  • _plugins_/boussole/trunk/inc/deboussoler.php

    r70350 r70354  
    116116 */
    117117function phraser_xml_boussole($boussole, $serveur='spip') {
    118         global $serveurs_boussoles;
     118        global $client_serveurs_disponibles;
    119119
    120120        $infos = array();
     
    122122        // Acquérir les informations de la boussole à partir du serveur
    123123        include_spip('inc/distant');
    124         $action = str_replace('[arguments]', $boussole, $serveurs_boussoles[$serveur]);
     124        $action = str_replace(
     125                                array('[action]','[arguments]'),
     126                                array('serveur_informer_boussole', $boussole),
     127                                $client_serveurs_disponibles[$serveur]['api']);
    125128        $page = recuperer_page($action);
    126129
     
    128131        $tableau = $convertir(simplexml_load_string($page), false);
    129132
    130         if ($tableau['name'] == 'boussole') {
     133        if (isset($tableau['name'])
     134        AND ($tableau['name'] == 'boussole')) {
    131135                $infos['sites'] = array();
    132136                $infos['extras'] = array();
Note: See TracChangeset for help on using the changeset viewer.