Overview

Namespaces

  • None
  • VSP
    • Core
      • Abstracts
      • Interfaces
      • Traits
        • WC_Compatibility
    • Deprecation
    • Helper
    • Modules
      • Addons
      • Logger

Classes

  • VSP\Ajax
  • VSP\Ajaxer
  • VSP\Base
  • VSP\Cache
  • VSP\Core\Abstracts\Addon
  • VSP\Core\Abstracts\Log_Handler
  • VSP\Core\Abstracts\Plugin_Settings
  • VSP\Core\Instance_Handler
  • VSP\Deprecation\Actions
  • VSP\Deprecation\Filters
  • VSP\Error
  • VSP\Framework
  • VSP\Framework_Admin
  • VSP\Framework_Base
  • VSP\Framework_Modules
  • VSP\Helper
  • VSP\Helper\Price_Calculation
  • VSP\Modules\Addons
  • VSP\Modules\Addons\Admin
  • VSP\Modules\Addons\Core
  • VSP\Modules\Logger
  • VSP\Modules\Logger\File_Handler
  • VSP\Modules\Logger\Levels
  • VSP\Modules\Shortcode
  • VSP\Modules\System_Logs
  • VSP\Modules\System_Tools
  • VSP\Modules\WPOnion
  • VSP\Setup
  • VSP\WC_Compatibility
  • VSP_Framework_Loader

Interfaces

  • VSP\Core\Interfaces\Log_Handler
  • VSP\Core\Interfaces\Logger

Traits

  • VSP\Core\Traits\Array_Helper
  • VSP\Core\Traits\Framework
  • VSP\Core\Traits\String_Helper
  • VSP\Core\Traits\URL
  • VSP\Core\Traits\WC_Compatibility\Product
  • VSP\Core\Traits\WC_Compatibility\Version
  • VSP\Core\Traits\WC_Helper
  • VSP\Core\Traits\WP

Functions

  • vsp_add_wc_required_notice
  • vsp_ajax_action
  • vsp_current_screen
  • vsp_date_format
  • vsp_delete_cache
  • vsp_doing_it_wrong
  • vsp_force_load
  • vsp_force_load_vendors
  • vsp_get_cache
  • vsp_get_cache_defaults
  • vsp_get_file_paths
  • vsp_get_logger
  • vsp_get_time_in_seconds
  • vsp_is_admin
  • vsp_is_ajax
  • vsp_is_cron
  • vsp_is_error
  • vsp_is_frontend
  • vsp_is_heartbeat
  • vsp_is_json
  • vsp_is_request
  • vsp_is_screen
  • vsp_json_last_error
  • vsp_list_files
  • vsp_list_log_files
  • vsp_load_core_assets
  • vsp_load_file
  • vsp_log_msg
  • vsp_logger
  • vsp_make_log_list_tree
  • vsp_maybe_load
  • vsp_placeholder_img
  • vsp_print_log_files_ui
  • vsp_register_assets
  • vsp_register_plugin
  • vsp_send_callback_error
  • vsp_send_callback_success
  • vsp_send_json_callback
  • vsp_set_cache
  • vsp_set_time_limit
  • vsp_slashit
  • vsp_time_format
  • vsp_unslashit
  • vsp_url
  • vsp_validate_required_plugin
  • Overview
  • Namespace
  • Class
  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' ) ) {
    /**
     * Generates Log File HTML.
     *
     * @param array  $tree
     * @param string $current_file
     * @param string $label
     * @param int    $level
     * @param int    $size
     * @param int    $index
     */
    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' ) ) {
    /**
     * Generates An Array of log files inside a given directory.
     *
     * @param bool|string $path
     *
     * @return bool|string[]
     */
    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' ) ) {
    /**
     * Creates Nested Array based on file nesting.
     *
     * @param array $logs
     *
     * @return array
     */
    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;
    }
}
API documentation generated by ApiGen