PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.29.0
Advanced Ads – Ad Manager & AdSense v1.29.0
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 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 / modules / gutenberg / includes / class-gutenberg.php
advanced-ads / modules / gutenberg / includes Last commit date
class-gutenberg.php 5 years ago
class-gutenberg.php
172 lines
1 <?php
2
3 /**
4 * Class Advanced_Ads_Gutenberg
5 */
6 class Advanced_Ads_Gutenberg {
7
8 private static $instance;
9
10 private static $css_class;
11
12 private function __construct() {
13 add_action( 'init', array( $this, 'init' ) );
14 add_action( 'enqueue_block_editor_assets', array( $this, 'register_scripts' ) );
15 }
16
17 /**
18 * Register blocks
19 */
20 public function init() {
21 if ( !function_exists( 'register_block_type' ) ) {
22 // no Gutenberg, Abort
23 return;
24 }
25
26 register_block_type( 'advads/gblock', array(
27 'editor_script' => ADVADS_BASE . '/gutenberg-ad',
28 'render_callback' => array( $this, 'render_ad_selector' ),
29 ) );
30
31 // Removes legacy widget from legacy widget block.
32 add_filter( 'widget_types_to_hide_from_legacy_widget_block', function() {
33 $widget_types[] = 'advads_ad_widget';
34
35 return $widget_types;
36 } );
37 }
38
39 /**
40 * Register back end scripts
41 */
42 public function register_scripts() {
43 if ( !function_exists( 'register_block_type' ) ) {
44 // no Gutenberg, Abort
45 return;
46 }
47
48 wp_register_script(
49 ADVADS_BASE . '/gutenberg-ad',
50 ADVADS_BASE_URL . 'modules/gutenberg/js/advanced-ads.block.js',
51 array( 'wp-blocks', 'wp-element' )
52 );
53
54 $model = Advanced_Ads::get_instance()->get_model();
55
56 $all_ads = Advanced_Ads::get_ads( array( 'post_status' => array( 'publish' ), 'orderby' => 'title', 'order' => 'ASC' ) );
57 $all_groups = $model->get_ad_groups();
58 $all_placements = Advanced_Ads::get_ad_placements_array();
59
60 $ads = array();
61 $groups = array();
62 $placements = array();
63
64 foreach ( $all_ads as $ad ) {
65 $ads[] = array( 'id' => $ad->ID, 'title' => $ad->post_title );
66 }
67
68 foreach ( $all_groups as $gr ) {
69 $groups[] = array( 'id' => $gr->term_id, 'name' => $gr->name );
70 }
71
72 if ( is_array( $all_placements ) ) {
73 ksort( $all_placements );
74 }
75
76 foreach( $all_placements as $key => $value ) {
77 if ( 'sidebar_widget' == $value['type'] ) {
78 $placements[] = array( 'id' => $key, 'name' => $value['name'] );
79 }
80 }
81
82 if ( empty( $placements ) ) {
83 $placements = false;
84 }
85
86 $i18n = array(
87 '--empty--' => __( '--empty--', 'advanced-ads' ),
88 'advads' => __( 'Advanced Ads', 'advanced-ads' ),
89 'ads' => __( 'Ads', 'advanced-ads' ),
90 'adGroups' => __( 'Ad Groups', 'advanced-ads' ),
91 'placements' => __( 'Placements', 'advanced-ads' ),
92 );
93
94 $inline_script = wp_json_encode(
95 array(
96 'ads' => $ads,
97 'groups' => $groups,
98 'placements' => $placements,
99 'editLinks' => array(
100 'group' => admin_url( 'admin.php?page=advanced-ads-groups' ),
101 'placement' => admin_url( 'admin.php?page=advanced-ads-placements' ),
102 'ad' => admin_url( 'post.php?post=%ID%&action=edit' ),
103 ),
104 'i18n' => $i18n
105 )
106 );
107
108 // put the inline code with the global variable right before the block's JS file
109 wp_add_inline_script( ADVADS_BASE . '/gutenberg-ad', 'var advadsGutenberg = ' . $inline_script, 'before' );
110 wp_enqueue_script( ADVADS_BASE . '/gutenberg-ad' );
111 }
112
113 /**
114 * Server side rendering for single ad block
115 */
116 public static function render_ad_selector( $attr ) {
117 ob_start();
118
119 if ( !isset( $attr['itemID'] ) ) {
120 ob_end_clean();
121 return '';
122 }
123
124 // the item is an ad
125 if ( 0 === strpos( $attr['itemID'], 'ad_' ) ) {
126
127 $id = substr( $attr['itemID'], 3 );
128
129 // add CSS classes to the wrapper via filter
130 if ( isset( $attr['className'] ) ) {
131 echo get_ad( absint( $id ), array( 'output' => array( 'class' => explode( ' ', $attr['className'] ) ) ) );
132 } else {
133 the_ad( absint( $id ) );
134 }
135
136 } elseif ( 0 === strpos( $attr['itemID'], 'group_' ) ) {
137
138 $id = substr( $attr['itemID'], 6 );
139
140 if ( isset( $attr['className'] ) ) {
141 echo get_ad_group( $id, array( 'output' => array( 'class' => explode( ' ', $attr['className'] ) ) ) );
142 } else {
143 the_ad_group( $id );
144 }
145
146 } elseif ( 0 === strpos( $attr['itemID'], 'place_' ) ) {
147
148 $id = substr( $attr['itemID'], 6 );
149
150 if ( isset( $attr['className'] ) ) {
151 echo get_ad_placement( $id, array( 'output' => array( 'class' => explode( ' ', $attr['className'] ) ) ) );
152 } else {
153 the_ad_placement( $id );
154 }
155
156 }
157
158 return ob_get_clean();
159 }
160
161 /**
162 * Return the unique instance
163 */
164 public static function get_instance() {
165 if ( null == self::$instance ) {
166 self::$instance = new self;
167 }
168 return self::$instance;
169 }
170
171 }
172