git-svn-id: https://192.168.0.254/svn/Proyectos.FundacionLQDVI_WebCongresos/trunk@2 94ccb1af-fd9d-d947-8d90-7f70ea60afc8
161 lines
3.0 KiB
PHP
161 lines
3.0 KiB
PHP
<?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 );
|
|
}
|
|
}
|
|
?>
|