From e59eb45da78c8619591e5d6084389161f8248c4b Mon Sep 17 00:00:00 2001 From: humano Date: Sat, 13 Oct 2018 21:26:34 -0500 Subject: [PATCH] mejoras api REST --- funciones/funciones.php | 86 ++++++++++++++++++++++++++++----- rest/public/index.php | 1 + rest/src/rutas/aplicaciones.php | 35 +++++++++++--- 3 files changed, 102 insertions(+), 20 deletions(-) diff --git a/funciones/funciones.php b/funciones/funciones.php index e68386f..3c76c5a 100644 --- a/funciones/funciones.php +++ b/funciones/funciones.php @@ -5494,7 +5494,7 @@ if (mysqli_num_rows($sql)!='0'){ $resultado ="
"; while( $row = mysqli_fetch_array( $sql ) ) { - $descripcion =substr($row[descripcion],0, $length = 80); + $descripcion =substr($row['descripcion'],0, $length = 80); $caracteres = strlen("$descripcion"); if($caracteres > 80) { $descripcion= "$descripcion ... ";} $resultado .= " "; @@ -7378,6 +7378,7 @@ $sql = mysqli_query($link,$consulta) or die("Error al ejecutar consulta 02 "); $campo_titulo = remplacetas('form_parametrizacion','campo',$id_form,'descripcion'," tabla='form_id' and opcion = 'titulo'") ; $campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ; +//$array["consulta"] = "$consulta"; $array["identificador"] = "$identificador"; $array["id_aplicacion"] = "$id_form"; //$array["consulta_form"] = "$id_form[2]"; @@ -7396,6 +7397,16 @@ while($row = mysqli_fetch_array( $sql )) $contenido_multiple = formulario_valor_campo("$row[form_id]","$id_campo[0]","","$identificador",'',"$row[timestamp]"); $contenido[0] = $contenido_multiple[9];} else{ $contenido = remplacetas_orden('form_datos','id_campo',$row["id_campo"],'contenido'," control = '$identificador'"," ORDER BY timestamp DESC ") ;} + $contenido[0] =stripslashes($contenido[0]); + $contenido[0] =stripslashes($contenido[0]); + $contenido[0] =stripslashes($contenido[0]); + $is_json = isJson($contenido[0]); + if($is_json == '1'){ + $cadena='{"a":1,"b":2,"c":3,"d":4,"e":5}'; + $contenido[0] = json_decode($contenido[0]); + }else{} + //$contenido[0] = "$contenido[0] $is_json "; + //$contenido[0] = json_encode($contenido,true,512); $nombre_campo = remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ; // $valor_actual = imprimir_buscador_campo("$id_campo","$row[contenido]",'buscador_drop'); if($campo_tipo[0]=='10'){ @@ -7434,7 +7445,7 @@ while($row = mysqli_fetch_array( $sql )) //$array[id_campo] = $row[id_campo]; if($id_campo[0] == $campo_titulo[0] or $nombre_campo[0] == 'Titulo' ) { - $array['title'] = strip_tags(html_entity_decode("$contenido[0]")); + $array['title'] = strip_tags(html_entity_decode($contenido[0])); } //// PRIVACIDAD $privado = remplacetas('form_parametrizacion','campo',"$row[form_id]",'opcion'," tabla='form_id' AND descripcion ='$id_campo[0]' AND opcion REGEXP '^privacidad:' ") ; @@ -7442,7 +7453,7 @@ while($row = mysqli_fetch_array( $sql )) $privado = @$privado[1]; /// PRIVACIDAD if($privado !='1') { - $array[$nombre_campo[0]] = html_entity_decode("$contenido[0]"); + $array[$nombre_campo[0]] = $contenido[0];//html_entity_decode($contenido[0]); //$array['consulta'] = "$contenido[2]"; $uri = "$_SESSION[site]I$identificador"; $array['url'] = "$uri"; @@ -7463,6 +7474,12 @@ $array["responder"]= $contenido_respuestas;//"$contenido_respuestas $row[control return $array; } +function isJson($str) { + $json = json_decode($str); + return (json_last_error() === JSON_ERROR_NONE); +} + + function array_respuestas($id,$identificador,$plantilla) { if($id=='') {return;} $id = mysql_seguridad($id); @@ -11432,7 +11449,7 @@ mysqli_set_charset($link, "utf8"); $nuevos_datos = $datos; $nuevos_datos["identificador"]="$row[control]"; $nuevos_datos["tipo"]="array"; - $features[] = datos_array($row["control"],"$datos[id]","") ; + $features[$row['control']][] = datos_array($row["control"],"$datos[id]","") ; //$features['consulta'] = $consulta; } else { @@ -11448,6 +11465,7 @@ mysqli_set_charset($link, "utf8"); }else{} if($datos["tipo"] == "array" ) { + $resultado = $features; }else { @@ -11473,13 +11491,14 @@ mysqli_set_charset($link, "utf8"); } elseif($datos["identificador"] !=''){ - if($datos["tipo"] =='simple') {$campos ="form_campos.id as id_campo, form_datos.id as id_dato " ;} + if($datos["tipo"] =='simple') { + $campos ="form_campos.id as id_campo, form_datos.id as id_dato " ;} else {$campos ="form_datos.id as id_dato, form_datos.form_id AS id_formulario, nombre as formulario, campo_nombre, form_campos.id AS id_campo ,contenido ,timestamp, control as identificador , form_datos.orden" ;} - $consulta = "SELECT $campos + $consulta = "SELECT $campos,form_datos.control FROM `form_datos` , `form_campos` ,form_id WHERE form_datos.id_campo = `form_campos`.id AND form_datos.form_id = `form_id`.id @@ -11494,7 +11513,8 @@ mysqli_set_charset($link, "utf8"); id_formulario, nombre as formulario, nombre as formulario, campo_nombre, form_campos.id AS id_campo ,contenido ,timestamp, control as identificador, form_datos.orden" ;} - $consulta = "SELECT $campos + + $consulta = "SELECT $campos,form_datos.control FROM `form_datos` , `form_campos` ,form_id WHERE form_datos.id_campo = `form_campos`.id AND form_datos.form_id = `form_id`.id @@ -11514,7 +11534,7 @@ $sql = mysqli_query($link,$consulta) or die("Error al ejecutar consulta 04 $cons if (mysqli_num_rows($sql)!='0'){ $i = 1; $features = array(); -$mostrar = mostrar_areas($datos['id'],"","","api"); +//$mostrar = mostrar_areas($datos['id'],"","","api"); //$mostrar .= " identificador $datos[identificador] "; //print_r($consulta); // $features[] = $consulta; @@ -11533,11 +11553,23 @@ $mostrar = mostrar_areas($datos['id'],"","","api"); if($datos['tipo']=="simple"){ $contenido = remplacetas('form_datos','id',$row["id_dato"],'contenido',"") ; //$resultado[0]=str_replace('\n','
',$resultado[0]); - $contenido_limpio = html_entity_decode("$contenido[0]"); + + $contenido[0] =stripslashes($contenido[0]); + $is_json = isJson($contenido[0]); + if($is_json == '1'){ + ///$cadena='{"a":1,"b":2,"c":3,"d":4,"e":5}'; + + $contenido[0] = json_decode($contenido[0]); + }else{} + + + + $contenido_limpio = $contenido[0]; $id_campo = remplacetas('form_datos','id',$row["id_dato"],'id_campo',"") ; $nombre_campo =remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ; - $features[] = "'$nombre_campo[0]' : '$contenido_limpio'";//$row[id_campo]; + $features[$row["control"]][$nombre_campo[0]] = $contenido_limpio;//$row[id_campo]; + // $features[$row['control']][] = datos_array($row["control"],"$datos[id]","") ; } else { if($campo_tipo[0] == '31') { @@ -11547,6 +11579,7 @@ $mostrar = mostrar_areas($datos['id'],"","","api"); } $row["contenido"]=str_replace('\n','
',$row["contenido"]); $row["contenido"] = html_entity_decode("$row[contenido]"); + $features[] = $row; } } @@ -11732,7 +11765,7 @@ function aplicaciones_listado($id_empresa,$id_form,$tipo,$div){ //xajax_contenido_parallax('$row[id]'); } else { - $consulta = "SELECT *, razon_social as nombre , form_id.id as id_formulario FROM empresa, form_id WHERE empresa.id = form_id.id_empresa AND form_id.activo = '1' AND form_id.publico ='1' group by empresa.id ORDER BY empresa.id DESC "; + $consulta = "SELECT *, empresa.id AS id_proyecto, razon_social as nombre FROM empresa WHERE estado='1' group by empresa.id ORDER BY empresa.id DESC "; } //if($tipo =='publico'){ $w_publico =" publico ='0'";}else {$w_publico =" publico ='1'";} @@ -11743,7 +11776,7 @@ mysqli_set_charset($link, "utf8"); mysqli_real_escape_string($link,$consulta); $sql=mysqli_query($link,$consulta); - +//$resultado_array['consulta'] = $consulta; if (mysqli_num_rows($sql)!='0'){ mysqli_data_seek($sql, 0); $resultado_li .= "
"; + + + if($divider > 0 ) { if($i % $divider==0) { $resultado_final = " "; } } @@ -11868,12 +11904,37 @@ $bg = "background-color: gray ;"; if($tipo =="sitemap") { $contenido_listado = contenido_listado("$row[id]"); } + if($tipo=='array' ){ + if($id_empresa ==""){ + $resultado_array[$row['id']]['id']="$row[id_proyecto]"; + $resultado_array[$row['id']]['link']="proyectos/$row[id_proyecto]"; + $resultado_array[$row['id']]['nombre']="$row[razon_social]"; + $resultado_array[$row['id']]['slogan']=strip_tags($row['slogan']); + $resultado_array[$row['id']]['web']="$row[web]"; + $resultado_array[$row['id']]['email']="$row[email]"; + $resultado_array[$row['id']]['logo']="$row[imagen]"; + //$resultado_array[$row['id']]['consulta']="$consulta"; + }else{ + $resultado_array[$row['id']]['nombre']=strip_tags($row['nombre']); + $resultado_array[$row['id']]['descripcion']=strip_tags($row['descripcion']); + $resultado_array[$row['id']]['contenido_publico']=strip_tags($row['publico']); + $resultado_array[$row['id']]['abierto']=strip_tags($row['modificable']); + $resultado_array[$row['id']]['fecha_creacion']=strip_tags($row['creacion']); + $resultado_array[$row['id']]['cantidad_entradas']=formulario_contar($row['id']); + $resultado_array[$row['id']]['proyecto']=strip_tags($row['id_empresa']); + $resultado_array[$row['id']]['link']="proyectos/aplicaciones/$row[id]"; + + //$resultado_array[$row['id']]['consulta']="$consulta"; + } + } } if($tipo =="sitemap") { $resultado = "$resultado $contenido_listado"; } + + $resultado_grid .= ""; $resultado_banner .= ""; $resultado_banner = "$resultado_inicial $resultado_banner $resultado_final"; @@ -11885,6 +11946,7 @@ $resultado = "$resultado $contenido_listado"; if($tipo =='li') { return $resultado_li.$resultado;} elseif($tipo =='nav') { return $resultado_nav;} elseif($tipo =='lista') { return $resultado_barra;} +elseif($tipo =='array') { return $resultado_array;} elseif($tipo =='grid') { if($div !="") { $respuesta = new xajaxResponse('utf-8'); diff --git a/rest/public/index.php b/rest/public/index.php index 031bdc3..86b41a6 100644 --- a/rest/public/index.php +++ b/rest/public/index.php @@ -17,6 +17,7 @@ require '../../funciones/funciones.php'; // $xajax->printJavascript("xajax/"); $app = new \Slim\App; require '../src/rutas/aplicaciones.php'; + ///Ruta aplicaciones $app->run(); diff --git a/rest/src/rutas/aplicaciones.php b/rest/src/rutas/aplicaciones.php index 47d6fd6..7b30972 100644 --- a/rest/src/rutas/aplicaciones.php +++ b/rest/src/rutas/aplicaciones.php @@ -3,21 +3,40 @@ use \Psr\Http\Message\ServerRequestInterface as Request; use \Psr\Http\Message\ResponseInterface as Response; $app =new \Slim\app; -// aplicaicon por id -$app ->get('/api/aplicaciones/{id}', function(Request $request, Response $response){ + + +/// listado de todos los proyectos +$app ->get('/api/proyectos/', function(Request $request, Response $response){ + + + $array = aplicaciones_listado("",'','array',''); + echo json_encode($array); + + }); +/// aplicaciones por proyecto +$app ->get('/api/proyectos/{id}', function(Request $request, Response $response){ + $id= $request->getAttribute('id'); + + $array = aplicaciones_listado("$id",'','array',''); + echo json_encode($array); + + }); + +// entradas a aplicacion por id +$app ->get('/api/proyectos/aplicaciones/{id}', function(Request $request, Response $response){ $datos= array(); $datos['id']= $request->getAttribute('id'); $datos['tipo']='simple'; echo json($datos); - }); -// todas las aplicaciones -$app ->get('/api/aplicaciones/', function(Request $request, Response $response){ - +// entradas a aplicacion por identificador +$app ->get('/api/proyectos/aplicaciones/{id}/{identificador}', function(Request $request, Response $response){ $datos= array(); - $datos['id']= ''; + //$datos['id']= $request->getAttribute('id'); + $datos['identificador']= $request->getAttribute('identificador'); $datos['tipo']='simple'; - echo json(''); + + echo json($datos); });