PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 3.0.1
Adminify – White Label, Admin Menu Editor, Login Customizer v3.0.1
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.0.1, at Inc/Modules/ActivityLogs/ActivityLogs.php

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