Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/elementor/core/logger/log-reporter.php
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
<?php
2
+
namespace Elementor\Core\Logger;
3
+
4
+
use Elementor\Modules\System_Info\Reporters\Base;
5
+
use Elementor\Utils;
6
+
7
+
if ( ! defined( 'ABSPATH' ) ) {
8
+
exit; // Exit if accessed directly.
9
+
}
10
+
11
+
/**
12
+
* Elementor Log reporter.
13
+
*
14
+
* Elementor log reporter handler class is responsible for generating the
15
+
* debug reports.
16
+
*
17
+
* @since 2.4.0
18
+
*/
19
+
class Log_Reporter extends Base {
20
+
21
+
const MAX_ENTRIES = 20;
22
+
const CLEAR_LOG_ACTION = 'elementor-clear-log';
23
+
24
+
public function get_title() {
25
+
return esc_html__( 'Log', 'elementor' );
26
+
}
27
+
28
+
public function get_fields() {
29
+
return [
30
+
'log_entries' => '',
31
+
];
32
+
}
33
+
34
+
public function print_html_label( $log_label ) {
35
+
$title = $this->get_title();
36
+
37
+
if ( empty( $_GET[ self::CLEAR_LOG_ACTION ] ) ) { // phpcs:ignore -- nonce validation is not require here.
38
+
$nonce = wp_create_nonce( self::CLEAR_LOG_ACTION );
39
+
$url = add_query_arg( [
40
+
self::CLEAR_LOG_ACTION => 1,
41
+
'_wpnonce' => $nonce,
42
+
] );
43
+
44
+
$title .= '<a href="' . esc_url( $url ) . '#elementor-clear-log" class="box-title-tool">' . esc_html__( 'Clear Log', 'elementor' ) . '</a>';
45
+
$title .= '<span id="elementor-clear-log"></span>';
46
+
}
47
+
48
+
parent::print_html_label( $title );
49
+
}
50
+
51
+
public function get_log_entries() {
52
+
/** @var \Elementor\Core\Logger\Manager $manager */
53
+
$manager = Manager::instance();
54
+
55
+
/** @var \Elementor\Core\Logger\Loggers\Db $logger */
56
+
$logger = $manager->get_logger( 'db' );
57
+
58
+
if ( ! empty( $_GET[ self::CLEAR_LOG_ACTION ] ) ) {
59
+
$nonce = Utils::get_super_global_value( $_GET, '_wpnonce' );
60
+
61
+
if ( ! wp_verify_nonce( $nonce, self::CLEAR_LOG_ACTION ) ) {
62
+
wp_die( 'Invalid Nonce', 'Invalid Nonce', [
63
+
'back_link' => true,
64
+
] );
65
+
}
66
+
67
+
$logger->clear();
68
+
}
69
+
70
+
$log_string = 'No entries to display';
71
+
$log_entries = $logger->get_formatted_log_entries( self::MAX_ENTRIES, false );
72
+
73
+
if ( ! empty( $log_entries ) ) {
74
+
$entries_string = '';
75
+
foreach ( $log_entries as $key => $log_entry ) {
76
+
if ( $log_entry['count'] ) {
77
+
$entries_string .= '<h3>' . sprintf( '%s: showing %s of %s', $key, $log_entry['count'], $log_entry['total_count'] ) . '</h3>';
78
+
$entries_string .= '<div class="elementor-log-entries">' . $log_entry['entries'] . '</div>';
79
+
}
80
+
}
81
+
82
+
if ( ! empty( $entries_string ) ) {
83
+
$log_string = $entries_string;
84
+
}
85
+
}
86
+
87
+
return [
88
+
'value' => $log_string,
89
+
];
90
+
}
91
+
92
+
public function get_raw_log_entries() {
93
+
$log_string = 'No entries to display';
94
+
95
+
/** @var \Elementor\Core\Logger\Manager $manager */
96
+
$manager = Manager::instance();
97
+
$logger = $manager->get_logger();
98
+
$log_entries = $logger->get_formatted_log_entries( self::MAX_ENTRIES, false );
99
+
100
+
if ( ! empty( $log_entries ) ) {
101
+
$entries_string = PHP_EOL;
102
+
foreach ( $log_entries as $key => $log_entry ) {
103
+
if ( $log_entry['count'] ) {
104
+
$entries_string .= sprintf( '%s: showing %s of %s', $key, $log_entry['count'], $log_entry['total_count'] ) . $log_entry['entries'] . PHP_EOL;
105
+
}
106
+
}
107
+
108
+
if ( ! empty( $entries_string ) ) {
109
+
$log_string = $entries_string;
110
+
}
111
+
}
112
+
113
+
return [
114
+
'value' => $log_string,
115
+
];
116
+
}
117
+
}
118
+