diff options
Diffstat (limited to 'api')
-rw-r--r-- | api/data.json.php | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/api/data.json.php b/api/data.json.php index 79ce772..83a284b 100644 --- a/api/data.json.php +++ b/api/data.json.php @@ -2,27 +2,27 @@ /** * Copyright 2016 Ludovic Pouzenc <ludovic@pouzenc.fr> * Copyright 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr> - * + * * This file is part of CHD Gestion. - * + * * CHD Gestion is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * CHD Gestion is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with CHD Gestion. If not, see <http://www.gnu.org/licenses/>. -**/ + **/ include_once('inc/config.php'); $mysqli = new mysqli($db_config['host'], $db_config['username'], $db_config['password'], $db_config['database']); if (mysqli_connect_errno()) { - die(mysqli_connect_error()); + die(mysqli_connect_error()); } unset($db_config); $mysqli->set_charset("utf8") or die($mysqli->error); @@ -41,59 +41,59 @@ AND date_hs IS NULL"); $roots = array(); $childrens = array(); while ( $row = $res->fetch_assoc() ) { - if ( ! array_key_exists($row['id'], $childrens) ) { - $childrens[$row['id']] = array(); - } - $row['children'] = &$childrens[$row['id']]; - $uplink_id = $row['uplink_id']; - unset($row['uplink_id']); - if ( $uplink_id !== NULL ) { - $childrens[$uplink_id][] = $row; - } else { - $roots[] = $row; - } + if ( ! array_key_exists($row['id'], $childrens) ) { + $childrens[$row['id']] = array(); + } + $row['children'] = &$childrens[$row['id']]; + $uplink_id = $row['uplink_id']; + unset($row['uplink_id']); + if ( $uplink_id !== NULL ) { + $childrens[$uplink_id][] = $row; + } else { + $roots[] = $row; + } } foreach ( $childrens as &$arr ) { - foreach ( $arr as &$node ) { - if ( array_key_exists('children', $node) && count($node['children']) === 0 ) { - unset($node['children']); - $node['size'] = 2000; - } - } + foreach ( $arr as &$node ) { + if ( array_key_exists('children', $node) && count($node['children']) === 0 ) { + unset($node['children']); + $node['size'] = 2000; + } + } } $orphans = array(); foreach ( $roots as $k => &$node ) { - if ( array_key_exists('children', $node) && count($node['children']) === 0 ) { - unset($node['children']); - $node['size'] = 1000; - $orphans[$k] = &$node; - } + if ( array_key_exists('children', $node) && count($node['children']) === 0 ) { + unset($node['children']); + $node['size'] = 1000; + $orphans[$k] = &$node; + } } // Remove orphans from $roots then rekey foreach ( array_keys($orphans) as $k ) { - unset($roots[$k]); + unset($roots[$k]); } $roots = array_values($roots); $orphans = array_values($orphans); -$world = array( - 'name' => 'world', - 'children' => array ( - array ( - 'name' => 'roots', - 'children' => &$roots - ), - array ( - 'name' => 'orphans', - 'children' => &$orphans - ), - ), +// Add the back-bone. +$world = array('name' => 'world', 'children' => array()); +$world['children'][] = array( + 'name' => 'Fibre', + 'children' => &$roots ); + +// Only add orphans if there is at least one of them to display. +if ($orphans) { + $world['children'][] = array( + 'name' => 'Orphelins', + 'children' => &$orphans + ); +}; /* -echo "<pre>\n"; -print_r($world); - */ + echo "<pre>\n"; + print_r($world); +*/ header('Content-type: application/json'); echo json_encode($world, JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT | JSON_PARTIAL_OUTPUT_ON_ERROR); - |