PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.14.7
Advanced Ads – Ad Manager & AdSense v1.14.7
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 / admin / includes / class-shortcode-creator.php
advanced-ads / admin / includes Last commit date
ad-health-notices.php 6 years ago class-ad-groups-list.php 6 years ago class-ad-network-ad-importer.php 6 years ago class-ad-network-ad-unit.php 6 years ago class-ad-network.php 6 years ago class-ad-type.php 6 years ago class-licenses.php 6 years ago class-list-filters.php 6 years ago class-menu.php 6 years ago class-meta-box.php 6 years ago class-notices.php 6 years ago class-options.php 9 years ago class-overview-widgets.php 6 years ago class-settings.php 6 years ago class-shortcode-creator.php 9 years ago notices.php 6 years ago shortcode-creator-l10n.php 10 years ago
class-shortcode-creator.php
182 lines
1 <?php
2 /**
3 * shortcode generator for TinyMCE editor
4 *
5 */
6 class Advanced_Ads_Shortcode_Creator {
7 /**
8 * instance of this class.
9 *
10 * @var object
11 */
12 protected static $instance = null;
13
14 private function __construct() {
15 add_action( 'init', array ( $this, 'init' ) );
16 }
17
18 /**
19 * Return an instance of this class.
20 *
21 * @return object A single instance of this class.
22 */
23 public static function get_instance() {
24 // If the single instance hasn't been set, set it now.
25 if ( null == self::$instance ) {
26 self::$instance = new self;
27 }
28
29 return self::$instance;
30 }
31
32 public function init() {
33 $options = Advanced_Ads::get_instance()->options();
34
35 if ( 'true' != get_user_option( 'rich_editing' )
36 || ! current_user_can( Advanced_Ads_Plugin::user_cap( 'advanced_ads_place_ads' ) )
37 || defined( 'ADVANCED_ADS_DISABLE_SHORTCODE_BUTTON' )
38 || ! empty( $options['disable-shortcode-button'] )
39 ) {
40 return;
41 }
42
43 add_filter( 'mce_external_plugins', array( $this, 'add_plugin' ) );
44 add_filter( 'mce_buttons', array( $this, 'register_buttons' ) );
45 add_filter( 'mce_external_languages', array( $this, 'add_l10n' ) );
46 add_action( 'wp_ajax_advads_content_for_shortcode_creator', array( $this, 'get_content_for_shortcode_creator' ) );
47
48 add_filter( 'the_editor', array( $this, 'add_addblocker_warning' ) );
49 add_action( 'admin_footer', array( $this, 'maybe_show_adblocker_warning' ) );
50 }
51
52 /**
53 * add the plugin to array of external TinyMCE plugins
54 *
55 */
56 public function add_plugin( $plugin_array ) {
57 $plugin_array['advads_shortcode'] = ADVADS_BASE_URL . 'admin/assets/js/shortcode.js';
58 return $plugin_array;
59 }
60
61 /**
62 * add button to tinyMCE window
63 *
64 */
65 public function register_buttons( $buttons ) {
66 $buttons[] = 'advads_shortcode_button';
67 return $buttons;
68 }
69
70 /**
71 * prints html select field for shortcode creator
72 *
73 */
74 public function get_content_for_shortcode_creator() {
75 if ( ! ( current_user_can( 'edit_posts' ) || current_user_can( 'edit_pages' ) ) ) {
76 return;
77 }
78
79 $items = self::items_for_select(); ?>
80
81 <select id="advads-select-for-shortcode">
82 <option value=""><?php _e( '--empty--', 'advanced-ads' ); ?></option>
83 <?php if ( isset( $items['ads'] ) ) : ?>
84 <optgroup label="<?php _e( 'Ads', 'advanced-ads' ); ?>">
85 <?php foreach ( $items['ads'] as $_item_id => $_item_title ) : ?>
86 <option value="<?php echo $_item_id; ?>"><?php echo $_item_title; ?></option>
87 <?php endforeach; ?>
88 </optgroup>
89 <?php endif; ?>
90 <?php if ( isset( $items['groups'] ) ) : ?>
91 <optgroup label="<?php _e( 'Ad Groups', 'advanced-ads' ); ?>">
92 <?php foreach ( $items['groups'] as $_item_id => $_item_title ) : ?>
93 <option value="<?php echo $_item_id; ?>"><?php echo $_item_title; ?></option>
94 <?php endforeach; ?>
95 </optgroup>
96 <?php endif; ?>
97 <?php if ( isset( $items['placements'] ) ) : ?>
98 <optgroup label="<?php _e( 'Placements', 'advanced-ads' ); ?>">
99 <?php foreach ( $items['placements'] as $_item_id => $_item_title ) : ?>
100 <option value="<?php echo $_item_id; ?>"><?php echo $_item_title; ?></option>
101 <?php endforeach; ?>
102 </optgroup>
103 <?php endif; ?>
104 </select><?php
105 exit();
106 }
107
108 /**
109 * get items for item select field
110 *
111 * @return arr $select items for select field
112 */
113 public static function items_for_select(){
114 $select = array();
115 $model = Advanced_Ads::get_instance()->get_model();
116
117 // load all ads
118 $ads = $model->get_ads( array( 'orderby' => 'title', 'order' => 'ASC' ) );
119 foreach ( $ads as $_ad ){
120 $select['ads']['ad_' . $_ad->ID] = $_ad->post_title;
121 }
122
123 // load all ad groups
124 $groups = $model->get_ad_groups();
125 foreach ( $groups as $_group ){
126 $select['groups']['group_' . $_group->term_id] = $_group->name;
127 }
128
129 // load all placements
130 $placements = $model->get_ad_placements_array();
131 ksort( $placements );
132 foreach ( $placements as $key => $_placement ) {
133 $select['placements']['placement_' . $key] = $_placement['name'];
134 }
135
136 return $select;
137 }
138
139 /**
140 * add localisation
141 */
142 public function add_l10n( $mce_external_languages ) {
143 $mce_external_languages[ 'advads_shortcode' ] = ADVADS_BASE_PATH . 'admin/includes/shortcode-creator-l10n.php';
144 return $mce_external_languages;
145 }
146
147 /**
148 * Add a warning above TinyMCE editor.
149 *
150 * @param string $output Editor's HTML markup.
151 */
152 public function add_addblocker_warning( $output ) {
153 ob_start(); ?>
154 <div style="display: none; margin: 10px 8px; color: red;" class="advanced-ads-shortcode-button-warning"><?php
155 printf( __ ( 'Please, either switch off your ad blocker or disable the shortcode button in the <a href="%s" target="_blank">settings</a>.', 'advanced-ads' ),
156 admin_url( 'admin.php?page=advanced-ads-settings' ) ); ?>
157 </div>
158 <?php
159 return ob_get_clean() . $output;
160 }
161
162 /**
163 * Show a warning above TinyMCE editor when an adblock is enabled.
164 */
165 public function maybe_show_adblocker_warning() { ?>
166 <script>
167 (function(){
168 if ( 'undefined' === typeof advanced_ads_adblocker_test ) {
169 try {
170 var messages = document.querySelectorAll( '.advanced-ads-shortcode-button-warning' )
171 } catch ( e ) { return; }
172 for ( var i = 0; i < messages.length; i++ ) {
173 messages[ i ].style.display = 'block';
174 }
175 }
176 })();
177 </script>
178 <?php
179 }
180
181 }
182