Advanced Ads - Version 1.6.7

Version Description

features

  • allow to inject ads into content starting from bottom
  • prevent ad injection into lower-level paragraphs (e.g. into tables or containers)
  • hide ad widget when the content is empty
  • show post type or date when searching an individual post display condition

fixes and maintenance

  • fix placement types images not showing up completely
  • warn if any used placement type is missing
  • added advads-ad-allow-php class to php-setting of plain text
  • added advanced-ads-activate-advanced-js filter to allow add-ons to attach advanced js file without bothering the user
  • updated German translation
Download this release

Release Info

Developer webzunft
Plugin Icon 128x128 Advanced Ads
Version 1.6.7
Comparing to
See all releases

Code changes from version 1.6.6.1 to 1.6.7

admin/assets/css/admin.css CHANGED
@@ -74,6 +74,8 @@
74
  .post-type-advanced_ads .advads-conditions-single th { vertical-align: top; }
75
  .advads-conditions-postids-list li { background: #F1F1F1; padding: 3px; }
76
  .advads-conditions-postids-list .remove { margin-right: 1em; font-size: .9em; }
 
 
77
 
78
  .post-type-advanced_ads #advads-ad-content-plain { width: 100%; }
79
  .post-type-advanced_ads #ad-display-box .advads-conditions-terms-buttons { display: inline-block; }
@@ -144,7 +146,7 @@
144
  .advads-new-placement-types { background: #ccc; overflow: hidden; }
145
  .advads-placement-description { display: none; }
146
  .advads-placements-new-form .advads-placement-type { position: relative; top: 0; left: 0; float: left; }
147
- .advads-placements-new-form .advads-placement-type .ui-button { background: none; border-radius: 0; }
148
  .advads-placements-new-form .advads-placement-type .ui-button-text { padding: 0; }
149
  .advads-placements-new-form .advads-placement-type .ui-button-text img { margin-top: 10px; max-width: 100%; }
150
  .advads-placements-new-form .advads-placement-type label { display: inline-block; width: 140px; text-align: center; border: 0; padding: 10px; }
@@ -194,4 +196,4 @@ tr:hover .on-hover { display: block; }
194
  /**
195
  - GENERAL
196
  -*/
197
- .advads-error-message { color: red; }
74
  .post-type-advanced_ads .advads-conditions-single th { vertical-align: top; }
75
  .advads-conditions-postids-list li { background: #F1F1F1; padding: 3px; }
76
  .advads-conditions-postids-list .remove { margin-right: 1em; font-size: .9em; }
77
+ .advads-conditions-postids-autocomplete-suggestions li span.left { float: left; }
78
+ .advads-conditions-postids-autocomplete-suggestions li span.right { float: right; color: #aaa; font-size: .8em; }
79
 
80
  .post-type-advanced_ads #advads-ad-content-plain { width: 100%; }
81
  .post-type-advanced_ads #ad-display-box .advads-conditions-terms-buttons { display: inline-block; }
146
  .advads-new-placement-types { background: #ccc; overflow: hidden; }
147
  .advads-placement-description { display: none; }
148
  .advads-placements-new-form .advads-placement-type { position: relative; top: 0; left: 0; float: left; }
149
+ .advads-placements-new-form .advads-placement-type .ui-button { background: none; border-radius: 0; height: auto; }
150
  .advads-placements-new-form .advads-placement-type .ui-button-text { padding: 0; }
151
  .advads-placements-new-form .advads-placement-type .ui-button-text img { margin-top: 10px; max-width: 100%; }
152
  .advads-placements-new-form .advads-placement-type label { display: inline-block; width: 140px; text-align: center; border: 0; padding: 10px; }
196
  /**
197
  - GENERAL
198
  -*/
199
+ .advads-error-message { color: red !important; }
admin/assets/js/admin.js CHANGED
@@ -122,8 +122,14 @@ jQuery( document ).ready(function ($) {
122
  },
123
  close: function( event, ui ) {
124
  $( '#advads-display-conditions-individual-post' ).val( '' );
125
- }
126
- });
 
 
 
 
 
 
127
  };
128
 
129
  // remove individual posts from the display conditions post list
@@ -292,7 +298,8 @@ function advads_post_search(query, callback) {
292
  r.map(function(element, index){
293
  results[index] = {
294
  label: element.title,
295
- value: element.ID
 
296
  };
297
  });
298
  }
122
  },
123
  close: function( event, ui ) {
124
  $( '#advads-display-conditions-individual-post' ).val( '' );
125
+ },
126
+ })
127
+ .autocomplete( "instance" )._renderItem = function( ul, item ) {
128
+ ul.addClass( "advads-conditions-postids-autocomplete-suggestions" );
129
+ return $( "<li>" )
130
+ .append( "<span class='left'>" + item.label + "</span><span class='right'>" + item.info + "</span>" )
131
+ .appendTo( ul );
132
+ };
133
  };
134
 
135
  // remove individual posts from the display conditions post list
298
  r.map(function(element, index){
299
  results[index] = {
300
  label: element.title,
301
+ value: element.ID,
302
+ info: element.info
303
  };
304
  });
305
  }
admin/class-advanced-ads-admin.php CHANGED
@@ -883,8 +883,12 @@ class Advanced_Ads_Admin {
883
  $options = Advanced_Ads::get_instance()->options();
884
  $checked = ( ! empty($options['advanced-js'])) ? 1 : 0;
885
 
 
 
 
 
886
  echo '<input id="advanced-ads-advanced-js" type="checkbox" value="1" name="'.ADVADS_SLUG.'[advanced-js]" '.checked( $checked, 1, false ).'>';
887
- echo '<p class="description">'. sprintf( __( 'Only enable this if you can and want to use the advanced JavaScript functions described <a href="%s">here</a>.', ADVADS_SLUG ), ADVADS_URL . 'javascript-functions/' ) .'</p>';
888
  }
889
 
890
  /**
883
  $options = Advanced_Ads::get_instance()->options();
884
  $checked = ( ! empty($options['advanced-js'])) ? 1 : 0;
885
 
886
+ // display notice if js file was overridden
887
+ if( ! $checked && apply_filters( 'advanced-ads-activate-advanced-js', $checked ) ){
888
+ echo '<p>' . __( '<strong>notice: </strong>the file is currently enabled by an add-on that needs it.', ADVADS_SLUG ) . '</p>';
889
+ }
890
  echo '<input id="advanced-ads-advanced-js" type="checkbox" value="1" name="'.ADVADS_SLUG.'[advanced-js]" '.checked( $checked, 1, false ).'>';
891
+ echo '<p class="description">'. sprintf( __( 'Enable advanced JavaScript functions (<a href="%s" target="_blank">here</a>). Some features and add-ons might override this setting if they need features from this file.', ADVADS_SLUG ), ADVADS_URL . 'javascript-functions/' ) .'</p>';
892
  }
893
 
894
  /**
admin/views/ad-group-list-form-row.php CHANGED
@@ -12,15 +12,17 @@
12
  <p class="description"><?php echo $_type['description']; ?></p>
13
  </li><?php
14
  endforeach; ?></ul><div class="clear"></div>
15
- <label><strong><?php _e( 'Number of ads', ADVADS_SLUG ); ?></strong>
16
- <select name="advads-groups[<?php echo $group->id; ?>][ad_count]"><?php
17
- for ( $i = 1; $i <= 10; $i++ ) : ?>
18
- <option <?php selected( $group->ad_count, $i ); ?>><?php echo $i; ?></option>
19
- <?php endfor;
20
- ?><option <?php selected( $group->ad_count, 'all' ); ?> value="all"><?php _ex('all', 'option to display all ads in an ad groups', ADVADS_SLUG); ?></option>
21
- </select>
22
- </label>
23
- <p class="description"><?php _e( 'Number of ads to display in the block', ADVADS_SLUG ); ?></p>
 
 
24
  <?php do_action( 'advanced-ads-group-form-options', $group ); ?>
25
  <h3><?php _e( 'Ads', ADVADS_SLUG ); ?></h3>
26
  <?php if ( count( $ad_form_rows ) ) : ?>
12
  <p class="description"><?php echo $_type['description']; ?></p>
13
  </li><?php
14
  endforeach; ?></ul><div class="clear"></div>
15
+ <div class="advads-ad-group-number">
16
+ <label><strong><?php _e( 'Number of visible ads', ADVADS_SLUG ); ?></strong>
17
+ <select name="advads-groups[<?php echo $group->id; ?>][ad_count]"><?php
18
+ for ( $i = 1; $i <= 10; $i++ ) : ?>
19
+ <option <?php selected( $group->ad_count, $i ); ?>><?php echo $i; ?></option>
20
+ <?php endfor;
21
+ ?><option <?php selected( $group->ad_count, 'all' ); ?> value="all"><?php _ex('all', 'option to display all ads in an ad groups', ADVADS_SLUG); ?></option>
22
+ </select>
23
+ </label>
24
+ <p class="description"><?php _e( 'Number of ads that are visible at the same time', ADVADS_SLUG ); ?></p>
25
+ </div>
26
  <?php do_action( 'advanced-ads-group-form-options', $group ); ?>
27
  <h3><?php _e( 'Ads', ADVADS_SLUG ); ?></h3>
28
  <?php if ( count( $ad_form_rows ) ) : ?>
admin/views/placements.php CHANGED
@@ -28,11 +28,17 @@
28
  </thead>
29
  <tbody>
30
  <?php foreach ( $placements as $_placement_slug => $_placement ) :
31
- $_placement['type'] = ( ! empty($_placement['type'])) ? $_placement['type'] : 'default';
32
- ?>
33
- <tr>
 
 
 
 
34
  <td><?php
35
- if( isset($_placement['type'] )) :
 
 
36
  if( isset( $placement_types[$_placement['type']]['image'] )) :
37
  ?><img src="<?php echo $placement_types[$_placement['type']]['image'];
38
  ?>" title="<?php echo $placement_types[$_placement['type']]['title']; ?>"/><?php
@@ -97,6 +103,10 @@
97
  <option value="<?php echo $_tag_key; ?>" <?php if ( isset($_placement['options']['tag']) ) { selected( $_placement['options']['tag'], $_tag_key ); } ?>><?php echo $_tag; ?></option>
98
  <?php endforeach; ?>
99
  </select>
 
 
 
 
100
  </div><?php
101
  break;
102
  endswitch;
28
  </thead>
29
  <tbody>
30
  <?php foreach ( $placements as $_placement_slug => $_placement ) :
31
+ $type_missing = false;
32
+ if( empty($_placement['type']) || ! isset( $placement_types[$_placement['type']] )) {
33
+ $missed_type = $_placement['type'];
34
+ $_placement['type'] = 'default';
35
+ $type_missing = true;
36
+ }
37
+ ?><tr>
38
  <td><?php
39
+ if( $type_missing ) : // type is not given
40
+ ?><p class="advads-error-message"><?php printf(__( 'Placement type "%s" is missing and was reset to "default".<br/>Please check if the responsible add-on is activated.', ADVADS_SLUG ), $missed_type ); ?></p><?php
41
+ elseif( isset($_placement['type'] )) :
42
  if( isset( $placement_types[$_placement['type']]['image'] )) :
43
  ?><img src="<?php echo $placement_types[$_placement['type']]['image'];
44
  ?>" title="<?php echo $placement_types[$_placement['type']]['title']; ?>"/><?php
103
  <option value="<?php echo $_tag_key; ?>" <?php if ( isset($_placement['options']['tag']) ) { selected( $_placement['options']['tag'], $_tag_key ); } ?>><?php echo $_tag; ?></option>
104
  <?php endforeach; ?>
105
  </select>
106
+
107
+ <p><label><input type="checkbox" name="advads[placements][<?php echo $_placement_slug; ?>][options][start_from_bottom]" value="1" <?php
108
+ if (isset($_placement['options']['start_from_bottom'])) { checked( $_placement['options']['start_from_bottom'], 1); }
109
+ ?>/><?php _e( 'start counting from bottom', ADVADS_SLUG ); ?></label></p>
110
  </div><?php
111
  break;
112
  endswitch;
advanced-ads.php CHANGED
@@ -12,7 +12,7 @@
12
  * Plugin Name: Advanced Ads
13
  * Plugin URI: https://wpadvancedads.com
14
  * Description: Manage and optimize your ads in WordPress
15
- * Version: 1.6.6.1
16
  * Author: Thomas Maier
17
  * Author URI: http://webgilde.com
18
  * Text Domain: advanced-ads
@@ -38,7 +38,7 @@ define( 'ADVADS_BASE_DIR', dirname( plugin_basename( __FILE__ ) ) ); // director
38
  // general and global slug, e.g. to store options in WP, textdomain
39
  define( 'ADVADS_SLUG', 'advanced-ads' );
40
  define( 'ADVADS_URL', 'https://wpadvancedads.com/' );
41
- define( 'ADVADS_VERSION', '1.6.6.1' );
42
 
43
  /*----------------------------------------------------------------------------*
44
  * Autoloading, modules and functions
12
  * Plugin Name: Advanced Ads
13
  * Plugin URI: https://wpadvancedads.com
14
  * Description: Manage and optimize your ads in WordPress
15
+ * Version: 1.6.7
16
  * Author: Thomas Maier
17
  * Author URI: http://webgilde.com
18
  * Text Domain: advanced-ads
38
  // general and global slug, e.g. to store options in WP, textdomain
39
  define( 'ADVADS_SLUG', 'advanced-ads' );
40
  define( 'ADVADS_URL', 'https://wpadvancedads.com/' );
41
+ define( 'ADVADS_VERSION', '1.6.7' );
42
 
43
  /*----------------------------------------------------------------------------*
44
  * Autoloading, modules and functions
classes/ad-ajax.php CHANGED
@@ -59,9 +59,6 @@ class Advanced_Ads_Ajax {
59
  $content = $selector->get_ad_by_method( $id, $method, $arguments );
60
  $adIds = array_slice( $advads->current_ads, $l ); // ads loaded by this request
61
 
62
- // TODO: find another filter name; maybe don’t load whole ad again
63
- $content = apply_filters( 'advanced-ads-output-inside-wrapper', $content, new Advanced_Ads_Ad($id) );
64
-
65
  $response = array( 'status' => 'success', 'item' => $content, 'id' => $id, 'method' => $method, 'ads' => $adIds );
66
  } else {
67
  // report error
59
  $content = $selector->get_ad_by_method( $id, $method, $arguments );
60
  $adIds = array_slice( $advads->current_ads, $l ); // ads loaded by this request
61
 
 
 
 
62
  $response = array( 'status' => 'success', 'item' => $content, 'id' => $id, 'method' => $method, 'ads' => $adIds );
63
  } else {
64
  // report error
classes/ad.php CHANGED
@@ -435,7 +435,7 @@ class Advanced_Ads_Ad {
435
  $output = $this->type_obj->prepare_output( $this );
436
  // don’t deliver anything, if main ad content is empty
437
  if( $output == '' ) {
438
- return;
439
  }
440
 
441
  // filter to manipulate the output before the wrapper is added
435
  $output = $this->type_obj->prepare_output( $this );
436
  // don’t deliver anything, if main ad content is empty
437
  if( $output == '' ) {
438
+ return;
439
  }
440
 
441
  // filter to manipulate the output before the wrapper is added
classes/ad_group.php CHANGED
@@ -207,6 +207,8 @@ class Advanced_Ads_Group {
207
  // load the ad output
208
  $output = array();
209
  $ads_displayed = 0;
 
 
210
  $ad_select = Advanced_Ads_Select::get_instance();
211
  foreach ( $ordered_ad_ids as $_ad_id ) {
212
  // load the ad object
@@ -215,7 +217,7 @@ class Advanced_Ads_Group {
215
  $output[] = $ad;
216
  $ads_displayed++;
217
  // break the loop when maximum ads are reached
218
- if( $ads_displayed === $this->ad_count ) {
219
  break;
220
  }
221
  }
207
  // load the ad output
208
  $output = array();
209
  $ads_displayed = 0;
210
+ $ad_count = apply_filters( 'advanced-ads-group-ad-count', $this->ad_count, $this );
211
+
212
  $ad_select = Advanced_Ads_Select::get_instance();
213
  foreach ( $ordered_ad_ids as $_ad_id ) {
214
  // load the ad object
217
  $output[] = $ad;
218
  $ads_displayed++;
219
  // break the loop when maximum ads are reached
220
+ if( $ads_displayed === $ad_count ) {
221
  break;
222
  }
223
  }
classes/ad_placements.php CHANGED
@@ -68,24 +68,24 @@ class Advanced_Ads_Placements {
68
  */
69
  static function update_placements(){
70
 
71
- // check user permissions
72
- if(!current_user_can('manage_options')){
73
  return;
74
- }
75
- remove_query_arg('message');
76
 
77
- if ( isset($_POST['advads']['placement']) && check_admin_referer( 'advads-placement', 'advads_placement' ) ){
78
  $success = self::save_new_placement( $_POST['advads']['placement'] );
79
- }
80
- // save placement data
81
- if ( isset($_POST['advads']['placements']) && check_admin_referer( 'advads-placement', 'advads_placement' )){
82
  $success = self::save_placements( $_POST['advads']['placements'] );
83
- }
84
 
85
- if(isset($success)){
86
  $message = $success ? 'updated' : 'error';
87
  wp_redirect( add_query_arg(array('message' => $message)) );
88
- }
89
  }
90
 
91
  /**
@@ -284,57 +284,94 @@ class Advanced_Ads_Placements {
284
  * @link inspired by http://www.wpbeginner.com/wp-tutorials/how-to-insert-ads-within-your-post-content-in-wordpress/
285
  */
286
  public static function &inject_in_content($placement_id, $options, &$content) {
287
- /*
288
- * hot-fixed to support some tags under idealised conditions.
289
- * this does ignore:
290
- * - autop() messups
291
- * - nesting of any kind
292
- * - non-valid XHTML (i.e. wild HTML)
293
- *
294
- * 'after' is experimental as the concept requires DOM and is not fully deterministic across implementations.
295
- * it falls back to 'before' n+1-th element or 'after' closing tag of the n-th.
296
- */
 
 
 
 
 
 
 
 
297
  $tag = isset($options['tag']) ? $options['tag'] : 'p';
298
- $position = isset($options['position']) ? $options['position'] : 'after';
299
- $paragraph_id = isset($options['index']) ? $options['index'] : 1;
300
- $offset = 0;
301
- $insertAt = null;
302
 
303
- // sanitise
304
- $tag = preg_quote( strtolower( $tag ), '`' );
305
- $before = $position !== 'after';
306
  $paragraph_id = max( 1, (int) $paragraph_id );
307
-
308
- // detect n-th tag
309
- $matches = array();
310
- while ( 1 === preg_match( "`<$tag(?=[ >/])(?:[^>]+/>|.+?(?:</$tag\s*>|(?=<$tag(?=[ >/])|$)))`Ssi", $content, $matches, PREG_OFFSET_CAPTURE, $offset ) ) {
311
- $offset = $matches[0][1];
312
-
313
- // skip empty
314
- // -TODO should only ignore whitespaces, not all special chars
315
- if ( '' === preg_replace( '/&[a-z0-9#]+;|\s+/i', '', strip_tags( htmlspecialchars( $matches[0][0] ) ) ) ) {
316
- continue;
317
- }
318
-
319
- $paragraph_id--;
320
- if ( $paragraph_id <= 0 ) {
321
- $insertAt = $before ? $offset : $offset + strlen( $matches[0][0] );
322
- break;
323
  }
324
-
325
- // start at next offset
326
- $offset += strlen( $matches[0][0] );
327
  }
328
 
329
- if ( isset($insertAt) ) {
330
- $ad_content = Advanced_Ads_Select::get_instance()->get_ad_by_method( $placement_id, 'placement', $options );
331
- if ( $insertAt === false ) {
332
- $content .= $ad_content; // fallback: end-of-content
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
333
  } else {
334
- $content = substr( $content, 0, $insertAt ) . $ad_content . substr( $content, $insertAt );
 
 
 
 
 
 
 
335
  }
 
336
 
337
- return $content;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
338
  }
339
 
340
  return $content;
68
  */
69
  static function update_placements(){
70
 
71
+ // check user permissions
72
+ if(!current_user_can('manage_options')){
73
  return;
74
+ }
75
+ remove_query_arg('message');
76
 
77
+ if ( isset($_POST['advads']['placement']) && check_admin_referer( 'advads-placement', 'advads_placement' ) ){
78
  $success = self::save_new_placement( $_POST['advads']['placement'] );
79
+ }
80
+ // save placement data
81
+ if ( isset($_POST['advads']['placements']) && check_admin_referer( 'advads-placement', 'advads_placement' )){
82
  $success = self::save_placements( $_POST['advads']['placements'] );
83
+ }
84
 
85
+ if(isset($success)){
86
  $message = $success ? 'updated' : 'error';
87
  wp_redirect( add_query_arg(array('message' => $message)) );
88
+ }
89
  }
90
 
91
  /**
284
  * @link inspired by http://www.wpbeginner.com/wp-tutorials/how-to-insert-ads-within-your-post-content-in-wordpress/
285
  */
286
  public static function &inject_in_content($placement_id, $options, &$content) {
287
+ // parse document as DOM (fragment - having only a part of an actual post given)
288
+ // -TODO may want to verify the wpcharset is supported by server (mb_list_encodings)
289
+ // -TODO mb extension might not be available for really old hosts
290
+ // prevent messages from dom parser
291
+ $wpCharset = get_bloginfo('charset');
292
+ $content = mb_convert_encoding($content, 'HTML-ENTITIES', $wpCharset);
293
+
294
+ $dom = new DOMDocument('1.0', $wpCharset);
295
+ // may loose some fragments or add autop-like code
296
+ libxml_use_internal_errors(true); // avoid notices and warnings - html is most likely malformed
297
+ $success = $dom->loadHtml('<!DOCTYPE html><html><meta http-equiv="Content-Type" content="text/html; charset=' . $wpCharset . '" /><body>' . $content);
298
+ libxml_use_internal_errors(false);
299
+ if ($success !== true) {
300
+ // -TODO handle cases were dom-parsing failed (at least inform user)
301
+ return $content;
302
+ }
303
+
304
+ // parse arguments
305
  $tag = isset($options['tag']) ? $options['tag'] : 'p';
306
+ $tag = preg_replace('/[^a-z0-9]/i', '', $tag); // simplify tag
 
 
 
307
 
308
+ // only has before and after
309
+ $before = isset($options['position']) && $options['position'] === 'before';
310
+ $paragraph_id = isset($options['index']) ? $options['index'] : 1;
311
  $paragraph_id = max( 1, (int) $paragraph_id );
312
+ $paragraph_select_from_bottom = isset($options['start_from_bottom']) && $options['start_from_bottom'];
313
+
314
+ // select positions
315
+ $xpath = new DOMXPath($dom);
316
+ $items = $xpath->query('/html/body/' . $tag);
317
+ $offset = null;
318
+
319
+ // filter empty tags from items
320
+ $paragraphs = array();
321
+ $whitespaces = json_decode('"\t\n\r \u00A0"');
322
+ foreach ($items as $item) {
323
+ if ( isset($item->textContent) && trim($item->textContent, $whitespaces) !== '' ) {
324
+ $paragraphs[] = $item;
 
 
 
325
  }
 
 
 
326
  }
327
 
328
+ $paragraph_count = count($paragraphs);
329
+ if ($paragraph_count >= $paragraph_id) {
330
+ $offset = $paragraph_select_from_bottom ? $paragraph_count - $paragraph_id : $paragraph_id - 1;
331
+ $adContent = Advanced_Ads_Select::get_instance()->get_ad_by_method( $placement_id, 'placement', $options );
332
+
333
+ // convert HTML to XML!
334
+ $adDom = new DOMDocument('1.0', $wpCharset);
335
+ libxml_use_internal_errors(true);
336
+ $adDom->loadHtml('<!DOCTYPE html><html><meta http-equiv="Content-Type" content="text/html; charset=' . $wpCharset . '" /><body>' . $adContent);
337
+ $adNode = $adDom->lastChild->lastChild; // >html>body
338
+ libxml_use_internal_errors(false);
339
+ $adContent = $adDom->saveXML($adNode);
340
+ $adContent = substr($adContent, 6, -7);
341
+ $adNode = $dom->createDocumentFragment();
342
+ $adNode->appendXML($adContent);
343
+
344
+ // inject
345
+ if ($before) {
346
+ $refNode = $paragraphs[$offset];
347
+ $refNode->parentNode->insertBefore($adNode, $refNode);
348
  } else {
349
+ // append before next node or as last child to body
350
+ $refNode = $paragraphs[$offset]->nextSibling;
351
+ if (isset($refNode)) {
352
+ $refNode->parentNode->insertBefore($adNode, $refNode);
353
+ } else {
354
+ // append to body; -TODO using here that we only select direct children of the body tag
355
+ $paragraphs[$offset]->parentNode->appendChild($adNode);
356
+ }
357
  }
358
+ }
359
 
360
+ // convert to text-representation
361
+ $content = $dom->saveHTML();
362
+ // remove head and tail (required for dom parser but unwanted for content)
363
+ $content = substr($content, stripos($content, '<body>') + 6);
364
+ $content = str_replace(array('</body>', '</html>'), '', $content);
365
+
366
+ // no fall-back desired: if there are too few paragraphs do nothing
367
+
368
+ // fix shortcode quotes (malformed by backend editor)
369
+ $matches = array();
370
+ if (0 < preg_match_all('/\[[^]]+\]/Siu', $content, $matches, PREG_OFFSET_CAPTURE) && isset($matches[0])) {
371
+ foreach ($matches[0] as $match) {
372
+ $offset = $match[1];
373
+ $content = substr($content, 0, $offset) . str_replace(array('“', '″', '&#8220;', '&quote;', '&#8243;'), '"', $match[0]) . substr($content, $offset + strlen($match[0]));
374
+ }
375
  }
376
 
377
  return $content;
classes/ad_type_plain.php CHANGED
@@ -67,7 +67,7 @@ class Advanced_Ads_Ad_Type_Plain extends Advanced_Ads_Ad_Type_Abstract{
67
  ?><p class="description"><?php _e( 'Insert plain text or code into this field.', ADVADS_SLUG ); ?></p>
68
  <textarea id="advads-ad-content-plain" cols="40" rows="10" name="advanced_ad[content]"><?php echo $content; ?></textarea>
69
  <input type="hidden" name="advanced_ad[output][allow_php]" value="0"/>
70
- <label><input type="checkbox" name="advanced_ad[output][allow_php]" value="1" <?php checked( 1, $allow_php ); ?>/><?php _e( 'Execute PHP code (wrapped in <code>&lt;?php ?&gt;</code>)', ADVADS_SLUG ); ?></label>
71
  <?php
72
  }
73
 
67
  ?><p class="description"><?php _e( 'Insert plain text or code into this field.', ADVADS_SLUG ); ?></p>
68
  <textarea id="advads-ad-content-plain" cols="40" rows="10" name="advanced_ad[content]"><?php echo $content; ?></textarea>
69
  <input type="hidden" name="advanced_ad[output][allow_php]" value="0"/>
70
+ <label class="advads-ad-allow-php"><input type="checkbox" name="advanced_ad[output][allow_php]" value="1" <?php checked( 1, $allow_php ); ?>/><?php _e( 'Execute PHP code (wrapped in <code>&lt;?php ?&gt;</code>)', ADVADS_SLUG ); ?></label>
71
  <?php
72
  }
73
 
classes/plugin.php CHANGED
@@ -120,7 +120,8 @@ class Advanced_Ads_Plugin {
120
  public function enqueue_scripts() {
121
  // wp_enqueue_script( $this->get_plugin_slug() . '-plugin-script', plugins_url('assets/js/public.js', __FILE__), array('jquery'), ADVADS_VERSION);
122
  $options = $this->options();
123
- if ( ! empty($options['advanced-js']) ){
 
124
  wp_enqueue_script( $this->get_plugin_slug() . '-advanced-js', ADVADS_BASE_URL . 'public/assets/js/advanced.js', array( 'jquery' ), ADVADS_VERSION );
125
  }
126
  }
120
  public function enqueue_scripts() {
121
  // wp_enqueue_script( $this->get_plugin_slug() . '-plugin-script', plugins_url('assets/js/public.js', __FILE__), array('jquery'), ADVADS_VERSION);
122
  $options = $this->options();
123
+ $activated_js = apply_filters( 'advanced-ads-activate-advanced-js', isset( $options['advanced-js'] ) );
124
+ if ( $activated_js ){
125
  wp_enqueue_script( $this->get_plugin_slug() . '-advanced-js', ADVADS_BASE_URL . 'public/assets/js/advanced.js', array( 'jquery' ), ADVADS_VERSION );
126
  }
127
  }
classes/widget.php CHANGED
@@ -25,14 +25,21 @@ class Advanced_Ads_Widget extends WP_Widget {
25
  /** This filter is documented in wp-includes/default-widgets.php */
26
  $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
27
 
 
28
  extract( $args );
29
  $item_id = empty($instance['item_id']) ? '' : $instance['item_id'];
30
  $title = empty($instance['title']) ? '' : $instance['title'];
 
 
 
 
 
 
31
  echo $before_widget;
32
  if ( ! empty( $title ) ) {
33
  echo $before_title . $title . $after_title;
34
  }
35
- echo self::output( $item_id );
36
  echo $after_widget;
37
  }
38
 
25
  /** This filter is documented in wp-includes/default-widgets.php */
26
  $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
27
 
28
+
29
  extract( $args );
30
  $item_id = empty($instance['item_id']) ? '' : $instance['item_id'];
31
  $title = empty($instance['title']) ? '' : $instance['title'];
32
+
33
+ $output = self::output( $item_id );
34
+ if( $output == '' ){
35
+ return;
36
+ }
37
+
38
  echo $before_widget;
39
  if ( ! empty( $title ) ) {
40
  echo $before_title . $title . $after_title;
41
  }
42
+ echo $output;
43
  echo $after_widget;
44
  }
45
 
languages/advanced-ads-de_DE.mo CHANGED
Binary file
languages/advanced-ads-de_DE.po CHANGED
@@ -3,7 +3,7 @@ msgstr ""
3
  "Project-Id-Version: Advanved Ads\n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/plugins/plugin-name\n"
5
  "POT-Creation-Date: 2015-01-27 16:47+0100\n"
6
- "PO-Revision-Date: Wed Jul 29 2015 10:11:42 GMT+0200 (CEST)\n"
7
  "Last-Translator: admin <post@webzunft.de>\n"
8
  "Language-Team: webgilde <thomas.maier@webgilde.com>\n"
9
  "Language: German\n"
@@ -31,14 +31,14 @@ msgid "Overview"
31
  msgstr "Übersicht"
32
 
33
  #: ../admin/class-advanced-ads-admin.php:241 ../admin/class-advanced-ads-admin.
34
- #: php:241 ../admin/views/ad-group-list-form-row.php:25 ../admin/views/ad-group-
35
- #: list-header.php:5 ../admin/views/placements.php:71 ../admin/views/placements.
36
- #: php:155 ../classes/widget.php:66 ../public/class-advanced-ads.php:548
37
  msgid "Ads"
38
  msgstr "Anzeigen"
39
 
40
- #: ../admin/class-advanced-ads-admin.php:245 ../admin/views/placements.php:64 ..
41
- #: admin/views/placements.php:148 ../classes/widget.php:59
42
  msgid "Ad Groups"
43
  msgstr "Anzeigen-Gruppen"
44
 
@@ -243,16 +243,26 @@ msgstr ""
243
  "Wählen Sie die niedrigste Rolle die ein Benutzer haben muss um keine "
244
  "Anzeigen zu sehen."
245
 
246
- #: ../admin/class-advanced-ads-admin.php:887
 
 
 
 
 
 
 
 
247
  #, php-format
248
  msgid ""
249
- "Only enable this if you can and want to use the advanced JavaScript "
250
- "functions described <a href=\"%s\">here</a>."
 
251
  msgstr ""
252
- "Aktivieren Sie dies nur, wenn Sie die erweiterten und <a href=\"%s\">hier</a> "
253
- "beschriebenen Advanced-JavaScript-Funktionen verwenden können und wollen."
 
254
 
255
- #: ../admin/class-advanced-ads-admin.php:900
256
  msgid ""
257
  "Some plugins and themes trigger ad injection where it shouldn’t happen. "
258
  "Therefore, Advanced Ads ignores injected placements on non-singular pages "
@@ -270,7 +280,7 @@ msgstr ""
270
  "werden überall dort, wo Beiträge geladen werden, angezeigt (z.B. auch auf "
271
  "Archiv-Seiten)."
272
 
273
- #: ../admin/class-advanced-ads-admin.php:914
274
  msgid ""
275
  "Play with this value in order to change the priority of the injected ads "
276
  "compared to other auto injected elements in the post content."
@@ -278,7 +288,7 @@ msgstr ""
278
  "Ändern Sie diesen Wert um die Position automatisch eingefügter Anzeigen im "
279
  "Content gegenüber anderer Elementen zu beeinflussen."
280
 
281
- #: ../admin/class-advanced-ads-admin.php:927
282
  #, php-format
283
  msgid ""
284
  "Hide ads from crawlers, bots and empty user agents. Also prevents counting "
@@ -289,7 +299,7 @@ msgstr ""
289
  "werden mit dem <a href=\"%s\" target=\"_blank\">Tracking Add-On</a> dann auch "
290
  "keine Impressionen mehr gezählt."
291
 
292
- #: ../admin/class-advanced-ads-admin.php:928
293
  msgid ""
294
  "Disabling this option only makes sense if your ads contain content you want "
295
  "to display to bots (like search engines) or your site is cached and bots "
@@ -298,7 +308,7 @@ msgstr ""
298
  "Deaktivieren Sie diese Option, wenn Bots (z.B. Suchmaschinen) die "
299
  "Werbeinhalte sehen sollen oder Ihre Seite einen Cache nutzt."
300
 
301
- #: ../admin/class-advanced-ads-admin.php:941
302
  msgid ""
303
  "Disable internal notices like tips, tutorials, email newsletters and update "
304
  "notices. Disabling notices is recommended if you run multiple blogs with "
@@ -309,54 +319,54 @@ msgstr ""
309
  "diese Einstellung, wenn Sie Advanced Ads auf mehreren Blog installiert \n"
310
  "haben."
311
 
312
- #: ../admin/class-advanced-ads-admin.php:994
313
  msgid "Ad Details"
314
  msgstr "Anzeigeneinstellungen"
315
 
316
- #: ../admin/class-advanced-ads-admin.php:1068
317
  msgid "Ad Settings"
318
  msgstr "Anzeigen-Einstellungen"
319
 
320
- #: ../admin/class-advanced-ads-admin.php:1147 ../admin/views/overview.php:23
321
  msgid "Ads Dashboard"
322
  msgstr "Anzeigen-Dashboard"
323
 
324
- #: ../admin/class-advanced-ads-admin.php:1159
325
  msgid "From the ad optimization universe"
326
  msgstr "Neues aus dem Anzeigen-Universum"
327
 
328
- #: ../admin/class-advanced-ads-admin.php:1168
329
  msgid "Advanced Ads Tutorials"
330
  msgstr "Advanced Ads Tutorials"
331
 
332
- #: ../admin/class-advanced-ads-admin.php:1179
333
  #, php-format
334
  msgid "%d ads – <a href=\"%s\">manage</a> - <a href=\"%s\">new</a>"
335
  msgstr "%d Anzeigen – <a href=\"%s\">verwalten</a> - <a href=\"%s\">neu</a>"
336
 
337
- #: ../admin/class-advanced-ads-admin.php:1190
338
  msgid "plugin manual and homepage"
339
  msgstr "Plugin-Anleitung und Homepage"
340
 
341
- #: ../admin/class-advanced-ads-admin.php:1197
342
  msgid "Get the tutorial via email"
343
  msgstr "Tutorial per E-Mail (engl.)\n"
344
 
345
- #: ../admin/class-advanced-ads-admin.php:1204
346
  msgid "Get AdSense tips via email"
347
  msgstr "AdSense Tips per E-Mail (engl.)"
348
 
349
- #: ../admin/class-advanced-ads-admin.php:1278
350
  msgid "Error while trying to register the license. Please contact support."
351
  msgstr ""
352
  "Die Lizenz konnte nicht registriert werden. Bitte kontaktieren Sie den "
353
  "Support."
354
 
355
- #: ../admin/class-advanced-ads-admin.php:1284
356
  msgid "Please enter and save a valid license key first."
357
  msgstr "Bitte speichern Sie zunächst einen gültigen Lizenzschlüssel."
358
 
359
- #: ../admin/class-advanced-ads-admin.php:1304
360
  #, php-format
361
  msgid "License is invalid. Reason: %s"
362
  msgstr "Die Lizenz ist ungültig. Grund: %s"
@@ -387,7 +397,7 @@ msgid "up to %d ads displayed"
387
  msgstr "bis zu %d Anzeigen sichtbar"
388
 
389
  #: ../admin/includes/class-ad-groups-list.php:187 ../admin/views/ad-group-list-
390
- #: form-row.php:34
391
  msgid "No ads assigned"
392
  msgstr "Keine Anzeigen zugeordnet"
393
 
@@ -1034,25 +1044,25 @@ msgstr "Beschreibung"
1034
  msgid "Type"
1035
  msgstr "Typ"
1036
 
1037
- #: ../admin/views/ad-group-list-form-row.php:15
1038
- msgid "Number of ads"
1039
- msgstr "Anzahl der Anzeigen"
1040
 
1041
- #: ../admin/views/ad-group-list-form-row.php:20
1042
  msgctxt "option to display all ads in an ad groups"
1043
  msgid "all"
1044
  msgstr "alle"
1045
 
1046
- #: ../admin/views/ad-group-list-form-row.php:23
1047
- msgid "Number of ads to display in the block"
1048
- msgstr "Anzahl der Anzeigen die gleichzeitig im Block ausgegeben werden."
1049
 
1050
- #: ../admin/views/ad-group-list-form-row.php:28 ../public/class-advanced-ads.php:
1051
  #: 549
1052
  msgid "Ad"
1053
  msgstr "Anzeige"
1054
 
1055
- #: ../admin/views/ad-group-list-form-row.php:29
1056
  msgid "weight"
1057
  msgstr "Gewicht"
1058
 
@@ -1065,12 +1075,12 @@ msgid "Details"
1065
  msgstr "Details"
1066
 
1067
  #: ../admin/views/ad-group-list-row.php:8 ../admin/views/ad-group.php:63 ..
1068
- #: admin/views/ad-info.php:3 ../admin/views/placements.php:49
1069
  msgid "shortcode"
1070
  msgstr "Shortcode"
1071
 
1072
  #: ../admin/views/ad-group-list-row.php:11 ../admin/views/ad-group.php:66 ..
1073
- #: admin/views/placements.php:52
1074
  msgid "template"
1075
  msgstr "Template"
1076
 
@@ -1270,7 +1280,7 @@ msgstr "Position"
1270
  msgid "- default -"
1271
  msgstr "- default -"
1272
 
1273
- #: ../admin/views/ad-output-metabox.php:7 ../admin/views/placements.php:43
1274
  msgid "default"
1275
  msgstr "Standard"
1276
 
@@ -1463,51 +1473,64 @@ msgstr ""
1463
  msgid "Options"
1464
  msgstr "Optionen"
1465
 
1466
- #: ../admin/views/placements.php:48
 
 
 
 
 
 
 
 
 
1467
  msgid "show usage"
1468
  msgstr "Nutzungshinweise"
1469
 
1470
- #: ../admin/views/placements.php:60
1471
  msgid "Item"
1472
  msgstr "Anzeige"
1473
 
1474
- #: ../admin/views/placements.php:62 ../admin/views/placements.php:146
1475
  msgid "--not selected--"
1476
  msgstr "--nicht gewählt--"
1477
 
1478
- #: ../admin/views/placements.php:82
1479
  msgid "Inject"
1480
  msgstr "Einfügen"
1481
 
1482
- #: ../admin/views/placements.php:83
1483
  msgid "after"
1484
  msgstr "nach"
1485
 
1486
- #: ../admin/views/placements.php:83
1487
  msgid "before"
1488
  msgstr "vor"
1489
 
1490
- #: ../admin/views/placements.php:107
 
 
 
 
1491
  msgid "remove placement"
1492
  msgstr "Platzierung entfernen"
1493
 
1494
- #: ../admin/views/placements.php:113
1495
  msgid "Save Placements"
1496
  msgstr "Platzierungen sichern"
1497
 
1498
- #: ../admin/views/placements.php:115
1499
  msgid "Create a new placement"
1500
  msgstr "Neue Platzierung erstellen"
1501
 
1502
- #: ../admin/views/placements.php:116
1503
  msgid "New Placement"
1504
  msgstr "Neue Platzierung"
1505
 
1506
- #: ../admin/views/placements.php:122
1507
  msgid "Choose a placement type"
1508
  msgstr "Typ der Platzierung wählen"
1509
 
1510
- #: ../admin/views/placements.php:123
1511
  #, php-format
1512
  msgid ""
1513
  "Placement types define where the ad is going to be displayed. Learn more "
@@ -1516,11 +1539,11 @@ msgstr ""
1516
  "Der Platzierungstyp entscheidet darüber wo eine Anzeige im Frontend "
1517
  "platziert wird. Mehr dazu finden Sie in der <a href=\"%s\">Anleitung</a>."
1518
 
1519
- #: ../admin/views/placements.php:140
1520
  msgid "Choose a Name"
1521
  msgstr "Bezeichnung wählen"
1522
 
1523
- #: ../admin/views/placements.php:141
1524
  msgid ""
1525
  "The name of the placement is only visible to you. Tip: choose a descriptive "
1526
  "one, e.g. <em>Below Post Headline</em>."
@@ -1528,19 +1551,19 @@ msgstr ""
1528
  "Die Bezeichnung der Platzierung ist nur für Sie sichtbar. Ich empfehle eine "
1529
  "beschreibende Bezeichnung, z.B. <em>Unter der Artikelüberschrift</em>."
1530
 
1531
- #: ../admin/views/placements.php:142
1532
  msgid "Placement Name"
1533
  msgstr "Bezeichnung"
1534
 
1535
- #: ../admin/views/placements.php:143
1536
  msgid "Choose the Ad or Group"
1537
  msgstr "Anzeige oder Gruppe wählen"
1538
 
1539
- #: ../admin/views/placements.php:144
1540
  msgid "The ad or group that should be displayed."
1541
  msgstr "Die Anzeige oder Anzeigengruppe die angezeigt werden soll."
1542
 
1543
- #: ../admin/views/placements.php:163
1544
  msgid "Save New Placement"
1545
  msgstr "Neue Platzierung sichern"
1546
 
@@ -1889,11 +1912,11 @@ msgstr "entspricht nicht reg. Ausdruck"
1889
  msgid "Display Ads and Ad Groups."
1890
  msgstr "Anzeigen und Anzeigen-Gruppen zeigen."
1891
 
1892
- #: ../classes/widget.php:51
1893
  msgid "Title:"
1894
  msgstr "Titel:"
1895
 
1896
- #: ../classes/widget.php:57
1897
  msgid "--empty--"
1898
  msgstr "--leer--"
1899
 
3
  "Project-Id-Version: Advanved Ads\n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/plugins/plugin-name\n"
5
  "POT-Creation-Date: 2015-01-27 16:47+0100\n"
6
+ "PO-Revision-Date: Wed Aug 05 2015 21:20:01 GMT+0200 (CEST)\n"
7
  "Last-Translator: admin <post@webzunft.de>\n"
8
  "Language-Team: webgilde <thomas.maier@webgilde.com>\n"
9
  "Language: German\n"
31
  msgstr "Übersicht"
32
 
33
  #: ../admin/class-advanced-ads-admin.php:241 ../admin/class-advanced-ads-admin.
34
+ #: php:241 ../admin/views/ad-group-list-form-row.php:27 ../admin/views/ad-group-
35
+ #: list-header.php:5 ../admin/views/placements.php:77 ../admin/views/placements.
36
+ #: php:165 ../classes/widget.php:73 ../public/class-advanced-ads.php:548
37
  msgid "Ads"
38
  msgstr "Anzeigen"
39
 
40
+ #: ../admin/class-advanced-ads-admin.php:245 ../admin/views/placements.php:70 ..
41
+ #: admin/views/placements.php:158 ../classes/widget.php:66
42
  msgid "Ad Groups"
43
  msgstr "Anzeigen-Gruppen"
44
 
243
  "Wählen Sie die niedrigste Rolle die ein Benutzer haben muss um keine "
244
  "Anzeigen zu sehen."
245
 
246
+ #: ../admin/class-advanced-ads-admin.php:888
247
+ msgid ""
248
+ "<strong>notice: </strong>the file is currently enabled by an add-on that "
249
+ "needs it."
250
+ msgstr ""
251
+ "<strong>Hinweis: </strong>die Datei wird aktuell von einer Erweiterung "
252
+ "benutzt."
253
+
254
+ #: ../admin/class-advanced-ads-admin.php:891
255
  #, php-format
256
  msgid ""
257
+ "Enable advanced JavaScript functions (<a href=\"%s\" target=\"_blank\">here</a>)."
258
+ " Some features and add-ons might override this setting if they need features "
259
+ "from this file."
260
  msgstr ""
261
+ "Erweiterte JavaScript-Funktionen aktivieren (<a href=\"%s\" "
262
+ "target=\"_blank\">Info</a>). Einige Funktionen und Erweiterungen können diese "
263
+ "Einstellung überschreiben, wenn sie die Datei benötigen."
264
 
265
+ #: ../admin/class-advanced-ads-admin.php:904
266
  msgid ""
267
  "Some plugins and themes trigger ad injection where it shouldn’t happen. "
268
  "Therefore, Advanced Ads ignores injected placements on non-singular pages "
280
  "werden überall dort, wo Beiträge geladen werden, angezeigt (z.B. auch auf "
281
  "Archiv-Seiten)."
282
 
283
+ #: ../admin/class-advanced-ads-admin.php:918
284
  msgid ""
285
  "Play with this value in order to change the priority of the injected ads "
286
  "compared to other auto injected elements in the post content."
288
  "Ändern Sie diesen Wert um die Position automatisch eingefügter Anzeigen im "
289
  "Content gegenüber anderer Elementen zu beeinflussen."
290
 
291
+ #: ../admin/class-advanced-ads-admin.php:931
292
  #, php-format
293
  msgid ""
294
  "Hide ads from crawlers, bots and empty user agents. Also prevents counting "
299
  "werden mit dem <a href=\"%s\" target=\"_blank\">Tracking Add-On</a> dann auch "
300
  "keine Impressionen mehr gezählt."
301
 
302
+ #: ../admin/class-advanced-ads-admin.php:932
303
  msgid ""
304
  "Disabling this option only makes sense if your ads contain content you want "
305
  "to display to bots (like search engines) or your site is cached and bots "
308
  "Deaktivieren Sie diese Option, wenn Bots (z.B. Suchmaschinen) die "
309
  "Werbeinhalte sehen sollen oder Ihre Seite einen Cache nutzt."
310
 
311
+ #: ../admin/class-advanced-ads-admin.php:945
312
  msgid ""
313
  "Disable internal notices like tips, tutorials, email newsletters and update "
314
  "notices. Disabling notices is recommended if you run multiple blogs with "
319
  "diese Einstellung, wenn Sie Advanced Ads auf mehreren Blog installiert \n"
320
  "haben."
321
 
322
+ #: ../admin/class-advanced-ads-admin.php:998
323
  msgid "Ad Details"
324
  msgstr "Anzeigeneinstellungen"
325
 
326
+ #: ../admin/class-advanced-ads-admin.php:1072
327
  msgid "Ad Settings"
328
  msgstr "Anzeigen-Einstellungen"
329
 
330
+ #: ../admin/class-advanced-ads-admin.php:1151 ../admin/views/overview.php:23
331
  msgid "Ads Dashboard"
332
  msgstr "Anzeigen-Dashboard"
333
 
334
+ #: ../admin/class-advanced-ads-admin.php:1163
335
  msgid "From the ad optimization universe"
336
  msgstr "Neues aus dem Anzeigen-Universum"
337
 
338
+ #: ../admin/class-advanced-ads-admin.php:1172
339
  msgid "Advanced Ads Tutorials"
340
  msgstr "Advanced Ads Tutorials"
341
 
342
+ #: ../admin/class-advanced-ads-admin.php:1183
343
  #, php-format
344
  msgid "%d ads – <a href=\"%s\">manage</a> - <a href=\"%s\">new</a>"
345
  msgstr "%d Anzeigen – <a href=\"%s\">verwalten</a> - <a href=\"%s\">neu</a>"
346
 
347
+ #: ../admin/class-advanced-ads-admin.php:1194
348
  msgid "plugin manual and homepage"
349
  msgstr "Plugin-Anleitung und Homepage"
350
 
351
+ #: ../admin/class-advanced-ads-admin.php:1201
352
  msgid "Get the tutorial via email"
353
  msgstr "Tutorial per E-Mail (engl.)\n"
354
 
355
+ #: ../admin/class-advanced-ads-admin.php:1208
356
  msgid "Get AdSense tips via email"
357
  msgstr "AdSense Tips per E-Mail (engl.)"
358
 
359
+ #: ../admin/class-advanced-ads-admin.php:1282
360
  msgid "Error while trying to register the license. Please contact support."
361
  msgstr ""
362
  "Die Lizenz konnte nicht registriert werden. Bitte kontaktieren Sie den "
363
  "Support."
364
 
365
+ #: ../admin/class-advanced-ads-admin.php:1288
366
  msgid "Please enter and save a valid license key first."
367
  msgstr "Bitte speichern Sie zunächst einen gültigen Lizenzschlüssel."
368
 
369
+ #: ../admin/class-advanced-ads-admin.php:1308
370
  #, php-format
371
  msgid "License is invalid. Reason: %s"
372
  msgstr "Die Lizenz ist ungültig. Grund: %s"
397
  msgstr "bis zu %d Anzeigen sichtbar"
398
 
399
  #: ../admin/includes/class-ad-groups-list.php:187 ../admin/views/ad-group-list-
400
+ #: form-row.php:36
401
  msgid "No ads assigned"
402
  msgstr "Keine Anzeigen zugeordnet"
403
 
1044
  msgid "Type"
1045
  msgstr "Typ"
1046
 
1047
+ #: ../admin/views/ad-group-list-form-row.php:16
1048
+ msgid "Number of visible ads"
1049
+ msgstr "Anzahl sichtbarer Anzeigen"
1050
 
1051
+ #: ../admin/views/ad-group-list-form-row.php:21
1052
  msgctxt "option to display all ads in an ad groups"
1053
  msgid "all"
1054
  msgstr "alle"
1055
 
1056
+ #: ../admin/views/ad-group-list-form-row.php:24
1057
+ msgid "Number of ads that are visible at the same time"
1058
+ msgstr "Anzahl der Anzeigen, die gleichzeitig sichtbar sein sollen."
1059
 
1060
+ #: ../admin/views/ad-group-list-form-row.php:30 ../public/class-advanced-ads.php:
1061
  #: 549
1062
  msgid "Ad"
1063
  msgstr "Anzeige"
1064
 
1065
+ #: ../admin/views/ad-group-list-form-row.php:31
1066
  msgid "weight"
1067
  msgstr "Gewicht"
1068
 
1075
  msgstr "Details"
1076
 
1077
  #: ../admin/views/ad-group-list-row.php:8 ../admin/views/ad-group.php:63 ..
1078
+ #: admin/views/ad-info.php:3 ../admin/views/placements.php:55
1079
  msgid "shortcode"
1080
  msgstr "Shortcode"
1081
 
1082
  #: ../admin/views/ad-group-list-row.php:11 ../admin/views/ad-group.php:66 ..
1083
+ #: admin/views/placements.php:58
1084
  msgid "template"
1085
  msgstr "Template"
1086
 
1280
  msgid "- default -"
1281
  msgstr "- default -"
1282
 
1283
+ #: ../admin/views/ad-output-metabox.php:7 ../admin/views/placements.php:49
1284
  msgid "default"
1285
  msgstr "Standard"
1286
 
1473
  msgid "Options"
1474
  msgstr "Optionen"
1475
 
1476
+ #: ../admin/views/placements.php:40
1477
+ #, php-format
1478
+ msgid ""
1479
+ "Placement type \"%s\" is missing and was reset to \"default\".<br/>Please check "
1480
+ "if the responsible add-on is activated."
1481
+ msgstr ""
1482
+ "Der Platzierungs-Typ \"%s\" fehlt und wurde auf \"default\" zurückgesetzt."
1483
+ "<br/>Bitte prüfen Sie, ob die notwendige Erweiterung aktiviert ist."
1484
+
1485
+ #: ../admin/views/placements.php:54
1486
  msgid "show usage"
1487
  msgstr "Nutzungshinweise"
1488
 
1489
+ #: ../admin/views/placements.php:66
1490
  msgid "Item"
1491
  msgstr "Anzeige"
1492
 
1493
+ #: ../admin/views/placements.php:68 ../admin/views/placements.php:156
1494
  msgid "--not selected--"
1495
  msgstr "--nicht gewählt--"
1496
 
1497
+ #: ../admin/views/placements.php:88
1498
  msgid "Inject"
1499
  msgstr "Einfügen"
1500
 
1501
+ #: ../admin/views/placements.php:89
1502
  msgid "after"
1503
  msgstr "nach"
1504
 
1505
+ #: ../admin/views/placements.php:89
1506
  msgid "before"
1507
  msgstr "vor"
1508
 
1509
+ #: ../admin/views/placements.php:109
1510
+ msgid "start counting from bottom"
1511
+ msgstr "von unten zählen"
1512
+
1513
+ #: ../admin/views/placements.php:117
1514
  msgid "remove placement"
1515
  msgstr "Platzierung entfernen"
1516
 
1517
+ #: ../admin/views/placements.php:123
1518
  msgid "Save Placements"
1519
  msgstr "Platzierungen sichern"
1520
 
1521
+ #: ../admin/views/placements.php:125
1522
  msgid "Create a new placement"
1523
  msgstr "Neue Platzierung erstellen"
1524
 
1525
+ #: ../admin/views/placements.php:126
1526
  msgid "New Placement"
1527
  msgstr "Neue Platzierung"
1528
 
1529
+ #: ../admin/views/placements.php:132
1530
  msgid "Choose a placement type"
1531
  msgstr "Typ der Platzierung wählen"
1532
 
1533
+ #: ../admin/views/placements.php:133
1534
  #, php-format
1535
  msgid ""
1536
  "Placement types define where the ad is going to be displayed. Learn more "
1539
  "Der Platzierungstyp entscheidet darüber wo eine Anzeige im Frontend "
1540
  "platziert wird. Mehr dazu finden Sie in der <a href=\"%s\">Anleitung</a>."
1541
 
1542
+ #: ../admin/views/placements.php:150
1543
  msgid "Choose a Name"
1544
  msgstr "Bezeichnung wählen"
1545
 
1546
+ #: ../admin/views/placements.php:151
1547
  msgid ""
1548
  "The name of the placement is only visible to you. Tip: choose a descriptive "
1549
  "one, e.g. <em>Below Post Headline</em>."
1551
  "Die Bezeichnung der Platzierung ist nur für Sie sichtbar. Ich empfehle eine "
1552
  "beschreibende Bezeichnung, z.B. <em>Unter der Artikelüberschrift</em>."
1553
 
1554
+ #: ../admin/views/placements.php:152
1555
  msgid "Placement Name"
1556
  msgstr "Bezeichnung"
1557
 
1558
+ #: ../admin/views/placements.php:153
1559
  msgid "Choose the Ad or Group"
1560
  msgstr "Anzeige oder Gruppe wählen"
1561
 
1562
+ #: ../admin/views/placements.php:154
1563
  msgid "The ad or group that should be displayed."
1564
  msgstr "Die Anzeige oder Anzeigengruppe die angezeigt werden soll."
1565
 
1566
+ #: ../admin/views/placements.php:173
1567
  msgid "Save New Placement"
1568
  msgstr "Neue Platzierung sichern"
1569
 
1912
  msgid "Display Ads and Ad Groups."
1913
  msgstr "Anzeigen und Anzeigen-Gruppen zeigen."
1914
 
1915
+ #: ../classes/widget.php:58
1916
  msgid "Title:"
1917
  msgstr "Titel:"
1918
 
1919
+ #: ../classes/widget.php:64
1920
  msgid "--empty--"
1921
  msgstr "--leer--"
1922
 
languages/advanced-ads.pot CHANGED
@@ -5,7 +5,7 @@ msgstr ""
5
  "Project-Id-Version: Advanved Ads\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/plugins/plugin-name\n"
7
  "POT-Creation-Date: 2015-01-27 16:47+0100\n"
8
- "POT-Revision-Date: Wed Jul 29 2015 10:08:26 GMT+0200 (CEST)\n"
9
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
10
  "Last-Translator: Thomas Maier <post@webzunft.de>\n"
11
  "Language-Team: webgilde <thomas.maier@webgilde.com>\n"
@@ -29,14 +29,14 @@ msgid "Overview"
29
  msgstr ""
30
 
31
  #: ../admin/class-advanced-ads-admin.php:241 ../admin/class-advanced-ads-admin.
32
- #: php:241 ../admin/views/ad-group-list-form-row.php:25 ../admin/views/ad-group-
33
- #: list-header.php:5 ../admin/views/placements.php:71 ../admin/views/placements.
34
- #: php:155 ../classes/widget.php:66 ../public/class-advanced-ads.php:548
35
  msgid "Ads"
36
  msgstr ""
37
 
38
- #: ../admin/class-advanced-ads-admin.php:245 ../admin/views/placements.php:64 ..
39
- #: /admin/views/placements.php:148 ../classes/widget.php:59
40
  msgid "Ad Groups"
41
  msgstr ""
42
 
@@ -237,14 +237,21 @@ msgstr ""
237
  msgid "Choose the lowest role a user must have in order to not see any ads."
238
  msgstr ""
239
 
240
- #: ../admin/class-advanced-ads-admin.php:887
 
 
 
 
 
 
241
  #, php-format
242
  msgid ""
243
- "Only enable this if you can and want to use the advanced JavaScript "
244
- "functions described <a href=\"%s\">here</a>."
 
245
  msgstr ""
246
 
247
- #: ../admin/class-advanced-ads-admin.php:900
248
  msgid ""
249
  "Some plugins and themes trigger ad injection where it shouldn’t happen. "
250
  "Therefore, Advanced Ads ignores injected placements on non-singular pages "
@@ -253,13 +260,13 @@ msgid ""
253
  "on archive pages AT YOUR OWN RISK."
254
  msgstr ""
255
 
256
- #: ../admin/class-advanced-ads-admin.php:914
257
  msgid ""
258
  "Play with this value in order to change the priority of the injected ads "
259
  "compared to other auto injected elements in the post content."
260
  msgstr ""
261
 
262
- #: ../admin/class-advanced-ads-admin.php:927
263
  #, php-format
264
  msgid ""
265
  "Hide ads from crawlers, bots and empty user agents. Also prevents counting "
@@ -267,66 +274,66 @@ msgid ""
267
  "Add-On</a>."
268
  msgstr ""
269
 
270
- #: ../admin/class-advanced-ads-admin.php:928
271
  msgid ""
272
  "Disabling this option only makes sense if your ads contain content you want "
273
  "to display to bots (like search engines) or your site is cached and bots "
274
  "could create a cached version without the ads."
275
  msgstr ""
276
 
277
- #: ../admin/class-advanced-ads-admin.php:941
278
  msgid ""
279
  "Disable internal notices like tips, tutorials, email newsletters and update "
280
  "notices. Disabling notices is recommended if you run multiple blogs with "
281
  "Advanced Ads already."
282
  msgstr ""
283
 
284
- #: ../admin/class-advanced-ads-admin.php:994
285
  msgid "Ad Details"
286
  msgstr ""
287
 
288
- #: ../admin/class-advanced-ads-admin.php:1068
289
  msgid "Ad Settings"
290
  msgstr ""
291
 
292
- #: ../admin/class-advanced-ads-admin.php:1147 ../admin/views/overview.php:23
293
  msgid "Ads Dashboard"
294
  msgstr ""
295
 
296
- #: ../admin/class-advanced-ads-admin.php:1159
297
  msgid "From the ad optimization universe"
298
  msgstr ""
299
 
300
- #: ../admin/class-advanced-ads-admin.php:1168
301
  msgid "Advanced Ads Tutorials"
302
  msgstr ""
303
 
304
- #: ../admin/class-advanced-ads-admin.php:1179
305
  #, php-format
306
  msgid "%d ads – <a href=\"%s\">manage</a> - <a href=\"%s\">new</a>"
307
  msgstr ""
308
 
309
- #: ../admin/class-advanced-ads-admin.php:1190
310
  msgid "plugin manual and homepage"
311
  msgstr ""
312
 
313
- #: ../admin/class-advanced-ads-admin.php:1197
314
  msgid "Get the tutorial via email"
315
  msgstr ""
316
 
317
- #: ../admin/class-advanced-ads-admin.php:1204
318
  msgid "Get AdSense tips via email"
319
  msgstr ""
320
 
321
- #: ../admin/class-advanced-ads-admin.php:1278
322
  msgid "Error while trying to register the license. Please contact support."
323
  msgstr ""
324
 
325
- #: ../admin/class-advanced-ads-admin.php:1284
326
  msgid "Please enter and save a valid license key first."
327
  msgstr ""
328
 
329
- #: ../admin/class-advanced-ads-admin.php:1304
330
  #, php-format
331
  msgid "License is invalid. Reason: %s"
332
  msgstr ""
@@ -357,7 +364,7 @@ msgid "up to %d ads displayed"
357
  msgstr ""
358
 
359
  #: ../admin/includes/class-ad-groups-list.php:187 ../admin/views/ad-group-list-
360
- #: form-row.php:34
361
  msgid "No ads assigned"
362
  msgstr ""
363
 
@@ -936,25 +943,25 @@ msgstr ""
936
  msgid "Type"
937
  msgstr ""
938
 
939
- #: ../admin/views/ad-group-list-form-row.php:15
940
- msgid "Number of ads"
941
  msgstr ""
942
 
943
- #: ../admin/views/ad-group-list-form-row.php:20
944
  msgctxt "option to display all ads in an ad groups"
945
  msgid "all"
946
  msgstr ""
947
 
948
- #: ../admin/views/ad-group-list-form-row.php:23
949
- msgid "Number of ads to display in the block"
950
  msgstr ""
951
 
952
- #: ../admin/views/ad-group-list-form-row.php:28 ../public/class-advanced-ads.php:
953
  #: 549
954
  msgid "Ad"
955
  msgstr ""
956
 
957
- #: ../admin/views/ad-group-list-form-row.php:29
958
  msgid "weight"
959
  msgstr ""
960
 
@@ -967,12 +974,12 @@ msgid "Details"
967
  msgstr ""
968
 
969
  #: ../admin/views/ad-group-list-row.php:8 ../admin/views/ad-group.php:63 ..
970
- #: /admin/views/ad-info.php:3 ../admin/views/placements.php:49
971
  msgid "shortcode"
972
  msgstr ""
973
 
974
  #: ../admin/views/ad-group-list-row.php:11 ../admin/views/ad-group.php:66 ..
975
- #: /admin/views/placements.php:52
976
  msgid "template"
977
  msgstr ""
978
 
@@ -1150,7 +1157,7 @@ msgstr ""
1150
  msgid "- default -"
1151
  msgstr ""
1152
 
1153
- #: ../admin/views/ad-output-metabox.php:7 ../admin/views/placements.php:43
1154
  msgid "default"
1155
  msgstr ""
1156
 
@@ -1319,80 +1326,91 @@ msgstr ""
1319
  msgid "Options"
1320
  msgstr ""
1321
 
1322
- #: ../admin/views/placements.php:48
 
 
 
 
 
 
 
1323
  msgid "show usage"
1324
  msgstr ""
1325
 
1326
- #: ../admin/views/placements.php:60
1327
  msgid "Item"
1328
  msgstr ""
1329
 
1330
- #: ../admin/views/placements.php:62 ../admin/views/placements.php:146
1331
  msgid "--not selected--"
1332
  msgstr ""
1333
 
1334
- #: ../admin/views/placements.php:82
1335
  msgid "Inject"
1336
  msgstr ""
1337
 
1338
- #: ../admin/views/placements.php:83
1339
  msgid "after"
1340
  msgstr ""
1341
 
1342
- #: ../admin/views/placements.php:83
1343
  msgid "before"
1344
  msgstr ""
1345
 
1346
- #: ../admin/views/placements.php:107
 
 
 
 
1347
  msgid "remove placement"
1348
  msgstr ""
1349
 
1350
- #: ../admin/views/placements.php:113
1351
  msgid "Save Placements"
1352
  msgstr ""
1353
 
1354
- #: ../admin/views/placements.php:115
1355
  msgid "Create a new placement"
1356
  msgstr ""
1357
 
1358
- #: ../admin/views/placements.php:116
1359
  msgid "New Placement"
1360
  msgstr ""
1361
 
1362
- #: ../admin/views/placements.php:122
1363
  msgid "Choose a placement type"
1364
  msgstr ""
1365
 
1366
- #: ../admin/views/placements.php:123
1367
  #, php-format
1368
  msgid ""
1369
  "Placement types define where the ad is going to be displayed. Learn more "
1370
  "about the different types from the <a href=\"%s\">manual</a>"
1371
  msgstr ""
1372
 
1373
- #: ../admin/views/placements.php:140
1374
  msgid "Choose a Name"
1375
  msgstr ""
1376
 
1377
- #: ../admin/views/placements.php:141
1378
  msgid ""
1379
  "The name of the placement is only visible to you. Tip: choose a descriptive "
1380
  "one, e.g. <em>Below Post Headline</em>."
1381
  msgstr ""
1382
 
1383
- #: ../admin/views/placements.php:142
1384
  msgid "Placement Name"
1385
  msgstr ""
1386
 
1387
- #: ../admin/views/placements.php:143
1388
  msgid "Choose the Ad or Group"
1389
  msgstr ""
1390
 
1391
- #: ../admin/views/placements.php:144
1392
  msgid "The ad or group that should be displayed."
1393
  msgstr ""
1394
 
1395
- #: ../admin/views/placements.php:163
1396
  msgid "Save New Placement"
1397
  msgstr ""
1398
 
@@ -1710,11 +1728,11 @@ msgstr ""
1710
  msgid "Display Ads and Ad Groups."
1711
  msgstr ""
1712
 
1713
- #: ../classes/widget.php:51
1714
  msgid "Title:"
1715
  msgstr ""
1716
 
1717
- #: ../classes/widget.php:57
1718
  msgid "--empty--"
1719
  msgstr ""
1720
 
5
  "Project-Id-Version: Advanved Ads\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/plugins/plugin-name\n"
7
  "POT-Creation-Date: 2015-01-27 16:47+0100\n"
8
+ "POT-Revision-Date: Wed Aug 05 2015 21:16:46 GMT+0200 (CEST)\n"
9
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
10
  "Last-Translator: Thomas Maier <post@webzunft.de>\n"
11
  "Language-Team: webgilde <thomas.maier@webgilde.com>\n"
29
  msgstr ""
30
 
31
  #: ../admin/class-advanced-ads-admin.php:241 ../admin/class-advanced-ads-admin.
32
+ #: php:241 ../admin/views/ad-group-list-form-row.php:27 ../admin/views/ad-group-
33
+ #: list-header.php:5 ../admin/views/placements.php:77 ../admin/views/placements.
34
+ #: php:165 ../classes/widget.php:73 ../public/class-advanced-ads.php:548
35
  msgid "Ads"
36
  msgstr ""
37
 
38
+ #: ../admin/class-advanced-ads-admin.php:245 ../admin/views/placements.php:70 ..
39
+ #: /admin/views/placements.php:158 ../classes/widget.php:66
40
  msgid "Ad Groups"
41
  msgstr ""
42
 
237
  msgid "Choose the lowest role a user must have in order to not see any ads."
238
  msgstr ""
239
 
240
+ #: ../admin/class-advanced-ads-admin.php:888
241
+ msgid ""
242
+ "<strong>notice: </strong>the file is currently enabled by an add-on that "
243
+ "needs it."
244
+ msgstr ""
245
+
246
+ #: ../admin/class-advanced-ads-admin.php:891
247
  #, php-format
248
  msgid ""
249
+ "Enable advanced JavaScript functions (<a href=\"%s\" target=\"_blank\">here</a>)."
250
+ " Some features and add-ons might override this setting if they need features "
251
+ "from this file."
252
  msgstr ""
253
 
254
+ #: ../admin/class-advanced-ads-admin.php:904
255
  msgid ""
256
  "Some plugins and themes trigger ad injection where it shouldn’t happen. "
257
  "Therefore, Advanced Ads ignores injected placements on non-singular pages "
260
  "on archive pages AT YOUR OWN RISK."
261
  msgstr ""
262
 
263
+ #: ../admin/class-advanced-ads-admin.php:918
264
  msgid ""
265
  "Play with this value in order to change the priority of the injected ads "
266
  "compared to other auto injected elements in the post content."
267
  msgstr ""
268
 
269
+ #: ../admin/class-advanced-ads-admin.php:931
270
  #, php-format
271
  msgid ""
272
  "Hide ads from crawlers, bots and empty user agents. Also prevents counting "
274
  "Add-On</a>."
275
  msgstr ""
276
 
277
+ #: ../admin/class-advanced-ads-admin.php:932
278
  msgid ""
279
  "Disabling this option only makes sense if your ads contain content you want "
280
  "to display to bots (like search engines) or your site is cached and bots "
281
  "could create a cached version without the ads."
282
  msgstr ""
283
 
284
+ #: ../admin/class-advanced-ads-admin.php:945
285
  msgid ""
286
  "Disable internal notices like tips, tutorials, email newsletters and update "
287
  "notices. Disabling notices is recommended if you run multiple blogs with "
288
  "Advanced Ads already."
289
  msgstr ""
290
 
291
+ #: ../admin/class-advanced-ads-admin.php:998
292
  msgid "Ad Details"
293
  msgstr ""
294
 
295
+ #: ../admin/class-advanced-ads-admin.php:1072
296
  msgid "Ad Settings"
297
  msgstr ""
298
 
299
+ #: ../admin/class-advanced-ads-admin.php:1151 ../admin/views/overview.php:23
300
  msgid "Ads Dashboard"
301
  msgstr ""
302
 
303
+ #: ../admin/class-advanced-ads-admin.php:1163
304
  msgid "From the ad optimization universe"
305
  msgstr ""
306
 
307
+ #: ../admin/class-advanced-ads-admin.php:1172
308
  msgid "Advanced Ads Tutorials"
309
  msgstr ""
310
 
311
+ #: ../admin/class-advanced-ads-admin.php:1183
312
  #, php-format
313
  msgid "%d ads – <a href=\"%s\">manage</a> - <a href=\"%s\">new</a>"
314
  msgstr ""
315
 
316
+ #: ../admin/class-advanced-ads-admin.php:1194
317
  msgid "plugin manual and homepage"
318
  msgstr ""
319
 
320
+ #: ../admin/class-advanced-ads-admin.php:1201
321
  msgid "Get the tutorial via email"
322
  msgstr ""
323
 
324
+ #: ../admin/class-advanced-ads-admin.php:1208
325
  msgid "Get AdSense tips via email"
326
  msgstr ""
327
 
328
+ #: ../admin/class-advanced-ads-admin.php:1282
329
  msgid "Error while trying to register the license. Please contact support."
330
  msgstr ""
331
 
332
+ #: ../admin/class-advanced-ads-admin.php:1288
333
  msgid "Please enter and save a valid license key first."
334
  msgstr ""
335
 
336
+ #: ../admin/class-advanced-ads-admin.php:1308
337
  #, php-format
338
  msgid "License is invalid. Reason: %s"
339
  msgstr ""
364
  msgstr ""
365
 
366
  #: ../admin/includes/class-ad-groups-list.php:187 ../admin/views/ad-group-list-
367
+ #: form-row.php:36
368
  msgid "No ads assigned"
369
  msgstr ""
370
 
943
  msgid "Type"
944
  msgstr ""
945
 
946
+ #: ../admin/views/ad-group-list-form-row.php:16
947
+ msgid "Number of visible ads"
948
  msgstr ""
949
 
950
+ #: ../admin/views/ad-group-list-form-row.php:21
951
  msgctxt "option to display all ads in an ad groups"
952
  msgid "all"
953
  msgstr ""
954
 
955
+ #: ../admin/views/ad-group-list-form-row.php:24
956
+ msgid "Number of ads that are visible at the same time"
957
  msgstr ""
958
 
959
+ #: ../admin/views/ad-group-list-form-row.php:30 ../public/class-advanced-ads.php:
960
  #: 549
961
  msgid "Ad"
962
  msgstr ""
963
 
964
+ #: ../admin/views/ad-group-list-form-row.php:31
965
  msgid "weight"
966
  msgstr ""
967
 
974
  msgstr ""
975
 
976
  #: ../admin/views/ad-group-list-row.php:8 ../admin/views/ad-group.php:63 ..
977
+ #: /admin/views/ad-info.php:3 ../admin/views/placements.php:55
978
  msgid "shortcode"
979
  msgstr ""
980
 
981
  #: ../admin/views/ad-group-list-row.php:11 ../admin/views/ad-group.php:66 ..
982
+ #: /admin/views/placements.php:58
983
  msgid "template"
984
  msgstr ""
985
 
1157
  msgid "- default -"
1158
  msgstr ""
1159
 
1160
+ #: ../admin/views/ad-output-metabox.php:7 ../admin/views/placements.php:49
1161
  msgid "default"
1162
  msgstr ""
1163
 
1326
  msgid "Options"
1327
  msgstr ""
1328
 
1329
+ #: ../admin/views/placements.php:40
1330
+ #, php-format
1331
+ msgid ""
1332
+ "Placement type \"%s\" is missing and was reset to \"default\".<br/>Please check "
1333
+ "if the responsible add-on is activated."
1334
+ msgstr ""
1335
+
1336
+ #: ../admin/views/placements.php:54
1337
  msgid "show usage"
1338
  msgstr ""
1339
 
1340
+ #: ../admin/views/placements.php:66
1341
  msgid "Item"
1342
  msgstr ""
1343
 
1344
+ #: ../admin/views/placements.php:68 ../admin/views/placements.php:156
1345
  msgid "--not selected--"
1346
  msgstr ""
1347
 
1348
+ #: ../admin/views/placements.php:88
1349
  msgid "Inject"
1350
  msgstr ""
1351
 
1352
+ #: ../admin/views/placements.php:89
1353
  msgid "after"
1354
  msgstr ""
1355
 
1356
+ #: ../admin/views/placements.php:89
1357
  msgid "before"
1358
  msgstr ""
1359
 
1360
+ #: ../admin/views/placements.php:109
1361
+ msgid "start counting from bottom"
1362
+ msgstr ""
1363
+
1364
+ #: ../admin/views/placements.php:117
1365
  msgid "remove placement"
1366
  msgstr ""
1367
 
1368
+ #: ../admin/views/placements.php:123
1369
  msgid "Save Placements"
1370
  msgstr ""
1371
 
1372
+ #: ../admin/views/placements.php:125
1373
  msgid "Create a new placement"
1374
  msgstr ""
1375
 
1376
+ #: ../admin/views/placements.php:126
1377
  msgid "New Placement"
1378
  msgstr ""
1379
 
1380
+ #: ../admin/views/placements.php:132
1381
  msgid "Choose a placement type"
1382
  msgstr ""
1383
 
1384
+ #: ../admin/views/placements.php:133
1385
  #, php-format
1386
  msgid ""
1387
  "Placement types define where the ad is going to be displayed. Learn more "
1388
  "about the different types from the <a href=\"%s\">manual</a>"
1389
  msgstr ""
1390
 
1391
+ #: ../admin/views/placements.php:150
1392
  msgid "Choose a Name"
1393
  msgstr ""
1394
 
1395
+ #: ../admin/views/placements.php:151
1396
  msgid ""
1397
  "The name of the placement is only visible to you. Tip: choose a descriptive "
1398
  "one, e.g. <em>Below Post Headline</em>."
1399
  msgstr ""
1400
 
1401
+ #: ../admin/views/placements.php:152
1402
  msgid "Placement Name"
1403
  msgstr ""
1404
 
1405
+ #: ../admin/views/placements.php:153
1406
  msgid "Choose the Ad or Group"
1407
  msgstr ""
1408
 
1409
+ #: ../admin/views/placements.php:154
1410
  msgid "The ad or group that should be displayed."
1411
  msgstr ""
1412
 
1413
+ #: ../admin/views/placements.php:173
1414
  msgid "Save New Placement"
1415
  msgstr ""
1416
 
1728
  msgid "Display Ads and Ad Groups."
1729
  msgstr ""
1730
 
1731
+ #: ../classes/widget.php:58
1732
  msgid "Title:"
1733
  msgstr ""
1734
 
1735
+ #: ../classes/widget.php:64
1736
  msgid "--empty--"
1737
  msgstr ""
1738
 
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link:https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id
4
  Tags: ads, ad, adsense, display, banner, advertisements, adverts, advert, monetization
5
  Requires at least: WP 3.5, PHP 5.3
6
  Tested up to: 4.2.3
7
- Stable tag: 1.6.6.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -182,6 +182,23 @@ There is no revenue share. Advanced Ads doesn’t alter your ad codes in a way t
182
 
183
  == Changelog ==
184
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
185
  = 1.6.6.1 =
186
 
187
  * removed link to no-longer-existing manual page
4
  Tags: ads, ad, adsense, display, banner, advertisements, adverts, advert, monetization
5
  Requires at least: WP 3.5, PHP 5.3
6
  Tested up to: 4.2.3
7
+ Stable tag: 1.6.7
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
182
 
183
  == Changelog ==
184
 
185
+ = 1.6.7 =
186
+
187
+ *features*
188
+
189
+ * allow to inject ads into content starting from bottom
190
+ * prevent ad injection into lower-level paragraphs (e.g. into tables or containers)
191
+ * hide ad widget when the content is empty
192
+ * show post type or date when searching an individual post display condition
193
+
194
+ *fixes and maintenance*
195
+
196
+ * fix placement types images not showing up completely
197
+ * warn if any used placement type is missing
198
+ * added `advads-ad-allow-php` class to php-setting of plain text
199
+ * added `advanced-ads-activate-advanced-js` filter to allow add-ons to attach advanced js file without bothering the user
200
+ * updated German translation
201
+
202
  = 1.6.6.1 =
203
 
204
  * removed link to no-longer-existing manual page