You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							1304 lines
						
					
					
						
							25 KiB
						
					
					
				
			
		
		
	
	
							1304 lines
						
					
					
						
							25 KiB
						
					
					
				<?php
 | 
						|
/**
 | 
						|
* Krumo: Structured information display solution
 | 
						|
*
 | 
						|
* Krumo is a debugging tool (PHP5 only), which displays structured information 
 | 
						|
* about any PHP variable. It is a nice replacement for print_r() or var_dump() 
 | 
						|
* which are used by a lot of PHP developers. 
 | 
						|
*
 | 
						|
* @author Kaloyan K. Tsvetkov <kaloyan@kaloyan.info>
 | 
						|
* @license http://opensource.org/licenses/lgpl-license.php GNU Lesser General Public License Version 2.1
 | 
						|
*
 | 
						|
* @package Krumo
 | 
						|
* @version $Id: class.krumo.php 22 2007-12-02 07:38:18Z Mrasnika $
 | 
						|
*/
 | 
						|
 | 
						|
//////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
/**
 | 
						|
* backward compatibility: the DIR_SEP constant isn't used anymore
 | 
						|
*/
 | 
						|
if(!defined('DIR_SEP')) {
 | 
						|
	define('DIR_SEP', DIRECTORY_SEPARATOR);
 | 
						|
	}
 | 
						|
/**
 | 
						|
* backward compatibility: the PATH_SEPARATOR constant is availble since 4.3.0RC2
 | 
						|
*/
 | 
						|
if (!defined('PATH_SEPARATOR')) {
 | 
						|
	define('PATH_SEPARATOR', OS_WINDOWS ? ';' : ':');
 | 
						|
        }
 | 
						|
 | 
						|
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
 | 
						|
/**
 | 
						|
* Set the KRUMO_DIR constant up with the absolute path to Krumo files. If it is 
 | 
						|
* not defined, include_path will be used. Set KRUMO_DIR only if any other module 
 | 
						|
* or application has not already set it up.
 | 
						|
*/
 | 
						|
if (!defined('KRUMO_DIR')) {
 | 
						|
	define('KRUMO_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR);
 | 
						|
	}
 | 
						|
 | 
						|
/**
 | 
						|
* This constant sets the maximum strings of strings that will be shown 
 | 
						|
* as they are. Longer strings will be truncated with this length, and 
 | 
						|
* their `full form` will be shown in a child node.
 | 
						|
*/
 | 
						|
if (!defined('KRUMO_TRUNCATE_LENGTH')) {
 | 
						|
	define('KRUMO_TRUNCATE_LENGTH', 50);
 | 
						|
	}
 | 
						|
 | 
						|
//////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
/**
 | 
						|
* Krumo API
 | 
						|
*
 | 
						|
* This class stores the Krumo API for rendering and
 | 
						|
* displaying the structured information it is reporting
 | 
						|
*
 | 
						|
* @package Krumo
 | 
						|
*/
 | 
						|
Class krumo {
 | 
						|
 | 
						|
	/**
 | 
						|
	* Return Krumo version
 | 
						|
	*
 | 
						|
	* @return string
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function version() {
 | 
						|
		return '0.2.1a';
 | 
						|
		}
 | 
						|
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
	
 | 
						|
	/**
 | 
						|
	* Prints a debug backtrace
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function backtrace() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		return krumo::dump(debug_backtrace());
 | 
						|
		}
 | 
						|
	
 | 
						|
	/**
 | 
						|
	* Prints a list of all currently declared classes.
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function classes() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of all currently declared classes.
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump(get_declared_classes());
 | 
						|
		}
 | 
						|
		
 | 
						|
	/**
 | 
						|
	* Prints a list of all currently declared interfaces (PHP5 only).
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function interfaces() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of all currently declared interfaces.
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump(get_declared_interfaces());
 | 
						|
		}
 | 
						|
 | 
						|
	/**
 | 
						|
	* Prints a list of all currently included (or required) files.
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function includes() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of all currently included (or required) files.
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump(get_included_files());
 | 
						|
		}
 | 
						|
		
 | 
						|
	/**
 | 
						|
	* Prints a list of all currently declared functions.
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function functions() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of all currently declared functions.
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump(get_defined_functions());
 | 
						|
		}
 | 
						|
		
 | 
						|
	/**
 | 
						|
	* Prints a list of all currently declared constants.
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function defines() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of all currently declared constants (defines).
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump(get_defined_constants());
 | 
						|
		}
 | 
						|
		
 | 
						|
	/**
 | 
						|
	* Prints a list of all currently loaded PHP extensions.
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function extensions() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of all currently loaded PHP extensions.
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump(get_loaded_extensions());
 | 
						|
		}
 | 
						|
 | 
						|
	/**
 | 
						|
	* Prints a list of all HTTP request headers.
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function headers() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of all HTTP request headers.
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump(getAllHeaders());
 | 
						|
		}
 | 
						|
 | 
						|
	/**
 | 
						|
	* Prints a list of the configuration settings read from <i>php.ini</i>
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function phpini() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		if (!is_readable(get_cfg_var('cfg_file_path'))) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of the configuration settings read from <code><b><?php echo get_cfg_var('cfg_file_path');?></b></code>.
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump(parse_ini_file(get_cfg_var('cfg_file_path'), true));
 | 
						|
		}
 | 
						|
		
 | 
						|
	/**
 | 
						|
	* Prints a list of all your configuration settings.
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function conf() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of all your configuration settings.
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump(ini_get_all());
 | 
						|
		}
 | 
						|
 | 
						|
	/**
 | 
						|
	* Prints a list of the specified directories under your <i>include_path</i> option.
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function path() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of the specified directories under your <code><b>include_path</b></code> option.
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump(explode(PATH_SEPARATOR, ini_get('include_path')));
 | 
						|
		}
 | 
						|
 | 
						|
	/**
 | 
						|
	* Prints a list of all the values from the <i>$_REQUEST</i> array.
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function request() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of all the values from the <code><b>$_REQUEST</b></code> array.
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump($_REQUEST);
 | 
						|
		}
 | 
						|
 | 
						|
	/**
 | 
						|
	* Prints a list of all the values from the <i>$_GET</i> array.
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function get() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of all the values from the <code><b>$_GET</b></code> array.
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump($_GET);
 | 
						|
		}
 | 
						|
 | 
						|
	/**
 | 
						|
	* Prints a list of all the values from the <i>$_POST</i> array.
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function post() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of all the values from the <code><b>$_POST</b></code> array.
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump($_POST);
 | 
						|
		}
 | 
						|
 | 
						|
	/**
 | 
						|
	* Prints a list of all the values from the <i>$_SERVER</i> array.
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function server() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of all the values from the <code><b>$_SERVER</b></code> array.
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump($_SERVER);
 | 
						|
		}
 | 
						|
 | 
						|
	/**
 | 
						|
	* Prints a list of all the values from the <i>$_COOKIE</i> array.
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function cookie() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of all the values from the <code><b>$_COOKIE</b></code> array.
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump($_COOKIE);
 | 
						|
		}
 | 
						|
 | 
						|
	/**
 | 
						|
	* Prints a list of all the values from the <i>$_ENV</i> array.
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function env() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of all the values from the <code><b>$_ENV</b></code> array.
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump($_ENV);
 | 
						|
		}
 | 
						|
 | 
						|
	/**
 | 
						|
	* Prints a list of all the values from the <i>$_SESSION</i> array.
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function session() {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of all the values from the <code><b>$_SESSION</b></code> array.
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump($_SESSION);
 | 
						|
		}
 | 
						|
 | 
						|
	/**
 | 
						|
	* Prints a list of all the values from an INI file.
 | 
						|
	*
 | 
						|
	* @param string $ini_file
 | 
						|
	*
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function ini($ini_file) {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// read it
 | 
						|
		//
 | 
						|
		if (!$_ = @parse_ini_file($ini_file, 1)) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-title">
 | 
						|
This is a list of all the values from the <code><b><?php echo realpath($ini_file) ? realpath($ini_file) : $ini_file;?></b></code> INI file.
 | 
						|
</div>
 | 
						|
		<?php
 | 
						|
		return krumo::dump($_);
 | 
						|
		}
 | 
						|
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
 | 
						|
	/**
 | 
						|
	* Dump information about a variable
 | 
						|
	*
 | 
						|
	* @param mixed $data,...
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function dump($data) {
 | 
						|
 | 
						|
		// disabled ?
 | 
						|
		//
 | 
						|
		if (!krumo::_debug()) {
 | 
						|
			return false;
 | 
						|
			}
 | 
						|
 | 
						|
		// more arguments ?
 | 
						|
		//
 | 
						|
		if (func_num_args() > 1) {
 | 
						|
			$_ = func_get_args();
 | 
						|
			foreach($_ as $d) {
 | 
						|
				krumo::dump($d);
 | 
						|
				}
 | 
						|
			return;
 | 
						|
			}
 | 
						|
		
 | 
						|
		// the css ?
 | 
						|
		//
 | 
						|
		krumo::_css();
 | 
						|
 | 
						|
		// find caller
 | 
						|
		//
 | 
						|
		$_ = debug_backtrace();
 | 
						|
		while($d = array_pop($_)) {
 | 
						|
			if ((strToLower($d['function']) == 'krumo') || (strToLower(@$d['class']) == 'krumo')) {
 | 
						|
				break;
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
		// the content
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-root">
 | 
						|
	<ul class="krumo-node krumo-first">
 | 
						|
		<?php echo krumo::_dump($data);?>
 | 
						|
		<li class="krumo-footnote">
 | 
						|
			<div class="krumo-version" style="white-space:nowrap;">
 | 
						|
				<h6>Krumo version <?php echo krumo::version();?></h6> | <a
 | 
						|
					href="http://krumo.sourceforge.net"
 | 
						|
					target="_blank">http://krumo.sourceforge.net</a>
 | 
						|
			</div>
 | 
						|
		
 | 
						|
		<?php if (@$d['file']) { ?>
 | 
						|
		<span class="krumo-call" style="white-space:nowrap;">
 | 
						|
			Called from <code><?php echo $d['file']?></code>,
 | 
						|
				line <code><?php echo $d['line']?></code></span>
 | 
						|
		<?php } ?>
 | 
						|
		 
 | 
						|
		</li>
 | 
						|
	</ul>
 | 
						|
</div>
 | 
						|
<?php
 | 
						|
		// flee the hive
 | 
						|
		//
 | 
						|
		$_recursion_marker = krumo::_marker();
 | 
						|
		if ($hive =& krumo::_hive($dummy)) {
 | 
						|
			foreach($hive as $i=>$bee){
 | 
						|
				if (is_object($bee)) {
 | 
						|
					unset($hive[$i]->$_recursion_marker);
 | 
						|
					} else {
 | 
						|
					unset($hive[$i][$_recursion_marker]);
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
		// PHP 4.x.x array reference bug...
 | 
						|
		//
 | 
						|
		if (is_array($data) && version_compare(PHP_VERSION, "5", "<")) {
 | 
						|
			unset($GLOBALS[krumo::_marker()]); 
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
 | 
						|
	/**
 | 
						|
	* Returns values from Krumo's configuration
 | 
						|
	*
 | 
						|
	* @param string $group
 | 
						|
	* @param string $name
 | 
						|
	* @param mixed $fallback
 | 
						|
	* @return mixed
 | 
						|
	*
 | 
						|
	* @access private
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Private Static Function _config($group, $name, $fallback=null) {
 | 
						|
		
 | 
						|
		static $_config = array();
 | 
						|
		
 | 
						|
		// not loaded ?
 | 
						|
		//
 | 
						|
		if (empty($_config)) {
 | 
						|
			$_config = (array) @parse_ini_file(
 | 
						|
				KRUMO_DIR . 'krumo.ini',
 | 
						|
				true);
 | 
						|
			}
 | 
						|
		
 | 
						|
		// exists ?
 | 
						|
		//
 | 
						|
		return (isset($_config[$group][$name]))
 | 
						|
			? $_config[$group][$name]
 | 
						|
			: $fallback;
 | 
						|
		}
 | 
						|
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
 | 
						|
	/**
 | 
						|
	* Print the skin (CSS)
 | 
						|
	*
 | 
						|
	* @return boolean
 | 
						|
	* @access private
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Private Static Function _css() {
 | 
						|
		
 | 
						|
		static $_css = false;
 | 
						|
		
 | 
						|
		// already set ?
 | 
						|
		//
 | 
						|
		if ($_css) {
 | 
						|
			return true;
 | 
						|
			}
 | 
						|
		
 | 
						|
		$css = '';
 | 
						|
		$skin = krumo::_config('skin', 'selected', 'default');
 | 
						|
		
 | 
						|
		// custom selected skin ?
 | 
						|
		//
 | 
						|
		$_ = KRUMO_DIR . "skins/{$skin}/skin.css";
 | 
						|
		if ($fp = @fopen($_, 'r', 1)) {
 | 
						|
			$css = fread($fp, filesize($_));
 | 
						|
			fclose($fp);
 | 
						|
			}
 | 
						|
		
 | 
						|
		// defautl skin ?
 | 
						|
		//
 | 
						|
		if (!$css && ($skin != 'default')) {
 | 
						|
			$skin = 'default';
 | 
						|
			$_ = KRUMO_DIR . "skins/default/skin.css";
 | 
						|
			$css = join('', @file($_));
 | 
						|
			}
 | 
						|
		
 | 
						|
		// print ?
 | 
						|
		//
 | 
						|
		if ($_css = $css != '') {
 | 
						|
			
 | 
						|
			// fix the urls
 | 
						|
			//
 | 
						|
			$css_url = krumo::_config('css', 'url') . "skins/{$skin}/";
 | 
						|
			$css = preg_replace('~%url%~Uis', $css_url, $css);
 | 
						|
			
 | 
						|
			// the CSS
 | 
						|
			//
 | 
						|
			?>
 | 
						|
<!-- Using Krumo Skin: <?php echo preg_replace('~^' . preg_quote(realpath(KRUMO_DIR) . DIRECTORY_SEPARATOR) . '~Uis', '', realpath($_));?> -->
 | 
						|
<style type="text/css">
 | 
						|
<!--/**/
 | 
						|
<?php echo $css?>
 | 
						|
 | 
						|
/**/-->
 | 
						|
</style>
 | 
						|
<?php
 | 
						|
			// the JS 
 | 
						|
			//
 | 
						|
			?>
 | 
						|
<script type="text/javascript">
 | 
						|
<!--//
 | 
						|
<?php echo join(file(KRUMO_DIR . "krumo.js"));?>
 | 
						|
 | 
						|
//-->
 | 
						|
</script>
 | 
						|
<?php
 | 
						|
			}
 | 
						|
		
 | 
						|
		return $_css;
 | 
						|
		}
 | 
						|
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
 | 
						|
	/**
 | 
						|
	* Enable Krumo
 | 
						|
	*
 | 
						|
	* @return boolean
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function enable() {
 | 
						|
		return true === krumo::_debug(true);
 | 
						|
		}
 | 
						|
 | 
						|
	/**
 | 
						|
	* Disable Krumo
 | 
						|
	*
 | 
						|
	* @return boolean
 | 
						|
	* @access public
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Public Static Function disable() {
 | 
						|
		return false === krumo::_debug(false);
 | 
						|
		}
 | 
						|
	
 | 
						|
	/**
 | 
						|
	* Get\Set Krumo state: whether it is enabled or disabled
 | 
						|
	*
 | 
						|
	* @param boolean $state
 | 
						|
	* @return boolean
 | 
						|
	* @access private
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Private Static Function _debug($state=null) {
 | 
						|
		
 | 
						|
		static $_ = true;
 | 
						|
		
 | 
						|
		// set
 | 
						|
		//
 | 
						|
		if (isset($state)) {
 | 
						|
			$_ = (boolean) $state;
 | 
						|
			}
 | 
						|
		
 | 
						|
		// get
 | 
						|
		//
 | 
						|
		return $_;
 | 
						|
		}
 | 
						|
	
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
 | 
						|
	/**
 | 
						|
	* Dump information about a variable
 | 
						|
	*
 | 
						|
	* @param mixed $data
 | 
						|
	* @param string $name
 | 
						|
	* @access private
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Private Static Function _dump(&$data, $name='...') {
 | 
						|
 | 
						|
		// object ?
 | 
						|
		//
 | 
						|
		if (is_object($data)) {
 | 
						|
			return krumo::_object($data, $name);
 | 
						|
			}
 | 
						|
 | 
						|
		// array ?
 | 
						|
		//
 | 
						|
		if (is_array($data)) {
 | 
						|
 | 
						|
			// PHP 4.x.x array reference bug...
 | 
						|
			//
 | 
						|
			if (version_compare(PHP_VERSION, "5", "<")) {
 | 
						|
 | 
						|
				// prepare the GLOBAL reference list...
 | 
						|
				//
 | 
						|
				if (!isset($GLOBALS[krumo::_marker()])) {
 | 
						|
					$GLOBALS[krumo::_marker()] = array();
 | 
						|
					}
 | 
						|
				if (!is_array($GLOBALS[krumo::_marker()])) {
 | 
						|
					$GLOBALS[krumo::_marker()] = (array) $GLOBALS[krumo::_marker()];
 | 
						|
					}
 | 
						|
				
 | 
						|
				// extract ?
 | 
						|
				//
 | 
						|
				if (!empty($GLOBALS[krumo::_marker()])) {
 | 
						|
					$d = array_shift($GLOBALS[krumo::_marker()]);
 | 
						|
					if (is_array($d)) {
 | 
						|
						$data = $d;
 | 
						|
						}
 | 
						|
					}
 | 
						|
				}
 | 
						|
 | 
						|
			return krumo::_array($data, $name);
 | 
						|
			}
 | 
						|
 | 
						|
		// resource ?
 | 
						|
		//
 | 
						|
		if (is_resource($data)) {
 | 
						|
			return krumo::_resource($data, $name);
 | 
						|
			}
 | 
						|
		
 | 
						|
		// scalar ?
 | 
						|
		//
 | 
						|
		if (is_string($data)) {
 | 
						|
			return krumo::_string($data, $name);
 | 
						|
			}
 | 
						|
		
 | 
						|
		if (is_float($data)) {
 | 
						|
			return krumo::_float($data, $name);
 | 
						|
			}
 | 
						|
 | 
						|
		if (is_integer($data)) {
 | 
						|
			return krumo::_integer($data, $name);
 | 
						|
			}
 | 
						|
 | 
						|
		if (is_bool($data)) {
 | 
						|
			return krumo::_boolean($data, $name);
 | 
						|
			}
 | 
						|
		
 | 
						|
		// null ?
 | 
						|
		//
 | 
						|
		if (is_null($data)) {
 | 
						|
			return krumo::_null($name);
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
 | 
						|
	/**
 | 
						|
	* Render a dump for a NULL value
 | 
						|
	*
 | 
						|
	* @param string $name
 | 
						|
	* @return string
 | 
						|
	* @access private
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Private Static Function _null($name) {
 | 
						|
?>
 | 
						|
<li class="krumo-child">
 | 
						|
	<div class="krumo-element"
 | 
						|
		onMouseOver="krumo.over(this);"
 | 
						|
		onMouseOut="krumo.out(this);">
 | 
						|
		
 | 
						|
			<a class="krumo-name"><?php echo $name;?></a>
 | 
						|
			(<em class="krumo-type krumo-null">NULL</em>) 
 | 
						|
	</div>
 | 
						|
</li>
 | 
						|
<?php
 | 
						|
		}
 | 
						|
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
	
 | 
						|
	/**
 | 
						|
	* Return the marked used to stain arrays
 | 
						|
	* and objects in order to detect recursions
 | 
						|
	*
 | 
						|
	* @return string
 | 
						|
	* @access private
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Private Static Function _marker() {
 | 
						|
		
 | 
						|
		static $_recursion_marker;
 | 
						|
		if (!isset($_recursion_marker)) {
 | 
						|
			$_recursion_marker = uniqid('krumo');
 | 
						|
			}
 | 
						|
		
 | 
						|
		return $_recursion_marker;
 | 
						|
		}
 | 
						|
	
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
	
 | 
						|
	/**
 | 
						|
	* Adds a variable to the hive of arrays and objects which 
 | 
						|
	* are tracked for whether they have recursive entries
 | 
						|
	*
 | 
						|
	* @param mixed &$bee either array or object, not a scallar vale
 | 
						|
	* @return array all the bees
 | 
						|
	*
 | 
						|
	* @access private
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Private Static Function &_hive(&$bee) {
 | 
						|
		
 | 
						|
		static $_ = array();
 | 
						|
 | 
						|
		// new bee ?
 | 
						|
		//
 | 
						|
		if (!is_null($bee)) {
 | 
						|
			
 | 
						|
			// stain it
 | 
						|
			//
 | 
						|
			$_recursion_marker = krumo::_marker();
 | 
						|
			(is_object($bee))
 | 
						|
				? @($bee->$_recursion_marker++)
 | 
						|
				: @($bee[$_recursion_marker]++);
 | 
						|
			
 | 
						|
			$_[0][] =& $bee;
 | 
						|
			}
 | 
						|
 | 
						|
		// return all bees
 | 
						|
		//
 | 
						|
		return $_[0];
 | 
						|
		}
 | 
						|
	
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
 | 
						|
	/**
 | 
						|
	* Render a dump for the properties of an array or objeect
 | 
						|
	*
 | 
						|
	* @param mixed &$data
 | 
						|
	* @access private
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Private Static Function _vars(&$data) {
 | 
						|
 | 
						|
		$_is_object = is_object($data);
 | 
						|
		
 | 
						|
		// test for references in order to
 | 
						|
		// prevent endless recursion loops
 | 
						|
		//
 | 
						|
		$_recursion_marker = krumo::_marker();
 | 
						|
		$_r = ($_is_object)
 | 
						|
			? @$data->$_recursion_marker
 | 
						|
			: @$data[$_recursion_marker] ;
 | 
						|
		$_r = (integer) $_r;
 | 
						|
 | 
						|
		// recursion detected
 | 
						|
		//
 | 
						|
		if ($_r > 0) {
 | 
						|
			return krumo::_recursion();
 | 
						|
			}
 | 
						|
 | 
						|
		// stain it
 | 
						|
		//
 | 
						|
		krumo::_hive($data);
 | 
						|
 | 
						|
		// render it
 | 
						|
		//
 | 
						|
		?>
 | 
						|
<div class="krumo-nest" style="display:none;">
 | 
						|
	<ul class="krumo-node">
 | 
						|
	<?php
 | 
						|
 | 
						|
	// keys ?
 | 
						|
	//
 | 
						|
	$keys = ($_is_object)
 | 
						|
		? array_keys(get_object_vars($data))
 | 
						|
		: array_keys($data);
 | 
						|
	
 | 
						|
	// itterate 
 | 
						|
	//
 | 
						|
	foreach($keys as $k) {
 | 
						|
 | 
						|
		// skip marker
 | 
						|
		//
 | 
						|
		if ($k === $_recursion_marker) {
 | 
						|
			continue;
 | 
						|
			}
 | 
						|
		
 | 
						|
		// get real value
 | 
						|
		//
 | 
						|
		if ($_is_object) {
 | 
						|
			$v =& $data->$k;
 | 
						|
			} else {
 | 
						|
			$v =& $data[$k];
 | 
						|
			}
 | 
						|
 | 
						|
		krumo::_dump($v,$k);
 | 
						|
		} ?>
 | 
						|
	</ul>
 | 
						|
</div>
 | 
						|
<?php
 | 
						|
		}
 | 
						|
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
	
 | 
						|
	/**
 | 
						|
	* Render a block that detected recursion
 | 
						|
	*
 | 
						|
	* @access private
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Private Static Function _recursion() {
 | 
						|
?>
 | 
						|
<div class="krumo-nest" style="display:none;">
 | 
						|
	<ul class="krumo-node">
 | 
						|
		<li class="krumo-child">
 | 
						|
			<div class="krumo-element"
 | 
						|
				onMouseOver="krumo.over(this);"
 | 
						|
				onMouseOut="krumo.out(this);">
 | 
						|
					<a class="krumo-name"><big>∞</big></a>
 | 
						|
					(<em class="krumo-type">Recursion</em>) 
 | 
						|
			</div>
 | 
						|
		
 | 
						|
		</li>
 | 
						|
	</ul>
 | 
						|
</div>
 | 
						|
<?php
 | 
						|
		}
 | 
						|
	
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
 | 
						|
	/**
 | 
						|
	* Render a dump for an array
 | 
						|
	*
 | 
						|
	* @param mixed $data
 | 
						|
	* @param string $name
 | 
						|
	* @access private
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Private Static Function _array(&$data, $name) {
 | 
						|
?>
 | 
						|
<li class="krumo-child">
 | 
						|
	
 | 
						|
	<div class="krumo-element<?php echo count($data) > 0 ? ' krumo-expand' : '';?>"
 | 
						|
		<?php if (count($data) > 0) {?> onClick="krumo.toggle(this);"<?php } ?>
 | 
						|
		onMouseOver="krumo.over(this);"
 | 
						|
		onMouseOut="krumo.out(this);">
 | 
						|
		
 | 
						|
			<a class="krumo-name"><?php echo $name;?></a>
 | 
						|
			(<em class="krumo-type">Array, <strong class="krumo-array-length"><?php echo 
 | 
						|
				(count($data)==1)
 | 
						|
					?("1 element")
 | 
						|
					:(count($data)." elements");
 | 
						|
				?></strong></em>) 
 | 
						|
			
 | 
						|
				
 | 
						|
			<?php
 | 
						|
			// callback ?
 | 
						|
			//
 | 
						|
			if (is_callable($data)) {
 | 
						|
				$_ = array_values($data);
 | 
						|
				?>
 | 
						|
				<span class="krumo-callback"> |
 | 
						|
					(<em class="krumo-type">Callback</em>)
 | 
						|
					<strong class="krumo-string"><?php
 | 
						|
						echo htmlSpecialChars($_[0]);?>::<?php
 | 
						|
						echo htmlSpecialChars($_[1]);?>();</strong></span>
 | 
						|
				<?php
 | 
						|
				}
 | 
						|
			?>
 | 
						|
				
 | 
						|
	</div>
 | 
						|
 | 
						|
	<?php if (count($data)) {
 | 
						|
		krumo::_vars($data);
 | 
						|
		} ?>
 | 
						|
</li>
 | 
						|
<?php
 | 
						|
		}
 | 
						|
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
 | 
						|
	/**
 | 
						|
	* Render a dump for an object
 | 
						|
	*
 | 
						|
	* @param mixed $data
 | 
						|
	* @param string $name
 | 
						|
	* @access private
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Private Static Function _object(&$data, $name) {
 | 
						|
?>
 | 
						|
<li class="krumo-child">
 | 
						|
 | 
						|
	<div class="krumo-element<?php echo count($data) > 0 ? ' krumo-expand' : '';?>"
 | 
						|
		<?php if (count($data) > 0) {?> onClick="krumo.toggle(this);"<?php } ?>
 | 
						|
		onMouseOver="krumo.over(this);"
 | 
						|
		onMouseOut="krumo.out(this);">
 | 
						|
 | 
						|
			<a class="krumo-name"><?php echo $name;?></a>
 | 
						|
			(<em class="krumo-type">Object</em>) 
 | 
						|
			<strong class="krumo-class"><?php echo get_class($data);?></strong>
 | 
						|
	</div>
 | 
						|
 | 
						|
	<?php if (count($data)) {
 | 
						|
		krumo::_vars($data);
 | 
						|
		} ?>
 | 
						|
</li>
 | 
						|
<?php
 | 
						|
		}
 | 
						|
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
 | 
						|
	/**
 | 
						|
	* Render a dump for a resource
 | 
						|
	*
 | 
						|
	* @param mixed $data
 | 
						|
	* @param string $name
 | 
						|
	* @access private
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Private Static Function _resource($data, $name) {
 | 
						|
?>
 | 
						|
<li class="krumo-child">
 | 
						|
 | 
						|
	<div class="krumo-element"
 | 
						|
		onMouseOver="krumo.over(this);"
 | 
						|
		onMouseOut="krumo.out(this);">
 | 
						|
		
 | 
						|
			<a class="krumo-name"><?php echo $name;?></a>
 | 
						|
			(<em class="krumo-type">Resource</em>) 
 | 
						|
			<strong class="krumo-resource"><?php echo get_resource_type($data);?></strong>
 | 
						|
	</div>
 | 
						|
 | 
						|
</li>
 | 
						|
<?php
 | 
						|
		}
 | 
						|
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
 | 
						|
	/**
 | 
						|
	* Render a dump for a boolean value
 | 
						|
	*
 | 
						|
	* @param mixed $data
 | 
						|
	* @param string $name
 | 
						|
	* @access private
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Private Static Function _boolean($data, $name) {
 | 
						|
?>
 | 
						|
<li class="krumo-child">
 | 
						|
 | 
						|
	<div class="krumo-element"
 | 
						|
		onMouseOver="krumo.over(this);"
 | 
						|
		onMouseOut="krumo.out(this);">
 | 
						|
		
 | 
						|
			<a class="krumo-name"><?php echo $name;?></a>
 | 
						|
			(<em class="krumo-type">Boolean</em>) 
 | 
						|
			<strong class="krumo-boolean"><?php echo $data?'TRUE':'FALSE'?></strong>
 | 
						|
	</div>
 | 
						|
 | 
						|
</li>
 | 
						|
<?php
 | 
						|
		}
 | 
						|
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
 | 
						|
	/**
 | 
						|
	* Render a dump for a integer value
 | 
						|
	*
 | 
						|
	* @param mixed $data
 | 
						|
	* @param string $name
 | 
						|
	* @access private
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Private Static Function _integer($data, $name) {
 | 
						|
?>
 | 
						|
<li class="krumo-child">
 | 
						|
 | 
						|
	<div class="krumo-element"
 | 
						|
		onMouseOver="krumo.over(this);"
 | 
						|
		onMouseOut="krumo.out(this);">
 | 
						|
		
 | 
						|
			<a class="krumo-name"><?php echo $name;?></a>
 | 
						|
			(<em class="krumo-type">Integer</em>)
 | 
						|
			<strong class="krumo-integer"><?php echo $data;?></strong> 
 | 
						|
	</div>
 | 
						|
 | 
						|
</li>
 | 
						|
<?php
 | 
						|
		}
 | 
						|
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
 | 
						|
	/**
 | 
						|
	* Render a dump for a float value
 | 
						|
	*
 | 
						|
	* @param mixed $data
 | 
						|
	* @param string $name
 | 
						|
	* @access private
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Private Static Function _float($data, $name) {
 | 
						|
?>
 | 
						|
<li class="krumo-child">
 | 
						|
 | 
						|
	<div class="krumo-element"
 | 
						|
		onMouseOver="krumo.over(this);"
 | 
						|
		onMouseOut="krumo.out(this);">
 | 
						|
		
 | 
						|
			<a class="krumo-name"><?php echo $name;?></a>
 | 
						|
			(<em class="krumo-type">Float</em>) 
 | 
						|
			<strong class="krumo-float"><?php echo $data;?></strong>
 | 
						|
	</div>
 | 
						|
 | 
						|
</li>
 | 
						|
<?php
 | 
						|
		}
 | 
						|
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
 | 
						|
	/**
 | 
						|
	* Render a dump for a string value
 | 
						|
	*
 | 
						|
	* @param mixed $data
 | 
						|
	* @param string $name
 | 
						|
	* @access private
 | 
						|
	* @static
 | 
						|
	*/
 | 
						|
	Private Static Function _string($data, $name) {
 | 
						|
 | 
						|
		// extra ?
 | 
						|
		//
 | 
						|
		$_extra = false;
 | 
						|
		$_ = $data;
 | 
						|
		if (strLen($data) > KRUMO_TRUNCATE_LENGTH) {
 | 
						|
			$_ = substr($data, 0, KRUMO_TRUNCATE_LENGTH - 3) . '...';
 | 
						|
			$_extra = true;
 | 
						|
			}
 | 
						|
?>
 | 
						|
<li class="krumo-child">
 | 
						|
 | 
						|
	<div class="krumo-element<?php echo $_extra ? ' krumo-expand' : '';?>"
 | 
						|
		<?php if ($_extra) {?> onClick="krumo.toggle(this);"<?php } ?>
 | 
						|
		onMouseOver="krumo.over(this);"
 | 
						|
		onMouseOut="krumo.out(this);">
 | 
						|
 | 
						|
			<a class="krumo-name"><?php echo $name;?></a>
 | 
						|
			(<em class="krumo-type">String,
 | 
						|
				<strong class="krumo-string-length"><?php
 | 
						|
					echo strlen($data) ?> characters</strong> </em>)
 | 
						|
			<strong class="krumo-string"><?php echo htmlSpecialChars($_);?></strong>
 | 
						|
			
 | 
						|
			<?php
 | 
						|
			// callback ?
 | 
						|
			//
 | 
						|
			if (is_callable($data)) {
 | 
						|
				?>
 | 
						|
				<span class="krumo-callback"> |
 | 
						|
					(<em class="krumo-type">Callback</em>)
 | 
						|
					<strong class="krumo-string"><?php echo htmlSpecialChars($_);?>();</strong></span>
 | 
						|
				<?php
 | 
						|
				}
 | 
						|
			?>
 | 
						|
			
 | 
						|
	</div>
 | 
						|
	
 | 
						|
	<?php if ($_extra) { ?>
 | 
						|
	<div class="krumo-nest" style="display:none;">
 | 
						|
		<ul class="krumo-node">
 | 
						|
			
 | 
						|
			<li class="krumo-child">
 | 
						|
				<div class="krumo-preview"><?php echo htmlSpecialChars($data);?></div>
 | 
						|
			</li>
 | 
						|
			
 | 
						|
		</ul>
 | 
						|
	</div>
 | 
						|
	<?php } ?>
 | 
						|
</li>
 | 
						|
<?php
 | 
						|
		}
 | 
						|
 | 
						|
	// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 | 
						|
 | 
						|
//--end-of-class--	
 | 
						|
}
 | 
						|
 | 
						|
//////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
/**
 | 
						|
* Alias of {@link krumo::dump()}
 | 
						|
*
 | 
						|
* @param mixed $data,...
 | 
						|
*
 | 
						|
* @see krumo::dump()
 | 
						|
*/
 | 
						|
Function krumo() {
 | 
						|
	$_ = func_get_args();
 | 
						|
	return call_user_func_array(
 | 
						|
		array('krumo', 'dump'), $_
 | 
						|
		);
 | 
						|
	}
 | 
						|
 | 
						|
//////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
?>
 | 
						|
 |