PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 3.4.1
Admin Columns v3.4.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 7 years ago Ajax 7 years ago Autoloader 7 years ago Check 7 years ago Column 7 years ago Deprecated 7 years ago Exception 7 years ago Form 7 years ago Helper 7 years ago Integration 7 years ago ListScreen 7 years ago Message 7 years ago Meta 7 years ago Plugin 7 years ago Preferences 7 years ago Relation 7 years ago Request 7 years ago Response 7 years ago Screen 7 years ago Settings 7 years ago Storage 7 years ago Table 7 years ago ThirdParty 7 years ago Transient 7 years ago API.php 7 years ago Addon.php 7 years ago Admin.php 7 years ago AdminColumns.php 7 years ago ArrayIterator.php 7 years ago Autoloader.php 7 years ago Builder.php 7 years ago Capabilities.php 7 years ago Collection.php 7 years ago Column.php 7 years ago Config.php 7 years ago Dependencies.php 7 years ago Expirable.php 7 years ago Groups.php 7 years ago Helper.php 7 years ago Integration.php 7 years ago IntegrationFactory.php 7 years ago Integrations.php 7 years ago ListScreen.php 7 years ago ListScreenFactory.php 7 years ago ListScreenGroups.php 7 years ago ListScreenPost.php 7 years ago ListScreenWP.php 7 years ago Message.php 7 years ago MetaType.php 7 years ago Middleware.php 7 years ago Plugin.php 7 years ago PluginInformation.php 7 years ago Preferences.php 7 years ago Registrable.php 7 years ago Relation.php 7 years ago Request.php 7 years ago Screen.php 7 years ago ScreenController.php 7 years ago Settings.php 7 years ago Transient.php 7 years ago TypedArrayIterator.php 7 years ago View.php 7 years ago
Plugin.php
180 lines
1 <?php
2
3 namespace AC;
4
5 use ReflectionObject;
6
7 abstract class Plugin extends Addon {
8
9 /** @var array */
10 private $data;
11
12 /**
13 * Check if plugin is network activated
14 * @return bool
15 */
16 public function is_network_active() {
17 return is_plugin_active_for_network( $this->get_basename() );
18 }
19
20 /**
21 * Calls get_plugin_data() for this plugin
22 * @see get_plugin_data()
23 * @return array
24 */
25 protected function get_data() {
26 require_once ABSPATH . 'wp-admin/includes/plugin.php';
27
28 if ( null === $this->data ) {
29 $this->data = get_plugin_data( $this->get_file(), false, false );
30 }
31
32 return $this->data;
33 }
34
35 /**
36 * @since 3.2
37 * @return false|string
38 */
39 public function get_name() {
40 return $this->get_header( 'Name' );
41 }
42
43 /**
44 * Return a plugin header from the plugin data
45 *
46 * @param $key
47 *
48 * @return false|string
49 */
50 protected function get_header( $key ) {
51 $data = $this->get_data();
52
53 if ( ! isset( $data[ $key ] ) ) {
54 return false;
55 }
56
57 return $data[ $key ];
58 }
59
60 /**
61 * Apply updates to the database
62 */
63 public function install() {
64 if ( 0 === version_compare( $this->get_version(), $this->get_stored_version() ) ) {
65 return;
66 }
67
68 $updater = new Plugin\Updater( $this );
69
70 if ( ! $updater->check_update_conditions() ) {
71 return;
72 }
73
74 $reflection = new ReflectionObject( $this );
75 $classes = Autoloader::instance()->get_class_names_from_dir( $reflection->getNamespaceName() . '\Plugin\Update' );
76
77 foreach ( $classes as $class ) {
78 $updater->add_update( new $class( $this->get_stored_version() ) );
79 }
80
81 $updater->parse_updates();
82 }
83
84 /**
85 * Check if a plugin is in beta
86 * @since 3.2
87 * @return bool
88 */
89 public function is_beta() {
90 return false !== strpos( $this->get_version(), 'beta' );
91 }
92
93 /**
94 * @return string
95 */
96 public function get_version() {
97 return $this->get_header( 'Version' );
98 }
99
100 /**
101 * @return string
102 */
103 abstract protected function get_version_key();
104
105 /**
106 * @param string $version
107 *
108 * @return bool
109 */
110 public function is_version_gte( $version ) {
111 return version_compare( $this->get_version(), $version, '>=' );
112 }
113
114 /**
115 * @return string
116 */
117 public function get_stored_version() {
118 return get_option( $this->get_version_key() );
119 }
120
121 /**
122 * Update the stored version to match the (current) version
123 *
124 * @param null $version
125 *
126 * @return bool
127 */
128 public function update_stored_version( $version = null ) {
129 if ( null === $version ) {
130 $version = $this->get_version();
131 }
132
133 return update_option( $this->get_version_key(), $version, false );
134 }
135
136 /**
137 * Check if the plugin was updated or is a new install
138 */
139 public function is_new_install() {
140 global $wpdb;
141
142 $sql = "
143 SELECT option_id
144 FROM {$wpdb->options}
145 WHERE option_name LIKE 'cpac_options_%'
146 LIMIT 1
147 ";
148
149 $results = $wpdb->get_results( $sql );
150
151 return empty( $results );
152 }
153
154 /**
155 * Return a plugin header from the plugin data
156 *
157 * @param $key
158 *
159 * @deprecated
160 * @return false|string
161 */
162 protected function get_plugin_header( $key ) {
163 _deprecated_function( __METHOD__, '3.2', 'AC\Plugin::get_header()' );
164
165 return $this->get_header( $key );
166 }
167
168 /**
169 * Calls get_plugin_data() for this plugin
170 * @deprecated
171 * @see get_plugin_data()
172 * @return array
173 */
174 protected function get_plugin_data() {
175 _deprecated_function( __METHOD__, '3.2', 'AC\Plugin::get_data()' );
176
177 return $this->get_data();
178 }
179
180 }