PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 3.2.4.5
Adminify – White Label, Admin Menu Editor, Login Customizer v3.2.4.5
4.3.1 4.3.0 4.2.26 4.2.25 4.2.24 4.2.23 4.2.22 4.2.21 4.2.20 4.2.19 4.2.18 4.2.17 4.2.16 4.2.15 4.2.14 4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 4.1.17 All 164 releases
adminify / Inc / Modules / ActivityLogs / ActivityLogs.php

ActivityLogs.php in Adminify – White Label, Admin Menu Editor, Login Customizer 3.2.4.5, at Inc/Modules/ActivityLogs/ActivityLogs.php

227 lines 6.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPAdminify\Inc\Modules\ActivityLogs;
4
5 use WPAdminify\Inc\Modules\ActivityLogs\Inc\DB_Table;
6 use WPAdminify\Inc\Modules\ActivityLogs\Inc\Api;
7 use WPAdminify\Inc\Modules\ActivityLogs\Inc\Hooks;
8 use WPAdminify\Inc\Modules\ActivityLogs\Inc\Adminify_Activity_Log_List_Table;
9
10 // no direct access allowed
11 if (!defined('ABSPATH')) {
12 exit;
13 }
14
15 /**
16 * WPAdminify
17 *
18 * @package Activity Logs
19 *
20 * @author Jewel Theme <support@jeweltheme.com>
21 */
22
23 class ActivityLogs
24 {
25
26 public $url;
27 public $api;
28 public $hooks;
29
30 // Adminify List Table
31 protected $_list_table = null;
32 protected $_screens = [];
33
34 public static $instance;
35
36 public static function get_instance()
37 {
38 if (is_null(self::$instance)) {
39 self::$instance = new self();
40 }
41 return self::$instance;
42 }
43
44 public static function get_log_table()
45 {
46 global $wpdb;
47 return $wpdb->prefix . 'adminify_activity_logs';
48 }
49
50 public function __construct()
51 {
52 global $wpdb;
53 $this->url = WP_ADMINIFY_URL . 'Inc/Modules/ActivityLogs';
54 if (is_admin()) {
55 add_action('admin_menu', [$this, 'jltwp_adminify_activity_logs_submenu'], 52);
56 add_action('admin_enqueue_scripts', [$this, 'jltwp_adminify_enqueue_scripts']);
57 $wpdb->adminify_activity_logs = self::get_log_table();
58
59 new DB_Table();
60
61 $this->api = new Api();
62 $this->hooks = Hooks::get_instance();
63 }
64
65 add_action('admin_init', [$this, 'init_actions']);
66 }
67
68 public function jltwp_adminify_activity_logs_submenu()
69 {
70 $this->_screens['adminify_log'] = add_submenu_page(
71 'wp-adminify-settings',
72 esc_html__('Activity Logs by WP Adminify', 'adminify'),
73 esc_html__('Activity Logs', 'adminify'),
74 apply_filters('jltwp_adminify_capability', 'manage_options'),
75 'adminify-activity-logs', // Page slug, will be displayed in URL
76 [$this, 'jltwp_adminify_activity_logs_contents']
77 );
78
79 // Making sure that we've created Instance
80 add_action('load-' . $this->_screens['adminify_log'], [$this, 'jltwp_adminify_get_list_table']);
81 }
82
83 public function init_actions()
84 {
85 if (empty($_GET['page']) || $_GET['page'] !== 'adminify-activity-logs') {
86 return;
87 }
88 if (empty($_GET['action']) || $_GET['action'] == -1) {
89 return;
90 }
91 if (empty($_GET['log_id'])) {
92 return;
93 }
94
95 $action = sanitize_text_field(wp_unslash($_GET['action']));
96 $log_id = (int) $_GET['log_id'];
97
98 $sendback = admin_url('admin.php?page=adminify-activity-logs');
99
100 if ($action == 'delete') {
101 check_admin_referer('delete-log_' . $log_id);
102 $adminify_activity_logs = self::get_instance();
103 $adminify_activity_logs->api->delete($log_id);
104 }
105
106 wp_redirect($sendback);
107 exit;
108 }
109
110 /**
111 * Scripst / Styles
112 */
113 public function jltwp_adminify_enqueue_scripts()
114 {
115 $screen = get_current_screen();
116
117 // Load Scripts/Styles only Activity Logs Page
118 if ('wp-adminify_page_adminify-activity-logs' != $screen->id) {
119 return;
120 }
121
122 if ($screen->id == 'wp-adminify_page_adminify-activity-logs') {
123 $this->admin_head_css();
124 }
125 }
126
127 /**
128 * Admin head CSS
129 *
130 * @return void
131 */
132 public function admin_head_css()
133 {
134 $activity_custom_css = '';
135 $activity_custom_css .= '.wp-adminify_page_adminify-activity-logs .label {
136 font-size: inherit !important;
137 }
138
139 #record-actions-submit {
140 margin-top: 10px;
141 }
142
143 .wp-adminify-pt {
144 color: #ffffff;
145 padding: 1px 4px;
146 margin: 0 5px;
147 font-size: 1em;
148 border-radius: 3px;
149 background: #808080;
150 font-family: inherit;
151 }
152
153 .wp-adminify_page_adminify-activity-logs .manage-column {
154 width: auto;
155 }
156
157 .wp-adminify_page_adminify-activity-logs .column-description {
158 width: 20%;
159 }
160
161 #adminmenu #wp-adminify_page_adminify-activity-logs div.wp-menu-image:before {
162 content: "\f321";
163 }
164
165 @media (max-width: 767px) {
166 .wp-adminify_page_adminify-activity-logs .manage-column {
167 width: auto;
168 }
169
170 .wp-adminify_page_adminify-activity-logs .column-date,
171 .wp-adminify_page_adminify-activity-logs .column-author {
172 display: table-cell;
173 width: auto;
174 }
175
176 .wp-adminify_page_adminify-activity-logs .column-ip,
177 .wp-adminify_page_adminify-activity-logs .column-description,
178 .wp-adminify_page_adminify-activity-logs .column-label {
179 display: none;
180 }
181
182 .wp-adminify_page_adminify-activity-logs .column-author .avatar {
183 display: none;
184 }
185 }';
186
187 $activity_custom_css = preg_replace('#/\*.*?\*/#s', '', $activity_custom_css);
188 $activity_custom_css = preg_replace('/\s*([{}|:;,])\s+/', '$1', $activity_custom_css);
189 $activity_custom_css = preg_replace('/\s\s+(.*)/', '$1', $activity_custom_css);
190
191 if (!empty($this->options['admin_ui'])) {
192 wp_add_inline_style('wp-adminify-admin', wp_strip_all_tags($activity_custom_css));
193 } else {
194 wp_add_inline_style('wp-adminify-default-ui', wp_strip_all_tags($activity_custom_css));
195 }
196 }
197
198 /**
199 * Get List Table
200 */
201 public function jltwp_adminify_get_list_table()
202 {
203 if (is_null($this->_list_table)) {
204 $this->_list_table = new Adminify_Activity_Log_List_Table(['screen' => $this->_screens['adminify_log']]);
205 do_action('wp_adminify_activity_page', $this->_list_table);
206 }
207
208 return $this->_list_table;
209 }
210
211 public function jltwp_adminify_activity_logs_contents()
212 {
213 $this->jltwp_adminify_get_list_table()->prepare_items();
214 ?>
215 <div class="wrap">
216 <h1 class="wp-adminify-page-title"><?php esc_html__('Activity Log', 'Page and Menu Title', 'adminify'); ?></h1>
217
218 <form id="activity-filter" method="get">
219 <input type="hidden" name="page" value="<?php echo esc_attr(wp_unslash($_REQUEST['page'])); ?>" />
220 <?php $this->jltwp_adminify_get_list_table()->display(); ?>
221 </form>
222 </div>
223
224 <?php
225 }
226 }
227