public function replication() { parent::check_privilege(); $datalist = $this->redis->get_replication_total_record(); if (empty($_GET["search"])) { $datalist = get_redis_replication_tree($datalist); } $setval["role"] = isset($_GET["role"]) ? $_GET["role"] : ""; $setval["order"] = isset($_GET["order"]) ? $_GET["order"] : ""; $setval["order_type"] = isset($_GET["order_type"]) ? $_GET["order_type"] : ""; $data["setval"] = $setval; $data['datalist'] = $datalist; $this->layout->view("redis/replication", $data); }
function get_redis_replication_tree($array, $server_id = 0, $level = 0) { $repeat = ' '; $str_repeat = ''; if ($level) { for ($j = 0; $j < $level; $j++) { $str_repeat .= $repeat; } } if ($level == 0) { $icon = "<i class='icon-list'></i>"; } else { $icon = "<i class='icon-refresh'></i>"; } $str_repeat = $str_repeat . $icon; $newarray = array(); $temparray = array(); foreach ((array) $array as $v) { if ($v['master_server_id'] == $server_id) { $host_v = $v['host']; $port_v = $v['port']; $server_id_v = $v['server_id']; $v['host'] = $str_repeat . $v['host']; $v['level'] = $level; $newarray[] = $v; $temparray = get_redis_replication_tree($array, $server_id_v, $level + 1); if ($temparray) { $newarray = array_merge($newarray, $temparray); } } } return $newarray; }