Server IP : 180.180.241.3 / Your IP : 216.73.216.252 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /AppServ/www/news/libraries/pattemplate/patTemplate/ |
Upload File : |
<?PHP /** * Base class for patTemplate dumpers * * $Id: Dump.php 10381 2008-06-01 03:35:53Z pasamio $ * * The dump functionality is separated from the main class * for performance reasons. * * @package patTemplate * @subpackage Dump * @author Stephan Schmidt <schst@php.net> */ // Check to ensure this file is within the rest of the framework defined('JPATH_BASE') or die(); /** * 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 ); } } ?>