⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 html.php

📁 Joomla15 - 最新开源CMS
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?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 ).') &nbsp; <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 + -