From 59beeed83c9e630cc713b27fc49a05e66e7d4404 Mon Sep 17 00:00:00 2001 From: humano Date: Sat, 2 Dec 2017 20:21:44 -0500 Subject: [PATCH] formulario especial apra notas --- librerias/notas/script.js | 2 +- librerias/notas/styles.css | 13 + milfs/funciones/funciones.php | 148 ++++-- milfs/xajax/xajax.inc.php~ | 857 ---------------------------------- 4 files changed, 116 insertions(+), 904 deletions(-) delete mode 100644 milfs/xajax/xajax.inc.php~ diff --git a/librerias/notas/script.js b/librerias/notas/script.js index 331bb17..bb82f80 100755 --- a/librerias/notas/script.js +++ b/librerias/notas/script.js @@ -60,4 +60,4 @@ xajax_notes('','mover',datos,''); xajax_ultimos_registros(document.getElementById('ultimo_id').value,formulario[0]); } }); -} \ No newline at end of file +} diff --git a/librerias/notas/styles.css b/librerias/notas/styles.css index 7458139..1e978dc 100755 --- a/librerias/notas/styles.css +++ b/librerias/notas/styles.css @@ -26,6 +26,19 @@ border: solid 1px ; border-color: #cccccc; padding: 1px; } + +.notes input, textarea { + font : 40px "handwriting", sans-serif; + + border : none; + padding : 10px; + margin : 0; + width : 100%; + min-height : 350px; + + background: none; +} + .note{ min-height:150px; padding:5px; diff --git a/milfs/funciones/funciones.php b/milfs/funciones/funciones.php index b0d81fe..7435138 100644 --- a/milfs/funciones/funciones.php +++ b/milfs/funciones/funciones.php @@ -499,15 +499,12 @@ $xajax->registerFunction("notas_estadisticas"); function formulario_mini($datos,$id,$opciones,$tipo){ $respuesta = new xajaxResponse('utf-8'); - $publico = remplacetas('form_id','id',"$id",'modificable',"") ; - $equipo = remplacetas('form_datos','control',$opciones,'equipo',"") ; if($publico[0] =="0" AND $_SESSION['id'] =="") { $resultado = "

Ingresa Para agregar datos a esta aplicación.

"; $respuesta->addAssign("titulo_modal","innerHTML","$cabecera"); $respuesta->addAssign("muestra_form","innerHTML","$resultado"); - $respuesta->addscript("$('#muestraInfo').modal('toggle')"); return $respuesta; } @@ -518,14 +515,9 @@ function formulario_mini($datos,$id,$opciones,$tipo){
$login
"; $respuesta->addAssign("titulo_modal","innerHTML","$cabecera"); $respuesta->addAssign("muestra_form","innerHTML","$resultado"); - $respuesta->addscript("$('#muestraInfo').modal('toggle')"); return $respuesta; - } - //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido"); - //($perfil,$tipo,$form_respuesta,$control_respuesta) - $propietario = remplacetas('form_id','id',$id,'propietario',"") ; 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] )){ $aviso = "

ATENCIÓN
No está autorizado Para modificar esta información
pertenece a un grupo de trabajo diferente

"; - $resultado = "
- $salir - $aviso - + $salir $aviso
"; -// $respuesta->addAssign("titulo_modal","innerHTML","$cabecera"); $respuesta->addAssign("muestra_form","innerHTML","$resultado"); - $respuesta->addscript("$('#muestraInfo').modal('toggle')"); return $respuesta; } @@ -578,46 +565,84 @@ if($tipo =='edit' AND ($_SESSION['equipo'] !== $equipo[0] )){ "; - - - - // return $resultado; $respuesta->addAssign("titulo_modal","innerHTML","$cabecera"); $respuesta->addAssign("muestra_form","innerHTML","$resultado"); - - $respuesta->addscript("$('#muestraInfo').modal('toggle')"); - 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="
+
Grabar
+
"; + $nota=" +
- // return "Hola mundo";} + +
+ Cancelar + Mas datos +
+
+
+
+
+
+ + +
+
+
+
+ + + + + + + + + $boton +
+
+ +
"; //$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="";} $impresion = formulario_areas($datos,"$id","$tipo","$form_respuesta","$opciones"); $cantidad_areas = formulario_areas('',"$id","cantidad","$form_respuesta","$opciones"); $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ; $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ; - //$visitas= contar_visitas($id,'formulario') ; $muestra_form = "
- - $impresion -
"; - // return $muestra_form ; - //$respuesta->addAssign("$div","innerHTML","$resultado"); - //$div_contenido = "
$div
"; $respuesta->addAssign("muestra_form","innerHTML","$muestra_form"); $respuesta->addAssign("titulo_modal","innerHTML","$cabecera"); $respuesta->addAssign("pie_modal","innerHTML","$pie"); - //$respuesta->addAssign("$div","innerHTML","$resultado"); $respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')"); $respuesta->addscript(" $('.next').click(function(){ @@ -659,7 +684,6 @@ $('.first').click(function(){ $respuesta->addscript("$('#muestraInfo').modal('toggle')"); - ///if($tipo =="edit") {return $muestra_form;} return $respuesta; } @@ -709,6 +733,7 @@ function notas_tablero($form) {
  • +
  • @@ -746,9 +771,9 @@ $footer -
    +
    -
    +
    @@ -805,9 +830,10 @@ return $tablero; function ultimos_registros($id,$form) { //$id= ($id -100000); + //$ultimo = time(); $registros=""; $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(); mysqli_set_charset($link, "utf8"); $sql=mysqli_query($link,$consulta); @@ -816,12 +842,19 @@ function ultimos_registros($id,$form) { { $registros .= notes("$form",'','',"$row[control]")." "; - }} - //$notes = notes("$form",'','',''); - //$respuesta->addAlert("$id $registros"); - //$respuesta->addPrepend("prueba","innerHTML","$registros"); - $respuesta->addAssign("prueba","innerHTML","$registros"); + + } + + $respuesta->addAppend("prueba","innerHTML","$registros"); $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; } @@ -851,6 +884,10 @@ return mysqli_result($sql,0,'id_campo'); } +function nota_nueva(){ + + } + function notes($id,$accion,$datos,$registro){ if($accion =="") { @@ -858,7 +895,7 @@ if($accion =="") { //$color='blue'; $consulta = "SELECT * FROM form_datos WHERE form_id = '$id' AND control ='$registro' Limit 1"; }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; $link=Conectarse(); @@ -878,6 +915,7 @@ $zindex=''; $id_campo = campo_titulo($id) ; } $orden =1; +$orden_left =1; mysqli_data_seek($sql, 0); while($row=mysqli_fetch_assoc($sql)) { @@ -907,7 +945,7 @@ list($left_inicial,$top_inicial,$zindex_inicial,$autor) = explode('-',$metadatos if($left=="") { $top = ($orden+100);//random_int(1,5000); - $left = ($orden+100);//random_int(1,5000); + $left = ($orden_left+100);//random_int(1,5000); $zindex = $orden; }else{ @@ -985,8 +1023,10 @@ if($comprometo[0] !="") { $comprometox="text-success";}else { $comprometox="";} "; // parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div,$script,$item) - $orden = ($orden+1); - $ultimo_id = $row['timestamp']; + $orden = ($orden+2); + $orden_left = ($orden+1); + $ultimo = mktime(); + $ultimo_id = $ultimo; } return "$notes "; @@ -15065,7 +15105,6 @@ function formulario_grabar($formulario) { foreach($formulario as $c=>$v){ -//LISTA ELEMENTOS DE UN ARRAY if (is_array($v) ){ foreach($v as $C=>$V){ @@ -15269,6 +15308,12 @@ if($consulta_grabada =='1') { $y= $metadatos[2][1]; $z= $metadatos[3][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]"); $metadatos_iniciales = parametrizacion_linea('form_id',"$formulario[form_id]",'metadatos_iniciales',"$x-$y-$z-$autor",'mensaje_$control','',"$formulario[control]"); @@ -15347,7 +15392,7 @@ $mensaje_agradecimiento = remplacetas('form_parametrizacion','campo',"$formulari $envio
    -
    "; +
    "; // $mail ='1'; } @@ -15395,13 +15440,24 @@ Esta herramienta es creada y proporcionada por Tupale.co, como portal para el ac //$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 "); return $respuesta; }else{ + + $datos = print_r($formulario,true); $mensaje =" -

    Todo bien pero al parecer no se modificaron registros

    "; +

    Todo bien pero al parecer no se modificaron registros

    "; $respuesta->addAssign("div_$control","innerHTML","$mensaje"); + } //$respuesta->addAssign("respuesta_$control","innerHTML","$resultado"); return $respuesta; diff --git a/milfs/xajax/xajax.inc.php~ b/milfs/xajax/xajax.inc.php~ deleted file mode 100644 index a67508c..0000000 --- a/milfs/xajax/xajax.inc.php~ +++ /dev/null @@ -1,857 +0,0 @@ -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],"") != false) - { - $aArgs[$i] = $this->_xmlToArray("xjxobj",$aArgs[$i]); - } - else if (stristr($aArgs[$i],"") != 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, "") === 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 - // 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: - // - // ... - // < ?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 tags. See printJavascript() - // for information about the function arguments. - // usage: - // < ?php $xajaxJSHead = $xajax->getJavascript(); ? > - // - // ... - // < ?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\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 " . dirname($realJsFile) . " 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 " . dirname($realJsFile) . " 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 " . dirname($realJsFile) . " folder. Error ", E_USER_ERROR); - } - else { - fwrite($fH, $compressedScript); - fclose($fH); - } - } - - $html .= "\t\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("","|~|",$sXml); - $sXml = str_replace("","|~|",$sXml); - $sXml = str_replace("","|~|",$sXml); - $sXml = str_replace("","|~|",$sXml); - $sXml = str_replace("","|~||~|",$sXml); - $sXml = str_replace("","|~|",$sXml); - $sXml = str_replace("","|~||~|",$sXml); - $sXml = str_replace("","|~|",$sXml); - $sXml = str_replace("","|~||~|",$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],"")) - { - $this->iPos++; - if(stristr($this->aObjArray[$this->iPos],"")) - { - $key = ""; - $value = null; - - $this->iPos++; - while(!stristr($this->aObjArray[$this->iPos],"")) - { - if(stristr($this->aObjArray[$this->iPos],"")) - { - $this->iPos++; - while(!stristr($this->aObjArray[$this->iPos],"")) - { - $key .= $this->aObjArray[$this->iPos]; - $this->iPos++; - } - } - if(stristr($this->aObjArray[$this->iPos],"")) - { - $this->iPos++; - while(!stristr($this->aObjArray[$this->iPos],"")) - { - if(stristr($this->aObjArray[$this->iPos],"")) - { - $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],"")) - { - if (stristr($this->aObjArray[$this->iPos],"") || stristr($this->aObjArray[$this->iPos],"")) - { - $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"; -} - -?> \ No newline at end of file