155 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
	/**
 | 
						|
	 * @package     Freemius
 | 
						|
	 * @copyright   Copyright (c) 2015, Freemius, Inc.
 | 
						|
	 * @license     https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
 | 
						|
	 * @since       1.1.7.3
 | 
						|
	 */
 | 
						|
 | 
						|
	if ( ! defined( 'ABSPATH' ) ) {
 | 
						|
		exit;
 | 
						|
	}
 | 
						|
 | 
						|
	if ( class_exists( 'Freemius_Api_WordPress' ) ) {
 | 
						|
		$logger = Freemius_Api_WordPress::GetLogger();
 | 
						|
	} else {
 | 
						|
		$logger = array();
 | 
						|
	}
 | 
						|
 | 
						|
	$counters = array(
 | 
						|
		'GET'    => 0,
 | 
						|
		'POST'   => 0,
 | 
						|
		'PUT'    => 0,
 | 
						|
		'DELETE' => 0
 | 
						|
	);
 | 
						|
 | 
						|
	$show_body = false;
 | 
						|
	foreach ( $logger as $log ) {
 | 
						|
		$counters[ $log['method'] ] ++;
 | 
						|
 | 
						|
		if ( ! is_null( $log['body'] ) ) {
 | 
						|
			$show_body = true;
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	$pretty_print = $show_body && defined( 'JSON_PRETTY_PRINT' ) && version_compare( phpversion(), '5.3', '>=' );
 | 
						|
 | 
						|
	/**
 | 
						|
	 * This template is used for debugging, therefore, when possible
 | 
						|
	 * we'd like to prettify the output of a JSON encoded variable.
 | 
						|
	 * This will only be executed when $pretty_print is `true`, and
 | 
						|
	 * the var is `true` only for PHP 5.3 and higher. Due to the
 | 
						|
	 * limitations of the current Theme Check, it throws an error
 | 
						|
	 * that using the "options" parameter (the 2nd param) is not
 | 
						|
	 * supported in PHP 5.2 and lower. Thus, we added this alias
 | 
						|
	 * variable to work around that false-positive.
 | 
						|
	 *
 | 
						|
	 * @author Vova Feldman (@svovaf)
 | 
						|
	 * @since  1.2.2.7
 | 
						|
	 */
 | 
						|
	$encode = 'json_encode';
 | 
						|
 | 
						|
	$root_path_len = strlen( ABSPATH );
 | 
						|
 | 
						|
	$ms_text = fs_text_x_inline( 'ms', 'milliseconds' );
 | 
						|
?>
 | 
						|
<h1><?php fs_echo_inline( 'API' ) ?></h1>
 | 
						|
 | 
						|
<h2><span>Total Time:</span><?php echo Freemius_Debug_Bar_Panel::total_time() ?></h2>
 | 
						|
 | 
						|
<h2><span>Total Requests:</span><?php echo Freemius_Debug_Bar_Panel::requests_count() ?></h2>
 | 
						|
<?php foreach ( $counters as $method => $count ) : ?>
 | 
						|
	<h2><span><?php echo $method ?>:</span><?php echo number_format( $count ) ?></h2>
 | 
						|
<?php endforeach ?>
 | 
						|
<table class="widefat">
 | 
						|
	<thead>
 | 
						|
	<tr>
 | 
						|
		<th>#</th>
 | 
						|
		<th><?php fs_esc_html_echo_inline( 'Method' ) ?></th>
 | 
						|
		<th><?php fs_esc_html_echo_inline( 'Code' ) ?></th>
 | 
						|
		<th><?php fs_esc_html_echo_inline( 'Length' ) ?></th>
 | 
						|
		<th><?php fs_esc_html_echo_x_inline( 'Path', 'as file/folder path' ) ?></th>
 | 
						|
		<?php if ( $show_body ) : ?>
 | 
						|
			<th><?php fs_esc_html_echo_inline( 'Body' ) ?></th>
 | 
						|
		<?php endif ?>
 | 
						|
		<th><?php fs_esc_html_echo_inline( 'Result' ) ?></th>
 | 
						|
		<th><?php fs_esc_html_echo_inline( 'Start' ) ?></th>
 | 
						|
		<th><?php fs_esc_html_echo_inline( 'End' ) ?></th>
 | 
						|
	</tr>
 | 
						|
	</thead>
 | 
						|
	<tbody>
 | 
						|
	<?php foreach ( $logger as $log ) : ?>
 | 
						|
		<tr>
 | 
						|
			<td><?php echo $log['id'] ?>.</td>
 | 
						|
			<td><?php echo $log['method'] ?></td>
 | 
						|
			<td><?php echo $log['code'] ?></td>
 | 
						|
			<td><?php echo number_format( 100 * $log['total'], 2 ) . ' ' . $ms_text ?></td>
 | 
						|
			<td>
 | 
						|
				<?php
 | 
						|
					printf( '<a href="#" onclick="jQuery(this).parent().find(\'table\').toggle(); return false;">%s</a>',
 | 
						|
						$log['path']
 | 
						|
					);
 | 
						|
				?>
 | 
						|
				<table class="widefat" style="display: none">
 | 
						|
					<tbody>
 | 
						|
					<?php for ( $i = 0, $bt = $log['backtrace'], $len = count( $bt ); $i < $len; $i ++ ) : ?>
 | 
						|
						<tr>
 | 
						|
							<td><?php echo( $len - $i ) ?></td>
 | 
						|
							<td><?php if ( isset( $bt[ $i ]['function'] ) ) {
 | 
						|
									echo ( isset( $bt[ $i ]['class'] ) ? $bt[ $i ]['class'] . $bt[ $i ]['type'] : '' ) . $bt[ $i ]['function'];
 | 
						|
								} ?></td>
 | 
						|
							<td><?php if ( isset( $bt[ $i ]['file'] ) ) {
 | 
						|
									echo substr( $bt[ $i ]['file'], $root_path_len ) . ':' . $bt[ $i ]['line'];
 | 
						|
								} ?></td>
 | 
						|
						</tr>
 | 
						|
					<?php endfor ?>
 | 
						|
					</tbody>
 | 
						|
				</table>
 | 
						|
			</td>
 | 
						|
			<?php if ( $show_body ) : ?>
 | 
						|
				<td>
 | 
						|
					<?php if ( 'GET' !== $log['method'] ) : ?>
 | 
						|
						<?php
 | 
						|
						$body = $log['body'];
 | 
						|
						printf(
 | 
						|
							'<a href="#" onclick="jQuery(this).parent().find(\'pre\').toggle(); return false;">%s</a>',
 | 
						|
							substr( $body, 0, 32 ) . ( 32 < strlen( $body ) ? '...' : '' )
 | 
						|
						);
 | 
						|
						if ( $pretty_print ) {
 | 
						|
							$body = $encode( json_decode( $log['body'] ), JSON_PRETTY_PRINT );
 | 
						|
						}
 | 
						|
						?>
 | 
						|
						<pre style="display: none"><code><?php echo esc_html( $body ) ?></code></pre>
 | 
						|
					<?php endif ?>
 | 
						|
				</td>
 | 
						|
			<?php endif ?>
 | 
						|
			<td>
 | 
						|
				<?php
 | 
						|
					$result = $log['result'];
 | 
						|
 | 
						|
					$is_not_empty_result = ( is_string( $result ) && ! empty( $result ) );
 | 
						|
 | 
						|
					if ( $is_not_empty_result ) {
 | 
						|
						printf(
 | 
						|
							'<a href="#" onclick="jQuery(this).parent().find(\'pre\').toggle(); return false;">%s</a>',
 | 
						|
							substr( $result, 0, 32 ) . ( 32 < strlen( $result ) ? '...' : '' )
 | 
						|
						);
 | 
						|
					}
 | 
						|
 | 
						|
					if ( $is_not_empty_result && $pretty_print ) {
 | 
						|
						$decoded = json_decode( $result );
 | 
						|
						if ( ! is_null( $decoded ) ) {
 | 
						|
							$result = $encode( $decoded, JSON_PRETTY_PRINT );
 | 
						|
						}
 | 
						|
					} else {
 | 
						|
						$result = is_string( $result ) ? $result : json_encode( $result );
 | 
						|
					}
 | 
						|
				?>
 | 
						|
				<pre<?php if ( $is_not_empty_result ) : ?> style="display: none"<?php endif ?>><code><?php echo esc_html( $result ) ?></code></pre>
 | 
						|
			</td>
 | 
						|
			<td><?php echo number_format( 100 * ( $log['start'] - WP_FS__SCRIPT_START_TIME ), 2 ) . ' ' . $ms_text ?></td>
 | 
						|
			<td><?php echo number_format( 100 * ( $log['end'] - WP_FS__SCRIPT_START_TIME ), 2 ) . ' ' . $ms_text ?></td>
 | 
						|
		</tr>
 | 
						|
	<?php endforeach ?>
 | 
						|
	</tbody>
 | 
						|
</table>
 |