PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 4.0.1
Admin Columns v4.0.1
7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Plugin.php
codepress-admin-columns / classes Last commit date
Admin 6 years ago Ajax 6 years ago Autoloader 6 years ago Capabilities 6 years ago Check 6 years ago Column 6 years ago Controller 6 years ago Deprecated 6 years ago Exception 6 years ago Form 6 years ago Helper 6 years ago Integration 6 years ago ListScreen 6 years ago ListScreenRepository 6 years ago Message 6 years ago Meta 6 years ago Plugin 6 years ago Preferences 6 years ago Relation 6 years ago Request 6 years ago Response 6 years ago Screen 6 years ago Settings 6 years ago Storage 6 years ago Table 6 years ago ThirdParty 6 years ago Transient 6 years ago Addon.php 6 years ago Admin.php 6 years ago AdminColumns.php 6 years ago ArrayIterator.php 6 years ago Autoloader.php 6 years ago Builder.php 6 years ago Capabilities.php 6 years ago Collection.php 6 years ago Column.php 6 years ago Config.php 6 years ago DefaultColumns.php 6 years ago DefaultColumnsController.php 6 years ago Dependencies.php 6 years ago Expirable.php 6 years ago Groups.php 6 years ago Helper.php 6 years ago Integration.php 6 years ago IntegrationFactory.php 6 years ago Integrations.php 6 years ago ListScreen.php 6 years ago ListScreenApiData.php 6 years ago ListScreenCollection.php 6 years ago ListScreenFactory.php 6 years ago ListScreenGroups.php 6 years ago ListScreenPost.php 6 years ago ListScreenTypes.php 6 years ago ListScreenWP.php 6 years ago Message.php 6 years ago MetaType.php 6 years ago Middleware.php 6 years ago OpCacheInvalidateTrait.php 6 years ago PermissionChecker.php 6 years ago Plugin.php 6 years ago PluginInformation.php 6 years ago Preferences.php 6 years ago Registrable.php 6 years ago Relation.php 6 years ago Request.php 6 years ago Screen.php 6 years ago ScreenController.php 6 years ago Settings.php 6 years ago Transient.php 6 years ago TypedArrayIterator.php 6 years ago UnitializedListScreens.php 6 years ago View.php 6 years ago
Plugin.php
192 lines
1 <?php
2
3 namespace AC;
4
5 use ReflectionObject;
6 use WP_Roles;
7
8 abstract class Plugin extends Addon {
9
10 /** @var array */
11 private $data;
12
13 /**
14 * Check if plugin is network activated
15 * @return bool
16 */
17 public function is_network_active() {
18 return is_plugin_active_for_network( $this->get_basename() );
19 }
20
21 /**
22 * Calls get_plugin_data() for this plugin
23 * @return array
24 * @see get_plugin_data()
25 */
26 protected function get_data() {
27 require_once ABSPATH . 'wp-admin/includes/plugin.php';
28
29 if ( null === $this->data ) {
30 $this->data = get_plugin_data( $this->get_file(), false, false );
31 }
32
33 return $this->data;
34 }
35
36 /**
37 * @return false|string
38 * @since 3.2
39 */
40 public function get_name() {
41 return $this->get_header( 'Name' );
42 }
43
44 /**
45 * Return a plugin header from the plugin data
46 *
47 * @param $key
48 *
49 * @return false|string
50 */
51 protected function get_header( $key ) {
52 $data = $this->get_data();
53
54 if ( ! isset( $data[ $key ] ) ) {
55 return false;
56 }
57
58 return $data[ $key ];
59 }
60
61 /**
62 * Apply updates to the database
63 */
64 public function install() {
65 if ( 0 === version_compare( $this->get_version(), $this->get_stored_version() ) ) {
66 return;
67 }
68
69 global $wp_roles;
70
71 if ( ! $wp_roles ) {
72 $wp_roles = new WP_Roles();
73 }
74
75 do_action( 'ac/capabilities/init', $wp_roles );
76
77 $installer = new Plugin\Installer();
78 $installer->install();
79
80 if ( current_user_can( Capabilities::MANAGE ) && ! is_network_admin() ) {
81 $this->run_updater();
82 }
83 }
84
85 private function run_updater() {
86 $updater = new Plugin\Updater\Site( $this );
87
88 $reflection = new ReflectionObject( $this );
89 $classes = Autoloader::instance()->get_class_names_from_dir( $reflection->getNamespaceName() . '\Plugin\Update' );
90
91 foreach ( $classes as $class ) {
92 $updater->add_update( new $class( $this->get_stored_version() ) );
93 }
94
95 $updater->parse_updates();
96 }
97
98 /**
99 * Check if a plugin is in beta
100 * @return bool
101 * @since 3.2
102 */
103 public function is_beta() {
104 return false !== strpos( $this->get_version(), 'beta' );
105 }
106
107 /**
108 * @return string
109 */
110 public function get_version() {
111 return $this->get_header( 'Version' );
112 }
113
114 /**
115 * @return string
116 */
117 abstract protected function get_version_key();
118
119 /**
120 * @param string $version
121 *
122 * @return bool
123 */
124 public function is_version_gte( $version ) {
125 return version_compare( $this->get_version(), $version, '>=' );
126 }
127
128 /**
129 * @return string
130 */
131 public function get_stored_version() {
132 return get_option( $this->get_version_key() );
133 }
134
135 /**
136 * Update the stored version to match the (current) version
137 *
138 * @param null $version
139 *
140 * @return bool
141 */
142 public function update_stored_version( $version = null ) {
143 if ( null === $version ) {
144 $version = $this->get_version();
145 }
146
147 return update_option( $this->get_version_key(), $version, false );
148 }
149
150 /**
151 * Check if the plugin was updated or is a new install
152 */
153 public function is_new_install() {
154 global $wpdb;
155
156 if ( $this->get_stored_version() ) {
157 return false;
158 }
159
160 // Before version 3.0.5
161 $results = $wpdb->get_results( "SELECT option_id FROM {$wpdb->options} WHERE option_name LIKE 'cpac_options_%' LIMIT 1" );
162
163 return empty( $results );
164 }
165
166 /**
167 * Return a plugin header from the plugin data
168 *
169 * @param $key
170 *
171 * @return false|string
172 * @deprecated
173 */
174 protected function get_plugin_header( $key ) {
175 _deprecated_function( __METHOD__, '3.2', 'AC\Plugin::get_header()' );
176
177 return $this->get_header( $key );
178 }
179
180 /**
181 * Calls get_plugin_data() for this plugin
182 * @return array
183 * @see get_plugin_data()
184 * @deprecated
185 */
186 protected function get_plugin_data() {
187 _deprecated_function( __METHOD__, '3.2', 'AC\Plugin::get_data()' );
188
189 return $this->get_data();
190 }
191
192 }