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

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