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

📄 javascript.php

📁 Cake Framwork , Excellent
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php/* SVN FILE: $Id: javascript.php 7118 2008-06-04 20:49:29Z gwoo $ *//** * Javascript Helper class file. * * PHP versions 4 and 5 * * CakePHP(tm) :  Rapid Development Framework <http://www.cakephp.org/> * Copyright 2005-2008, Cake Software Foundation, Inc. *								1785 E. Sahara Avenue, Suite 490-204 *								Las Vegas, Nevada 89104 * * Licensed under The MIT License * Redistributions of files must retain the above copyright notice. * * @filesource * @copyright		Copyright 2005-2008, Cake Software Foundation, Inc. * @link				http://www.cakefoundation.org/projects/info/cakephp CakePHP(tm) Project * @package			cake * @subpackage		cake.cake.libs.view.helpers * @since			CakePHP(tm) v 0.10.0.1076 * @version			$Revision: 7118 $ * @modifiedby		$LastChangedBy: gwoo $ * @lastmodified	$Date: 2008-06-04 13:49:29 -0700 (Wed, 04 Jun 2008) $ * @license			http://www.opensource.org/licenses/mit-license.php The MIT License *//** * Javascript Helper class for easy use of JavaScript. * * JavascriptHelper encloses all methods needed while working with JavaScript. * * @package		cake * @subpackage	cake.cake.libs.view.helpers */class JavascriptHelper extends AppHelper {/** * Determines whether native JSON extension is used for encoding.  Set by object constructor. * * @var boolean * @access public */	var $useNative = false;/** * If true, automatically writes events to the end of a script or to an external JavaScript file * at the end of page execution * * @var boolean * @access public */	var $enabled = true;/** * Indicates whether <script /> blocks should be written 'safely,' i.e. wrapped in CDATA blocks * * @var boolean * @access public */	var $safe = false;/** * HTML tags used by this helper. * * @var array * @access public */	var $tags = array(		'javascriptblock' => '<script type="text/javascript">%s</script>',		'javascriptstart' => '<script type="text/javascript">',		'javascriptlink' => '<script type="text/javascript" src="%s"></script>',		'javascriptend' => '</script>'	);/** * Holds options passed to codeBlock(), saved for when block is dumped to output * * @var array * @access protected * @see JavascriptHelper::codeBlock() */	var $_blockOptions = array();/** * Caches events written by event() for output at the end of page execution * * @var array * @access protected * @see JavascriptHelper::event() */	var $_cachedEvents = array();/** * Indicates whether generated events should be cached for later output (can be written at the end of the page, * in the <head />, or to an external file). * * @var boolean * @access protected * @see JavascriptHelper::event() * @see JavascriptHelper::writeEvents() */	var $_cacheEvents = false;/** * Indicates whether cached events should be written to an external file * * @var boolean * @access protected * @see JavascriptHelper::event() * @see JavascriptHelper::writeEvents() */	var $_cacheToFile = false;/** * Indicates whether *all* generated JavaScript should be cached for later output * * @var boolean * @access protected * @see JavascriptHelper::codeBlock() * @see JavascriptHelper::blockEnd() */	var $_cacheAll = false;/** * Contains event rules attached with CSS selectors.  Used with the event:Selectors JavaScript library. * * @var array * @access protected * @see JavascriptHelper::event() * @link http://alternateidea.com/event-selectors/ */	var $_rules = array();/** * @var string * @access private */	var $__scriptBuffer = null;/** * Constructor. Checks for presence of native PHP JSON extension to use for object encoding * * @access public */	function __construct($options = array()) {		if (!empty($options)) {			foreach ($options as $key => $val) {				if (is_numeric($key)) {					$key = $val;					$val = true;				}				switch ($key) {					case 'cache':					break;					case 'safe':						$this->safe = $val;					break;				}			}		}		$this->useNative = function_exists('json_encode');		return parent::__construct($options);	}/** * Returns a JavaScript script tag. * * @param string $script The JavaScript to be wrapped in SCRIPT tags. * @param array $options Set of options: allowCache, safe * @param boolean $safe DEPRECATED. Use $options['safe'] instead * @return string The full SCRIPT element, with the JavaScript inside it. */	function codeBlock($script = null, $options = array(), $safe = true) {		if (!empty($options) && !is_array($options)) {			$options = array('allowCache' => $options);		} else if (empty($options)) {			$options = array();		}		$defaultOptions = array('allowCache' => true, 'safe' => true, 'inline' => true);		$options = array_merge($defaultOptions, compact('safe'), $options);		if ($this->_cacheEvents && $this->_cacheAll && $options['allowCache'] && $script !== null) {			$this->_cachedEvents[] = $script;		} else {			$block = ($script !== null);			$safe = ($options['safe'] || $this->safe);			if ($safe && !($this->_cacheAll && $options['allowCache'])) {				$script  = "\n" . '//<![CDATA[' . "\n" . $script;				if ($block) {					$script .= "\n" . '//]]>' . "\n";				}			}			if ($script === null) {				$this->__scriptBuffer = @ob_get_contents();				$this->_blockOptions = $options;				$this->inBlock = true;				@ob_end_clean();				ob_start();				return null;			} else if (!$block) {				$this->_blockOptions = $options;			}			if ($options['inline']) {				if ($block) {					return sprintf($this->tags['javascriptblock'], $script);				} else {					return sprintf($this->tags['javascriptstart']).ife($safe, "\n" . '//<![CDATA[' . "\n", '');				}			} elseif ($block) {				$view =& ClassRegistry::getObject('view');				$view->addScript(sprintf($this->tags['javascriptblock'], $script));			}		}	}/** * Ends a block of cached JavaScript code * * @return mixed */	function blockEnd() {		$script = @ob_get_contents();		@ob_end_clean();		ob_start();		echo $this->__scriptBuffer;		$this->__scriptBuffer = null;		$options = $this->_blockOptions;		$safe = ($options['safe'] || $this->safe);		$this->_blockOptions = array();		$this->inBlock = false;		if (isset($options['inline']) && !$options['inline']) {			$view =& ClassRegistry::getObject('view');			$view->addScript(sprintf($this->tags['javascriptblock'], $script));		}		if (!empty($script) && $this->_cacheAll && $options['allowCache']) {			$this->_cachedEvents[] = $script;			return null;		}		return ife($safe, "\n" . '//]]>' . "\n", '').$this->tags['javascriptend'];	}/** * Returns a JavaScript include tag (SCRIPT element).  If the filename is prefixed with "/", * the path will be relative to the base path of your application.  Otherwise, the path will * be relative to your JavaScript path, usually webroot/js. * * @param  mixed  $url String URL to JavaScript file, or an array of URLs. * @param  boolean $inline If true, the <script /> tag will be printed inline, *                         otherwise it will be printed in the <head />, using $scripts_for_layout * @see JS_URL * @return string */	function link($url, $inline = true) {		if (is_array($url)) {			$out = '';			foreach ($url as $i) {				$out .= "\n\t" . $this->link($i, $inline);			}			if ($inline)  {				return $out . "\n";			}			return;		}		if (strpos($url, '://') === false) {			if ($url{0} !== '/') {				$url = JS_URL . $url;			}			if (strpos($url, '?') === false) {				if (strpos($url, '.js') === false) {			 		$url .= '.js';				}				if ((Configure::read('Asset.timestamp') === true && Configure::read() > 0) || Configure::read('Asset.timestamp') === 'force') {					$url .= '?' . @filemtime(WWW_ROOT . str_replace('/', DS, $url));				}			}			$url = $this->webroot($url);			if (Configure::read('Asset.filter.js')) {				$url = str_replace(JS_URL, 'cjs/', $url);			}		}		$out = $this->output(sprintf($this->tags['javascriptlink'], $url));		if ($inline) {			return $out;		} else {			$view =& ClassRegistry::getObject('view');			$view->addScript($out);		}	}/** * Escape carriage returns and single and double quotes for JavaScript segments. * * @param string $script string that might have javascript elements * @return string escaped string */	function escapeScript($script) {

⌨️ 快捷键说明

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