Changeset 53898 in spip-zone


Ignore:
Timestamp:
Oct 31, 2011, 11:59:26 AM (8 years ago)
Author:
rastapopoulos@…
Message:

get_enfants retourne désormais toujours le même format, triés par objet :
array(

'article' => array(1, 2, 3),
'patate' => array(2, 4, 6),

)

Le deuxième argument permet de filtrer pour ne renvoyer qu'un ou plusieurs types d'objets.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/polyhierarchie/branches/v2.0/inc/polyhier.php

    r53860 r53898  
    129129 * @param string $objet Un éventuel type d'objet
    130130 * @param string $serveur
    131  * @return array
     131 * @return array Retourne un tableau des enfants triés par objet : array('article' => array(1, 2, 3))
    132132 */
    133133function polyhier_get_enfants($id_parent, $objet='', $serveur=''){
     
    138138        $objets = sql_allfetsel("objet, id_objet","spip_rubriques_liens",$where,"","","","",$serveur);
    139139       
    140         // S'il n'y a pas de type on retourne tous les couples
    141         if (!$objet){
    142                 return $objets;
    143         }
    144         // S'il y a un type on retoure juste la liste des ID
     140        if (!$objets or !is_array($objets)){
     141                return array();
     142        }
    145143        else{
    146                 $ids = array();
     144                $objets_tries = array();
    147145                foreach ($objets as $couple){
    148                         if ($couple['objet'] == $objet){
    149                                 $ids[] = $couple['id_objet'];
     146                        // On ajoute que s'il n'y a pas de filtre, ou bien si le filtre correspond
     147                        if (!$objet or (is_string($objet) and $couple['objet'] == $objet) or (is_array($objet) and in_array($couple['objet'], $objet))){
     148                                if (isset($objets_tries[$couple['objet']])){
     149                                        $objets_tries[$couple['objet']][] = $couple['id_objet'];
     150                                }
     151                                else{
     152                                        $objets_tries[$couple['objet']] = array($couple['id_objet']);
     153                                }
    150154                        }
    151155                }
    152                 return $ids;
     156                return $objets_tries;
    153157        }
    154158}
Note: See TracChangeset for help on using the changeset viewer.