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

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