PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.6.2.1
Advanced Ads – Ad Manager & AdSense v1.6.2.1
2.0.23 2.0.22 2.0.21 1.38.0 1.39.0 1.39.1 1.39.2 1.39.3 1.39.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.40.0 1.40.1 1.40.2 1.41.0 1.42.0 1.42.1 1.42.2 1.43.0 1.44.0 1.44.1 1.45.0 1.45.1 1.46.0 1.47.0 1.47.1 1.47.2 1.47.3 1.47.4 1.47.5 1.48.0 1.48.1 1.49.0 1.5.0 1.5.0.1 1.5.1 1.5.2 1.5.2.1 1.5.4 1.5.4.1 1.5.5 1.50.0 1.51.0 1.51.1 1.51.2 1.51.3 1.52.0 1.52.1 1.52.2 1.52.3 1.52.4 1.53.0 1.53.1 1.53.2 1.54.0 1.54.1 1.55.0 1.56.0 1.56.1 1.56.2 1.56.3 1.56.4 1.6 1.6.1 1.6.10 1.6.10.1 1.6.10.2 1.6.11 1.6.11.1 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.17.1 1.6.17.2 1.6.2 1.6.2.1 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.6 1.6.6.1 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.6.8.3 1.6.9 1.6.9.1 1.6.9.2 1.6.9.3 1.6.9.4 1.7 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.1.1 1.7.1.2 1.7.1.3 1.7.1.4 1.7.1.5 1.7.10 trunk 1.7.11 1.0.1 1.7.12 1.0.2 1.7.13 1.0.3 1.7.14 1.1.0 1.7.15 1.1.1 1.7.16 1.1.2 1.7.17 1.1.3 1.7.18 1.10 1.7.19 1.10.1 1.7.2 1.10.10 1.7.2.1 1.10.11 1.7.20 1.10.12 1.7.21 1.10.2 1.7.22 1.10.3 1.7.23 1.10.4 1.7.24 1.10.5 1.7.25 1.10.6 1.7.3 1.10.7 1.7.4 1.10.8 1.7.4.1 1.10.9 1.7.4.2 1.11 1.7.4.3 1.11.1 1.7.4.4 1.11.2 1.7.4.5 1.12 1.7.5 1.13 1.7.5.1 1.13.1 1.7.6 1.13.2 1.7.7 1.13.3 1.7.8 1.13.4 1.7.9 1.13.5 1.7.9.1 1.13.6 1.7.9.2 1.13.7 1.7.9.3 1.13.8 1.8 1.14 1.8.1 1.14.1 1.8.10 1.14.10 1.8.11 1.14.11 1.8.12 1.14.2 1.8.13 1.14.3 1.8.14 1.14.4 1.8.15 1.14.5 1.8.16 1.14.6 1.8.17 1.14.7 1.8.18 1.14.8 1.8.19 1.14.9 1.8.2 1.15 1.8.20 1.16 1.8.21 1.16.1 1.8.22 1.17 1.8.23 1.17.1 1.8.24 1.17.10 1.8.25 1.17.10-rc.1 1.8.26 1.17.11 1.8.27 1.17.12 1.8.28 1.17.12-rc.1 1.8.29 1.17.2 1.8.3 1.17.3 1.8.30 1.17.4 1.8.4 1.17.5 1.8.5 1.17.6 1.8.6 1.17.7 1.8.7 1.17.8 1.8.8 1.17.9 1.8.9 1.17.9-beta.1 1.9 1.18.0 2.0.0 1.19.0 2.0.1 1.19.1 2.0.10 1.2 2.0.11 1.2.1 2.0.12 1.2.2 2.0.13 1.2.3 2.0.14 1.2.4 2.0.15 1.2.5 2.0.16 1.2.6 2.0.17 1.2.7 2.0.18 1.20.0 2.0.19 1.20.0-rc.1 2.0.2 1.20.0-rc.2 2.0.20 1.20.1 2.0.3 1.20.2 2.0.4 1.20.3 2.0.5 1.21.0 2.0.6 1.21.1 2.0.7 1.22.0 2.0.8 1.22.1 2.0.9 1.22.2 1.23.0 1.23.1 1.23.2 1.24.0 1.24.1 1.24.2 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.29.0 1.29.1 1.3 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.16 1.3.17 1.3.18 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.30.0 1.30.1 1.30.2 1.30.2-rc.1 1.30.3 1.30.4 1.30.4-rc.1 1.30.5 1.31.0 1.31.1 1.32.0 1.32.0-rc.1 1.33.0 1.33.1 1.33.2 1.34.0 1.35.0 1.35.1 1.36.0 1.36.1 1.36.2 1.36.3 1.37.0 1.37.1 1.37.2
advanced-ads / classes / plugin.php
advanced-ads / classes Last commit date
EDD_SL_Plugin_Updater.php 11 years ago ad-ajax.php 11 years ago ad-model.php 11 years ago ad-select.php 11 years ago ad.php 10 years ago ad_ajax_callbacks.php 11 years ago ad_group.php 11 years ago ad_placements.php 11 years ago ad_type_abstract.php 11 years ago ad_type_content.php 11 years ago ad_type_plain.php 11 years ago plugin.php 11 years ago visitor-conditions.php 10 years ago widget.php 11 years ago
plugin.php
432 lines
1 <?php
2
3 /**
4 * Wordpress integration and definitions:
5 *
6 * - posttypes
7 * - taxonomy
8 * - textdomain
9 *
10 * @since 1.5.0
11 */
12 class Advanced_Ads_Plugin {
13
14 /**
15 *
16 * @var Advanced_Ads_Plugin
17 */
18 protected static $instance;
19
20 /**
21 *
22 * @var Advanced_Ads_Model
23 */
24 protected $model;
25
26 /**
27 * plugin options
28 *
29 * @since 1.0.1
30 * @var array (if loaded)
31 */
32 protected $options;
33
34 /**
35 * interal plugin options – set by the plugin
36 *
37 * @since 1.4.5
38 * @var array (if loaded)
39 */
40 protected $internal_options;
41
42 private function __construct() {
43 register_activation_hook( dirname( __FILE__ ), array( $this, 'activate' ) );
44 register_deactivation_hook( dirname( __FILE__ ), array( $this, 'deactivate' ) );
45
46 add_action( 'plugins_loaded', array( $this, 'wp_plugins_loaded' ) );
47 }
48
49 /**
50 *
51 * @return Advanced_Ads_Plugin
52 */
53 public static function get_instance() {
54 // If the single instance hasn't been set, set it now.
55 if ( null === self::$instance ) {
56 self::$instance = new self;
57 }
58
59 return self::$instance;
60 }
61
62 /**
63 *
64 * @param Advanced_Ads_Model $model
65 */
66 public function set_model(Advanced_Ads_Model $model) {
67 $this->model = $model;
68 }
69
70 public function wp_plugins_loaded() {
71 // Load plugin text domain
72 $this->load_plugin_textdomain();
73
74 // activate plugin when new blog is added on multisites // -TODO this is admin-only
75 add_action( 'wpmu_new_blog', array( $this, 'activate_new_site' ) );
76
77 // Load public-facing style sheet and JavaScript.
78 add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_styles' ) );
79 add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
80
81 // add short codes
82 add_shortcode( 'the_ad', array( $this, 'shortcode_display_ad' ) );
83 add_shortcode( 'the_ad_group', array( $this, 'shortcode_display_ad_group' ) );
84 add_shortcode( 'the_ad_placement', array( $this, 'shortcode_display_ad_placement' ) );
85
86 // remove default ad group menu item // -TODO only for admin
87 add_action( 'admin_menu', array( $this, 'remove_taxonomy_menu_item' ) );
88 // load widgets
89 add_action( 'widgets_init', array( $this, 'widget_init' ) );
90
91 // update add-ons
92 add_action( 'admin_init', array($this, 'add_on_updater'), 1 );
93
94 }
95
96 /**
97 * Register and enqueue public-facing style sheet.
98 *
99 * @since 1.0.0
100 */
101 public function enqueue_styles() {
102 // wp_enqueue_style( $this->get_plugin_slug() . '-plugin-styles', plugins_url('assets/css/public.css', __FILE__), array(), Advanced_Ads::VERSION);
103 }
104
105 /**
106 * Return the plugin slug.
107 *
108 * @since 1.0.0
109 * @return Plugin slug variable.
110 */
111 public function get_plugin_slug() {
112 return ADVADS_SLUG;
113 }
114
115 /**
116 * Register and enqueues public-facing JavaScript files.
117 *
118 * @since 1.0.0
119 */
120 public function enqueue_scripts() {
121 // wp_enqueue_script( $this->get_plugin_slug() . '-plugin-script', plugins_url('assets/js/public.js', __FILE__), array('jquery'), Advanced_Ads::VERSION);
122 $options = $this->options();
123 if ( ! empty($options['advanced-js']) ){
124 wp_enqueue_script( $this->get_plugin_slug() . '-advanced-js', ADVADS_BASE_URL . 'public/assets/js/advanced.js', array( 'jquery' ), Advanced_Ads::VERSION );
125 }
126 }
127
128 public function widget_init() {
129 register_widget( 'Advanced_Ads_Widget' );
130 }
131
132 /**
133 * Fired when a new site is activated with a WPMU environment.
134 *
135 * @since 1.0.0
136 * @param int $blog_id ID of the new blog.
137 */
138 public function activate_new_site($blog_id) {
139
140 if ( 1 !== did_action( 'wpmu_new_blog' ) ) {
141 return;
142 }
143
144 switch_to_blog( $blog_id );
145 $this->single_activate();
146 restore_current_blog();
147 }
148
149 /**
150 * Fired for each blog when the plugin is activated.
151 *
152 * @since 1.0.0
153 */
154 protected function single_activate() {
155 $this->post_types_rewrite_flush();
156 // -TODO inform modules
157 }
158
159 /**
160 * Fired for each blog when the plugin is deactivated.
161 *
162 * @since 1.0.0
163 */
164 protected function single_deactivate() {
165 // -TODO inform modules
166 }
167
168 /**
169 * Load the plugin text domain for translation.
170 *
171 * @since 1.0.0
172 */
173 public function load_plugin_textdomain() {
174 // $locale = apply_filters('advanced-ads-plugin-locale', get_locale(), $domain);
175 load_plugin_textdomain( ADVADS_SLUG, false, ADVADS_BASE_DIR . '/languages' );
176 }
177
178 /**
179 * Fired when the plugin is activated.
180 *
181 * @since 1.0.0
182 * @param boolean $network_wide True if WPMU superadmin uses
183 * "Network Activate" action, false if
184 * WPMU is disabled or plugin is
185 * activated on an individual blog.
186 */
187 public function activate($network_wide) {
188
189 if ( function_exists( 'is_multisite' ) && is_multisite() ) {
190
191 if ( $network_wide ) {
192
193 // Get all blog ids
194 $blog_ids = $this->model->get_blog_ids();
195
196 foreach ( $blog_ids as $blog_id ) {
197
198 switch_to_blog( $blog_id );
199 $this->single_activate();
200 }
201
202 restore_current_blog();
203 } else {
204 $this->single_activate();
205 }
206 } else {
207 $this->single_activate();
208 }
209 }
210
211 /**
212 * Fired when the plugin is deactivated.
213 *
214 * @since 1.0.0
215 * @param boolean $network_wide
216 *
217 * True if WPMU superadmin uses
218 * "Network Deactivate" action, false if
219 * WPMU is disabled or plugin is
220 * deactivated on an individual blog.
221 */
222 public function deactivate($network_wide) {
223
224 if ( function_exists( 'is_multisite' ) && is_multisite() ) {
225
226 if ( $network_wide ) {
227
228 // Get all blog ids
229 $blog_ids = $this->model->get_blog_ids();
230
231 foreach ( $blog_ids as $blog_id ) {
232
233 switch_to_blog( $blog_id );
234 $this->single_deactivate();
235 }
236
237 restore_current_blog();
238 } else {
239 $this->single_deactivate();
240 }
241 } else {
242 $this->single_deactivate();
243 }
244 }
245
246 /**
247 * flush rewrites on plugin activation so permalinks for them work from the beginning on
248 *
249 * @since 1.0.0
250 * @link http://codex.wordpress.org/Function_Reference/register_post_type#Flushing_Rewrite_on_Activation
251 */
252 public function post_types_rewrite_flush(){
253 // load custom post type
254 Advanced_Ads::get_instance()->create_post_types();
255 // flush rewrite rules
256 flush_rewrite_rules();
257 }
258
259 /**
260 * remove WP tag edit page for the ad group taxonomy
261 * needed, because we can’t remove it with `show_ui` without also removing the meta box
262 *
263 * @since 1.0.0
264 */
265 public function remove_taxonomy_menu_item() {
266 remove_submenu_page( 'edit.php?post_type=advanced_ads', 'edit-tags.php?taxonomy=advanced_ads_groups&amp;post_type=advanced_ads' );
267 }
268
269 /**
270 * shortcode to include ad in frontend
271 *
272 * @since 1.0.0
273 * @param arr $atts
274 */
275 public function shortcode_display_ad($atts){
276 $id = isset($atts['id']) ? (int) $atts['id'] : 0;
277
278 // use the public available function here
279 return get_ad( $id );
280 }
281
282 /**
283 * shortcode to include ad from an ad group in frontend
284 *
285 * @since 1.0.0
286 * @param arr $atts
287 */
288 public function shortcode_display_ad_group($atts){
289 $id = isset($atts['id']) ? (int) $atts['id'] : 0;
290
291 // use the public available function here
292 return get_ad_group( $id );
293 }
294
295 /**
296 * shortcode to display content of an ad placement in frontend
297 *
298 * @since 1.1.0
299 * @param arr $atts
300 */
301 public function shortcode_display_ad_placement($atts){
302 $id = isset($atts['id']) ? (string) $atts['id'] : '';
303
304 // use the public available function here
305 return get_ad_placement( $id );
306 }
307
308 /**
309 * return plugin options
310 * these are the options updated by the user
311 *
312 * @since 1.0.1
313 * @return array $options
314 * @todo parse default options
315 */
316 public function options() {
317 if ( ! isset( $this->options ) ) {
318 $this->options = get_option( ADVADS_SLUG, array() );
319 }
320
321 return $this->options;
322 }
323
324 /**
325 * update plugin options (not for settings page, but if automatic options are needed)
326 *
327 * @since 1.5.1
328 * @param array $options new options
329 */
330 public function update_options( array $options ) {
331 // do not allow to clear options
332 if ( $options === array() ) {
333 return;
334 }
335
336 $this->options = $options;
337 update_option( ADVADS_SLUG, $options );
338 }
339
340 /**
341 * return internal plugin options
342 * these are options set by the plugin
343 *
344 * @since 1.0.1
345 * @return array $options
346 * @todo parse default options
347 */
348 public function internal_options() {
349 if ( ! isset( $this->internal_options ) ) {
350 $defaults = array(
351 'version' => ADVADS_VERSION,
352 'installed' => time(), // when was this installed
353 );
354 $this->internal_options = get_option( ADVADS_SLUG . '-internal', array() );
355
356 // save defaults
357 if($this->internal_options === array()){
358 $this->internal_options = $defaults;
359 $this->update_internal_options($this->internal_options);
360 }
361
362 // for versions installed prior to 1.5.3 set installed date for now
363 if( ! isset( $this->internal_options['installed'] )){
364 $this->internal_options['installed'] = time();
365 $this->update_internal_options($this->internal_options);
366 }
367 }
368
369 return $this->internal_options;
370 }
371
372 /**
373 * update internal plugin options
374 *
375 * @since 1.5.1
376 * @param array $options new internal options
377 */
378 public function update_internal_options( array $options ) {
379 // do not allow to clear options
380 if ( $options === array() ) {
381 return;
382 }
383
384 $this->internal_options = $options;
385 update_option( ADVADS_SLUG . '-internal', $options );
386 }
387
388 /*
389 * add-on updater
390 *
391 * @since 1.5.7
392 *
393 */
394 public function add_on_updater(){
395
396 /**
397 * list of registered add ons
398 * contains:
399 * name
400 * version
401 * path
402 * options_slug
403 * short option slug (=key)
404 */
405 $add_ons = apply_filters( 'advanced-ads-add-ons', array() );
406
407 if( $add_ons === array() ) {
408 return;
409 }
410
411 foreach( $add_ons as $_add_on_key => $_add_on ){
412 // check status
413 if(get_option($_add_on['options_slug'] . '-license-status', false) !== 'valid') {
414 return;
415 }
416
417 // retrieve our license key from the DB
418 $licenses = get_option(ADVADS_SLUG . '-licenses', array());
419 $license_key = isset($licenses[$_add_on_key]) ? $licenses[$_add_on_key] : '';
420
421 // setup the updater
422 new EDD_SL_Plugin_Updater( ADVADS_URL, $_add_on['path'], array(
423 'version' => $_add_on['version'],
424 'license' => $license_key,
425 'item_name' => $_add_on['name'],
426 'author' => 'Thomas Maier'
427 )
428 );
429 }
430 }
431 }
432