PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.16.1
Advanced Ads – Ad Manager & AdSense v1.16.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 / ad_type_content.php
advanced-ads / classes Last commit date
EDD_SL_Plugin_Updater.php 6 years ago ad-ajax.php 6 years ago ad-debug.php 8 years ago ad-health-notices.php 6 years ago ad-model.php 8 years ago ad-select.php 9 years ago ad.php 6 years ago ad_ajax_callbacks.php 6 years ago ad_group.php 6 years ago ad_placements.php 6 years ago ad_type_abstract.php 8 years ago ad_type_content.php 6 years ago ad_type_dummy.php 6 years ago ad_type_group.php 8 years ago ad_type_image.php 6 years ago ad_type_plain.php 6 years ago checks.php 6 years ago compatibility.php 6 years ago display-conditions.php 6 years ago filesystem.php 8 years ago frontend_checks.php 6 years ago plugin.php 6 years ago upgrades.php 6 years ago utils.php 6 years ago visitor-conditions.php 6 years ago widget.php 6 years ago
ad_type_content.php
142 lines
1 <?php
2 /**
3 * Advanced Ads Content Ad Type
4 *
5 * @package Advanced_Ads
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 * Class containing information about the content ad type
12 * this should also work as an example for other ad types
13 *
14 * see also includes/ad-type-abstract.php for basic object
15 *
16 */
17 class Advanced_Ads_Ad_Type_Content extends Advanced_Ads_Ad_Type_Abstract{
18
19 /**
20 * ID - internal type of the ad type
21 *
22 * must be static so set your own ad type ID here
23 * use slug like format, only lower case, underscores and hyphens
24 *
25 * @since 1.0.0
26 */
27 public $ID = 'content';
28
29 /**
30 * set basic attributes
31 *
32 * @since 1.0.0
33 */
34 public function __construct() {
35 $this->title = __( 'Rich Content', 'advanced-ads' );
36 $this->description = __( 'The full content editor from WordPress with all features like shortcodes, image upload or styling, but also simple text/html mode for scripts and code.', 'advanced-ads' );
37 $this->parameters = array(
38 'content' => ''
39 );
40 }
41
42
43 /**
44 * output for the ad parameters metabox
45 *
46 * this will be loaded using ajax when changing the ad type radio buttons
47 * echo the output right away here
48 * name parameters must be in the "advanced_ads" array
49 *
50 * @param obj $ad ad object
51 * @since 1.0.0
52 */
53 public function render_parameters($ad){
54 // load tinymc content exitor
55 $content = (isset($ad->content)) ? $ad->content : '';
56
57 /**
58 * build the tinymc editor
59 * @link http://codex.wordpress.org/Function_Reference/wp_editor
60 *
61 * don’t build it when ajax is used; display message and buttons instead
62 */
63 if ( defined( 'DOING_AJAX' ) ){ ?>
64 <textarea id="advads-ad-content-plain" style="display:none;" cols="40" rows="10" name="advanced_ad[content]"><?php echo esc_textarea( $content ); ?></textarea>
65 <?php
66 } else {
67 if ( ! user_can_richedit() ) {
68 $content = esc_textarea( $content );
69 }
70 $args = array(
71 'textarea_name' => 'advanced_ad[content]',
72 'textarea_rows' => 10,
73 'drag_drop_upload' => true
74 );
75 wp_editor( $content, 'advanced-ad-parameters-content', $args );
76 }
77 ?>
78 <br class="clear"/>
79
80 <input type="hidden" name="advanced_ad[output][allow_shortcodes]" value="1" /><?php
81 include ADVADS_BASE_PATH . 'admin/views/ad-info-after-textarea.php';
82 }
83
84 /**
85 * sanitize content field on save
86 *
87 * @param str $content ad content
88 * @return str $content sanitized ad content
89 * @since 1.0.0
90 */
91 public function sanitize_content($content = ''){
92 // use WordPress core content filter
93 $content = apply_filters( 'content_save_pre', $content );
94
95 // remove slashes from content
96 $content = wp_unslash( $content );
97 return $content;
98 }
99
100 /**
101 * prepare the ads frontend output
102 *
103 * @param obj $ad ad object
104 * @return str $content ad content prepared for frontend output
105 * @since 1.0.0
106 */
107 public function prepare_output($ad){
108
109 // apply functions normally running through the_content filter
110 // the_content filter is not used here because it created an infinite loop (ads within ads for "before content" and other auto injections)
111 // maybe the danger is not here yet, but changing it to use the_content filter changes a lot
112
113 $output = $ad->content;
114
115 if ( isset( $GLOBALS['wp_embed'] ) ) {
116 // temporarily replace the global $post variable with the current ad (post)
117 $old_post = $GLOBALS['post'];
118 $GLOBALS['post'] = $ad->id;
119
120 // get the [embed] shortcode to run before wpautop()
121 $output = $GLOBALS['wp_embed']->run_shortcode( $output );
122 // attempts to embed all URLs in a post
123 $output = $GLOBALS['wp_embed']->autoembed( $output );
124
125 $GLOBALS['post'] = $old_post;
126 }
127
128 $output = wptexturize( $output );
129 $output = convert_smilies( $output );
130 $output = convert_chars( $output );
131 $output = wpautop( $output );
132 $output = shortcode_unautop( $output );
133 $output = $this->do_shortcode( $output, $ad );
134 // make included images responsive, since WordPress 4.4
135 if( ! defined( 'ADVADS_DISABLE_RESPONSIVE_IMAGES' ) && function_exists( 'wp_make_content_images_responsive' ) ){
136 $output = wp_make_content_images_responsive( $output );
137 }
138
139 return $output;
140 }
141 }
142