PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 7.4.3
Jetpack – WP Security, Backup, Speed, & Growth v7.4.3
16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 All 501 releases
jetpack / modules / wordads / php / widgets.php
widgets.php
116 lines 3.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Widget for inserting an ad into your sidebar
5 *
6 * @since 4.5.0
7 */
8 class WordAds_Sidebar_Widget extends WP_Widget {
9
10 private static $allowed_tags = array( 'mrec', 'wideskyscraper' );
11 private static $num_widgets = 0;
12
13 function __construct() {
14 parent::__construct(
15 'wordads_sidebar_widget',
16 /** This filter is documented in modules/widgets/facebook-likebox.php */
17 apply_filters( 'jetpack_widget_name', 'Ads' ),
18 array(
19 'description' => __( 'Insert an ad unit wherever you can place a widget.', 'jetpack' ),
20 'customize_selective_refresh' => true,
21 )
22 );
23 }
24
25 public function widget( $args, $instance ) {
26 global $wordads;
27 if ( $wordads->should_bail() ) {
28 return false;
29 }
30
31 if ( ! isset( $instance['unit'] ) ) {
32 $instance['unit'] = 'mrec';
33 }
34
35 self::$num_widgets++;
36 $about = __( 'Advertisements', 'jetpack' );
37 $width = WordAds::$ad_tag_ids[ $instance['unit'] ]['width'];
38 $height = WordAds::$ad_tag_ids[ $instance['unit'] ]['height'];
39 $unit_id = 1 == self::$num_widgets ? 3 : self::$num_widgets + 3; // 2nd belowpost is '4'
40 $section_id = 0 === $wordads->params->blog_id ?
41 WORDADS_API_TEST_ID :
42 $wordads->params->blog_id . $unit_id;
43
44 $snippet = '';
45 if ( $wordads->option( 'wordads_house', true ) ) {
46 $unit = 'mrec';
47 if ( 'leaderboard' == $instance['unit'] && ! $this->params->mobile_device ) {
48 $unit = 'leaderboard';
49 } elseif ( 'wideskyscraper' == $instance['unit'] ) {
50 $unit = 'widesky';
51 }
52
53 $snippet = $wordads->get_house_ad( $unit );
54 } else {
55 $snippet = $wordads->get_ad_snippet( $section_id, $height, $width, 'widget' );
56 }
57
58 echo <<< HTML
59 <div class="wpcnt">
60 <div class="wpa">
61 <span class="wpa-about">$about</span>
62 <div class="u {$instance['unit']}">
63 $snippet
64 </div>
65 </div>
66 </div>
67 HTML;
68 }
69
70 public function form( $instance ) {
71 // ad unit type
72 if ( isset( $instance['unit'] ) ) {
73 $unit = $instance['unit'];
74 } else {
75 $unit = 'mrec';
76 }
77 ?>
78 <p>
79 <label for="<?php echo esc_attr( $this->get_field_id( 'unit' ) ); ?>"><?php _e( 'Tag Dimensions:', 'jetpack' ); ?></label>
80 <select class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'unit' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'unit' ) ); ?>">
81 <?php
82 foreach ( WordAds::$ad_tag_ids as $ad_unit => $properties ) {
83 if ( ! in_array( $ad_unit, self::$allowed_tags ) ) {
84 continue;
85 }
86
87 $splits = explode( '_', $properties['tag'] );
88 $unit_pretty = "{$splits[0]} {$splits[1]}";
89 $selected = selected( $ad_unit, $unit, false );
90 echo "<option value='", esc_attr( $ad_unit ) ,"' ", $selected, '>', esc_html( $unit_pretty ) , '</option>';
91 }
92 ?>
93 </select>
94 </p>
95 <?php
96 }
97
98 public function update( $new_instance, $old_instance ) {
99 $instance = $old_instance;
100
101 if ( in_array( $new_instance['unit'], self::$allowed_tags ) ) {
102 $instance['unit'] = $new_instance['unit'];
103 } else {
104 $instance['unit'] = 'mrec';
105 }
106
107 return $instance;
108 }
109 }
110
111 function jetpack_wordads_widgets_init_callback() {
112 return register_widget( 'WordAds_Sidebar_Widget' );
113 }
114
115 add_action( 'widgets_init', 'jetpack_wordads_widgets_init_callback' );
116