forked from qwerty/tupali
formulario especial apra notas
This commit is contained in:
parent
65bbd1fca9
commit
59beeed83c
@ -26,6 +26,19 @@ border: solid 1px ; border-color: #cccccc;
|
|||||||
|
|
||||||
padding: 1px;
|
padding: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.notes input, textarea {
|
||||||
|
font : 40px "handwriting", sans-serif;
|
||||||
|
|
||||||
|
border : none;
|
||||||
|
padding : 10px;
|
||||||
|
margin : 0;
|
||||||
|
width : 100%;
|
||||||
|
min-height : 350px;
|
||||||
|
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
|
||||||
.note{
|
.note{
|
||||||
min-height:150px;
|
min-height:150px;
|
||||||
padding:5px;
|
padding:5px;
|
||||||
|
@ -499,15 +499,12 @@ $xajax->registerFunction("notas_estadisticas");
|
|||||||
function formulario_mini($datos,$id,$opciones,$tipo){
|
function formulario_mini($datos,$id,$opciones,$tipo){
|
||||||
|
|
||||||
$respuesta = new xajaxResponse('utf-8');
|
$respuesta = new xajaxResponse('utf-8');
|
||||||
|
|
||||||
$publico = remplacetas('form_id','id',"$id",'modificable',"") ;
|
$publico = remplacetas('form_id','id',"$id",'modificable',"") ;
|
||||||
|
|
||||||
$equipo = remplacetas('form_datos','control',$opciones,'equipo',"") ;
|
$equipo = remplacetas('form_datos','control',$opciones,'equipo',"") ;
|
||||||
if($publico[0] =="0" AND $_SESSION['id'] =="") {
|
if($publico[0] =="0" AND $_SESSION['id'] =="") {
|
||||||
$resultado = " <div class='alert alert-danger'><h2><a href='./milfs/'>Ingresa</a> Para agregar datos a esta aplicación. <i class='fa fa-user-circle-o'></i></h2></div>";
|
$resultado = " <div class='alert alert-danger'><h2><a href='./milfs/'>Ingresa</a> Para agregar datos a esta aplicación. <i class='fa fa-user-circle-o'></i></h2></div>";
|
||||||
$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
|
$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
|
||||||
$respuesta->addAssign("muestra_form","innerHTML","$resultado");
|
$respuesta->addAssign("muestra_form","innerHTML","$resultado");
|
||||||
|
|
||||||
$respuesta->addscript("$('#muestraInfo').modal('toggle')");
|
$respuesta->addscript("$('#muestraInfo').modal('toggle')");
|
||||||
return $respuesta;
|
return $respuesta;
|
||||||
}
|
}
|
||||||
@ -518,14 +515,9 @@ function formulario_mini($datos,$id,$opciones,$tipo){
|
|||||||
<div id='div_login'>$login</div>";
|
<div id='div_login'>$login</div>";
|
||||||
$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
|
$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
|
||||||
$respuesta->addAssign("muestra_form","innerHTML","$resultado");
|
$respuesta->addAssign("muestra_form","innerHTML","$resultado");
|
||||||
|
|
||||||
$respuesta->addscript("$('#muestraInfo').modal('toggle')");
|
$respuesta->addscript("$('#muestraInfo').modal('toggle')");
|
||||||
return $respuesta;
|
return $respuesta;
|
||||||
|
|
||||||
}
|
}
|
||||||
//$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
|
|
||||||
//($perfil,$tipo,$form_respuesta,$control_respuesta)
|
|
||||||
|
|
||||||
|
|
||||||
$propietario = remplacetas('form_id','id',$id,'propietario',"") ;
|
$propietario = remplacetas('form_id','id',$id,'propietario',"") ;
|
||||||
if(isset($_SESSION['permiso_identificador'])) {
|
if(isset($_SESSION['permiso_identificador'])) {
|
||||||
@ -538,17 +530,12 @@ if($equipo[0] =="" OR is_null($equipo[0]) ) {}else{
|
|||||||
if($tipo =='edit' AND ($_SESSION['equipo'] !== $equipo[0] )){
|
if($tipo =='edit' AND ($_SESSION['equipo'] !== $equipo[0] )){
|
||||||
$aviso = "<div class='alert alert-warning text-center '>
|
$aviso = "<div class='alert alert-warning text-center '>
|
||||||
<h1><i class='glyphicon glyphicon-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado Para modificar esta información</small><br> pertenece a un grupo de trabajo diferente</h1></div>";
|
<h1><i class='glyphicon glyphicon-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado Para modificar esta información</small><br> pertenece a un grupo de trabajo diferente</h1></div>";
|
||||||
|
|
||||||
$resultado = "
|
$resultado = "
|
||||||
<div class='container-fluid' style=''>
|
<div class='container-fluid' style=''>
|
||||||
$salir
|
$salir $aviso
|
||||||
$aviso
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
";
|
";
|
||||||
// $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
|
|
||||||
$respuesta->addAssign("muestra_form","innerHTML","$resultado");
|
$respuesta->addAssign("muestra_form","innerHTML","$resultado");
|
||||||
|
|
||||||
$respuesta->addscript("$('#muestraInfo').modal('toggle')");
|
$respuesta->addscript("$('#muestraInfo').modal('toggle')");
|
||||||
return $respuesta;
|
return $respuesta;
|
||||||
}
|
}
|
||||||
@ -578,46 +565,84 @@ if($tipo =='edit' AND ($_SESSION['equipo'] !== $equipo[0] )){
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
";
|
";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// return $resultado;
|
|
||||||
$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
|
$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
|
||||||
$respuesta->addAssign("muestra_form","innerHTML","$resultado");
|
$respuesta->addAssign("muestra_form","innerHTML","$resultado");
|
||||||
|
|
||||||
|
|
||||||
$respuesta->addscript("$('#muestraInfo').modal('toggle')");
|
$respuesta->addscript("$('#muestraInfo').modal('toggle')");
|
||||||
|
|
||||||
return $respuesta;
|
return $respuesta;
|
||||||
}
|
}
|
||||||
|
//$data= print_r($datos,true);
|
||||||
|
$x = $datos[1][1];
|
||||||
|
$y = $datos[2][1];
|
||||||
|
$z = $datos[3][1];
|
||||||
|
$metadatos = json_encode($datos);
|
||||||
|
$control = md5(rand(1,99999999).microtime());
|
||||||
|
$id_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'descripcion'") ;
|
||||||
|
$id_campo = $id_campo[0];
|
||||||
|
if($id_campo =="") {
|
||||||
|
$id_campo = campo_titulo($id) ;
|
||||||
|
}
|
||||||
|
$boton="<div class='form-group '>
|
||||||
|
<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_nota_$control'));\" >Grabar</div>
|
||||||
|
</div>";
|
||||||
|
$nota="
|
||||||
|
<div id='nueva_nota_$control'>
|
||||||
|
|
||||||
// return "Hola mundo";}
|
|
||||||
|
<div id='nota_$id-$control' class='note yellow $mostrar ' style=\" width: 500px; height:500px; position:absolute; margin:auto; top:".$y."px; left:".$x."px; z-index: 2000 \">
|
||||||
|
<a class='btn btn-danger' href='#' onclick=\"xajax_limpia_div('nueva_nota_$control') \">Cancelar</a>
|
||||||
|
<a class='btn btn-warning' href='#' onclick =\"xajax_formulario_embebido_ajax($datos,'$id','$opciones','$tipo'); xajax_limpia_div('nueva_nota_$control') \">Mas datos</a>
|
||||||
|
<div class='botonera'>
|
||||||
|
<div onclick=\" javascript: document.getElementById('clase_$control').value= 'yellow'; javascript: document.getElementById('nota_$id-$control').className= 'note yellow'; \"class='pull-right yellow btn accion' style=''></div>
|
||||||
|
<div onclick=\" javascript: document.getElementById('clase_$control').value= 'blue'; javascript: document.getElementById('nota_$id-$control').className= 'note blue'; \" class='pull-right blue btn accion' ></div>
|
||||||
|
<div onclick=\" javascript: document.getElementById('clase_$control').value= 'green'; javascript: document.getElementById('nota_$id-$control').className= 'note green'; \"class='pull-right green btn accion' ></div>
|
||||||
|
<div onclick=\" javascript: document.getElementById('clase_$control').value= 'red'; javascript: document.getElementById('nota_$id-$control').className= 'note red'; \"class='pull-right red btn accion' ></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<hr name=''>
|
||||||
|
<div id='div_$control'></div>
|
||||||
|
<form name='form_nota_$control' id='form_nota_$control'>
|
||||||
|
<div id='input_$id_campo"."[0]' ></div>
|
||||||
|
<textarea id='$id_campo"."[0]' name='$id_campo"."[0]' placeholder='Escribe tu nota'></textarea>
|
||||||
|
<input type='hidden' value='$control' name='control' id='control'>
|
||||||
|
<input type='hidden' id='form_id' name='form_id' value='$id'>
|
||||||
|
<input type='hidden' id='tipo' name='tipo' value='nuevo'>
|
||||||
|
<input type='hidden' id='tipo_form' name='tipo_form' value='mini'>
|
||||||
|
<input type='hidden' id='metadatos' name='metadatos' value='$metadatos'>
|
||||||
|
<input type='hidden' id='clase_$control' name='clase' value=''>
|
||||||
|
<div id='mensaje_$control' class='hidden'></div>
|
||||||
|
$boton
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>"; //$respuesta->addScript("javascript:viewport.style.transform='scale(1,1)';");
|
||||||
|
$respuesta->addAppend("main","innerHTML","$nota");
|
||||||
|
///$respuesta->addScript("make_draggable($('.note'));");
|
||||||
|
$respuesta->addScript("javascript:document.getElementById('$id_campo"."[0]').focus();");
|
||||||
|
//$respuesta->addScript("javascript:location.href='#nuevanota'");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//$respuesta->addAlert("$x $y $z - $data");
|
||||||
|
return $respuesta;
|
||||||
|
|
||||||
if($tipo=="respuesta") { $form_respuesta = "respuesta";}else {$form_respuesta="";}
|
if($tipo=="respuesta") { $form_respuesta = "respuesta";}else {$form_respuesta="";}
|
||||||
$impresion = formulario_areas($datos,"$id","$tipo","$form_respuesta","$opciones");
|
$impresion = formulario_areas($datos,"$id","$tipo","$form_respuesta","$opciones");
|
||||||
$cantidad_areas = formulario_areas('',"$id","cantidad","$form_respuesta","$opciones");
|
$cantidad_areas = formulario_areas('',"$id","cantidad","$form_respuesta","$opciones");
|
||||||
$formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
|
$formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
|
||||||
$formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
|
$formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
|
||||||
//$visitas= contar_visitas($id,'formulario') ;
|
|
||||||
$muestra_form = "
|
$muestra_form = "
|
||||||
|
|
||||||
<div class='container-fluid' style=' background-color:white; overflow:no;' id='contenedor_datos' >
|
<div class='container-fluid' style=' background-color:white; overflow:no;' id='contenedor_datos' >
|
||||||
|
|
||||||
|
|
||||||
<!-- formulario_areas -->
|
<!-- formulario_areas -->
|
||||||
$impresion
|
$impresion
|
||||||
|
|
||||||
<!-- formulario_areas -->
|
<!-- formulario_areas -->
|
||||||
</div>
|
</div>
|
||||||
";
|
";
|
||||||
// return $muestra_form ;
|
|
||||||
|
|
||||||
//$respuesta->addAssign("$div","innerHTML","$resultado");
|
|
||||||
//$div_contenido = "<div id='$div'>$div</div>";
|
|
||||||
$respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
|
$respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
|
||||||
$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
|
$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
|
||||||
$respuesta->addAssign("pie_modal","innerHTML","$pie");
|
$respuesta->addAssign("pie_modal","innerHTML","$pie");
|
||||||
//$respuesta->addAssign("$div","innerHTML","$resultado");
|
|
||||||
$respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
|
$respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
|
||||||
$respuesta->addscript("
|
$respuesta->addscript("
|
||||||
$('.next').click(function(){
|
$('.next').click(function(){
|
||||||
@ -659,7 +684,6 @@ $('.first').click(function(){
|
|||||||
|
|
||||||
$respuesta->addscript("$('#muestraInfo').modal('toggle')");
|
$respuesta->addscript("$('#muestraInfo').modal('toggle')");
|
||||||
|
|
||||||
///if($tipo =="edit") {return $muestra_form;}
|
|
||||||
return $respuesta;
|
return $respuesta;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -709,6 +733,7 @@ function notas_tablero($form) {
|
|||||||
<li>
|
<li>
|
||||||
|
|
||||||
<div class='hidden' id='zoom_label'>$zoom_label</div>
|
<div class='hidden' id='zoom_label'>$zoom_label</div>
|
||||||
|
|
||||||
<input id='zoom_nivel' class='' onchange=\"viewport.style.zoom=(this.value); xajax_parametrizacion_linea('form_id','$form','zoom',(this.value),'zoom_label','','tablero'); \"; type='range' min='0.3' value='$zoom[0]' max='2' step='0.01' />
|
<input id='zoom_nivel' class='' onchange=\"viewport.style.zoom=(this.value); xajax_parametrizacion_linea('form_id','$form','zoom',(this.value),'zoom_label','','tablero'); \"; type='range' min='0.3' value='$zoom[0]' max='2' step='0.01' />
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
@ -746,7 +771,7 @@ $footer
|
|||||||
<!-- /#sidebar-wrapper -->
|
<!-- /#sidebar-wrapper -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id='viewport' style='width:100%; zoom: $zoom[0]; ' onclick=\" xajax_ultimos_registros(document.getElementById('ultimo_id').value,'$form'); \" >
|
<div id='viewport' title='Doble click para agregar una nota' style='width:100%; zoom: $zoom[0]; ' onclick=\" xajax_ultimos_registros(document.getElementById('ultimo_id').value,'$form'); \" >
|
||||||
|
|
||||||
<div id='main' ondblclick=\"coordenadas(event);\" style=' top: 1000px;' >
|
<div id='main' ondblclick=\"coordenadas(event);\" style=' top: 1000px;' >
|
||||||
<div class='container-fluid'>
|
<div class='container-fluid'>
|
||||||
@ -805,9 +830,10 @@ return $tablero;
|
|||||||
|
|
||||||
function ultimos_registros($id,$form) {
|
function ultimos_registros($id,$form) {
|
||||||
//$id= ($id -100000);
|
//$id= ($id -100000);
|
||||||
|
//$ultimo = time();
|
||||||
$registros="";
|
$registros="";
|
||||||
$respuesta = new xajaxResponse('utf-8');
|
$respuesta = new xajaxResponse('utf-8');
|
||||||
$consulta ="SELECT * , md5(binary control ) as md5_control FROM form_datos WHERE form_id = '$form' AND timestamp > '$id' GROUP BY control order by timestamp DESC LIMIT 1";
|
$consulta ="SELECT * , md5(binary control ) as md5_control FROM form_datos WHERE form_id = '$form' AND timestamp > '$id' GROUP BY control order by timestamp DESC LIMIT 100";
|
||||||
$link=Conectarse();
|
$link=Conectarse();
|
||||||
mysqli_set_charset($link, "utf8");
|
mysqli_set_charset($link, "utf8");
|
||||||
$sql=mysqli_query($link,$consulta);
|
$sql=mysqli_query($link,$consulta);
|
||||||
@ -816,12 +842,19 @@ function ultimos_registros($id,$form) {
|
|||||||
{
|
{
|
||||||
$registros .= notes("$form",'','',"$row[control]")." ";
|
$registros .= notes("$form",'','',"$row[control]")." ";
|
||||||
|
|
||||||
}}
|
|
||||||
//$notes = notes("$form",'','','');
|
}
|
||||||
//$respuesta->addAlert("$id $registros");
|
|
||||||
//$respuesta->addPrepend("prueba","innerHTML","$registros");
|
$respuesta->addAppend("prueba","innerHTML","$registros");
|
||||||
$respuesta->addAssign("prueba","innerHTML","$registros");
|
|
||||||
$respuesta->addScript("make_draggable($('.note'));");
|
$respuesta->addScript("make_draggable($('.note'));");
|
||||||
|
}
|
||||||
|
$ultimo = mktime();
|
||||||
|
$respuesta->addScript("javascript: document.getElementById('ultimo_id').value='$ultimo'");
|
||||||
|
//$notes = notes("$form",'','','');
|
||||||
|
///$respuesta->addAlert("$id $ultimo $consulta");
|
||||||
|
//$respuesta->addPrepend("prueba","innerHTML","$registros");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return $respuesta;
|
return $respuesta;
|
||||||
}
|
}
|
||||||
@ -851,6 +884,10 @@ return mysqli_result($sql,0,'id_campo');
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function nota_nueva(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
function notes($id,$accion,$datos,$registro){
|
function notes($id,$accion,$datos,$registro){
|
||||||
|
|
||||||
if($accion =="") {
|
if($accion =="") {
|
||||||
@ -858,7 +895,7 @@ if($accion =="") {
|
|||||||
//$color='blue';
|
//$color='blue';
|
||||||
$consulta = "SELECT * FROM form_datos WHERE form_id = '$id' AND control ='$registro' Limit 1";
|
$consulta = "SELECT * FROM form_datos WHERE form_id = '$id' AND control ='$registro' Limit 1";
|
||||||
}else {
|
}else {
|
||||||
$consulta = "SELECT * FROM form_datos WHERE form_id = '$id' GROUP BY control ORDER BY id desc limit 50 ";
|
$consulta = "SELECT * FROM form_datos WHERE form_id = '$id' GROUP BY control ORDER BY id desc limit 10 ";
|
||||||
}
|
}
|
||||||
// return $consulta;
|
// return $consulta;
|
||||||
$link=Conectarse();
|
$link=Conectarse();
|
||||||
@ -878,6 +915,7 @@ $zindex='';
|
|||||||
$id_campo = campo_titulo($id) ;
|
$id_campo = campo_titulo($id) ;
|
||||||
}
|
}
|
||||||
$orden =1;
|
$orden =1;
|
||||||
|
$orden_left =1;
|
||||||
mysqli_data_seek($sql, 0);
|
mysqli_data_seek($sql, 0);
|
||||||
while($row=mysqli_fetch_assoc($sql))
|
while($row=mysqli_fetch_assoc($sql))
|
||||||
{
|
{
|
||||||
@ -907,7 +945,7 @@ list($left_inicial,$top_inicial,$zindex_inicial,$autor) = explode('-',$metadatos
|
|||||||
|
|
||||||
if($left=="") {
|
if($left=="") {
|
||||||
$top = ($orden+100);//random_int(1,5000);
|
$top = ($orden+100);//random_int(1,5000);
|
||||||
$left = ($orden+100);//random_int(1,5000);
|
$left = ($orden_left+100);//random_int(1,5000);
|
||||||
$zindex = $orden;
|
$zindex = $orden;
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
@ -985,8 +1023,10 @@ if($comprometo[0] !="") { $comprometox="text-success";}else { $comprometox="";}
|
|||||||
";
|
";
|
||||||
// parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div,$script,$item)
|
// parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div,$script,$item)
|
||||||
|
|
||||||
$orden = ($orden+1);
|
$orden = ($orden+2);
|
||||||
$ultimo_id = $row['timestamp'];
|
$orden_left = ($orden+1);
|
||||||
|
$ultimo = mktime();
|
||||||
|
$ultimo_id = $ultimo;
|
||||||
}
|
}
|
||||||
|
|
||||||
return "$notes <input type='hidden' id='ultimo_id' name='ultimo_id' value='$ultimo_id'>";
|
return "$notes <input type='hidden' id='ultimo_id' name='ultimo_id' value='$ultimo_id'>";
|
||||||
@ -15065,7 +15105,6 @@ function formulario_grabar($formulario) {
|
|||||||
foreach($formulario as $c=>$v){
|
foreach($formulario as $c=>$v){
|
||||||
|
|
||||||
|
|
||||||
//LISTA ELEMENTOS DE UN ARRAY
|
|
||||||
if (is_array($v) ){
|
if (is_array($v) ){
|
||||||
foreach($v as $C=>$V){
|
foreach($v as $C=>$V){
|
||||||
|
|
||||||
@ -15270,6 +15309,12 @@ if($consulta_grabada =='1') {
|
|||||||
$z= $metadatos[3][1];
|
$z= $metadatos[3][1];
|
||||||
$autor= $metadatos[4][1];
|
$autor= $metadatos[4][1];
|
||||||
|
|
||||||
|
if($formulario['clase'] !=""){
|
||||||
|
parametrizacion_linea('form_id',"$formulario[form_id]",'clase',"$formulario[clase]",'mensaje_$control','',"$formulario[control]");
|
||||||
|
//parametrizacion_linea('form_id','$id','clase','green','mensaje_$row[control]','','$row[control]');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
$posicion = parametrizacion_linea('form_id',"$formulario[form_id]",'posicion',"$x-$y-$z",'mensaje_$control','',"$formulario[control]");
|
$posicion = parametrizacion_linea('form_id',"$formulario[form_id]",'posicion',"$x-$y-$z",'mensaje_$control','',"$formulario[control]");
|
||||||
$metadatos_iniciales = parametrizacion_linea('form_id',"$formulario[form_id]",'metadatos_iniciales',"$x-$y-$z-$autor",'mensaje_$control','',"$formulario[control]");
|
$metadatos_iniciales = parametrizacion_linea('form_id',"$formulario[form_id]",'metadatos_iniciales',"$x-$y-$z-$autor",'mensaje_$control','',"$formulario[control]");
|
||||||
$autor = parametrizacion_linea('form_id',"$formulario[form_id]",'autor',"$autor",'mensaje_$control','',"$formulario[control]");
|
$autor = parametrizacion_linea('form_id',"$formulario[form_id]",'autor',"$autor",'mensaje_$control','',"$formulario[control]");
|
||||||
@ -15347,7 +15392,7 @@ $mensaje_agradecimiento = remplacetas('form_parametrizacion','campo',"$formulari
|
|||||||
$envio
|
$envio
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div> <!-- $mostrar_json -->";
|
</div> ";
|
||||||
|
|
||||||
// $mail ='1';
|
// $mail ='1';
|
||||||
}
|
}
|
||||||
@ -15395,13 +15440,24 @@ Esta herramienta es creada y proporcionada por Tupale.co, como portal para el ac
|
|||||||
//$exito .= "$email[0] $headers ";
|
//$exito .= "$email[0] $headers ";
|
||||||
}
|
}
|
||||||
/// }
|
/// }
|
||||||
|
if($formulario['tipo_form'] =='mini'){
|
||||||
|
$respuesta -> addScript("xajax_limpia_div('nueva_nota_$formulario[control]')");
|
||||||
|
$respuesta->addScript("make_draggable($('.note'));");
|
||||||
|
|
||||||
|
return $respuesta;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
$respuesta->addAssign("div_$control","innerHTML","$exito ");
|
$respuesta->addAssign("div_$control","innerHTML","$exito ");
|
||||||
return $respuesta;
|
return $respuesta;
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
|
$datos = print_r($formulario,true);
|
||||||
$mensaje ="
|
$mensaje ="
|
||||||
|
|
||||||
<div class='alert alert-success text-center'><h1><i class='glyphicon glyphicon-smile-o'></i><small> Todo bien pero al parecer no se modificaron registros</small></h1></div>";
|
<div class='alert alert-success text-center'><h1><i class='glyphicon glyphicon-smile-o'></i><small> Todo bien pero al parecer no se modificaron registros</small></h1></div>";
|
||||||
$respuesta->addAssign("div_$control","innerHTML","$mensaje");
|
$respuesta->addAssign("div_$control","innerHTML","$mensaje");
|
||||||
|
|
||||||
}
|
}
|
||||||
//$respuesta->addAssign("respuesta_$control","innerHTML","$resultado");
|
//$respuesta->addAssign("respuesta_$control","innerHTML","$resultado");
|
||||||
return $respuesta;
|
return $respuesta;
|
||||||
|
@ -1,857 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// xajax.inc.php :: Main xajax class and setup file
|
|
||||||
//
|
|
||||||
// xajax version 0.2
|
|
||||||
// copyright (c) 2005 by Jared White & J. Max Wilson
|
|
||||||
// http://xajax.sourceforge.net
|
|
||||||
//
|
|
||||||
// xajax is an open source PHP class library for easily creating powerful
|
|
||||||
// PHP-driven, web-based AJAX Applications. Using xajax, you can asynchronously
|
|
||||||
// call PHP functions and update the content of your your webpage without
|
|
||||||
// reloading the page.
|
|
||||||
//
|
|
||||||
// xajax is released under the terms of the LGPL license
|
|
||||||
// http://www.gnu.org/copyleft/lesser.html#SEC3
|
|
||||||
//
|
|
||||||
// This library is free software; you can redistribute it and/or
|
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
|
||||||
// License as published by the Free Software Foundation; either
|
|
||||||
// version 2.1 of the License, or (at your option) any later version.
|
|
||||||
//
|
|
||||||
// This library 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
|
|
||||||
// Lesser General Public License for more details.
|
|
||||||
//
|
|
||||||
// You should have received a copy of the GNU Lesser General Public
|
|
||||||
// License along with this library; if not, write to the Free Software
|
|
||||||
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
// Define XAJAX_DEFAULT_CHAR_ENCODING that is used by both
|
|
||||||
// the xajax and xajaxResponse classes
|
|
||||||
if (!defined ('XAJAX_DEFAULT_CHAR_ENCODING'))
|
|
||||||
{
|
|
||||||
define ('XAJAX_DEFAULT_CHAR_ENCODING', 'utf-8' );
|
|
||||||
}
|
|
||||||
|
|
||||||
require_once("xajaxResponse.inc.php");
|
|
||||||
|
|
||||||
// Communication Method Defines
|
|
||||||
if (!defined ('XAJAX_GET'))
|
|
||||||
{
|
|
||||||
define ('XAJAX_GET', 0);
|
|
||||||
}
|
|
||||||
if (!defined ('XAJAX_POST'))
|
|
||||||
{
|
|
||||||
define ('XAJAX_POST', 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// the xajax class generates the xajax javascript for your page including the
|
|
||||||
// javascript wrappers for the PHP functions that you want to call from your page.
|
|
||||||
// It also handles processing and executing the command messages in the xml responses
|
|
||||||
// sent back to your page from your PHP functions.
|
|
||||||
class xajax
|
|
||||||
{
|
|
||||||
var $aFunctions; // Array of PHP functions that will be callable through javascript wrappers
|
|
||||||
var $aObjects; // Array of object callbacks that will allow Javascript to call PHP methods (key=function name)
|
|
||||||
var $aFunctionRequestTypes; // Array of RequestTypes to be used with each function (key=function name)
|
|
||||||
var $aFunctionIncludeFiles; // Array of Include Files for any external functions (key=function name)
|
|
||||||
var $sCatchAllFunction; // Name of the PHP function to call if no callable function was found
|
|
||||||
var $sPreFunction; // Name of the PHP function to call before any other function
|
|
||||||
var $sRequestURI; // The URI for making requests to the xajax object
|
|
||||||
var $bDebug; // Show debug messages (true/false)
|
|
||||||
var $bExitAllowed; // Allow xajax to exit after processing a request (true/false)
|
|
||||||
var $bErrorHandler; // Use an special xajax error handler so the errors are sent to the browser properly
|
|
||||||
var $sLogFile; // Specify if xajax should log errors (and more information in a future release)
|
|
||||||
var $sWrapperPrefix; // The prefix to prepend to the javascript wraper function name
|
|
||||||
var $bStatusMessages; // Show debug messages (true/false)
|
|
||||||
var $bWaitCursor; // Use wait cursor in browser (true/false)
|
|
||||||
var $bCleanBuffer; // Clean all output buffers before outputting response (true/false)
|
|
||||||
var $aObjArray; // Array for parsing complex objects
|
|
||||||
var $iPos; // Position in $aObjArray
|
|
||||||
var $sEncoding; // The Character Encoding to use
|
|
||||||
|
|
||||||
// Contructor
|
|
||||||
// $sRequestURI - defaults to the current page
|
|
||||||
// $sWrapperPrefix - defaults to "xajax_";
|
|
||||||
// $sEncoding - defaults to XAJAX_DEFAULT_CHAR_ENCODING defined above
|
|
||||||
// $bDebug Mode - defaults to false
|
|
||||||
// usage: $xajax = new xajax();
|
|
||||||
function xajax($sRequestURI="",$sWrapperPrefix="xajax_",$sEncoding=XAJAX_DEFAULT_CHAR_ENCODING,$bDebug=true)
|
|
||||||
{
|
|
||||||
$this->aFunctions = array();
|
|
||||||
$this->aObjects = array();
|
|
||||||
$this->aFunctionIncludeFiles = array();
|
|
||||||
$this->sRequestURI = $sRequestURI;
|
|
||||||
if ($this->sRequestURI == "")
|
|
||||||
$this->sRequestURI = $this->_detectURI();
|
|
||||||
$this->sWrapperPrefix = $sWrapperPrefix;
|
|
||||||
$this->setCharEncoding($sEncoding);
|
|
||||||
$this->bDebug = $bDebug;
|
|
||||||
$this->bWaitCursor = true;
|
|
||||||
$this->bExitAllowed = true;
|
|
||||||
$this->bErrorHandler = false;
|
|
||||||
$this->sLogFile = "";
|
|
||||||
$this->bCleanBuffer = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// setRequestURI() sets the URI to which requests will be made
|
|
||||||
// usage: $xajax->setRequestURI("http://xajax.sourceforge.net");
|
|
||||||
function setRequestURI($sRequestURI)
|
|
||||||
{
|
|
||||||
$this->sRequestURI = $sRequestURI;
|
|
||||||
}
|
|
||||||
|
|
||||||
// debugOn() enables debug messages for xajax
|
|
||||||
function debugOn()
|
|
||||||
{
|
|
||||||
$this->bDebug = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// debugOff() disables debug messages for xajax (default behavior)
|
|
||||||
function debugOff()
|
|
||||||
{
|
|
||||||
$this->bDebug = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// statusMessagesOn() enables messages in the statusbar for xajax
|
|
||||||
function statusMessagesOn()
|
|
||||||
{
|
|
||||||
$this->bStatusMessages = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// statusMessagesOff() disables messages in the statusbar for xajax (default behavior)
|
|
||||||
function statusMessagesOff()
|
|
||||||
{
|
|
||||||
$this->bStatusMessages = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// waitCursor() enables the wait cursor to be displayed in the browser (default behavior)
|
|
||||||
function waitCursorOn()
|
|
||||||
{
|
|
||||||
$this->bWaitCursor = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// waitCursorOff() disables the wait cursor to be displayed in the browser
|
|
||||||
function waitCursorOff()
|
|
||||||
{
|
|
||||||
$this->bWaitCursor = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// exitAllowedOn() enables xajax to exit immediately after processing a request
|
|
||||||
// and sending the response back to the browser (default behavior)
|
|
||||||
function exitAllowedOn()
|
|
||||||
{
|
|
||||||
$this->bExitAllowed = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// exitAllowedOff() disables xajax's default behavior of exiting immediately
|
|
||||||
// after processing a request and sending the response back to the browser
|
|
||||||
function exitAllowedOff()
|
|
||||||
{
|
|
||||||
$this->bExitAllowed = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// errorHandlerOn() turns on xajax's error handling system so that PHP errors
|
|
||||||
// that occur during a request are trapped and pushed to the browser in the
|
|
||||||
// form of a Javascript alert
|
|
||||||
function errorHandlerOn()
|
|
||||||
{
|
|
||||||
$this->bErrorHandler = true;
|
|
||||||
}
|
|
||||||
// errorHandlerOff() turns off xajax's error handling system (default behavior)
|
|
||||||
function errorHandlerOff()
|
|
||||||
{
|
|
||||||
$this->bErrorHandler = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// setLogFile() specifies a log file that will be written to by xajax during
|
|
||||||
// a request (used only by the error handling system at present). If you don't
|
|
||||||
// invoke this method, or you pass in "", then no log file will be written to.
|
|
||||||
// usage: $xajax->setLogFile("/xajax_logs/errors.log");
|
|
||||||
function setLogFile($sFilename)
|
|
||||||
{
|
|
||||||
$this->sLogFile = $sFilename;
|
|
||||||
}
|
|
||||||
|
|
||||||
// cleanBufferOn() causes xajax to clean out all output buffers before outputting
|
|
||||||
// a response (default behavior)
|
|
||||||
function cleanBufferOn()
|
|
||||||
{
|
|
||||||
$this->bCleanBuffer = true;
|
|
||||||
}
|
|
||||||
// cleanBufferOff() turns off xajax's output buffer cleaning
|
|
||||||
function cleanBufferOff()
|
|
||||||
{
|
|
||||||
$this->bCleanBuffer = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// setWrapperPrefix() sets the prefix that will be appended to the Javascript
|
|
||||||
// wrapper functions (default is "xajax_").
|
|
||||||
function setWrapperPrefix($sPrefix)
|
|
||||||
{
|
|
||||||
$this->sWrapperPrefix = $sPrefix;
|
|
||||||
}
|
|
||||||
|
|
||||||
// setCharEncoding() sets the character encoding to be used by xajax
|
|
||||||
// usage: $xajax->setCharEncoding("utf-8");
|
|
||||||
// *Note: to change the default character encoding for all xajax responses, set
|
|
||||||
// the XAJAX_DEFAULT_CHAR_ENCODING constant near the beginning of the xajax.inc.php file
|
|
||||||
function setCharEncoding($sEncoding)
|
|
||||||
{
|
|
||||||
$this->sEncoding = $sEncoding;
|
|
||||||
}
|
|
||||||
|
|
||||||
// registerFunction() registers a PHP function or method to be callable through
|
|
||||||
// xajax in your Javascript. If you want to register a function, pass in the name
|
|
||||||
// of that function. If you want to register a static class method, pass in an array
|
|
||||||
// like so:
|
|
||||||
// array("myFunctionName", "myClass", "myMethod")
|
|
||||||
// For an object instance method, use an object variable for the second array element
|
|
||||||
// (and in PHP 4 make sure you put an & before the variable to pass the object by
|
|
||||||
// reference). Note: the function name is what you call via Javascript, so it can be
|
|
||||||
// anything as long as it doesn't conflict with any other registered function name.
|
|
||||||
//
|
|
||||||
// $mFunction is a string containing the function name or an object callback array
|
|
||||||
// $sRequestType is the RequestType (XAJAX_GET/XAJAX_POST) that should be used
|
|
||||||
// for this function. Defaults to XAJAX_POST.
|
|
||||||
// usage: $xajax->registerFunction("myFunction");
|
|
||||||
// or: $xajax->registerFunction(array("myFunctionName", &$myObject, "myMethod"));
|
|
||||||
function registerFunction($mFunction,$sRequestType=XAJAX_POST)
|
|
||||||
{
|
|
||||||
if (is_array($mFunction)) {
|
|
||||||
$this->aFunctions[$mFunction[0]] = 1;
|
|
||||||
$this->aFunctionRequestTypes[$mFunction[0]] = $sRequestType;
|
|
||||||
$this->aObjects[$mFunction[0]] = array_slice($mFunction, 1);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$this->aFunctions[$mFunction] = 1;
|
|
||||||
$this->aFunctionRequestTypes[$mFunction] = $sRequestType;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// registerExternalFunction() registers a PHP function to be callable through xajax
|
|
||||||
// which is located in some other file. If the function is requested the external
|
|
||||||
// file will be included to define the function before the function is called
|
|
||||||
// $mFunction is a string containing the function name or an object callback array
|
|
||||||
// see registerFunction() for more info on object callback arrays
|
|
||||||
// $sIncludeFile is a string containing the path and filename of the include file
|
|
||||||
// $sRequestType is the RequestType (XAJAX_GET/XAJAX_POST) that should be used
|
|
||||||
// for this function. Defaults to XAJAX_POST.
|
|
||||||
// usage: $xajax->registerExternalFunction("myFunction","myFunction.inc.php",XAJAX_POST);
|
|
||||||
function registerExternalFunction($mFunction,$sIncludeFile,$sRequestType=XAJAX_POST)
|
|
||||||
{
|
|
||||||
$this->registerFunction($mFunction, $sRequestType);
|
|
||||||
|
|
||||||
if (is_array($mFunction)) {
|
|
||||||
$this->aFunctionIncludeFiles[$mFunction[0]] = $sIncludeFile;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$this->aFunctionIncludeFiles[$mFunction] = $sIncludeFile;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// registerCatchAllFunction() registers a PHP function to be called when xajax cannot
|
|
||||||
// find the function being called via Javascript. Because this is technically
|
|
||||||
// impossible when using "wrapped" functions, the catch-all feature is only useful
|
|
||||||
// when you're directly using the xajax.call() Javascript method. Use the catch-all
|
|
||||||
// feature when you want more dynamic ability to intercept unknown calls and handle
|
|
||||||
// them in a custom way.
|
|
||||||
// $mFunction is a string containing the function name or an object callback array
|
|
||||||
// see registerFunction() for more info on object callback arrays
|
|
||||||
// usage: $xajax->registerCatchAllFunction("myCatchAllFunction");
|
|
||||||
function registerCatchAllFunction($mFunction)
|
|
||||||
{
|
|
||||||
if (is_array($mFunction)) {
|
|
||||||
$this->sCatchAllFunction = $mFunction[0];
|
|
||||||
$this->aObjects[$mFunction[0]] = array_slice($mFunction, 1);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$this->sCatchAllFunction = $mFunction;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// registerPreFunction() registers a PHP function to be called before xajax calls
|
|
||||||
// the requested function. xajax will automatically add the request function's response
|
|
||||||
// to the pre-function's response to create a single response. Another feature is
|
|
||||||
// the ability to return not just a response, but an array with the first element
|
|
||||||
// being false (a boolean) and the second being the response. In this case, the
|
|
||||||
// pre-function's response will be returned to the browser without xajax calling
|
|
||||||
// the requested function.
|
|
||||||
// $mFunction is a string containing the function name or an object callback array
|
|
||||||
// see registerFunction() for more info on object callback arrays
|
|
||||||
// usage $xajax->registerPreFunction("myPreFunction");
|
|
||||||
function registerPreFunction($mFunction)
|
|
||||||
{
|
|
||||||
if (is_array($mFunction)) {
|
|
||||||
$this->sPreFunction = $mFunction[0];
|
|
||||||
$this->aObjects[$mFunction[0]] = array_slice($mFunction, 1);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$this->sPreFunction = $mFunction;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// returns true if xajax can process the request, false if otherwise
|
|
||||||
// you can use this to determine if xajax needs to process the request or not
|
|
||||||
function canProcessRequests()
|
|
||||||
{
|
|
||||||
if ($this->getRequestMode() != -1) return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// returns the current request mode, or -1 if there is none
|
|
||||||
function getRequestMode()
|
|
||||||
{
|
|
||||||
if (!empty($_GET["xajax"]))
|
|
||||||
return XAJAX_GET;
|
|
||||||
|
|
||||||
if (!empty($_POST["xajax"]))
|
|
||||||
return XAJAX_POST;
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// processRequests() is the main communications engine of xajax
|
|
||||||
// The engine handles all incoming xajax requests, calls the apporiate PHP functions
|
|
||||||
// and passes the xml responses back to the javascript response handler
|
|
||||||
// if your RequestURI is the same as your web page then this function should
|
|
||||||
// be called before any headers or html has been sent.
|
|
||||||
// usage: $xajax->processRequests()
|
|
||||||
function processRequests()
|
|
||||||
{
|
|
||||||
|
|
||||||
$requestMode = -1;
|
|
||||||
$sFunctionName = "";
|
|
||||||
$bFoundFunction = true;
|
|
||||||
$bFunctionIsCatchAll = false;
|
|
||||||
$sFunctionNameForSpecial = "";
|
|
||||||
$aArgs = array();
|
|
||||||
$sPreResponse = "";
|
|
||||||
$bEndRequest = false;
|
|
||||||
$sResponse = "";
|
|
||||||
|
|
||||||
$requestMode = $this->getRequestMode();
|
|
||||||
if ($requestMode == -1) return;
|
|
||||||
|
|
||||||
if ($requestMode == XAJAX_POST)
|
|
||||||
{
|
|
||||||
$sFunctionName = $_POST["xajax"];
|
|
||||||
|
|
||||||
if (!empty($_POST["xajaxargs"]))
|
|
||||||
$aArgs = $_POST["xajaxargs"];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
|
|
||||||
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
|
|
||||||
header ("Cache-Control: no-cache, must-revalidate");
|
|
||||||
header ("Pragma: no-cache");
|
|
||||||
header("Content-type: text/xml");
|
|
||||||
|
|
||||||
$sFunctionName = $_GET["xajax"];
|
|
||||||
|
|
||||||
if (!empty($_GET["xajaxargs"]))
|
|
||||||
$aArgs = $_GET["xajaxargs"];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Use xajax error handler if necessary
|
|
||||||
if ($this->bErrorHandler) {
|
|
||||||
$GLOBALS['xajaxErrorHandlerText'] = "";
|
|
||||||
set_error_handler("xajaxErrorHandler");
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->sPreFunction) {
|
|
||||||
if (!$this->_isFunctionCallable($this->sPreFunction)) {
|
|
||||||
$bFoundFunction = false;
|
|
||||||
$objResponse = new xajaxResponse();
|
|
||||||
$objResponse->addAlert("Unknown Pre-Function ". $this->sPreFunction);
|
|
||||||
$sResponse = $objResponse->getXML();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//include any external dependencies associated with this function name
|
|
||||||
if (array_key_exists($sFunctionName,$this->aFunctionIncludeFiles))
|
|
||||||
{
|
|
||||||
ob_start();
|
|
||||||
include_once($this->aFunctionIncludeFiles[$sFunctionName]);
|
|
||||||
ob_end_clean();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($bFoundFunction) {
|
|
||||||
$sFunctionNameForSpecial = $sFunctionName;
|
|
||||||
if (!array_key_exists($sFunctionName, $this->aFunctions))
|
|
||||||
{
|
|
||||||
if ($this->sCatchAllFunction) {
|
|
||||||
$sFunctionName = $this->sCatchAllFunction;
|
|
||||||
$bFunctionIsCatchAll = true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$bFoundFunction = false;
|
|
||||||
$objResponse = new xajaxResponse();
|
|
||||||
$objResponse->addAlert("Unknown Function $sFunctionName.");
|
|
||||||
$sResponse = $objResponse->getXML();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if ($this->aFunctionRequestTypes[$sFunctionName] != $requestMode)
|
|
||||||
{
|
|
||||||
$bFoundFunction = false;
|
|
||||||
$objResponse = new xajaxResponse();
|
|
||||||
$objResponse->addAlert("Incorrect Request Type.");
|
|
||||||
$sResponse = $objResponse->getXML();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($bFoundFunction)
|
|
||||||
{
|
|
||||||
for ($i = 0; $i < sizeof($aArgs); $i++)
|
|
||||||
{
|
|
||||||
// If magic quotes is on, then we need to strip the slashes from the args
|
|
||||||
if (get_magic_quotes_gpc() == 1 && is_string($aArgs[$i])) {
|
|
||||||
|
|
||||||
$aArgs[$i] = stripslashes($aArgs[$i]);
|
|
||||||
}
|
|
||||||
if (stristr($aArgs[$i],"<xjxobj>") != false)
|
|
||||||
{
|
|
||||||
$aArgs[$i] = $this->_xmlToArray("xjxobj",$aArgs[$i]);
|
|
||||||
}
|
|
||||||
else if (stristr($aArgs[$i],"<xjxquery>") != false)
|
|
||||||
{
|
|
||||||
$aArgs[$i] = $this->_xmlToArray("xjxquery",$aArgs[$i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->sPreFunction) {
|
|
||||||
$mPreResponse = $this->_callFunction($this->sPreFunction, array($sFunctionNameForSpecial, $aArgs));
|
|
||||||
if (is_array($mPreResponse) && $mPreResponse[0] === false) {
|
|
||||||
$bEndRequest = true;
|
|
||||||
$sPreResponse = $mPreResponse[1];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$sPreResponse = $mPreResponse;
|
|
||||||
}
|
|
||||||
if (is_a($sPreResponse, "xajaxResponse")) {
|
|
||||||
$sPreResponse = $sPreResponse->getXML();
|
|
||||||
}
|
|
||||||
if ($bEndRequest) $sResponse = $sPreResponse;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$bEndRequest) {
|
|
||||||
if (!$this->_isFunctionCallable($sFunctionName)) {
|
|
||||||
$objResponse = new xajaxResponse();
|
|
||||||
$objResponse->addAlert("The Registered Function $sFunctionName Could Not Be Found.");
|
|
||||||
$sResponse = $objResponse->getXML();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if ($bFunctionIsCatchAll) {
|
|
||||||
$aArgs = array($sFunctionNameForSpecial, $aArgs);
|
|
||||||
}
|
|
||||||
$sResponse = $this->_callFunction($sFunctionName, $aArgs);
|
|
||||||
}
|
|
||||||
if (is_a($sResponse, "xajaxResponse")) {
|
|
||||||
$sResponse = $sResponse->getXML();
|
|
||||||
}
|
|
||||||
if (!is_string($sResponse) || strpos($sResponse, "<xjx>") === FALSE) {
|
|
||||||
$objResponse = new xajaxResponse();
|
|
||||||
$objResponse->addAlert("No XML Response Was Returned By Function $sFunctionName.");
|
|
||||||
$sResponse = $objResponse->getXML();
|
|
||||||
}
|
|
||||||
else if ($sPreResponse != "") {
|
|
||||||
$sNewResponse = new xajaxResponse();
|
|
||||||
$sNewResponse->loadXML($sPreResponse);
|
|
||||||
$sNewResponse->loadXML($sResponse);
|
|
||||||
$sResponse = $sNewResponse->getXML();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$sContentHeader = "Content-type: text/xml;";
|
|
||||||
if ($this->sEncoding && strlen(trim($this->sEncoding)) > 0)
|
|
||||||
$sContentHeader .= " charset=".$this->sEncoding;
|
|
||||||
header($sContentHeader);
|
|
||||||
if ($this->bErrorHandler && !empty( $GLOBALS['xajaxErrorHandlerText'] )) {
|
|
||||||
$sErrorResponse = new xajaxResponse();
|
|
||||||
$sErrorResponse->addAlert("** PHP Error Messages: **" . $GLOBALS['xajaxErrorHandlerText']);
|
|
||||||
if ($this->sLogFile) {
|
|
||||||
$fH = @fopen($this->sLogFile, "a");
|
|
||||||
if (!$fH) {
|
|
||||||
$sErrorResponse->addAlert("** Logging Error **\n\nxajax was unable to write to the error log file:\n" . $this->sLogFile);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
fwrite($fH, "** xajax Error Log - " . strftime("%b %e %Y %I:%M:%S %p") . " **" . $GLOBALS['xajaxErrorHandlerText'] . "\n\n\n");
|
|
||||||
fclose($fH);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$sErrorResponse->loadXML($sResponse);
|
|
||||||
$sResponse = $sErrorResponse->getXML();
|
|
||||||
|
|
||||||
}
|
|
||||||
if ($this->bCleanBuffer) while (@ob_end_clean());
|
|
||||||
print $sResponse;
|
|
||||||
if ($this->bErrorHandler) restore_error_handler();
|
|
||||||
|
|
||||||
if ($this->bExitAllowed)
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
// printJavascript() prints the xajax javascript code into your page by printing
|
|
||||||
// the output of the getJavascript() method. It should only be called between the
|
|
||||||
// <head> </head> tags in your HTML page. Remember, if you only want to obtain the
|
|
||||||
// result of this function, use getJavascript() instead.
|
|
||||||
// $sJsURI is the relative address of the folder where xajax has been installed.
|
|
||||||
// For instance, if your PHP file is "http://www.myserver.com/myfolder/mypage.php"
|
|
||||||
// and xajax was installed in "http://www.myserver.com/anotherfolder", then
|
|
||||||
// $sJsURI should be set to "../anotherfolder". Defaults to assuming xajax is in
|
|
||||||
// the same folder as your PHP file.
|
|
||||||
// $sJsFile is the relative folder/file pair of the xajax Javascript engine located
|
|
||||||
// within the xajax installation folder. Defaults to xajax_js/xajax.js.
|
|
||||||
// usage:
|
|
||||||
// <head>
|
|
||||||
// ...
|
|
||||||
// < ?php $xajax->printJavascript(); ? >
|
|
||||||
function printJavascript($sJsURI="", $sJsFile=NULL, $sJsFullFilename=NULL)
|
|
||||||
{
|
|
||||||
print $this->getJavascript($sJsURI, $sJsFile, $sJsFullFilename);
|
|
||||||
}
|
|
||||||
|
|
||||||
// getJavascript() returns the xajax javascript code that should be added to
|
|
||||||
// your HTML page between the <head> </head> tags. See printJavascript()
|
|
||||||
// for information about the function arguments.
|
|
||||||
// usage:
|
|
||||||
// < ?php $xajaxJSHead = $xajax->getJavascript(); ? >
|
|
||||||
// <head>
|
|
||||||
// ...
|
|
||||||
// < ?php echo $xajaxJSHead; ? >
|
|
||||||
function getJavascript($sJsURI="", $sJsFile=NULL, $sJsFullFilename=NULL)
|
|
||||||
{
|
|
||||||
if ($sJsFile == NULL) $sJsFile = "xajax_js/xajax.js";
|
|
||||||
|
|
||||||
if ($sJsURI != "" && substr($sJsURI, -1) != "/") $sJsURI .= "/";
|
|
||||||
|
|
||||||
$html = "\t<script type=\"text/javascript\">\n";
|
|
||||||
$html .= "var xajaxRequestUri=\"".$this->sRequestURI."\";\n";
|
|
||||||
$html .= "var xajaxDebug=".($this->bDebug?"true":"false").";\n";
|
|
||||||
$html .= "var xajaxStatusMessages=".($this->bStatusMessages?"true":"false").";\n";
|
|
||||||
$html .= "var xajaxWaitCursor=".($this->bWaitCursor?"true":"false").";\n";
|
|
||||||
$html .= "var xajaxDefinedGet=".XAJAX_GET.";\n";
|
|
||||||
$html .= "var xajaxDefinedPost=".XAJAX_POST.";\n";
|
|
||||||
|
|
||||||
foreach($this->aFunctions as $sFunction => $bExists) {
|
|
||||||
$html .= $this->_wrap($sFunction,$this->aFunctionRequestTypes[$sFunction]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$html .= "</script>\n";
|
|
||||||
|
|
||||||
// Create a compressed file if necessary
|
|
||||||
if ($sJsFullFilename) {
|
|
||||||
$realJsFile = $sJsFullFilename;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$realPath = realpath(dirname(__FILE__));
|
|
||||||
$realJsFile = $realPath . "/". $sJsFile;
|
|
||||||
}
|
|
||||||
$srcFile = str_replace(".js", "_uncompressed.js", $realJsFile);
|
|
||||||
if (!file_exists($srcFile)) {
|
|
||||||
trigger_error("The xajax uncompressed Javascript file could not be found in the <b>" . dirname($realJsFile) . "</b> folder. Error ", E_USER_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->bDebug) {
|
|
||||||
if (!@copy($srcFile, $realJsFile)) {
|
|
||||||
trigger_error("The xajax uncompressed javascript file could not be copied to the <b>" . dirname($realJsFile) . "</b> folder. Error ", E_USER_ERROR);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (!file_exists($realJsFile)) {
|
|
||||||
require(dirname($realJsFile) . "/xajaxCompress.php");
|
|
||||||
$javaScript = implode('', file($srcFile));
|
|
||||||
$compressedScript = xajaxCompressJavascript($javaScript);
|
|
||||||
$fH = @fopen($realJsFile, "w");
|
|
||||||
if (!$fH) {
|
|
||||||
trigger_error("The xajax compressed javascript file could not be written in the <b>" . dirname($realJsFile) . "</b> folder. Error ", E_USER_ERROR);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
fwrite($fH, $compressedScript);
|
|
||||||
fclose($fH);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$html .= "\t<script type=\"text/javascript\" src=\"" . $sJsURI . $sJsFile . "\"></script>\n";
|
|
||||||
|
|
||||||
return $html;
|
|
||||||
}
|
|
||||||
|
|
||||||
// _detectURL() returns the current URL based upon the SERVER vars
|
|
||||||
// used internally
|
|
||||||
function _detectURI() {
|
|
||||||
$aURL = array();
|
|
||||||
|
|
||||||
// Try to get the request URL
|
|
||||||
if (!empty($_SERVER['REQUEST_URI'])) {
|
|
||||||
$aURL = parse_url($_SERVER['REQUEST_URI']);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fill in the empty values
|
|
||||||
if (empty($aURL['scheme'])) {
|
|
||||||
if (!empty($_SERVER['HTTP_SCHEME'])) {
|
|
||||||
$aURL['scheme'] = $_SERVER['HTTP_SCHEME'];
|
|
||||||
} else {
|
|
||||||
$aURL['scheme'] = (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off') ? 'https' : 'http';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($aURL['host'])) {
|
|
||||||
if (!empty($_SERVER['HTTP_HOST'])) {
|
|
||||||
if (strpos($_SERVER['HTTP_HOST'], ':') > 0) {
|
|
||||||
list($aURL['host'], $aURL['port']) = explode(':', $_SERVER['HTTP_HOST']);
|
|
||||||
} else {
|
|
||||||
$aURL['host'] = $_SERVER['HTTP_HOST'];
|
|
||||||
}
|
|
||||||
} else if (!empty($_SERVER['SERVER_NAME'])) {
|
|
||||||
$aURL['host'] = $_SERVER['SERVER_NAME'];
|
|
||||||
} else {
|
|
||||||
print "xajax Error: xajax failed to automatically identify your Request URI.";
|
|
||||||
print "Please set the Request URI explicitly when you instantiate the xajax object.";
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($aURL['port']) && !empty($_SERVER['SERVER_PORT'])) {
|
|
||||||
$aURL['port'] = $_SERVER['SERVER_PORT'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($aURL['path'])) {
|
|
||||||
if (!empty($_SERVER['PATH_INFO'])) {
|
|
||||||
$sPath = parse_url($_SERVER['PATH_INFO']);
|
|
||||||
} else {
|
|
||||||
$sPath = parse_url($_SERVER['PHP_SELF']);
|
|
||||||
}
|
|
||||||
$aURL['path'] = $sPath['path'];
|
|
||||||
unset($sPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($aURL['query'])) {
|
|
||||||
$aURL['query'] = '?'.$aURL['query'];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Build the URL: Start with scheme, user and pass
|
|
||||||
$sURL = $aURL['scheme'].'://';
|
|
||||||
if (!empty($aURL['user'])) {
|
|
||||||
$sURL.= $aURL['user'];
|
|
||||||
if (!empty($aURL['pass'])) {
|
|
||||||
$sURL.= ':'.$aURL['pass'];
|
|
||||||
}
|
|
||||||
$sURL.= '@';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add the host
|
|
||||||
$sURL.= $aURL['host'];
|
|
||||||
|
|
||||||
// Add the port if needed
|
|
||||||
if (!empty($aURL['port']) && (($aURL['scheme'] == 'http' && $aURL['port'] != 80) || ($aURL['scheme'] == 'https' && $aURL['port'] != 443))) {
|
|
||||||
$sURL.= ':'.$aURL['port'];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add the path and the query string
|
|
||||||
$sURL.= $aURL['path'].@$aURL['query'];
|
|
||||||
|
|
||||||
// Clean up
|
|
||||||
unset($aURL);
|
|
||||||
return $sURL;
|
|
||||||
}
|
|
||||||
|
|
||||||
// returns true if the function name is associated with an object callback,
|
|
||||||
// false if not.
|
|
||||||
// user internally
|
|
||||||
function _isObjectCallback($sFunction)
|
|
||||||
{
|
|
||||||
if (array_key_exists($sFunction, $this->aObjects)) return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// return true if the function or object callback can be called, false if not
|
|
||||||
// user internally
|
|
||||||
function _isFunctionCallable($sFunction)
|
|
||||||
{
|
|
||||||
if ($this->_isObjectCallback($sFunction)) {
|
|
||||||
if (is_object($this->aObjects[$sFunction][0])) {
|
|
||||||
return method_exists($this->aObjects[$sFunction][0], $this->aObjects[$sFunction][1]);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return is_callable($this->aObjects[$sFunction]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return function_exists($sFunction);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// calls the function, class method, or object method with the supplied arguments
|
|
||||||
// user internally
|
|
||||||
function _callFunction($sFunction, $aArgs)
|
|
||||||
{
|
|
||||||
if ($this->_isObjectCallback($sFunction)) {
|
|
||||||
$mReturn = call_user_func_array($this->aObjects[$sFunction], $aArgs);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$mReturn = call_user_func_array($sFunction, $aArgs);
|
|
||||||
}
|
|
||||||
return $mReturn;
|
|
||||||
}
|
|
||||||
|
|
||||||
// generates the javascript wrapper for the specified PHP function
|
|
||||||
// used internally
|
|
||||||
function _wrap($sFunction,$sRequestType=XAJAX_POST)
|
|
||||||
{
|
|
||||||
$js = "function ".$this->sWrapperPrefix."$sFunction(){return xajax.call(\"$sFunction\", arguments, ".$sRequestType.");}\n";
|
|
||||||
return $js;
|
|
||||||
}
|
|
||||||
|
|
||||||
// _xmlToArray() takes a string containing xajax xjxobj xml or xjxquery xml
|
|
||||||
// and builds an array representation of it to pass as an argument to
|
|
||||||
// the php function being called. Returns an array.
|
|
||||||
// used internally
|
|
||||||
function _xmlToArray($rootTag, $sXml)
|
|
||||||
{
|
|
||||||
$aArray = array();
|
|
||||||
$sXml = str_replace("<$rootTag>","<$rootTag>|~|",$sXml);
|
|
||||||
$sXml = str_replace("</$rootTag>","</$rootTag>|~|",$sXml);
|
|
||||||
$sXml = str_replace("<e>","<e>|~|",$sXml);
|
|
||||||
$sXml = str_replace("</e>","</e>|~|",$sXml);
|
|
||||||
$sXml = str_replace("<k>","<k>|~|",$sXml);
|
|
||||||
$sXml = str_replace("</k>","|~|</k>|~|",$sXml);
|
|
||||||
$sXml = str_replace("<v>","<v>|~|",$sXml);
|
|
||||||
$sXml = str_replace("</v>","|~|</v>|~|",$sXml);
|
|
||||||
$sXml = str_replace("<q>","<q>|~|",$sXml);
|
|
||||||
$sXml = str_replace("</q>","|~|</q>|~|",$sXml);
|
|
||||||
|
|
||||||
$this->aObjArray = explode("|~|",$sXml);
|
|
||||||
|
|
||||||
$this->iPos = 0;
|
|
||||||
$aArray = $this->_parseObjXml($rootTag);
|
|
||||||
|
|
||||||
return $aArray;
|
|
||||||
}
|
|
||||||
|
|
||||||
// _parseObjXml() is a recursive function that generates an array from the
|
|
||||||
// contents of $this->aObjArray. Returns an array.
|
|
||||||
// used internally
|
|
||||||
function _parseObjXml($rootTag)
|
|
||||||
{
|
|
||||||
$aArray = array();
|
|
||||||
|
|
||||||
if ($rootTag == "xjxobj")
|
|
||||||
{
|
|
||||||
while(!stristr($this->aObjArray[$this->iPos],"</xjxobj>"))
|
|
||||||
{
|
|
||||||
$this->iPos++;
|
|
||||||
if(stristr($this->aObjArray[$this->iPos],"<e>"))
|
|
||||||
{
|
|
||||||
$key = "";
|
|
||||||
$value = null;
|
|
||||||
|
|
||||||
$this->iPos++;
|
|
||||||
while(!stristr($this->aObjArray[$this->iPos],"</e>"))
|
|
||||||
{
|
|
||||||
if(stristr($this->aObjArray[$this->iPos],"<k>"))
|
|
||||||
{
|
|
||||||
$this->iPos++;
|
|
||||||
while(!stristr($this->aObjArray[$this->iPos],"</k>"))
|
|
||||||
{
|
|
||||||
$key .= $this->aObjArray[$this->iPos];
|
|
||||||
$this->iPos++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(stristr($this->aObjArray[$this->iPos],"<v>"))
|
|
||||||
{
|
|
||||||
$this->iPos++;
|
|
||||||
while(!stristr($this->aObjArray[$this->iPos],"</v>"))
|
|
||||||
{
|
|
||||||
if(stristr($this->aObjArray[$this->iPos],"<xjxobj>"))
|
|
||||||
{
|
|
||||||
$value = $this->_parseObjXml("xjxobj");
|
|
||||||
$this->iPos++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$value .= $this->aObjArray[$this->iPos];
|
|
||||||
}
|
|
||||||
$this->iPos++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$this->iPos++;
|
|
||||||
}
|
|
||||||
|
|
||||||
$aArray[$key]=$value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($rootTag == "xjxquery")
|
|
||||||
{
|
|
||||||
$sQuery = "";
|
|
||||||
$this->iPos++;
|
|
||||||
while(!stristr($this->aObjArray[$this->iPos],"</xjxquery>"))
|
|
||||||
{
|
|
||||||
if (stristr($this->aObjArray[$this->iPos],"<q>") || stristr($this->aObjArray[$this->iPos],"</q>"))
|
|
||||||
{
|
|
||||||
$this->iPos++;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$sQuery .= $this->aObjArray[$this->iPos];
|
|
||||||
$this->iPos++;
|
|
||||||
}
|
|
||||||
|
|
||||||
parse_str($sQuery, $aArray);
|
|
||||||
// If magic quotes is on, then we need to strip the slashes from the
|
|
||||||
// array values because of the parse_str pass which adds slashes
|
|
||||||
if (get_magic_quotes_gpc() == 1) {
|
|
||||||
$newArray = array();
|
|
||||||
foreach ($aArray as $sKey => $sValue) {
|
|
||||||
if (is_string($sValue))
|
|
||||||
$newArray[$sKey] = stripslashes($sValue);
|
|
||||||
else
|
|
||||||
$newArray[$sKey] = $sValue;
|
|
||||||
}
|
|
||||||
$aArray = $newArray;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $aArray;
|
|
||||||
}
|
|
||||||
|
|
||||||
}// end class xajax
|
|
||||||
|
|
||||||
// xajaxErrorHandler() is registered with PHP's set_error_handler() function if
|
|
||||||
// the xajax error handling system is turned on
|
|
||||||
// used by the xajax class
|
|
||||||
function xajaxErrorHandler($errno, $errstr, $errfile, $errline)
|
|
||||||
{
|
|
||||||
$errorReporting = error_reporting();
|
|
||||||
if ($errorReporting == 0) return;
|
|
||||||
|
|
||||||
if ($errno == E_NOTICE) {
|
|
||||||
$errTypeStr = "NOTICE";
|
|
||||||
}
|
|
||||||
else if ($errno == E_WARNING) {
|
|
||||||
$errTypeStr = "WARNING";
|
|
||||||
}
|
|
||||||
else if ($errno == E_USER_NOTICE) {
|
|
||||||
$errTypeStr = "USER NOTICE";
|
|
||||||
}
|
|
||||||
else if ($errno == E_USER_WARNING) {
|
|
||||||
$errTypeStr = "USER WARNING";
|
|
||||||
}
|
|
||||||
else if ($errno == E_USER_ERROR) {
|
|
||||||
$errTypeStr = "USER FATAL ERROR";
|
|
||||||
}
|
|
||||||
else if ($errno == E_STRICT) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$errTypeStr = "UNKNOWN: $errno";
|
|
||||||
}
|
|
||||||
$GLOBALS['xajaxErrorHandlerText'] .= "\n----\n[$errTypeStr] $errstr\nerror in line $errline of file $errfile";
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
Loading…
Reference in New Issue
Block a user