Changeset 74762 in spip-zone


Ignore:
Timestamp:
Aug 15, 2013, 9:02:53 AM (6 years ago)
Author:
eric@…
Message:

Utiliser la fonction inc_simplexml_to_array comme dans le core.
On garde pour l'instant la surcharge locale car la fonction du core n'est apparue qu'à partir de 3.0.10.

Location:
_plugins_/boussole/trunk
Files:
6 edited

Legend:

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

    r70579 r74762  
    6464
    6565                $convertir = charger_fonction('simplexml_to_array', 'inc');
    66                 $tableau = $convertir(simplexml_load_string($page), false);
     66                $converti = $convertir(simplexml_load_string($page), false);
     67                $tableau = $converti['root'];
    6768
    6869                if (isset($tableau['name'])
  • _plugins_/boussole/trunk/inc/cacher.php

    r74709 r74762  
    105105                                lire_fichier($fichier_xml, $xml);
    106106                                $convertir = charger_fonction('simplexml_to_array', 'inc');
    107                                 $tableau = $convertir(simplexml_load_string($xml), false);
     107                                $converti = $convertir(simplexml_load_string($xml), false);
     108                                $tableau = $converti['root'];
    108109
    109110                                if  (isset($tableau['name'])
     
    197198        lire_fichier($fichier_xml, $xml);
    198199        $convertir = charger_fonction('simplexml_to_array', 'inc');
    199         $tableau = $convertir(simplexml_load_string($xml), false);
     200        $converti = $convertir(simplexml_load_string($xml), false);
     201        $tableau = $converti['root'];
    200202
    201203        if  (isset($tableau['name'])
     
    286288        lire_fichier($fichier_xml, $xml);
    287289        $convertir = charger_fonction('simplexml_to_array', 'inc');
    288         $tableau = $convertir(simplexml_load_string($xml), false);
     290        $converti = $convertir(simplexml_load_string($xml), false);
     291        $tableau = $converti['root'];
    289292
    290293        if  (isset($tableau['name'])
  • _plugins_/boussole/trunk/inc/deboussoler.php

    r74760 r74762  
    169169
    170170        $convertir = charger_fonction('simplexml_to_array', 'inc');
    171         $tableau = $convertir(simplexml_load_string($page), false);
     171        $converti = $convertir(simplexml_load_string($page), false);
     172        $tableau = $converti['root'];
    172173
    173174        if (isset($tableau['name'])
  • _plugins_/boussole/trunk/inc/simplexml_to_array.php

    r74701 r74762  
    55
    66/**
     7 * Transforme un texte XML en tableau PHP
     8 *
     9 * @package BOUSSOLE\Outils
     10 *
     11 * @param string|object $u
     12 * @param bool $utiliser_namespace
     13 * @return array
     14 */
     15function inc_simplexml_to_array_dist($u, $utiliser_namespace=false){
     16        // decoder la chaine en SimpleXML si pas deja fait
     17        if (is_string($u))
     18                $u = simplexml_load_string($u);
     19        return array('root'=>@xmlObjToArr($u, $utiliser_namespace));
     20}
     21
     22
     23/**
    724 * Transforme un objet SimpleXML en tableau PHP
     25 * http://www.php.net/manual/pt_BR/book.simplexml.php#108688
     26 * xaviered at gmail dot com 17-May-2012 07:00
    827 *
    9  * @package     BOUSSOLE\Outils
     28 * @package BOUSSOLE\Outils
    1029 *
    1130 * @param object $obj
    12  *
     31 * @param bool $utiliser_namespace
    1332 * @return array
    1433**/
    15 // http://www.php.net/manual/pt_BR/book.simplexml.php#108688
    16 // xaviered at gmail dot com 17-May-2012 07:00
    17 function inc_simplexml_to_array_dist($obj, $utiliser_namespace='false') {
     34function xmlObjToArr($obj, $utiliser_namespace=false) {
    1835
    1936        $tableau = array();
     
    2239        // de l'activer ou pas suivant le contenu supposé du XML
    2340        if (is_object($obj)) {
    24                 if ($utiliser_namespace)
    25                         $namespace = $obj->getDocNamespaces(true);
    26                 $namespace[NULL] = NULL;
     41                if (is_array($utiliser_namespace)){
     42                        $namespace = $utiliser_namespace;
     43                }
     44                else {
     45                        if ($utiliser_namespace)
     46                                $namespace = $obj->getDocNamespaces(true);
     47                        $namespace[NULL] = NULL;
     48                }
    2749
    2850                $name = strtolower((string)$obj->getName());
     
    5577                                        $childName = $ns.':'.$childName;
    5678                                }
    57                                 $children[$childName][] = inc_simplexml_to_array_dist($child);
     79                                $children[$childName][] = xmlObjToArr($child, $namespace);
    5880                        }
    5981                }
     
    6183                $tableau = array(
    6284                        'name'=>$name,
    63                         'text'=>$text,
    64                         'attributes'=>$attributes,
    65                         'children'=>$children
    6685                );
     86                if ($text)
     87                        $tableau['text'] = $text;
     88                if ($attributes)
     89                        $tableau['attributes'] = $attributes;
     90                if ($children)
     91                        $tableau['children'] = $children;
    6792        }
    6893
  • _plugins_/boussole/trunk/paquet.xml

    r74761 r74762  
    22        prefix="boussole"
    33        categorie="navigation"
    4         version="2.1.4"
     4        version="2.1.5"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.0.*]"
  • _plugins_/boussole/trunk/prive/squelettes/liste/caches_fonctions.php

    r74709 r74762  
    2323                        lire_fichier($_fichier, $contenu);
    2424                        $convertir = charger_fonction('simplexml_to_array', 'inc');
    25                         $tableau = $convertir(simplexml_load_string($contenu), false);
     25                        $converti = $convertir(simplexml_load_string($contenu), false);
     26                        $tableau = $converti['root'];
    2627                        if ($cache['nom'] == 'boussoles.xml') {
    2728                                // C'est le cache qui liste les boussoles hébergées
Note: See TracChangeset for help on using the changeset viewer.