sessionname); session_start(); } while (ob_get_level() > 0) { @ob_end_clean(); } header('Content-Type: application/json; charset=utf-8'); if (empty($_SESSION['usersession'])) { http_response_code(401); echo json_encode(array('code' => '0', 'msg' => 'Sesión no válida'), JSON_UNESCAPED_UNICODE); exit; } $user = json_decode($_SESSION['usersession']); if (!$user || empty($user->userid)) { echo json_encode(array('code' => '0', 'msg' => 'Sesión no válida'), JSON_UNESCAPED_UNICODE); exit; } $sql = "SELECT asignacion.id, asignacion.uid, asignacion.catid, categoria.clave, categoria.nombre, categoria.imagen, categoria.descripcion FROM asignacion INNER JOIN categoria ON asignacion.catid = categoria.id WHERE asignacion.uid = $user->userid AND categoria.habilitado = 1 ORDER BY categoria.order_desc asc "; $return = new stdClass(); $return->user = $user; global $link; dbConnect(); $result = mysqli_query($link, $sql); if ( mysqli_num_rows($result) <= 0 ) { $return->code = "0"; $return->msg="Sin cursos asignados"; echo json_encode($return, JSON_UNESCAPED_UNICODE); exit; } $return->code = "1"; $return->msg="Cursos asignados"; while ($row = mysqli_fetch_assoc ($result)){ $img = trim((string)$row["imagen"]); if ($img !== '' && !preg_match('~^(https?:)?//~i', $img)) { $img = rtrim($CFG->wwwroot, '/') . '/' . ltrim($img, '/'); } $row["imagen"] = $img; $return->padre[] = $row; } $padreIds = array(); foreach ($return->padre as $value) { if (isset($value["catid"])) { $padreIds[] = (int)$value["catid"]; } } $padreIds = array_values(array_unique($padreIds)); $hijosPorPadre = array(); if (count($padreIds)) { $sql = "SELECT categoria.id, categoria.clave, categoria.padre, categoria.nombre, categoria.imagen, categoria.descripcion FROM categoria WHERE categoria.habilitado = 1 AND categoria.padre IN (" . implode(',', $padreIds) . ") ORDER BY categoria.order_desc ASC"; $resultHijos = mysqli_query($link, $sql); while ($row = mysqli_fetch_assoc($resultHijos)) { $img = trim((string)$row["imagen"]); if ($img !== '' && !preg_match('~^(https?:)?//~i', $img)) { $img = rtrim($CFG->wwwroot, '/') . '/' . ltrim($img, '/'); } $row["imagen"] = $img; $hijosPorPadre[(int)$row["padre"]][] = $row; } } foreach ($return->padre as $key => $value) { $pid = isset($value["catid"]) ? (int)$value["catid"] : 0; $return->padre[$key]["hijos"] = isset($hijosPorPadre[$pid]) ? $hijosPorPadre[$pid] : array(); } echo json_encode($return, JSON_UNESCAPED_UNICODE); exit; ?>