dump.php

来自「mambo的cms源代码」· PHP 代码 · 共 157 行

PHP
157
字号
<?PHP/** * Base class for patTemplate dumpers * * $Id: Dump.php,v 1.9 2004/05/25 20:38:38 schst Exp $ * * The dump functionality is separated from the main class * for performance reasons. * * @package		patTemplate * @subpackage	Dump * @author		Stephan Schmidt <schst@php.net> *//** * Base class for patTemplate dumpers * * The dump functionality is separated from the main class * for performance reasons. * * @abstract * @package		patTemplate * @subpackage	Dump * @author		Stephan Schmidt <schst@php.net> */class patTemplate_Dump extends patTemplate_Module{   /**    * reference to the patTemplate object that instantiated the module	*	* @access	protected	* @var	object	*/	var	$_tmpl;   /**    * set a reference to the patTemplate object that instantiated the reader	*	* @access	public	* @param	object		patTemplate object	*/	function setTemplateReference( &$tmpl )	{		$this->_tmpl		=	&$tmpl;	}   /**	* display the header	*	* @access	public	*/	function displayHeader()	{	}   /**	* dump the global variables	*	* @access	public	* @param	array		array containing all global variables	* @abstract	*/	function dumpGlobals( $globals )	{	}	   /**	* dump the templates	*	* This method has to be implemented in the dumpers.	*	* @access	public	* @abstract	* @param	array	templates	* @param	array	variables	*/	function dumpTemplates( $templates, $vars )	{	}   /**	* display the footer	*	* @access	public	*/	function displayFooter()	{	}   /** 	* flatten the variables	*	* This will convert the variable definitions	* to a one-dimensional array. If there are	* rows defined, they will be converted to a string	* where the values are seperated with commas.	*	* @access	private	* @param	array		variable definitions	* @return	array		flattened variables	*/	function _flattenVars( $vars )	{		$flatten	=	array();		foreach( $vars['scalar'] as $var => $value )		{			$flatten[$var]	=	$value;		}		foreach( $vars['rows'] as $row )		{			foreach( $row as $var => $value )			{				if( !isset( $flatten[$var] ) || !is_array( $flatten[$var] ) )					$flatten[$var]	=	array();				array_push( $flatten[$var], $value );			}		}		foreach( $flatten as $var => $value )		{			if( !is_array( $value ) )				continue;							$flatten[$var] = '['.count($value).' rows] ('.implode( ', ', $value ).')';		}		return $flatten;	}   /**	* extract all variables from a template	*	* @access	private	* @param	string		template content	* @return	array		array containing all variables	*/	function _extractVars( $template )	{		$pattern = '/'.$this->_tmpl->getStartTag().'([^a-z]+)'.$this->_tmpl->getEndTag().'/U';				$matches = array();				$result = preg_match_all( $pattern, $template, $matches );		if( $result == false )			return array();		$vars = array();		foreach( $matches[1] as $var )		{			if( strncmp( $var, 'TMPL:', 5 ) === 0 )				continue;			array_push( $vars, $var );		}		return array_unique( $vars );	}}?>

⌨️ 快捷键说明

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