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

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