PluginProbe
Advanced Ads – Ad Manager & AdSense / 1.3.13
Advanced Ads – Ad Manager & AdSense v1.3.13
2.0.26 2.0.25 2.0.24 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 All 348 releases
advanced-ads / classes / widget.php

widget.php in Advanced Ads – Ad Manager & AdSense 1.3.13, at classes/widget.php

126 lines 4.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Advanced Ads Widget
4 *
5 * @package Advads_Widget
6 * @author Thomas Maier <thomas.maier@webgilde.com>
7 * @license GPL-2.0+
8 * @link http://webgilde.com
9 * @copyright 2014 Thomas Maier, webgilde GmbH
10 */
11
12 /**
13 * Ad widget
14 *
15 */
16 class Advads_Widget extends WP_Widget {
17
18 function __construct() {
19 $widget_ops = array('classname' => 'advads_widget', 'description' => __('Display Ads and Ad Groups.', ADVADS_SLUG));
20 $control_ops = array();
21 parent::__construct('advads_ad_widget', __('Advanced Ads', ADVADS_SLUG), $widget_ops, $control_ops);
22 }
23
24 function widget($args, $instance) {
25 /** This filter is documented in wp-includes/default-widgets.php */
26 $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
27
28 extract($args);
29 $item_id = empty($instance['item_id']) ? '' : $instance['item_id'];
30 $title = empty($instance['title']) ? '' : $instance['title'];
31 echo $before_widget;
32 if ( ! empty( $title ) ) {
33 echo $before_title . $title . $after_title;
34 }
35 echo self::output($item_id);
36 echo $after_widget;
37 }
38
39 function update($new_instance, $old_instance) {
40 $instance = $old_instance;
41 $instance['title'] = $new_instance['title'];
42 $instance['item_id'] = $new_instance['item_id'];
43 return $instance;
44 }
45
46 function form($instance) {
47 $instance = wp_parse_args((array) $instance, array('title' => '', 'item_id' => ''));
48 $title = strip_tags($instance['title']);
49 $elementid = $instance['item_id'];
50
51 ?><p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label>
52 <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" /></p><?php
53
54 $items = self::items_for_select();
55 ?>
56 <select id="<?php echo $this->get_field_id('item_id'); ?>" name="<?php echo $this->get_field_name('item_id'); ?>">
57 <option value=""><?php _e('--empty--', ADVADS_SLUG); ?></option>
58 <?php if(isset($items['groups'])) : ?>
59 <optgroup label="<?php _e('Ad Groups', ADVADS_SLUG); ?>">
60 <?php foreach($items['groups'] as $_item_id => $_item_title) : ?>
61 <option value="<?php echo $_item_id; ?>" <?php selected($_item_id, $elementid); ?>><?php echo $_item_title; ?></option>
62 <?php endforeach; ?>
63 </optgroup>
64 <?php endif; ?>
65 <?php if(isset($items['ads'])) : ?>
66 <optgroup label="<?php _e('Ads', ADVADS_SLUG); ?>">
67 <?php foreach($items['ads'] as $_item_id => $_item_title) : ?>
68 <option value="<?php echo $_item_id; ?>" <?php selected($_item_id, $elementid); ?>><?php echo $_item_title; ?></option>
69 <?php endforeach; ?>
70 </optgroup>
71 <?php endif; ?>
72 </select><?php
73 }
74
75 /**
76 * get items for widget select field
77 *
78 * @since 1.2
79 * @return arr $select items for select field
80 */
81 static function items_for_select(){
82 $select = array();
83
84 // load all ads
85 $ads = Advanced_Ads::get_ads(array('orderby' => 'name', 'order' => 'ASC'));
86 foreach($ads as $_ad){
87 $select['ads']['ad_' . $_ad->ID] = $_ad->post_title;
88 }
89
90 // load all ad groups
91 $groups = Advanced_Ads::get_ad_groups();
92 foreach($groups as $_group){
93 $select['groups']['group_' . $_group->term_id] = $_group->name;
94 }
95
96 return $select;
97 }
98
99 /**
100 * return content of an in a widget
101 *
102 * @since 1.2
103 * @param string $id slug of the display
104 */
105 static function output($id = ''){
106 // get placement data for the slug
107 if(empty($id)) return;
108
109 $item = explode('_', $id);
110
111 if(isset($item[1]))
112 $item_id = absint($item[1]);
113 elseif(empty($item_id)) return;
114
115 // return either ad or group content
116 if($item[0] == 'ad'){
117 return get_ad($item_id);
118 } elseif($item[0] == 'group'){
119 return get_ad_group($item_id);
120 }
121
122 return;
123 }
124
125 }
126