?? xajax.inc.php
字號:
<?php/** * xajax.inc.php :: Main xajax class and setup file * * xajax version 0.2.4 * copyright (c) 2005 by Jared White & J. Max Wilson * http://www.xajaxproject.org * * 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 * * @package xajax * @version $Id: xajax.inc.php 4 2007-06-16 14:22:19Z websmurf $ * @copyright Copyright (c) 2005-2006 by Jared White & J. Max Wilson * @license http://www.gnu.org/copyleft/lesser.html#SEC3 LGPL License *//* ---------------------------------------------------------------------------- | Online documentation for this class is available on the xajax wiki at: | | http://wiki.xajaxproject.org/Documentation:xajax.inc.php | ----------------------------------------------------------------------------*//** * 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(dirname(__FILE__)."/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. * * @package xajax */ class xajax{ /**#@+ * @access protected */ /** * @var array Array of PHP functions that will be callable through javascript wrappers */ var $aFunctions; /** * @var array Array of object callbacks that will allow Javascript to call PHP methods (key=function name) */ var $aObjects; /** * @var array Array of RequestTypes to be used with each function (key=function name) */ var $aFunctionRequestTypes; /** * @var array Array of Include Files for any external functions (key=function name) */ var $aFunctionIncludeFiles; /** * @var string Name of the PHP function to call if no callable function was found */ var $sCatchAllFunction; /** * @var string Name of the PHP function to call before any other function */ var $sPreFunction; /** * @var string The URI for making requests to the xajax object */ var $sRequestURI; /** * @var string The prefix to prepend to the javascript wraper function name */ var $sWrapperPrefix; /** * @var boolean Show debug messages (default false) */ var $bDebug; /** * @var boolean Show messages in the client browser's status bar (default false) */ var $bStatusMessages; /** * @var boolean Allow xajax to exit after processing a request (default true) */ var $bExitAllowed; /** * @var boolean Use wait cursor in browser (default true) */ var $bWaitCursor; /** * @var boolean Use an special xajax error handler so the errors are sent to the browser properly (default false) */ var $bErrorHandler; /** * @var string Specify what, if any, file xajax should log errors to (and more information in a future release) */ var $sLogFile; /** * @var boolean Clean all output buffers before outputting response (default false) */ var $bCleanBuffer; /** * @var string String containing the character encoding used */ var $sEncoding; /** * @var boolean Decode input request args from UTF-8 (default false) */ var $bDecodeUTF8Input; /** * @var boolean Convert special characters to HTML entities (default false) */ var $bOutputEntities; /** * @var array Array for parsing complex objects */ var $aObjArray; /** * @var integer Position in $aObjArray */ var $iPos; /**#@-*/ /** * Constructor. You can set some extra xajax options right away or use * individual methods later to set options. * * @param string defaults to the current browser URI * @param string defaults to "xajax_"; * @param string defaults to XAJAX_DEFAULT_CHAR_ENCODING defined above * @param boolean defaults to false */ function xajax($sRequestURI="",$sWrapperPrefix="xajax_",$sEncoding=XAJAX_DEFAULT_CHAR_ENCODING,$bDebug=false) { $this->aFunctions = array(); $this->aObjects = array(); $this->aFunctionIncludeFiles = array(); $this->sRequestURI = $sRequestURI; if ($this->sRequestURI == "") $this->sRequestURI = $this->_detectURI(); $this->sWrapperPrefix = $sWrapperPrefix; $this->bDebug = $bDebug; $this->bStatusMessages = false; $this->bWaitCursor = true; $this->bExitAllowed = true; $this->bErrorHandler = false; $this->sLogFile = ""; $this->bCleanBuffer = false; $this->setCharEncoding($sEncoding); $this->bDecodeUTF8Input = false; $this->bOutputEntities = false; } /** * Sets the URI to which requests will be made. * <i>Usage:</i> <kbd>$xajax->setRequestURI("http://www.xajaxproject.org");</kbd> * * @param string the URI (can be absolute or relative) of the PHP script * that will be accessed when an xajax request occurs */ function setRequestURI($sRequestURI) { $this->sRequestURI = $sRequestURI; } /** * Sets the prefix that will be appended to the Javascript wrapper * functions (default is "xajax_"). * * @param string */ // function setWrapperPrefix($sPrefix) { $this->sWrapperPrefix = $sPrefix; } /** * Enables debug messages for xajax. * */ function debugOn() { $this->bDebug = true; } /** * Disables debug messages for xajax (default behavior). */ function debugOff() { $this->bDebug = false; } /** * Enables messages in the browser's status bar for xajax. */ function statusMessagesOn() { $this->bStatusMessages = true; } /** * Disables messages in the browser's status bar for xajax (default behavior). */ function statusMessagesOff() { $this->bStatusMessages = false; } /** * Enables the wait cursor to be displayed in the browser (default behavior). */ function waitCursorOn() { $this->bWaitCursor = true; } /** * Disables the wait cursor to be displayed in the browser. */ function waitCursorOff() { $this->bWaitCursor = false; } /** * Enables xajax to exit immediately after processing a request and * sending the response back to the browser (default behavior). */ function exitAllowedOn() { $this->bExitAllowed = true; } /** * 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; } /** * 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; } /** * Turns off xajax's error handling system (default behavior). */ function errorHandlerOff() { $this->bErrorHandler = false; } /** * 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. * <i>Usage:</i> <kbd>$xajax->setLogFile("/xajax_logs/errors.log");</kbd> */ function setLogFile($sFilename) { $this->sLogFile = $sFilename; } /** * Causes xajax to clean out all output buffers before outputting a * response (default behavior). */ function cleanBufferOn() { $this->bCleanBuffer = true; } /** * Turns off xajax's output buffer cleaning. */ function cleanBufferOff() { $this->bCleanBuffer = false; } /** * Sets the character encoding for the HTTP output based on * <kbd>$sEncoding</kbd>, which is a string containing the character * encoding to use. You don't need to use this method normally, since the * character encoding for the response gets set automatically based on the * <kbd>XAJAX_DEFAULT_CHAR_ENCODING</kbd> constant. * <i>Usage:</i> <kbd>$xajax->setCharEncoding("utf-8");</kbd> * * @param string the encoding type to use (utf-8, iso-8859-1, etc.) */ function setCharEncoding($sEncoding) { $this->sEncoding = $sEncoding; } /** * Causes xajax to decode the input request args from UTF-8 to the current * encoding if possible. Either the iconv or mb_string extension must be * present for optimal functionality. */ function decodeUTF8InputOn() { $this->bDecodeUTF8Input = true; } /** * Turns off decoding the input request args from UTF-8 (default behavior). */ function decodeUTF8InputOff() { $this->bDecodeUTF8Input = false; } /** * Tells the response object to convert special characters to HTML entities * automatically (only works if the mb_string extension is available). */ function outputEntitiesOn() { $this->bOutputEntities = true; } /** * Tells the response object to output special characters intact. (default * behavior). */ function outputEntitiesOff() { $this->bOutputEntities = false; } /** * 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: * <kbd>array("myFunctionName", "myClass", "myMethod")</kbd> * 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. * * <i>Usage:</i> <kbd>$xajax->registerFunction("myFunction");</kbd> * or: <kbd>$xajax->registerFunction(array("myFunctionName", &$myObject, "myMethod"));</kbd> * * @param mixed contains the function name or an object callback array * @param mixed request type (XAJAX_GET/XAJAX_POST) that should be used * for this function. Defaults to XAJAX_POST. */ 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; } } /** * 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.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -