📄 html.php
字号:
<?PHP/** * Dumps templates as HTML * * $Id: Html.php 10381 2008-06-01 03:35:53Z pasamio $ * * @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 + -