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_image.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_image.php
214 lines
1 <?php
2 /**
3 * Advanced Ads Image 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 2015 Thomas Maier, webgilde GmbH
10 * @since 1.6.10
11 *
12 * Class containing information about the content ad type
13 * this should also work as an example for other ad types
14 *
15 */
16 class Advanced_Ads_Ad_Type_Image extends Advanced_Ads_Ad_Type_Abstract{
17
18 /**
19 * ID - internal type of the ad type
20 *
21 * must be static so set your own ad type ID here
22 * use slug like format, only lower case, underscores and hyphens
23 *
24 * @since 1.6.10
25 */
26 public $ID = 'image';
27
28 /**
29 * set basic attributes
30 *
31 * @since 1.6.10
32 */
33 public function __construct() {
34 $this->title = __( 'Image Ad', 'advanced-ads' );
35 $this->description = __( 'Ads in various image formats.', 'advanced-ads' );
36 $this->parameters = array(
37 'image_url' => '',
38 'image_title' => '',
39 'image_alt' => '',
40 );
41 }
42
43 /**
44 * output for the ad parameters metabox
45 *
46 * @param obj $ad ad object
47 * @since 1.6.10
48 */
49 public function render_parameters($ad){
50 // load tinymc content exitor
51 $id = ( isset( $ad->output['image_id'] ) ) ? $ad->output['image_id'] : '';
52 $url = ( isset( $ad->url ) ) ? esc_attr( $ad->url ) : '';
53
54 ?><p><button href="#" class="advads_image_upload button button-secondary" type="button" data-uploader-title="<?php
55 _e( 'Insert File', 'advanced-ads' ); ?>" data-uploader-button-text="<?php _e( 'Insert', 'advanced-ads' ); ?>" onclick="return false;"><?php _e( 'select image', 'advanced-ads' ); ?></button>
56 <a id="advads-image-edit-link" href="<?php if( $id ){ echo get_edit_post_link( $id ); } ?>"><?php _e('edit', 'advanced-ads' ); ?></a>
57 </p>
58 <input type="hidden" name="advanced_ad[output][image_id]" value="<?php echo $id; ?>" id="advads-image-id"/>
59 <div id="advads-image-preview">
60 <?php $this->create_image_tag( $id, $ad ); ?>
61 </div>
62 <?php // don’t show if tracking plugin enabled
63 if ( ! defined( 'AAT_VERSION' ) ) : ?>
64 <label for="advads-url" class="label"><?php _e( 'URL', 'advanced-ads' ); ?></label>
65 <div>
66 <input type="url" name="advanced_ad[url]" id="advads-url" class="advads-ad-url" value="<?php echo $url; ?>" placeholder="https://www.example.com/"/>
67 <p class="description">
68 <?php _e( 'Link to target site including http(s)', 'advanced-ads' ); ?>
69 </p>
70 </div>
71 <hr/><?php
72 endif;
73 }
74
75 /**
76 * render image tag
77 *
78 * @param int $attachment_id post id of the image
79 * @param obj $ad ad object, since 1.8.21
80 * @since 1.6.10
81 */
82 public function create_image_tag( $attachment_id, $ad ){
83
84 $image = wp_get_attachment_image_src( $attachment_id, 'full' );
85 $style = '';
86
87 if ( $image ) {
88 list( $src, $width, $height ) = $image;
89 // override image sizes with the sizes given in ad options, but in frontend only
90 if( ! is_admin() || ( // is frontend
91 is_admin() && defined( 'DOING_AJAX' ) && DOING_AJAX ) ){ // is AJAX call (cache-busting)
92 $width = isset( $ad->width ) ? absint( $ad->width ) : $width;
93 $height = isset( $ad->height ) ? absint( $ad->height ) : $height;
94 }
95 $hwstring = image_hwstring($width, $height);
96 $attachment = get_post($attachment_id);
97 $alt = trim(esc_textarea( get_post_meta($attachment_id, '_wp_attachment_image_alt', true) ));
98
99 global $wp_current_filter;
100
101 $more_attributes = $srcset = $sizes = '';
102 // create srcset and sizes attributes if we are in the the_content filter and in WordPress 4.4
103 if( isset( $wp_current_filter )
104 && in_array( 'the_content', $wp_current_filter )
105 && ! defined( 'ADVADS_DISABLE_RESPONSIVE_IMAGES' )){
106 if( function_exists( 'wp_get_attachment_image_srcset' ) ){
107 $srcset = wp_get_attachment_image_srcset( $attachment_id, 'full' );
108 }
109 if( function_exists( 'wp_get_attachment_image_sizes' ) ){
110 $sizes = wp_get_attachment_image_sizes( $attachment_id, 'full' );
111 }
112 if ( $srcset && $sizes ) {
113 $more_attributes .= ' srcset=\'' . $srcset . '\' sizes=\'' . $sizes . '\'';
114 }
115 }
116
117 // add css rule to be able to center the ad
118 if( isset( $ad->output['position'] ) && 'center' === $ad->output['position'] ){
119 $style .= 'display: inline-block;';
120 }
121
122 $style = apply_filters( 'advanced-ads-ad-image-tag-style', $style );
123 $style = '' !== $style ? 'style="' . $style . '"' : '';
124
125 $more_attributes = apply_filters( 'advanced-ads-ad-image-tag-attributes', $more_attributes );
126
127 echo rtrim("<img $hwstring") . " src='$src' alt='$alt' $more_attributes $style/>";
128 }
129 }
130
131 /**
132 * render image icon for overview pages
133 *
134 * @param int $attachment_id post id of the image
135 * @since 1.7.4
136 */
137 public function create_image_icon( $attachment_id ){
138
139 $image = wp_get_attachment_image_src( $attachment_id, 'medium', true );
140 if ( $image ) {
141 list( $src, $width, $height ) = $image;
142
143 // scale down width or height to max 100px
144 if( $width > $height ){
145 $height = absint( $height / ( $width / 100 ) );
146 $width = 100;
147 } else {
148 $width = absint( $width / ( $height / 100 ) );
149 $height = 100;
150 }
151
152 $hwstring = trim( image_hwstring($width, $height) );
153 $attachment = get_post($attachment_id);
154 $alt = trim(strip_tags( get_post_meta($attachment_id, '_wp_attachment_image_alt', true) ));
155
156 echo "<img $hwstring src='$src' alt='$alt' />";
157 }
158 }
159
160 /**
161 * prepare the ads frontend output by adding <object> tags
162 *
163 * @param obj $ad ad object
164 * @return str $content ad content prepared for frontend output
165 * @since 1.6.10.
166 */
167 public function prepare_output($ad){
168
169 $id = ( isset( $ad->output['image_id'] ) ) ? absint( $ad->output['image_id'] ) : '';
170 $url = ( isset( $ad->url ) ) ? esc_url( $ad->url ) : '';
171 // get general target setting
172 $options = Advanced_Ads::get_instance()->options();
173 $target_blank = !empty( $options['target-blank'] ) ? ' target="_blank"' : '';
174
175 ob_start();
176 if( ! defined( 'AAT_VERSION' ) && $url ){ echo '<a href="'. $url .'"'.$target_blank.'>'; }
177 echo $this->create_image_tag( $id, $ad );
178 if( ! defined( 'AAT_VERSION' ) && $url ){ echo '</a>'; }
179
180 return ob_get_clean();
181 }
182
183 /**
184 * Generate a string with the original image size for output in the backend
185 * Only show, if different from entered image sizes
186 *
187 * @param obj $ad Advanced_Ads_Ad
188 * @return str empty, if the entered size is the same as the original size
189 */
190 public static function show_original_image_size( $ad ){
191
192 $attachment_id = ( isset( $ad->output['image_id'] ) ) ? absint( $ad->output['image_id'] ) : '';
193
194 $image = wp_get_attachment_image_src( $attachment_id, 'full' );
195
196 if ( $image ) {
197 list( $src, $width, $height ) = $image;
198 ?><p class="description"><?php if( ( isset( $ad->width ) && $ad->width != $width )
199 || ( isset( $ad->height ) && $ad->height != $height ) ) {
200 printf(
201 /**
202 * translators: $s is a size string like "728 x 90".
203 * This string shows up on the ad edit page of image ads if the size entered for the ad is different from the size of the uploaded image.
204 */
205 esc_attr__( 'Original size: %s', 'advanced-ads' ), $width . '&nbsp;x&nbsp;' . $height ); ?></p><?php
206 }
207 }
208
209 return '';
210
211 }
212
213 }
214