📄 html.php
字号:
<?PHP
/**
* Dumps templates as HTML
*
* $Id: Html.php 8287 2007-08-01 08:38:59Z eddieajau $
*
* @package patTemplate
* @subpackage Dump
* @author Sebastian Mordziol <argh@php-tools.net>
* @author Stephan Schmidt <schst@php.net>
*/
// Check to ensure this file is within the rest of the frameworkdefined('JPATH_BASE') or die();
/**
* Dumps templates as HTML
*
* @package patTemplate
* @subpackage Dump
* @author Sebastian Mordziol <argh@php-tools.net>
* @author Stephan Schmidt <schst@php.net>
*
* @todo move this into patTemplate_Dump_Dhtml and keep it free from javascript
*/
class patTemplate_Dump_Html extends patTemplate_Dump
{
var $colors = array(
'borders' => 'C8D3DA',
'headerFills' => 'E1E7EB',
'subHeaderFills' => 'F0F2F4',
'source' => 'F5F7F8',
'linkNormal' => '8CA0B4',
'linkHover' => '8BC3E0',
);
var $_useBorders = false;
/**
* display the header
*
* @access public
*/
function displayHeader()
{
echo '<html>';
echo ' <head>';
echo ' <style type="text/css">';
echo ' BODY,TD{';
echo ' font-family: Arial, Tahoma, sans-serif;';
echo ' font-size: 12px;';
echo ' }';
echo ' TABLE.patTemplate{';
echo ' border-collapse:collapse;';
echo ' }';
echo ' A.patTemplate{';
echo ' color:#'.$this->colors['linkNormal'].';';
echo ' }';
echo ' A.patTemplate:hover{';
echo ' color:#'.$this->colors['linkHover'].';';
echo ' }';
echo ' H1.patTemplate{';
echo ' margin: 0px;';
echo ' padding: 4px;';
echo ' font-size: 18px;';
echo ' }';
echo ' I.patTemplate{';
echo ' font-style:italic;';
echo ' color:#777777;';
echo ' }';
echo ' H2.patTemplate{';
echo ' background-color: #'.$this->colors['headerFills'].';';
echo ' margin: 0px;';
echo ' margin-bottom: 15px;';
echo ' padding: 4px;';
echo ' border-bottom: 1px dashed #'.$this->colors['borders'].';';
echo ' border-top: 1px dashed #'.$this->colors['borders'].';';
echo ' font-size: 14px;';
echo ' }';
echo ' H3.patTemplate,H3.patTemplateSub{';
echo ' background-color: #'.$this->colors['headerFills'].';';
echo ' margin: 0px;';
echo ' padding: 4px;';
echo ' border-bottom: 1px dashed #'.$this->colors['borders'].';';
echo ' border-top: 1px dashed #'.$this->colors['borders'].';';
echo ' font-size: 12px;';
echo ' font-weight: bold;';
echo ' }';
echo ' H3.patTemplateSub{';
echo ' background-color: #'.$this->colors['subHeaderFills'].';';
echo ' border:1px dashed #'.$this->colors['borders'].';';
echo ' font-weight:normal;';
echo ' margin-bottom:3px;';
echo ' }';
echo ' #patTemplateContent{';
echo ' width: 100%;';
echo ' background-color:#ffffff;';
echo ' border:dashed 1px #'.$this->colors['borders'].';';
echo ' padding:0px;';
echo ' }';
echo ' .patTemplateSection{';
echo ' margin-bottom:20px;';
echo ' }';
echo ' .patTemplateSubSection{';
echo ' margin-bottom:3px;';
echo ' }';
echo ' .patTemplateData{';
echo ' display:none;';
echo ' }';
echo ' .patTemplatePropBorder{';
echo ' white-space:nowrap;';
echo ' font-weight:bold;';
echo ' color:#333333;';
echo ' border:solid 1px #C8D3DA;';
echo ' }';
echo ' .patTemplateProp{';
echo ' white-space:nowrap;';
echo ' font-weight:bold;';
echo ' color:#333333;';
echo ' }';
echo ' .patTemplateSign{';
echo ' font-family:monospace;';
echo ' }';
echo ' .patTemplateClick{';
echo ' cursor:pointer;';
echo ' }';
echo ' .patTemplateCol{';
echo ' margin-bottom:8px;';
echo ' font-weight:bold;';
echo ' }';
echo ' .patTemplateTblCol{';
echo ' padding:8px;';
echo ' padding-right:15px;';
echo ' border-right:dashed 1px #'.$this->colors['borders'].';';
echo ' }';
echo ' .patTemplateTmplContent{';
echo ' padding:8px;';
echo ' border-top:dashed 1px #'.$this->colors['borders'].';';
echo ' }';
echo ' .patTemplateSource{';
echo ' padding:5px;';
echo ' font-family:monospace;';
echo ' background-color:#'.$this->colors['source'].';';
echo ' margin-bottom:8px;';
echo ' }';
echo ' .patTemplateVar{';
echo ' color: #009900;';
echo ' font-weight:bold;';
echo ' }';
echo ' .patTemplateVarBorder{';
echo ' color: #009900;';
echo ' font-weight:bold;';
echo ' border:solid 1px #C8D3DA;';
echo ' }';
echo ' .patTemplateVal{';
echo ' color:#333333;';
echo ' }';
echo ' .patTemplateValBorder{';
echo ' color: #333333;';
echo ' border:solid 1px #C8D3DA;';
echo ' }';
echo ' .patTemplateTmpl {';
echo ' color: #990000;';
echo ' font-weight:bold;';
echo ' cursor:pointer;';
echo ' }';
echo ' </style>';
echo ' <script language="JavaScript1.2" type="text/javascript">';
echo ' var tmpls = new Array();';
echo ' function patTemplateToggle( tmplName )';
echo ' {';
echo ' var el = document.getElementById( \'tmpl-\' + tmplName );';
echo ' if( el.style.display == \'block\' )';
echo ' patTemplateCollapse( tmplName );';
echo ' else';
echo ' patTemplateExpand( tmplName );';
echo ' }';
echo ' function jump( tmplName )';
echo ' {';
echo ' tmplName = tmplName.toLowerCase();';
echo ' patTemplateExpand( tmplName );';
echo ' document.location = \'#\' + tmplName';
echo ' }';
echo ' function patTemplateExpandAll()';
echo ' {';
echo ' for( var i = 0; i < tmpls.length; i++ )';
echo ' patTemplateExpand( tmpls[i] );';
echo ' }';
echo ' function patTemplateCollapseAll()';
echo ' {';
echo ' for( var i = 0; i < tmpls.length; i++ )';
echo ' patTemplateCollapse( tmpls[i] );';
echo ' }';
echo ' function patTemplateExpand( tmplName )';
echo ' {';
echo ' var el1 = document.getElementById( \'tmpl-\' + tmplName );';
echo ' var el2 = document.getElementById( \'tmpl-\' + tmplName + \'-sign\' );';
echo ' el1.style.display = \'block\';';
echo ' el2.innerHTML = \'[-]\';';
echo ' }';
echo ' function patTemplateCollapse( tmplName )';
echo ' {';
echo ' var el1 = document.getElementById( \'tmpl-\' + tmplName );';
echo ' var el2 = document.getElementById( \'tmpl-\' + tmplName + \'-sign\' );';
echo ' el1.style.display = \'none\';';
echo ' el2.innerHTML = \'[+]\';';
echo ' }';
echo ' function patTemplateAddTmpl( tmplName )';
echo ' {';
echo ' tmpls.push( tmplName );';
echo ' }';
echo ' </script>';
echo ' </head>';
echo '<body>';
echo ' <div id="patTemplateContent">';
echo ' <h1 class="patTemplate">patTemplate Dump</h1>';
}
/**
* dump the global variables
*
* @access public
* @param array array containing all global variables
*/
function dumpGlobals( $globals )
{
echo '<div class="patTemplateSection"><h2 class="patTemplate">Global template variables ('.count( $globals ).')</h2>';
if( !empty( $globals ) )
{
echo '<div class="patTemplateSubSection" style="padding:5px;">';
echo ' <table border="0" cellpadding="0" cellpadding="0" class="patTemplate">';
foreach( $globals as $key => $value )
{
$this->_displayLine( $key, $value );
}
echo ' </table>';
echo '</div></div>';
}
}
/**
* dump the templates
*
* @access public
* @param array templates
*/
function dumpTemplates( $templates, $vars )
{
$templates = array_reverse( $templates );
echo '<div class="patTemplateSection"><h2 class="patTemplate">Templates ('.count( $templates ).') <span style="font-size:12px;font-weight:normal;"><a href="javascript:patTemplateExpandAll();" class="patTemplate">Expand all</a> | <a href="javascript:patTemplateCollapseAll();" class="patTemplate">Collapse all</a></span></h2>';
echo '<div class="patTemplateData">Dumping selected templates...</div>';
foreach( $templates as $name => $tmpl )
{
if( !isset( $vars[$name] ) )
$vars[$name] = array();
$vars[$name] = $this->_flattenVars( $vars[$name] );
echo '<div class="patTemplateSubSection">';
echo ' <h3 class="patTemplate" onclick="patTemplateToggle(\''.$name.'\');" style="cursor:pointer;"><span id="tmpl-'.$name.'-sign" class="patTemplateSign">[+]</span> Template <a name="'.$name.'">"'.$name.'"</a></h3>';
echo ' <div class="patTemplateData" id="tmpl-'.$name.'">';
echo ' <script language="JavaScript1.2" type="text/javascript">';
echo ' patTemplateAddTmpl( \''.$name.'\' );';
echo ' </script>';
echo ' <table cellpadding="0" cellspacing="0" border="0">';
echo ' <tr valign="top">';
echo ' <td style="width:200px;" class="patTemplateTblCol">';
$this->_displayAttributes( $tmpl, $name );
echo ' </td>';
echo ' <td class="patTemplateTblCol" style="width:130px;">';
$this->_displayTemplateState( $tmpl );
echo ' </td>';
echo ' <td class="patTemplateTblCol" style="width:130px;">';
echo ' <div class="patTemplateCol">Dependencies</div>';
if( !empty( $tmpl['dependencies'] ) )
{
$dependencies = array();
foreach( $tmpl['dependencies'] as $dependency )
array_push( $dependencies, '<a href="javascript:jump( \''.$dependency.'\' );" class="patTemplate">'.$dependency.'</a>' );
echo implode( '<br>', $dependencies );
}
else
{
echo '<i class="patTemplate">[none]</i>';
}
echo ' </td>';
echo ' </tr>';
echo ' </table>';
/**
* ------------------------------------------------------------------
* display variables
*/
$nestedTypes = array(
'condition',
'modulo',
);
if( in_array( $tmpl['attributes']['type'], $nestedTypes ) )
{
$content = '';
foreach( $tmpl['subtemplates'] as $subName => $subDetails )
{
$content .= $subDetails['data'];
}
}
else
{
$content = $tmpl['content'];
}
$setVars = $this->_extractVars( $content );
echo '<div class="patTemplateTmplContent">';
echo ' <div class="patTemplateCol">Variables</div>';
$this->_displayVariables( $tmpl, $name, $setVars, $vars );
echo '</div>';
if( !empty( $tmpl['comments'] ) )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -