X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fecrire%2Fiterateur%2Fdata.php;h=2af35bccbc0fa9b0f37a8924fbc60ccc4725f813;hb=cc641eb476987612f6d6df1a5417c1c5582a8ab8;hp=46d20edd03aebdb4716a06d8385b9c83f3871ebe;hpb=a33c2ba9d919664b3bb0f565f8e9a8b9d8530cdb;p=lhc%2Fweb%2Fclavette_www.git diff --git a/www/ecrire/iterateur/data.php b/www/ecrire/iterateur/data.php index 46d20ed..2af35bc 100644 --- a/www/ecrire/iterateur/data.php +++ b/www/ecrire/iterateur/data.php @@ -3,7 +3,7 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2014 * + * Copyright (c) 2001-2016 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * @@ -411,7 +411,7 @@ class IterateurDATA implements Iterator { $a = '.sprintf($tv,'$aa').'; $b = '.sprintf($tv,'$bb').'; if ($a <> $b) - return ($a ' . ($r[2] ? '>' : '<').' $b) ? -1 : 1;'; + return ($a ' . ((isset($r[2]) and $r[2]) ? '>' : '<').' $b) ? -1 : 1;'; } } } @@ -518,7 +518,25 @@ function inc_plugins_to_array_dist() { * @return array */ function inc_xml_to_array_dist($u) { - return @ObjectToArray(new SimpleXmlIterator($u)); + return @XMLObjectToArray(new SimpleXmlIterator($u)); +} + +/** + * + * object -> tableau + * + * @param object $object The object to convert + * @return array + * + */ +function inc_object_to_array( $object ) { + if( !is_object( $object ) && !is_array( $object ) ) { + return $object; + } + if( is_object( $object ) ) { + $object = get_object_vars( $object ); + } + return array_map( 'inc_object_to_array', $object ); } /** @@ -535,7 +553,7 @@ function inc_yql_to_array_dist($u) { throw new Exception('YQL: réponse vide ou mal formée'); return false; } - return (array) $w; + return inc_object_to_array($w); } /** @@ -679,7 +697,7 @@ function inc_ls_to_array_dist($u) { * @param Object $object * @return array|bool */ -function ObjectToArray($object){ +function XMLObjectToArray($object){ $xml_array = array(); for( $object->rewind(); $object->valid(); $object->next() ) { if(array_key_exists($key = $object->key(), $xml_array)){ @@ -690,7 +708,7 @@ function ObjectToArray($object){ foreach($vars['@attributes'] as $k => $v) $xml_array[$key][$k] = $v; if($object->hasChildren()){ - $xml_array[$key][] = ObjectToArray( + $xml_array[$key][] = XMLObjectToArray( $object->current()); } else{