1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118:
<?php
defined( 'ABSPATH' ) || exit;
if ( ! function_exists( 'vsp_print_log_files_ui' ) ) {
function vsp_print_log_files_ui( $tree, $current_file = '', $label = '', $level = 2, $size = 1, $index = 1 ) {
if ( is_array( $tree ) ) {
$index = 0;
$size = count( $tree );
foreach ( $tree as $label => $plugin_file ) :
$index++;
if ( ! is_array( $plugin_file ) ) {
vsp_print_log_files_ui( $plugin_file, $current_file, $label, $level, $index, $size );
continue;
}
?>
<li role="treeitem" aria-expanded="true" tabindex="-1"
aria-level="<?php echo esc_attr( $level ); ?>"
aria-setsize="<?php echo esc_attr( $size ); ?>"
aria-posinset="<?php echo esc_attr( $index ); ?>">
<span class="folder-label"><?php echo esc_html( $label ); ?> <span
class="screen-reader-text"><?php _e( 'folder', 'vsp-framework' ); ?></span>
<span aria-hidden="true" class="icon"></span></span>
<ul role="group" class="tree-folder">
<?php vsp_print_log_files_ui( $plugin_file, $current_file, $level + 1, $index, $size ); ?>
</ul>
</li>
<?php
endforeach;
} else {
$url = add_query_arg( array( 'vsp-log-file' => md5( $tree ) ) );
?>
<li role="none" class="<?php echo esc_attr( $current_file === $tree ? 'current-file' : '' ); ?>">
<a role="treeitem" tabindex="<?php echo esc_attr( $current_file === $tree ? '0' : '-1' ); ?>"
href="<?php echo esc_url( $url ); ?>"
aria-level="<?php echo esc_attr( $level ); ?>"
aria-setsize="<?php echo esc_attr( $size ); ?>"
aria-posinset="<?php echo esc_attr( $index ); ?>">
<?php
if ( $current_file === $tree ) {
echo '<span class="notice notice-info">' . esc_html( $label ) . '</span>';
} else {
echo esc_html( $label );
}
?>
</a>
</li>
<?php
}
}
}
if ( ! function_exists( 'vsp_list_log_files' ) ) {
function vsp_list_log_files( $path = false ) {
if ( false === $path ) {
$custom_path = false;
$path = VSP_LOG_DIR;
} else {
$custom_path = $path;
$path = VSP_LOG_DIR . $path;
}
if ( file_exists( $path ) ) {
$paths = vsp_list_files( $path, 1000 );
foreach ( $paths as $i => $_path ) {
$paths[ $i ] = ltrim( $_path, '/' );
if ( false !== $custom_path ) {
$paths[ $i ] = $custom_path . str_replace( $path, '', $paths[ $i ] );
} else {
$paths[ $i ] = str_replace( $path, '', $paths[ $i ] );
}
}
return array_values( array_unique( $paths ) );
}
return array();
}
}
if ( ! function_exists( 'vsp_make_log_list_tree' ) ) {
function vsp_make_log_list_tree( $logs ) {
$tree_list = array();
foreach ( $logs as $log ) {
$files = explode( '/', $log );
$last_dir = &$tree_list;
foreach ( $files as $dir ) {
$last_dir =& $last_dir[ $dir ];
}
$last_dir = $log;
}
return $tree_list;
}
}