PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 4.1.6
Admin Columns v4.1.6
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 Asset 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 ListTable 6 years ago Message 6 years ago Meta 6 years ago Plugin 6 years ago Preferences 6 years ago Promo 6 years ago Relation 6 years ago Request 6 years ago Response 6 years ago Screen 6 years ago Service 6 years ago Settings 6 years ago Storage 6 years ago Table 6 years ago ThirdParty 6 years ago Transient 6 years ago Type 6 years ago Addon.php 6 years ago Admin.php 6 years ago AdminColumns.php 6 years ago AdminFactory.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 DefaultColumnsRepository.php 6 years ago Dependencies.php 6 years ago EncodedListScreenData.php 6 years ago EncodedListScreenDataFactory.php 6 years ago Expirable.php 6 years ago Groups.php 6 years ago Helper.php 6 years ago Integration.php 6 years ago Integrations.php 6 years ago ListScreen.php 6 years ago ListScreenCollection.php 6 years ago ListScreenFactory.php 6 years ago ListScreenGroups.php 6 years ago ListScreenPost.php 6 years ago ListScreenRepository.php 6 years ago ListScreenRepositoryWritable.php 6 years ago ListScreenTypes.php 6 years ago ListScreenWP.php 6 years ago ListScreens.php 6 years ago ListTable.php 6 years ago ListTableFactory.php 6 years ago Message.php 6 years ago MetaType.php 6 years ago Middleware.php 6 years ago NoticeChecks.php 6 years ago OpCacheInvalidateTrait.php 6 years ago PermissionChecker.php 6 years ago Plugin.php 6 years ago PluginActionLinks.php 6 years ago PluginInformation.php 6 years ago Preferences.php 6 years ago Promo.php 6 years ago PromoCollection.php 6 years ago Registrable.php 6 years ago Relation.php 6 years ago Renderable.php 6 years ago Request.php 6 years ago Screen.php 6 years ago ScreenController.php 6 years ago TableLoader.php 6 years ago Transient.php 6 years ago TypedArrayIterator.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 }