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

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