⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 controls.class.php

📁 ajax修炼之道源代码。很难下到的。现在奉献给大家。
💻 PHP
字号:
<?php/** * XOAD_Controls file. * * <p>This file defines the {@link XOAD_Controls} Class.</p> * <p>Example:</p> * <code> * * XOAD_Controls::register('xoad', array('Panel', 'PanelTitle', 'PanelContent'), 'xoad.controls.panel.js'); * * </code> * * @author		Stanimir Angeloff * * @package		XOAD * * @subpackage	XOAD_Controls * * @version		0.6.0.0 * *//** * Holds a list with the controls that are already registered. */$GLOBALS['_XOAD_CONTROLS_LIST'] = array();/** * Holds a list with the scripts that are already included. */$GLOBALS['_XOAD_CONTROLS_SCRIPT'] = array();/** * XOAD_Controls Class. * * <p>This class allows you to register custom client controls.</p> * <p>Each control includes a JS file that defines the class that will handle * the control. Additionally, you can attach a server class and a HTML code.</p> * <p>Example:</p> * <code> * * XOAD_Controls::register('xoad', array('Panel', 'PanelTitle', 'PanelContent'), 'xoad.controls.panel.js'); * * </code> * * @author		Stanimir Angeloff * * @package		XOAD * * @subpackage	XOAD_Controls * * @version		0.6.0.0 * */class XOAD_Controls{	/**	 * Gets the absolute path to the file.	 *	 * @access	private	 *	 * @return	string	 *	 */	function getFileName($fileName)	{		if (strpos($fileName, DIRECTORY_SEPARATOR) === 0) {			return $fileName;		}		if (strlen($fileName) >= 3) {			if (			($fileName{1} == ':') &&			($fileName{2} == DIRECTORY_SEPARATOR)) {				return $fileName;			}		}		return XOAD_CONTROLS_BASE . '/library/' . $fileName;	}	/** 	 * Registers a custom client control. 	 *	 * <p>Each control includes a JS file that defines the class that	 * will handle the control. Additionally, you can attach a server class and	 * a HTML code.</p>	 *	 * @access	public	 *	 * @param	string	$tagPrefix	The tag prefix for the control, required.	 * @param	mixed	$tagName	The tag name for the control, required.	 * @param	string	$jsFile		The relative path to the JS file that	 * 								defines the class that will handle the	 * 								control, required.	 * @param	string	$phpFile	The relative/absolute path to the PHP file	 * 								that defines the server class that is	 * 								associated with the control, optional.	 * @param	string	$url		The callback URL for the server class,	 * 								optional.	 * @param	string	$htmlFile	The relative/absolute path to the HTML file	 * 								that defines the code that is associated	 * 								with the control, optional.	 *	 * @return	string	HTML code to register the custom control.	 *	 * @static	 *	 */	function register($tagPrefix = 'xoad', $tagName = null, $jsFile = null, $phpFile = null, $url = null, $htmlFile = null)	{		if (		(empty($phpFile)) &&		(empty($jsFile))) {			return null;		}		if (XOAD_Utilities::getType($tagName) == 's_array') {			$returnValue = '';			foreach ($tagName as $name) {				$returnValue .= XOAD_Controls::register($tagPrefix, $name, $jsFile, $phpFile, $url, $htmlFile);			}			return $returnValue;		}		if (XOAD_Utilities::getType($tagName) == 'a_array') {			$returnValue = '';			foreach ($tagName as $prefix => $name) {				$returnValue .= XOAD_Controls::register($prefix, $name, $jsFile, $phpFile, $url, $htmlFile);			}			return $returnValue;		}		if (		(empty($tagPrefix)) ||		(empty($tagName))) {			return null;		}		$registerAttribute = ($tagName == '@');		$controlName = strtolower($tagPrefix) . ':' . strtolower($tagName);		if (		( ! $registerAttribute) &&		(in_array($controlName, $GLOBALS['_XOAD_CONTROLS_LIST']))) {			return null;		}		$phpControlName = $tagPrefix . '_Controls_' . $tagName;		$jsControlName = $tagPrefix . '.controls.' . $tagName;		$includeScript = '';		$returnValue = '';		if ( ! empty($phpFile)) {			require_once(XOAD_Controls::getFileName($phpFile));			if (empty($url)) {				$url = XOAD_Utilities::getRequestUrl();			}			$phpObject = new $phpControlName();			XOAD_Client::privateMethods($phpObject, array('getJSCode', 'getHtmlCode'));			$returnValue .= XOAD_Client::register($phpControlName, $url) . ';';		}		if ( ! empty($jsFile)) {			if ( ! in_array($jsFile, $GLOBALS['_XOAD_CONTROLS_SCRIPT'])) {				$includeScript .= '<script type="text/javascript" src="' . htmlspecialchars($jsFile) . '"></script>';				$GLOBALS['_XOAD_CONTROLS_SCRIPT'][] = $jsFile;			}		} else {			if (			(isset($phpObject)) &&			(method_exists($phpObject, 'getJSCode'))) {				$returnValue .= $phpObject->getJSCode($jsControlName, $phpControlName);			}		}		$controlHtml = null;		if ( ! empty($htmlFile)) {			$controlHtml = @join(null, @file(XOAD_Controls::getFileName($htmlFile)));		} else {			if (			(isset($phpObject)) &&			(method_exists($phpObject, 'getHtmlCode'))) {				$controlHtml = $phpObject->getHtmlCode($jsControlName, $phpControlName);			}		}		if ( ! $registerAttribute) {			$returnValue .= 'xoad.controls.list[' . sizeof($GLOBALS['_XOAD_CONTROLS_LIST']) . '] = {';			$returnValue .= 'tagName:' . XOAD_Client::register($controlName);			if ( ! empty($jsFile)) {				$returnValue .= ',clientClass:' . XOAD_Client::register($jsControlName);			}			if ( ! empty($phpFile)) {				$returnValue .= ',serverClass:' . XOAD_Client::register($phpControlName);			}			if ( ! empty($controlHtml)) {				$returnValue .= ',html:' . XOAD_Client::register($controlHtml);			}			$returnValue .= '};';		}		if ( ! empty($returnValue)) {			$returnValue = '<script type="text/javascript">' . $returnValue . '</script>';		}		$returnValue = $includeScript . $returnValue;		$GLOBALS['_XOAD_CONTROLS_LIST'][] = $controlName;		return $returnValue;	}}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -