admin-columns-pro.php
3.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?php
/*
Plugin Name: Admin Columns Pro
Version: 3.6
Description: Customize columns on the administration screens for post(types), users and other content. Filter and sort content, and edit posts directly from the posts overview. All via an intuitive, easy-to-use drag-and-drop interface.
Author: AdminColumns.com
Author URI: https://www.admincolumns.com
Plugin URI: https://www.admincolumns.com
Text Domain: codepress-admin-columns
Domain Path: /languages/
*/
if ( ! defined( 'ABSPATH' ) ) {
header( 'Status: 403 Forbidden' );
header( 'HTTP/1.1 403 Forbidden' );
exit;
}
define( 'ACP_VERSION', '3.6' );
define( 'ACP_FILE', __FILE__ );
// Only run plugin in the admin interface
if ( ! is_admin() ) {
return false;
}
/**
* Loads Admin Columns and Admin Columns Pro
*
* @since 3.0.6
*/
class CPAC_Full {
/**
* Constructor
*
* @since 3.0
*/
public function __construct() {
// Add capabilty to roles to manage admin columns
register_activation_hook( __FILE__, array( $this, 'set_capabilities' ) );
// Only load Admin Columns if it hasn't been loaded already (in which case it is automatically deactivated by maybe_deactivate_admincolumns())
if ( ! $this->maybe_deactivate_admincolumns() ) {
require_once dirname( __FILE__ ) . '/codepress-admin-columns/codepress-admin-columns.php';
require_once dirname( __FILE__ ) . '/cac-addon-pro.php';
}
// Add settings link
add_filter( 'plugin_action_links', array( $this, 'add_settings_link' ), 1, 2 );
add_filter( 'network_admin_plugin_action_links', array( $this, 'add_settings_link' ), 10, 2 );
}
/**
* Disable the Admin Columns base plugin if it is active
*
* @since 3.0
*
* @return bool Whether the base plugin was deactivated
*/
public function maybe_deactivate_admincolumns() {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
$deactivated = false;
// Plugin files
$cpac_basename = 'codepress-admin-columns/codepress-admin-columns.php';
$cpac_addon_pro_basename = 'cac-addon-pro/cac-addon-pro.php';
if ( is_plugin_active( $cpac_basename ) ) {
deactivate_plugins( $cpac_basename );
$deactivated = true;
}
if ( is_plugin_active( $cpac_addon_pro_basename ) ) {
deactivate_plugins( $cpac_addon_pro_basename );
$deactivated = true;
}
return $deactivated;
}
/**
* Add Settings link to plugin page
*
* @since 3.0
*
* @param string $links All settings links.
* @param string $file Plugin filename.
* @return string Link to settings page
*/
public function add_settings_link( $links, $file ) {
if ( $file === plugin_basename( __FILE__ ) ) {
$adminurl = is_network_admin() ? network_admin_url( "settings.php" ) : admin_url( "options-general.php" );
array_unshift( $links, '<a href="' . add_query_arg( array( 'page' => 'codepress-admin-columns', 'tab' => 'settings' ), $adminurl ) . '">' . __( 'Settings', 'codepress-admin-columns' ) . '</a>' );
}
return $links;
}
/**
* Add capabilty to administrator to manage admin columns.
* You can use the capability 'manage_admin_columns' to grant other roles this privilidge as well.
*
* @since 3.0
*/
public function set_capabilities() {
if ( $role = get_role( 'administrator' ) ) {
$role->add_cap( 'manage_admin_columns' );
}
}
}
new CPAC_Full();