Changeset 108475 in spip-zone


Ignore:
Timestamp:
Jan 12, 2018, 5:39:52 PM (3 years ago)
Author:
booz@…
Message:

compat spip 2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/convertisseur/trunk/spip-cli/convertisseurExporter.php

    r108469 r108475  
    287287        }
    288288}
     289
     290
     291// compat spip 2
     292if(!function_exists("calcul_hierarchie_in")){
     293        function calcul_hierarchie_in($id, $tout = true) {
     294               
     295                static $b = array();
     296               
     297                // normaliser $id qui a pu arriver comme un array, comme un entier, ou comme une chaine NN,NN,NN
     298                if (!is_array($id)) {
     299                        $id = explode(',', $id);
     300                }
     301                $id = join(',', array_map('intval', $id));
     302                if (isset($b[$id])) {
     303                        // Notre branche commence par la rubrique de depart si $tout=true
     304                        return $tout ? (strlen($b[$id]) ? $b[$id] . ",$id" : $id) : $b[$id];
     305                }
     306               
     307                $hier = "";
     308               
     309                // On ajoute une generation (les filles de la generation precedente)
     310                // jusqu'a epuisement, en se protegeant des references circulaires
     311               
     312                $ids_nouveaux_parents = $id;
     313                $maxiter = 10000;
     314                while ($maxiter-- and $parents = sql_allfetsel(
     315                        'id_parent',
     316                        'spip_rubriques',
     317                        sql_in('id_rubrique', $ids_nouveaux_parents) . " AND " . sql_in('id_parent', $hier, 'NOT')
     318                )) {
     319                        $ids_nouveaux_parents = join(',', array_map('reset', $parents));
     320                        $hier = $ids_nouveaux_parents . (strlen($hier) ? ',' . $hier : '');
     321                }
     322               
     323                # securite pour ne pas plomber la conso memoire sur les sites prolifiques
     324               
     325                if (strlen($hier) < 10000) {
     326                        $b[$id] = $hier;
     327                }
     328                // Notre branche commence par la rubrique de depart si $tout=true
     329                $hier = $tout ? (strlen($hier) ? "$hier,$id" : $id) : $hier;
     330                return $hier;
     331        }
     332}
Note: See TracChangeset for help on using the changeset viewer.