| Server IP : 180.180.241.3 / Your IP : 216.73.216.35 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/app/webroot/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 );
}
}
?>