Advanced Ads - Version 1.6.6

Version Description

features

  • added images to placement form ui
  • allow to select item when creating a new placement
  • always display placement form if no placement exists
  • display shortcode and function for default placement type
  • display notice if license keys are invalid, expired, or expire soon
  • display error when AdSense Publisher ID is missing
  • log error message in case regular expression is used wrong in visitor conditions

fixes and under-the-hood

  • extended advanced js by move and fix_element function
  • minified advanced js file
  • added advanced-ads-sanitize-settings filter to sanitize plugin options
  • added advanced-ads-can-inject-into-content filter
  • added advanced-ads-dashboard-screens filter
  • removed wrong output on Responsive settings
  • store jquery ui css locally
  • fixed saving empty placement options
  • fixed free add-on notice showing up twice
  • fixed error message in ads list when AdSense ad is empty
  • fixed saving quick edit on ad list returning wrong columns
Download this release

Release Info

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

Code changes from version 1.6.5 to 1.6.6

Files changed (42) hide show
  1. admin/assets/css/admin.css +12 -3
  2. admin/assets/img/placements/content-after.png +0 -0
  3. admin/assets/img/placements/content-before.png +0 -0
  4. admin/assets/img/placements/content-within.png +0 -0
  5. admin/assets/img/placements/footer.png +0 -0
  6. admin/assets/img/placements/header.png +0 -0
  7. admin/assets/img/placements/manual.png +0 -0
  8. admin/assets/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  9. admin/assets/jquery-ui/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  10. admin/assets/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  11. admin/assets/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  12. admin/assets/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  13. admin/assets/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  14. admin/assets/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  15. admin/assets/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  16. admin/assets/jquery-ui/images/ui-icons_222222_256x240.png +0 -0
  17. admin/assets/jquery-ui/images/ui-icons_2e83ff_256x240.png +0 -0
  18. admin/assets/jquery-ui/images/ui-icons_454545_256x240.png +0 -0
  19. admin/assets/jquery-ui/images/ui-icons_888888_256x240.png +0 -0
  20. admin/assets/jquery-ui/images/ui-icons_cd0a0a_256x240.png +0 -0
  21. admin/assets/jquery-ui/jquery-ui.min.css +7 -0
  22. admin/assets/js/admin.js +22 -0
  23. admin/class-advanced-ads-admin.php +84 -67
  24. admin/includes/class-notices.php +40 -7
  25. admin/includes/notices.php +21 -1
  26. admin/views/ad-list-details-column.php +4 -1
  27. admin/views/notices/plugin_error.php +1 -0
  28. admin/views/placements.php +67 -33
  29. admin/views/setting-license.php +2 -1
  30. advanced-ads.php +2 -2
  31. classes/ad_placements.php +21 -12
  32. classes/plugin.php +126 -9
  33. classes/visitor-conditions.php +12 -3
  34. languages/advanced-ads-de_DE.mo +0 -0
  35. languages/advanced-ads-de_DE.po +254 -209
  36. languages/advanced-ads.pot +220 -182
  37. modules/gadsense/admin/class-gadsense-admin.php +1 -1
  38. modules/gadsense/includes/class-ad-type-adsense.php +5 -0
  39. public/assets/js/advanced.js +1 -77
  40. public/assets/js/advanced.orig.js +192 -0
  41. public/class-advanced-ads.php +6 -1
  42. readme.txt +42 -12
admin/assets/css/admin.css CHANGED
@@ -131,6 +131,7 @@
131
  .advads-ad-group-list-ads span { float: right; }
132
  .advads-group-row .row-actions a { cursor: pointer; }
133
  .advads-group-row .advads-usage { margin-top: 1em; }
 
134
  .advads-group-row code { background: none; }
135
  .advads-ad-group-form > td { border-bottom: 1px solid; }
136
  .advads-ad-group-form label { display: inline-block; margin-bottom: 1em; }
@@ -140,9 +141,14 @@
140
  /**
141
  AD PLACEMENTS
142
  */
143
- .advads-placements-new-form select { display: inline-block; min-width: 10em; }
144
- .advads-placements-new-form label { display: inline-block; width: 10em; }
145
- .advads-placements-new-form input { display: inline-block; }
 
 
 
 
 
146
  .advads-placements-table { min-width: 80%; border-collapse: collapse; background: #fff; }
147
  .advads-placements-table tbody tr:nth-child(4n+1) { background: none repeat scroll 0 0 #f9f9f9; }
148
  .advads-placements-table tbody tr { border-top: 1px solid #f1f1f1; }
@@ -150,6 +156,9 @@
150
  .advads-placements-table.widefat tbody th { font-weight: bold; }
151
  .advads-placements-table th span { font-weight: normal; }
152
  .advads-placements-table td { margin: 0; padding: 10px; text-align: left; vertical-align: top; }
 
 
 
153
  .advads-placements-table-options { text-align: right; }
154
  .advads-placement-options input, .advads-placement-options select { background: transparent; }
155
  .advads-placements-table-options input[type="number"] { width: 3em; }
131
  .advads-ad-group-list-ads span { float: right; }
132
  .advads-group-row .row-actions a { cursor: pointer; }
133
  .advads-group-row .advads-usage { margin-top: 1em; }
134
+ .advads-usage code { padding: 0; background: none; }
135
  .advads-group-row code { background: none; }
136
  .advads-ad-group-form > td { border-bottom: 1px solid; }
137
  .advads-ad-group-form label { display: inline-block; margin-bottom: 1em; }
141
  /**
142
  AD PLACEMENTS
143
  */
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; }
151
+ .advads-placements-new-form .advads-placement-type label .description { padding: 10px; }
152
  .advads-placements-table { min-width: 80%; border-collapse: collapse; background: #fff; }
153
  .advads-placements-table tbody tr:nth-child(4n+1) { background: none repeat scroll 0 0 #f9f9f9; }
154
  .advads-placements-table tbody tr { border-top: 1px solid #f1f1f1; }
156
  .advads-placements-table.widefat tbody th { font-weight: bold; }
157
  .advads-placements-table th span { font-weight: normal; }
158
  .advads-placements-table td { margin: 0; padding: 10px; text-align: left; vertical-align: top; }
159
+ .advads-placements-table img { height: 50px; }
160
+ .advads-placements-table .usage-link { cursor: pointer; }
161
+ .advads-placements-table .advads-usage input { width: 100%; }
162
  .advads-placements-table-options { text-align: right; }
163
  .advads-placement-options input, .advads-placement-options select { background: transparent; }
164
  .advads-placements-table-options input[type="number"] { width: 3em; }
admin/assets/img/placements/content-after.png ADDED
Binary file
admin/assets/img/placements/content-before.png ADDED
Binary file
admin/assets/img/placements/content-within.png ADDED
Binary file
admin/assets/img/placements/footer.png ADDED
Binary file
admin/assets/img/placements/header.png ADDED
Binary file
admin/assets/img/placements/manual.png ADDED
Binary file
admin/assets/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png ADDED
Binary file
admin/assets/jquery-ui/images/ui-bg_flat_75_ffffff_40x100.png ADDED
Binary file
admin/assets/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png ADDED
Binary file
admin/assets/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png ADDED
Binary file
admin/assets/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png ADDED
Binary file
admin/assets/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png ADDED
Binary file
admin/assets/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png ADDED
Binary file
admin/assets/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png ADDED
Binary file
admin/assets/jquery-ui/images/ui-icons_222222_256x240.png ADDED
Binary file
admin/assets/jquery-ui/images/ui-icons_2e83ff_256x240.png ADDED
Binary file
admin/assets/jquery-ui/images/ui-icons_454545_256x240.png ADDED
Binary file
admin/assets/jquery-ui/images/ui-icons_888888_256x240.png ADDED
Binary file
admin/assets/jquery-ui/images/ui-icons_cd0a0a_256x240.png ADDED
Binary file
admin/assets/jquery-ui/jquery-ui.min.css ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /*! jQuery UI - v1.11.4 - 2015-03-11
2
+ * http://jqueryui.com
3
+ * Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
+ * Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
6
+
7
+ .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}
admin/assets/js/admin.js CHANGED
@@ -152,6 +152,16 @@ jQuery( document ).ready(function ($) {
152
  usagediv.show();
153
  }
154
  });
 
 
 
 
 
 
 
 
 
 
155
  // menu tabs
156
  $( '#advads-tabs' ).find( 'a' ).click(function () {
157
  $( '#advads-tabs' ).find( 'a' ).removeClass( 'nav-tab-active' );
@@ -206,6 +216,18 @@ jQuery( document ).ready(function ($) {
206
  }
207
  });
208
  });
 
 
 
 
 
 
 
 
 
 
 
 
209
  });
210
 
211
  /**
152
  usagediv.show();
153
  }
154
  });
155
+ // display ad groups usage
156
+ $( '.advads-placements-table .usage-link' ).click(function(e){
157
+ e.preventDefault();
158
+ var usagediv = $( this ).next( '.advads-usage' );
159
+ if(usagediv.is( ':visible' )){
160
+ usagediv.hide();
161
+ } else {
162
+ usagediv.show();
163
+ }
164
+ });
165
  // menu tabs
166
  $( '#advads-tabs' ).find( 'a' ).click(function () {
167
  $( '#advads-tabs' ).find( 'a' ).removeClass( 'nav-tab-active' );
216
  }
217
  });
218
  });
219
+
220
+ /**
221
+ * PLACEMENTS
222
+ */
223
+
224
+ // show image tooltips
225
+ var advads_tooltips = $( ".advads-placements-new-form" ).tooltip({
226
+ items: "img",
227
+ content: function() {
228
+ return $( this ).parents('.advads-placement-type').find( '.advads-placement-description' ).html();
229
+ }
230
+ });
231
  });
232
 
233
  /**
admin/class-advanced-ads-admin.php CHANGED
@@ -79,6 +79,10 @@ class Advanced_Ads_Admin {
79
  } else {
80
  add_action( 'plugins_loaded', array( $this, 'wp_plugins_loaded' ) );
81
  }
 
 
 
 
82
  }
83
 
84
  public function wp_plugins_loaded() {
@@ -112,8 +116,6 @@ class Advanced_Ads_Admin {
112
 
113
  // handling (ad) lists
114
  add_filter( 'request', array($this, 'ad_list_request') ); // order ads by title, not ID
115
- add_filter( 'manage_advanced_ads_posts_columns', array($this, 'ad_list_columns_head') ); // extra column
116
- add_filter( 'manage_advanced_ads_posts_custom_column', array($this, 'ad_list_columns_content'), 10, 2 ); // extra column
117
 
118
  // settings handling
119
  add_action( 'admin_init', array($this, 'settings_init') );
@@ -163,7 +165,9 @@ class Advanced_Ads_Admin {
163
  */
164
  public function enqueue_admin_styles() {
165
  wp_enqueue_style( $this->plugin_slug . '-admin-styles', plugins_url( 'assets/css/admin.css', __FILE__ ), array(), ADVADS_VERSION );
166
- wp_enqueue_style( 'jquery-style', '//code.jquery.com/ui/1.11.3/themes/smoothness/jquery-ui.css' );
 
 
167
  }
168
 
169
  /**
@@ -178,32 +182,12 @@ class Advanced_Ads_Admin {
178
  // global js script
179
  wp_enqueue_script( $this->plugin_slug . '-admin-global-script', plugins_url( 'assets/js/admin-global.js', __FILE__ ), array('jquery'), ADVADS_VERSION );
180
 
181
- /**
182
- * only include on
183
- * * advads settings pages
184
- * * ad post type
185
- * * ad groups
186
- * * ad placements
187
- * * ad overview
188
- */
189
-
190
- $screen = get_current_screen();
191
- //echo $screen->id;
192
- if( !isset( $screen->id ) ) {
193
- return;
194
- }
195
-
196
- if( $screen->id === 'advanced-ads_page_advanced-ads-groups' || // ad groups
197
- $screen->id === 'edit-advanced_ads' || // ads overview
198
- $screen->id === 'advanced_ads' || // ad edit page
199
- $screen->id === 'advanced-ads_page_advanced-ads-placements' || // placements
200
- $screen->id === 'advanced-ads_page_advanced-ads-settings' || // settings
201
- $screen->id === 'toplevel_page_advanced-ads' // overview
202
- ){
203
  wp_enqueue_script( $this->plugin_slug . '-admin-script', plugins_url( 'assets/js/admin.js', __FILE__ ), array('jquery', 'jquery-ui-autocomplete'), ADVADS_VERSION );
204
  // jquery ui
205
  wp_enqueue_script( 'jquery-ui-accordion' );
206
  wp_enqueue_script( 'jquery-ui-button' );
 
207
 
208
  // just register this script for later inclusion on ad group list page
209
  wp_register_script( 'inline-edit-group-ads', plugins_url( 'assets/js/inline-edit-group-ads.js', __FILE__ ), array('jquery'), ADVADS_VERSION );
@@ -211,6 +195,36 @@ class Advanced_Ads_Admin {
211
 
212
  }
213
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
214
  /**
215
  * Register the administration menu for this plugin into the WordPress Dashboard menu.
216
  *
@@ -282,6 +296,7 @@ class Advanced_Ads_Admin {
282
  public function display_placements_page() {
283
  $placement_types = Advanced_Ads_Placements::get_placement_types();
284
  $placements = Advanced_Ads::get_ad_placements_array(); // -TODO use model
 
285
  // load ads and groups for select field
286
 
287
  // display view
@@ -936,6 +951,8 @@ class Advanced_Ads_Admin {
936
 
937
  // sanitize whatever option one wants to sanitize
938
 
 
 
939
  return $options;
940
  }
941
 
@@ -961,28 +978,28 @@ class Advanced_Ads_Admin {
961
  return $options;
962
  }
963
 
964
- /**
965
  * add heading for extra column of ads list
966
  * remove the date column
967
  *
968
  * @since 1.3.3
969
- * @param arr $defaults
970
  */
971
- public function ad_list_columns_head($defaults){
972
-
973
- $offset = array_search( 'title', array_keys( $defaults ) ) + 1;
974
 
975
- $defaults = array_merge(
976
- array_slice( $defaults, 0, $offset ),
977
- array('ad_details' => __( 'Ad Details', ADVADS_SLUG )),
978
- array_slice( $defaults, $offset, null )
979
- );
 
 
980
 
981
- // remove the date
982
- unset($defaults['date']);
983
 
984
- return $defaults;
985
- }
986
 
987
  /**
988
  * order ads by title on ads list
@@ -990,19 +1007,19 @@ class Advanced_Ads_Admin {
990
  * @since 1.3.18
991
  * @param arr $vars array with request vars
992
  */
993
- public function ad_list_request($vars){
994
-
995
- // order ads by title on ads list
996
- if ( is_admin() && empty( $vars['orderby'] ) && $this->post_type == $vars['post_type'] ) {
997
- $vars = array_merge( $vars, array(
998
- 'orderby' => 'title',
999
- 'order' => 'ASC'
1000
- ) );
1001
- }
1002
-
1003
- return $vars;
1004
  }
1005
 
 
 
 
1006
  /**
1007
  * display ad details in ads list
1008
  *
@@ -1010,27 +1027,27 @@ class Advanced_Ads_Admin {
1010
  * @param string $column_name name of the column
1011
  * @param int $ad_id id of the ad
1012
  */
1013
- public function ad_list_columns_content($column_name, $ad_id) {
1014
- if ( $column_name == 'ad_details' ) {
1015
- $ad = new Advanced_Ads_Ad( $ad_id );
1016
-
1017
- // load ad type title
1018
- $types = Advanced_Ads::get_instance()->ad_types;
1019
- $type = ( ! empty($types[$ad->type]->title)) ? $types[$ad->type]->title : 0;
1020
-
1021
- // load ad size
1022
- $size = 0;
1023
- if ( ! empty($ad->width) || ! empty($ad->height) ) {
1024
- $size = sprintf( '%d x %d', $ad->width, $ad->height );
1025
- }
1026
 
1027
- $size = apply_filters( 'advanced-ads-list-ad-size', $size, $ad );
1028
 
1029
- include ADVADS_BASE_PATH . 'admin/views/ad-list-details-column.php';
1030
- }
1031
  }
 
1032
 
1033
- /**
1034
  * add a meta box to post type edit screens with ad settings
1035
  *
1036
  * @since 1.3.10
79
  } else {
80
  add_action( 'plugins_loaded', array( $this, 'wp_plugins_loaded' ) );
81
  }
82
+ // registering custom columns needs to work with and without DOING_AJAX
83
+ add_filter( 'manage_advanced_ads_posts_columns', array($this, 'ad_list_columns_head') ); // extra column
84
+ add_filter( 'manage_advanced_ads_posts_custom_column', array($this, 'ad_list_columns_content'), 10, 2 ); // extra column
85
+
86
  }
87
 
88
  public function wp_plugins_loaded() {
116
 
117
  // handling (ad) lists
118
  add_filter( 'request', array($this, 'ad_list_request') ); // order ads by title, not ID
 
 
119
 
120
  // settings handling
121
  add_action( 'admin_init', array($this, 'settings_init') );
165
  */
166
  public function enqueue_admin_styles() {
167
  wp_enqueue_style( $this->plugin_slug . '-admin-styles', plugins_url( 'assets/css/admin.css', __FILE__ ), array(), ADVADS_VERSION );
168
+ // jQuery ui smoothness style 1.11.4
169
+ wp_enqueue_style( $this->plugin_slug . '-jquery-ui-styles', plugins_url( 'assets/jquery-ui/jquery-ui.min.css', __FILE__ ), array(), '1.11.4' );
170
+ //wp_enqueue_style( 'jquery-style', '//code.jquery.com/ui/1.11.3/themes/smoothness/jquery-ui.css' );
171
  }
172
 
173
  /**
182
  // global js script
183
  wp_enqueue_script( $this->plugin_slug . '-admin-global-script', plugins_url( 'assets/js/admin-global.js', __FILE__ ), array('jquery'), ADVADS_VERSION );
184
 
185
+ if( self::screen_belongs_to_advanced_ads() ){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
  wp_enqueue_script( $this->plugin_slug . '-admin-script', plugins_url( 'assets/js/admin.js', __FILE__ ), array('jquery', 'jquery-ui-autocomplete'), ADVADS_VERSION );
187
  // jquery ui
188
  wp_enqueue_script( 'jquery-ui-accordion' );
189
  wp_enqueue_script( 'jquery-ui-button' );
190
+ wp_enqueue_script( 'jquery-ui-tooltip' );
191
 
192
  // just register this script for later inclusion on ad group list page
193
  wp_register_script( 'inline-edit-group-ads', plugins_url( 'assets/js/inline-edit-group-ads.js', __FILE__ ), array('jquery'), ADVADS_VERSION );
195
 
196
  }
197
 
198
+ /**
199
+ * check if the current screen belongs to Advanced Ads
200
+ *
201
+ * @since 1.6.6
202
+ * @return bool true if screen belongs to Advanced Ads
203
+ */
204
+ static function screen_belongs_to_advanced_ads(){
205
+
206
+ $screen = get_current_screen();
207
+ //echo $screen->id;
208
+ if( !isset( $screen->id ) ) {
209
+ return false;
210
+ }
211
+
212
+ $advads_pages = apply_filters( 'advanced-ads-dashboard-screens', array(
213
+ 'advanced-ads_page_advanced-ads-groups', // ad groups
214
+ 'edit-advanced_ads', // ads overview
215
+ 'advanced_ads', // ad edit page
216
+ 'advanced-ads_page_advanced-ads-placements', // placements
217
+ 'advanced-ads_page_advanced-ads-settings', // settings
218
+ 'toplevel_page_advanced-ads', // overview
219
+ ));
220
+
221
+ if( in_array( $screen->id, $advads_pages )){
222
+ return true;
223
+ }
224
+
225
+ return false;
226
+ }
227
+
228
  /**
229
  * Register the administration menu for this plugin into the WordPress Dashboard menu.
230
  *
296
  public function display_placements_page() {
297
  $placement_types = Advanced_Ads_Placements::get_placement_types();
298
  $placements = Advanced_Ads::get_ad_placements_array(); // -TODO use model
299
+ $items = Advanced_Ads_Placements::items_for_select();
300
  // load ads and groups for select field
301
 
302
  // display view
951
 
952
  // sanitize whatever option one wants to sanitize
953
 
954
+ $options = apply_filters( 'advanced-ads-sanitize-settings', $options );
955
+
956
  return $options;
957
  }
958
 
978
  return $options;
979
  }
980
 
981
+ /**
982
  * add heading for extra column of ads list
983
  * remove the date column
984
  *
985
  * @since 1.3.3
986
+ * @param arr $columns
987
  */
988
+ public function ad_list_columns_head( $columns ){
 
 
989
 
990
+ $new_columns = array();
991
+ foreach( $columns as $key => $value ) {
992
+ $new_columns[ $key ] = $value;
993
+ if ( $key == 'title' ){
994
+ $new_columns[ 'ad_details' ] = __( 'Ad Details', ADVADS_SLUG );
995
+ }
996
+ }
997
 
998
+ // remove the date
999
+ unset( $new_columns[ 'date' ] );
1000
 
1001
+ return $new_columns;
1002
+ }
1003
 
1004
  /**
1005
  * order ads by title on ads list
1007
  * @since 1.3.18
1008
  * @param arr $vars array with request vars
1009
  */
1010
+ public function ad_list_request($vars){
1011
+
1012
+ // order ads by title on ads list
1013
+ if ( is_admin() && empty( $vars['orderby'] ) && $this->post_type == $vars['post_type'] ) {
1014
+ $vars = array_merge( $vars, array(
1015
+ 'orderby' => 'title',
1016
+ 'order' => 'ASC'
1017
+ ) );
 
 
 
1018
  }
1019
 
1020
+ return $vars;
1021
+ }
1022
+
1023
  /**
1024
  * display ad details in ads list
1025
  *
1027
  * @param string $column_name name of the column
1028
  * @param int $ad_id id of the ad
1029
  */
1030
+ public function ad_list_columns_content($column_name, $ad_id) {
1031
+ if ( $column_name == 'ad_details' ) {
1032
+ $ad = new Advanced_Ads_Ad( $ad_id );
1033
+
1034
+ // load ad type title
1035
+ $types = Advanced_Ads::get_instance()->ad_types;
1036
+ $type = ( ! empty($types[$ad->type]->title)) ? $types[$ad->type]->title : 0;
1037
+
1038
+ // load ad size
1039
+ $size = 0;
1040
+ if ( ! empty($ad->width) || ! empty($ad->height) ) {
1041
+ $size = sprintf( '%d x %d', $ad->width, $ad->height );
1042
+ }
1043
 
1044
+ $size = apply_filters( 'advanced-ads-list-ad-size', $size, $ad );
1045
 
1046
+ include ADVADS_BASE_PATH . 'admin/views/ad-list-details-column.php';
 
1047
  }
1048
+ }
1049
 
1050
+ /**
1051
  * add a meta box to post type edit screens with ad settings
1052
  *
1053
  * @since 1.3.10
admin/includes/class-notices.php CHANGED
@@ -128,6 +128,9 @@ class Advanced_Ads_Admin_Notices {
128
  if ( version_compare( $old_version, '1.6' ) == -1 ) {
129
  $this->notices[] = '1.6';
130
  }
 
 
 
131
  }
132
  $new_options['version'] = ADVADS_VERSION;
133
 
@@ -150,9 +153,32 @@ class Advanced_Ads_Admin_Notices {
150
  $queue = isset($options['queue']) ? $options['queue'] : array();
151
 
152
  // offer free add-ons if not yet subscribed
153
- if ( ! $this->is_subscribed() && ! isset( $queue['nl_free_addons'] ) && ! isset( $closed['nl_free_addons'] )) {
154
  $this->notices[] = 'nl_free_addons';
155
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156
  }
157
 
158
  /**
@@ -249,6 +275,14 @@ class Advanced_Ads_Admin_Notices {
249
  case 'subscribe' :
250
  include ADVADS_BASE_PATH . '/admin/views/notices/subscribe.php';
251
  break;
 
 
 
 
 
 
 
 
252
  default :
253
  include ADVADS_BASE_PATH . '/admin/views/notices/error.php';
254
  }
@@ -296,7 +330,7 @@ class Advanced_Ads_Admin_Notices {
296
  * @param string $notice slug of the subscription notice to send the correct reply
297
  */
298
  public function subscribe($notice) {
299
- if ( ! isset($notice) ) {
300
  return;
301
  }
302
 
@@ -304,12 +338,12 @@ class Advanced_Ads_Admin_Notices {
304
  $user = wp_get_current_user();
305
 
306
  if ( $user->user_email == '' ) {
307
- return sprintf( __( 'You don’t seem to have an email address. Please add one to your <a href="%s">WordPress profile</a>', ADVADS_SLUG ), get_edit_user_link() );
308
  }
309
 
310
  $data = array(
311
- 'email' => $user->user_email,
312
- 'notice' => $notice
313
  );
314
 
315
  $result = wp_remote_post('https://wpadvancedads.com/remote/subscribe.php?source=plugin', array(
@@ -327,7 +361,7 @@ class Advanced_Ads_Admin_Notices {
327
  // mark as subscribed and move notice from quere
328
  $this->mark_as_subscribed();
329
  $this->remove_from_queue( $notice );
330
- return true;
331
  }
332
  }
333
 
@@ -390,5 +424,4 @@ class Advanced_Ads_Admin_Notices {
390
  $text = $notice['text'];
391
  include ADVADS_BASE_PATH . '/admin/views/notices/inline.php';
392
  }
393
-
394
  }
128
  if ( version_compare( $old_version, '1.6' ) == -1 ) {
129
  $this->notices[] = '1.6';
130
  }
131
+ if ( version_compare( $old_version, '1.6.6' ) == -1 ) {
132
+ $this->notices[] = '1.6.6';
133
+ }
134
  }
135
  $new_options['version'] = ADVADS_VERSION;
136
 
153
  $queue = isset($options['queue']) ? $options['queue'] : array();
154
 
155
  // offer free add-ons if not yet subscribed
156
+ if ( ! $this->is_subscribed() && ! in_array( 'nl_free_addons', $queue ) && ! isset( $closed['nl_free_addons'] )) {
157
  $this->notices[] = 'nl_free_addons';
158
  }
159
+
160
+ if( Advanced_Ads_Admin::screen_belongs_to_advanced_ads() ){
161
+ // check license keys
162
+
163
+ if ( Advanced_Ads_Plugin::check_licenses_invalid() && ! in_array( 'license_invalid', $queue )) {
164
+ $this->notices[] = 'license_invalid';
165
+ } else {
166
+ $this->remove_from_queue( 'license_invalid' );
167
+ }
168
+
169
+ // check expiring licenses
170
+ if ( Advanced_Ads_Plugin::check_licenses_expire() && ! in_array( 'license_expires', $queue )) {
171
+ $this->notices[] = 'license_expires';
172
+ } else {
173
+ $this->remove_from_queue( 'license_expires' );
174
+ }
175
+ // check expired licenses
176
+ if ( Advanced_Ads_Plugin::check_licenses_expired() && ! in_array( 'license_expired', $queue )) {
177
+ $this->notices[] = 'license_expired';
178
+ } else {
179
+ $this->remove_from_queue( 'license_expired' );
180
+ }
181
+ }
182
  }
183
 
184
  /**
275
  case 'subscribe' :
276
  include ADVADS_BASE_PATH . '/admin/views/notices/subscribe.php';
277
  break;
278
+ case 'plugin_error' :
279
+ // only display on plugin pages
280
+ if( Advanced_Ads_Admin::screen_belongs_to_advanced_ads() ){
281
+ include ADVADS_BASE_PATH . '/admin/views/notices/plugin_error.php';
282
+ } else {
283
+ continue 2; // continue with next foreach loop
284
+ }
285
+ break;
286
  default :
287
  include ADVADS_BASE_PATH . '/admin/views/notices/error.php';
288
  }
330
  * @param string $notice slug of the subscription notice to send the correct reply
331
  */
332
  public function subscribe($notice) {
333
+ if ( ! isset( $notice ) ) {
334
  return;
335
  }
336
 
338
  $user = wp_get_current_user();
339
 
340
  if ( $user->user_email == '' ) {
341
+ return sprintf( __( 'You don’t seem to have an email address. Please use <a href="%s" target="_blank">this form</a> to sign up.', ADVADS_SLUG ), 'http://eepurl.com/bk4z4P' );
342
  }
343
 
344
  $data = array(
345
+ 'email' => $user->user_email,
346
+ 'notice' => $notice
347
  );
348
 
349
  $result = wp_remote_post('https://wpadvancedads.com/remote/subscribe.php?source=plugin', array(
361
  // mark as subscribed and move notice from quere
362
  $this->mark_as_subscribed();
363
  $this->remove_from_queue( $notice );
364
+ return sprintf(__( 'Please check your email (%s) for the confirmation message. If you didn’t receive one or want to use another email address then please use <a href="%s" target="_blank">this form</a> to sign up.', ADVADS_SLUG ), $user->user_email, 'http://eepurl.com/bk4z4P' );
365
  }
366
  }
367
 
424
  $text = $notice['text'];
425
  include ADVADS_BASE_PATH . '/admin/views/notices/inline.php';
426
  }
 
427
  }
admin/includes/notices.php CHANGED
@@ -31,9 +31,29 @@ $advanced_ads_admin_notices = array(
31
  'type' => 'update',
32
  'text' => 'With Advanced Ads 1.5.4 the handling of <strong>visitor conditions</strong> became more consistent, flexible, and hopefully easier to use too. Please read this <a href="http://wpadvancedads.com/advanced-ads-1-5-4/" target="_blank">update post</a> to learn if this change should concern you.',
33
  ),
34
- // if users updated from a previous version to 1.5.7
35
  '1.6' => array(
36
  'type' => 'update',
37
  'text' => 'Advanced Ads 1.6 contains important <strong>fixes for ad groups</strong>. Please read the <a href="https://wpadvancedads.com/advanced-ads-1-6/" target="_blank">update post</a>.',
38
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  );
31
  'type' => 'update',
32
  'text' => 'With Advanced Ads 1.5.4 the handling of <strong>visitor conditions</strong> became more consistent, flexible, and hopefully easier to use too. Please read this <a href="http://wpadvancedads.com/advanced-ads-1-5-4/" target="_blank">update post</a> to learn if this change should concern you.',
33
  ),
34
+ // if users updated from a previous version to 1.6
35
  '1.6' => array(
36
  'type' => 'update',
37
  'text' => 'Advanced Ads 1.6 contains important <strong>fixes for ad groups</strong>. Please read the <a href="https://wpadvancedads.com/advanced-ads-1-6/" target="_blank">update post</a>.',
38
  ),
39
+ // if users updated from a previous version to 1.6.6
40
+ '1.6.6' => array(
41
+ 'type' => 'update',
42
+ 'text' => 'Advanced Ads 1.6.6 changed <a href="/wp-admin/admin.php?page=advanced-ads-placements">placements</a> completely. Take a look at the <a href="https://wpadvancedads.com/advanced-ads-1-6-6/" target="_blank">update post</a> to find out why I am so excited about it.',
43
+ ),
44
+ // missing license codes
45
+ 'license_invalid' => array(
46
+ 'type' => 'plugin_error',
47
+ 'text' => sprintf( __( 'One or more license keys for <strong>Advanced Ads add-ons are invalid or missing</strong>. Please add valid license keys <a href="%s">here</a>.', ADVADS_SLUG ), admin_url( 'admin.php?page=advanced-ads-settings#top#licenses' ) )
48
+ ),
49
+ // license expires
50
+ 'license_expires' => array(
51
+ 'type' => 'plugin_error',
52
+ 'text' => sprintf( __( 'One or more licenses for your <strong>Advanced Ads add-ons are expiring soon</strong>. Don’t risk to lose support and updates and renew your license before it expires with a significant discount on <a href="%s" target="_blank">the add-on page</a>.', ADVADS_SLUG ), 'https://wpadvancedads.com/add-ons/' ),
53
+ ),
54
+ // license expired
55
+ 'license_expired' => array(
56
+ 'type' => 'plugin_error',
57
+ 'text' => sprintf( __( '<strong>Advanced Ads</strong> license(s) expired. Support and updates are disabled. Please visit <a href="%s"> the license page</a> for more information.', ADVADS_SLUG ), admin_url( 'admin.php?page=advanced-ads-settings#top#licenses' ) ),
58
+ ),
59
  );
admin/views/ad-list-details-column.php CHANGED
@@ -1,7 +1,10 @@
1
- <?php if ( ! empty($type) ) :
 
 
2
  ?><p><strong><?php echo $type; ?></strong></p><?php
3
  endif;
4
  if ( ! empty($size) ) :
5
  ?><p><?php echo $size; ?></p><?php
6
  endif;
7
  do_action( 'advanced-ads-ad-list-details-column-after', $ad );
 
1
+ <fieldset class="inline-edit-col-left">
2
+ <div class="inline-edit-col"><?php
3
+ if ( ! empty($type) ) :
4
  ?><p><strong><?php echo $type; ?></strong></p><?php
5
  endif;
6
  if ( ! empty($size) ) :
7
  ?><p><?php echo $size; ?></p><?php
8
  endif;
9
  do_action( 'advanced-ads-ad-list-details-column-after', $ad );
10
+ ?></div></fieldset>
admin/views/notices/plugin_error.php ADDED
@@ -0,0 +1 @@
 
1
+ <div class="error advads-admin-notice"><p><?php echo $text; ?><?php ?></p></div>
admin/views/placements.php CHANGED
@@ -5,7 +5,7 @@
5
  ?><div class="wrap">
6
  <?php if ( isset($_GET['message'] ) ) :
7
  if ( $_GET['message'] === 'error' ) :
8
- ?><div id="message" class="error"><p><?php _e( 'Couldn’t create empty or existing slug.', ADVADS_SLUG ); ?></p></div><?php
9
  elseif ( $_GET['message'] === 'updated' ) :
10
  ?><div id="message" class="updated"><p><?php _e( 'Placements updated', ADVADS_SLUG ); ?></p></div><?php
11
  endif; ?>
@@ -16,22 +16,12 @@
16
  <p class="description"><?php printf( __( 'See also the manual for more information on <a href="%s">placements</a> and <a href="%s">auto injection</a>.', ADVADS_SLUG ), ADVADS_URL . 'manual/placements/', ADVADS_URL . 'manual/auto-injection/' ); ?></p>
17
  <?php if ( isset($placements) && is_array( $placements ) && count( $placements ) ) : ?>
18
  <h2><?php _e( 'Placements', ADVADS_SLUG ); ?></h2>
19
- <a onclick="advads_toggle('#advads-ad-place-display-info')"><?php _e( 'How to use the <i>default</i> Ad Placement?', ADVADS_SLUG ); ?></a>
20
- <div id="advads-ad-place-display-info" style="display: none;">
21
- <p><?php printf( __( 'Examples on how to use the <i>default</i> ad placement? Find more help and examples in the <a href="%s" target="_blank">manual</a>', ADVADS_SLUG ), ADVADS_URL . 'manual/placements/' ); ?></p>
22
- <h4><?php _e( 'shortcode', ADVADS_SLUG ); ?></h4>
23
- <p class="description"><?php _e( 'To use an ad placement with the ID skyscraper_left in content fields', ADVADS_SLUG ); ?></p>
24
- <pre><input type="text" onclick="this.select();" style="width: 400px;" value='[the_ad_placement id="skyscraper_left"]'/></pre>
25
- <h4><?php _e( 'template', ADVADS_SLUG ); ?></h4>
26
- <p class="description"><?php _e( 'To use an ad placement with the ID skyscraper_left in template files', ADVADS_SLUG ); ?></p>
27
- <pre><input type="text" onclick="this.select();" style="width: 400px;" value='the_ad_placement("skyscraper_left");'/></pre>
28
- </div>
29
  <form method="POST" action="">
30
  <table class="widefat advads-placements-table">
31
  <thead>
32
  <tr>
33
- <th><?php _e( 'Name', ADVADS_SLUG ); ?></th>
34
  <th><?php _e( 'Type', ADVADS_SLUG ); ?></th>
 
35
  <th><?php _e( 'Options', ADVADS_SLUG ); ?></th>
36
  <th></th>
37
  </tr>
@@ -41,18 +31,35 @@
41
  $_placement['type'] = ( ! empty($_placement['type'])) ? $_placement['type'] : 'default';
42
  ?>
43
  <tr>
44
- <th><?php echo $_placement['name']; ?><br/>
 
 
 
 
 
 
 
 
 
 
 
 
45
  <?php if( 'default' === $_placement['type']) :
46
- ?><span>ID: <?php echo $_placement_slug; ?></span><?php
 
 
 
 
 
 
 
47
  endif;
48
- ?></th>
49
- <td><?php echo (isset($_placement['type']) && ! empty($placement_types[$_placement['type']]['title'])) ? $placement_types[$_placement['type']]['title'] : __( 'default', ADVADS_SLUG ); ?></td>
50
  <td class="advads-placements-table-options">
51
- <?php do_action( 'advanced-ads-placement-options-before', $_placement_slug, $_placement );
52
- $items = Advanced_Ads_Placements::items_for_select(); ?>
53
  <label for="adsads-placements-item-<?php echo $_placement_slug; ?>"><?php _e( 'Item', ADVADS_SLUG ); ?></label>
54
  <select id="adsads-placements-item-<?php echo $_placement_slug; ?>" name="advads[placements][<?php echo $_placement_slug; ?>][item]">
55
- <option value=""><?php _e( '--empty--', ADVADS_SLUG ); ?></option>
56
  <?php if ( isset($items['groups']) ) : ?>
57
  <optgroup label="<?php _e( 'Ad Groups', ADVADS_SLUG ); ?>">
58
  <?php foreach ( $items['groups'] as $_item_id => $_item_title ) : ?>
@@ -94,8 +101,7 @@
94
  break;
95
  endswitch;
96
  do_action( 'advanced-ads-placement-options-after', $_placement_slug, $_placement );
97
- ?>
98
- </td>
99
  <td>
100
  <input type="checkbox" id="adsads-placements-item-delete-<?php echo $_placement_slug; ?>" name="advads[placements][<?php echo $_placement_slug; ?>][delete]" value="1"/>
101
  <label for="adsads-placements-item-delete-<?php echo $_placement_slug; ?>"><?php _e( 'remove placement', ADVADS_SLUG ); ?></label>
@@ -106,26 +112,54 @@
106
  </table>
107
  <input type="submit" class="button button-primary" value="<?php _e( 'Save Placements', ADVADS_SLUG ); ?>"/>
108
  <?php wp_nonce_field( 'advads-placement', 'advads_placement', true ) ?>
 
 
109
  </form>
110
- <?php endif; ?>
 
111
 
112
- <p><button type="button" class="<?php echo ( isset($placements) && count( $placements ) ) ? 'button-secondary' : 'button-primary'; ?>" onclick="advads_toggle('.advads-placements-new-form')"><?php _e( 'Create a new placement', ADVADS_SLUG ); ?></button></p>
113
- <form method="POST" action="" class="advads-placements-new-form" style="display: none;">
114
- <h4>1. <?php _e( 'Choose a placement type', ADVADS_SLUG ); ?></h4>
115
- <p class="description"><?php printf(__( 'Placement types define how the placements works and where it is going to be displayed. Learn more about the different types from the <a href="%s">manual</a>', ADVADS_SLUG ), ADVADS_URL . 'manual/placements/' ); ?></p>
116
  <?php
117
  if ( is_array( $placement_types ) ) {
118
  foreach ( $placement_types as $_key => $_place ) :
119
- ?><p><label>
120
- <input type="radio" name="advads[placement][type]" value="<?php echo $_key; ?>"/><?php echo $_place['title']; ?></label>
121
- <span class="description"><?php echo $_place['description']; ?></span>
122
- </p><?php
 
 
 
 
 
123
  endforeach; };
124
- ?>
125
- <h4>2. <?php _e( 'Choose a Name', ADVADS_SLUG ); ?></h4>
 
126
  <p class="description"><?php _e( 'The name of the placement is only visible to you. Tip: choose a descriptive one, e.g. <em>Below Post Headline</em>.', ADVADS_SLUG ); ?></p>
127
  <p><input name="advads[placement][name]" type="text" value="" placeholder="<?php _e( 'Placement Name', ADVADS_SLUG ); ?>"/></p>
128
- <input type="submit" class="button button-primary" value="<?php _e( 'Save New Placement', ADVADS_SLUG ); ?>"/>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
  <?php wp_nonce_field( 'advads-placement', 'advads_placement', true ) ?>
 
130
  </form>
131
  </div>
5
  ?><div class="wrap">
6
  <?php if ( isset($_GET['message'] ) ) :
7
  if ( $_GET['message'] === 'error' ) :
8
+ ?><div id="message" class="error"><p><?php _e( 'Couldn’t create the new placement. Please check your form field and whether the name is already in use.', ADVADS_SLUG ); ?></p></div><?php
9
  elseif ( $_GET['message'] === 'updated' ) :
10
  ?><div id="message" class="updated"><p><?php _e( 'Placements updated', ADVADS_SLUG ); ?></p></div><?php
11
  endif; ?>
16
  <p class="description"><?php printf( __( 'See also the manual for more information on <a href="%s">placements</a> and <a href="%s">auto injection</a>.', ADVADS_SLUG ), ADVADS_URL . 'manual/placements/', ADVADS_URL . 'manual/auto-injection/' ); ?></p>
17
  <?php if ( isset($placements) && is_array( $placements ) && count( $placements ) ) : ?>
18
  <h2><?php _e( 'Placements', ADVADS_SLUG ); ?></h2>
 
 
 
 
 
 
 
 
 
 
19
  <form method="POST" action="">
20
  <table class="widefat advads-placements-table">
21
  <thead>
22
  <tr>
 
23
  <th><?php _e( 'Type', ADVADS_SLUG ); ?></th>
24
+ <th><?php _e( 'Name', ADVADS_SLUG ); ?></th>
25
  <th><?php _e( 'Options', ADVADS_SLUG ); ?></th>
26
  <th></th>
27
  </tr>
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
39
+ else :
40
+ echo $placement_types[$_placement['type']]['title'];
41
+ endif;
42
+ else :
43
+ __( 'default', ADVADS_SLUG );
44
+ endif;
45
+ ?></td>
46
+ <td><?php echo $_placement['name']; ?><br/>
47
  <?php if( 'default' === $_placement['type']) :
48
+ ?><a class="usage-link"><?php _e( 'show usage', ADVADS_SLUG ); ?></a><div class="hidden advads-usage">
49
+ <label><?php _e( 'shortcode', ADVADS_SLUG ); ?>
50
+ <code><input type="text" onclick="this.select();" value='[the_ad_placement id="<?php echo $_placement_slug; ?>"]'/></code>
51
+ </label>
52
+ <label><?php _e( 'template', ADVADS_SLUG ); ?>
53
+ <code><input type="text" onclick="this.select();" value="the_ad_placement('<?php echo $_placement_slug; ?>');"/></code>
54
+ </label>
55
+ </div><?php
56
  endif;
57
+ ?></td>
 
58
  <td class="advads-placements-table-options">
59
+ <?php do_action( 'advanced-ads-placement-options-before', $_placement_slug, $_placement ); ?>
 
60
  <label for="adsads-placements-item-<?php echo $_placement_slug; ?>"><?php _e( 'Item', ADVADS_SLUG ); ?></label>
61
  <select id="adsads-placements-item-<?php echo $_placement_slug; ?>" name="advads[placements][<?php echo $_placement_slug; ?>][item]">
62
+ <option value=""><?php _e( '--not selected--', ADVADS_SLUG ); ?></option>
63
  <?php if ( isset($items['groups']) ) : ?>
64
  <optgroup label="<?php _e( 'Ad Groups', ADVADS_SLUG ); ?>">
65
  <?php foreach ( $items['groups'] as $_item_id => $_item_title ) : ?>
101
  break;
102
  endswitch;
103
  do_action( 'advanced-ads-placement-options-after', $_placement_slug, $_placement );
104
+ ?></td>
 
105
  <td>
106
  <input type="checkbox" id="adsads-placements-item-delete-<?php echo $_placement_slug; ?>" name="advads[placements][<?php echo $_placement_slug; ?>][delete]" value="1"/>
107
  <label for="adsads-placements-item-delete-<?php echo $_placement_slug; ?>"><?php _e( 'remove placement', ADVADS_SLUG ); ?></label>
112
  </table>
113
  <input type="submit" class="button button-primary" value="<?php _e( 'Save Placements', ADVADS_SLUG ); ?>"/>
114
  <?php wp_nonce_field( 'advads-placement', 'advads_placement', true ) ?>
115
+ <button type="button" title="<?php _e( 'Create a new placement', ADVADS_SLUG ); ?>" class="button-secondary" onclick="advads_toggle('.advads-placements-new-form')"><?php
116
+ _e( 'New Placement', ADVADS_SLUG ); ?></button>
117
  </form>
118
+ <?php do_action( 'advanced-ads-placements-list-after', $placements );
119
+ endif;
120
 
121
+ ?><form method="POST" action="" class="advads-placements-new-form"<?php if ( isset($placements) && count( $placements ) ) echo ' style="display: none;"' ; ?>>
122
+ <h3>1. <?php _e( 'Choose a placement type', ADVADS_SLUG ); ?></h3>
123
+ <p class="description"><?php printf(__( 'Placement types define where the ad is going to be displayed. Learn more about the different types from the <a href="%s">manual</a>', ADVADS_SLUG ), ADVADS_URL . 'manual/placements/' ); ?></p>
124
+ <div class= "advads-new-placement-types advads-buttonset">
125
  <?php
126
  if ( is_array( $placement_types ) ) {
127
  foreach ( $placement_types as $_key => $_place ) :
128
+ if( isset( $_place['image'] )) :
129
+ $image = '<img src="' . $_place['image'] . '"/>';
130
+ else :
131
+ $image = '<strong>' . $_place['title'] . '</strong><br/><p class="description">' . $_place['description'] . '</p>';
132
+ endif;
133
+ ?><div class="advads-placement-type"><label for="advads-placement-type-<?php echo $_key; ?>"><?php echo $image; ?></label>
134
+ <input type="radio" id="advads-placement-type-<?php echo $_key; ?>" name="advads[placement][type]" value="<?php echo $_key; ?>"/>
135
+ <p class="advads-placement-description"><strong><?php echo $_place['title'] ?></strong><br/><?php echo $_place['description']; ?></p>
136
+ </div><?php
137
  endforeach; };
138
+ ?></div>
139
+ <div class="clear"/><br/>
140
+ <h3>2. <?php _e( 'Choose a Name', ADVADS_SLUG ); ?></h3>
141
  <p class="description"><?php _e( 'The name of the placement is only visible to you. Tip: choose a descriptive one, e.g. <em>Below Post Headline</em>.', ADVADS_SLUG ); ?></p>
142
  <p><input name="advads[placement][name]" type="text" value="" placeholder="<?php _e( 'Placement Name', ADVADS_SLUG ); ?>"/></p>
143
+ <h3>3. <?php _e( 'Choose the Ad or Group', ADVADS_SLUG ); ?></h3>
144
+ <p class="description"><?php _e( 'The ad or group that should be displayed.', ADVADS_SLUG ); ?></p>
145
+ <p><select name="advads[placement][item]">
146
+ <option value=""><?php _e( '--not selected--', ADVADS_SLUG ); ?></option>
147
+ <?php if ( isset($items['groups']) ) : ?>
148
+ <optgroup label="<?php _e( 'Ad Groups', ADVADS_SLUG ); ?>">
149
+ <?php foreach ( $items['groups'] as $_item_id => $_item_title ) : ?>
150
+ <option value="<?php echo $_item_id; ?>"><?php echo $_item_title; ?></option>
151
+ <?php endforeach; ?>
152
+ </optgroup>
153
+ <?php endif; ?>
154
+ <?php if ( isset($items['ads']) ) : ?>
155
+ <optgroup label="<?php _e( 'Ads', ADVADS_SLUG ); ?>">
156
+ <?php foreach ( $items['ads'] as $_item_id => $_item_title ) : ?>
157
+ <option value="<?php echo $_item_id; ?>"><?php echo $_item_title; ?></option>
158
+ <?php endforeach; ?>
159
+ </optgroup>
160
+ <?php endif; ?>
161
+ </select></p>
162
  <?php wp_nonce_field( 'advads-placement', 'advads_placement', true ) ?>
163
+ <input type="submit" class="button button-primary" value="<?php _e( 'Save New Placement', ADVADS_SLUG ); ?>"/>
164
  </form>
165
  </div>
admin/views/setting-license.php CHANGED
@@ -6,7 +6,8 @@ if( $expires ){
6
  $expires_time = strtotime( $expires );
7
  $days_left = ( $expires_time - time() ) / DAY_IN_SECONDS;
8
  if( $days_left <= 0 ){
9
- $errortext = sprintf(__( 'Your license expired. Please visit <a href="%s" target="_blank">the plugin page</a> to renew it.', ADVADS_SLUG ), ADVADS_URL );
 
10
  $expired = true;
11
  }
12
  };
6
  $expires_time = strtotime( $expires );
7
  $days_left = ( $expires_time - time() ) / DAY_IN_SECONDS;
8
  if( $days_left <= 0 ){
9
+ $plugin_url = isset( $plugin_url ) ? $plugin_url : ADVADS_URL;
10
+ $errortext = sprintf(__( 'Your license expired. Please visit <a href="%s" target="_blank">the plugin page</a> to renew it.', ADVADS_SLUG ), $plugin_url );
11
  $expired = true;
12
  }
13
  };
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.5
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.5' );
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.6
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.6' );
42
 
43
  /*----------------------------------------------------------------------------*
44
  * Autoloading, modules and functions
classes/ad_placements.php CHANGED
@@ -28,28 +28,34 @@ class Advanced_Ads_Placements {
28
  public static function get_placement_types() {
29
  $types = array(
30
  'default' => array(
31
- 'title' => __( 'default', ADVADS_SLUG ),
32
- 'description' => __( 'Manual placement.', ADVADS_SLUG ),
 
33
  ),
34
  'header' => array(
35
- 'title' => __( 'header', ADVADS_SLUG ),
36
- 'description' => __( 'Injected in Header (before closing </head> Tag, often not visible).', ADVADS_SLUG ),
 
37
  ),
38
  'footer' => array(
39
- 'title' => __( 'footer', ADVADS_SLUG ),
40
- 'description' => __( 'Injected in Footer (before closing </body> Tag).', ADVADS_SLUG ),
 
41
  ),
42
  'post_top' => array(
43
- 'title' => __( 'before post', ADVADS_SLUG ),
44
  'description' => __( 'Injected before the post content.', ADVADS_SLUG ),
 
45
  ),
46
  'post_bottom' => array(
47
- 'title' => __( 'after post', ADVADS_SLUG ),
48
  'description' => __( 'Injected after the post content.', ADVADS_SLUG ),
 
49
  ),
50
  'post_content' => array(
51
- 'title' => __( 'post content', ADVADS_SLUG ),
52
  'description' => __( 'Injected into the post content. You can choose the paragraph after which the ad content is displayed.', ADVADS_SLUG ),
 
53
  ),
54
  );
55
  return apply_filters( 'advanced-ads-placement-types', $types );
@@ -97,8 +103,8 @@ class Advanced_Ads_Placements {
97
  $new_placement['slug'] = sanitize_title( $new_placement['name'] );
98
 
99
  // check if slug already exists or is empty
100
- if ( $new_placement['slug'] === '' || isset( $placements[$new_placement['slug']] ) ) {
101
- return false;
102
  }
103
 
104
  // make sure only allowed types are being saved
@@ -110,7 +116,8 @@ class Advanced_Ads_Placements {
110
  // add new place to all placements
111
  $placements[$new_placement['slug']] = array(
112
  'type' => $new_placement['type'],
113
- 'name' => $new_placement['name']
 
114
  );
115
 
116
  // save array
@@ -145,6 +152,8 @@ class Advanced_Ads_Placements {
145
  $placements[$_placement_slug]['options'] = $_placement['options'];
146
  if ( isset($placements[$_placement_slug]['options']['index']) ) {
147
  $placements[$_placement_slug]['options']['index'] = absint( $placements[$_placement_slug]['options']['index'] ); }
 
 
148
  }
149
  }
150
 
28
  public static function get_placement_types() {
29
  $types = array(
30
  'default' => array(
31
+ 'title' => __( 'Manual Placement', ADVADS_SLUG ),
32
+ 'description' => __( 'Manual placement to use as function or shortcode.', ADVADS_SLUG ),
33
+ 'image' => ADVADS_BASE_URL . 'admin/assets/img/placements/manual.png'
34
  ),
35
  'header' => array(
36
+ 'title' => __( 'Header Code', ADVADS_SLUG ),
37
+ 'description' => __( 'Injected in Header (before closing &lt;/head&gt; Tag, often not visible).', ADVADS_SLUG ),
38
+ 'image' => ADVADS_BASE_URL . 'admin/assets/img/placements/header.png'
39
  ),
40
  'footer' => array(
41
+ 'title' => __( 'Footer Code', ADVADS_SLUG ),
42
+ 'description' => __( 'Injected in Footer (before closing &lt;/body&gt; Tag).', ADVADS_SLUG ),
43
+ 'image' => ADVADS_BASE_URL . 'admin/assets/img/placements/footer.png'
44
  ),
45
  'post_top' => array(
46
+ 'title' => __( 'Before Content', ADVADS_SLUG ),
47
  'description' => __( 'Injected before the post content.', ADVADS_SLUG ),
48
+ 'image' => ADVADS_BASE_URL . 'admin/assets/img/placements/content-before.png'
49
  ),
50
  'post_bottom' => array(
51
+ 'title' => __( 'After Content', ADVADS_SLUG ),
52
  'description' => __( 'Injected after the post content.', ADVADS_SLUG ),
53
+ 'image' => ADVADS_BASE_URL . 'admin/assets/img/placements/content-after.png'
54
  ),
55
  'post_content' => array(
56
+ 'title' => __( 'Post Content', ADVADS_SLUG ),
57
  'description' => __( 'Injected into the post content. You can choose the paragraph after which the ad content is displayed.', ADVADS_SLUG ),
58
+ 'image' => ADVADS_BASE_URL . 'admin/assets/img/placements/content-within.png'
59
  ),
60
  );
61
  return apply_filters( 'advanced-ads-placement-types', $types );
103
  $new_placement['slug'] = sanitize_title( $new_placement['name'] );
104
 
105
  // check if slug already exists or is empty
106
+ if ( $new_placement['slug'] === '' || isset( $placements[$new_placement['slug']]) || !isset( $new_placement['type'] ) ) {
107
+ return false;
108
  }
109
 
110
  // make sure only allowed types are being saved
116
  // add new place to all placements
117
  $placements[$new_placement['slug']] = array(
118
  'type' => $new_placement['type'],
119
+ 'name' => $new_placement['name'],
120
+ 'item' => $new_placement['item']
121
  );
122
 
123
  // save array
152
  $placements[$_placement_slug]['options'] = $_placement['options'];
153
  if ( isset($placements[$_placement_slug]['options']['index']) ) {
154
  $placements[$_placement_slug]['options']['index'] = absint( $placements[$_placement_slug]['options']['index'] ); }
155
+ } else {
156
+ $placements[$_placement_slug]['options'] = array();
157
  }
158
  }
159
 
classes/plugin.php CHANGED
@@ -409,9 +409,19 @@ class Advanced_Ads_Plugin {
409
  }
410
 
411
  foreach( $add_ons as $_add_on_key => $_add_on ){
 
 
 
 
 
 
 
 
 
 
412
  // check status
413
- if(get_option($_add_on['options_slug'] . '-license-status', false) !== 'valid') {
414
- return;
415
  }
416
 
417
  // retrieve our license key from the DB
@@ -419,13 +429,120 @@ class Advanced_Ads_Plugin {
419
  $license_key = isset($licenses[$_add_on_key]) ? $licenses[$_add_on_key] : '';
420
 
421
  // setup the updater
422
- new EDD_SL_Plugin_Updater( ADVADS_URL, $_add_on['path'], array(
423
- 'version' => $_add_on['version'],
424
- 'license' => $license_key,
425
- 'item_name' => $_add_on['name'],
426
- 'author' => 'Thomas Maier'
427
- )
428
- );
 
 
429
  }
430
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
431
  }
409
  }
410
 
411
  foreach( $add_ons as $_add_on_key => $_add_on ){
412
+
413
+ // check if a license expired over time
414
+ $expiry_date = get_option($_add_on['options_slug'] . '-license-expires', false);
415
+ $now = time();
416
+ if( $expiry_date && strtotime( $expiry_date ) < $now ){
417
+ // remove license status
418
+ delete_option( $_add_on['options_slug'] . '-license-status' );
419
+ continue;
420
+ }
421
+
422
  // check status
423
+ if( get_option($_add_on['options_slug'] . '-license-status', false) !== 'valid' ) {
424
+ continue;
425
  }
426
 
427
  // retrieve our license key from the DB
429
  $license_key = isset($licenses[$_add_on_key]) ? $licenses[$_add_on_key] : '';
430
 
431
  // setup the updater
432
+ if( $license_key ){
433
+ new EDD_SL_Plugin_Updater( ADVADS_URL, $_add_on['path'], array(
434
+ 'version' => $_add_on['version'],
435
+ 'license' => $license_key,
436
+ 'item_name' => $_add_on['name'],
437
+ 'author' => 'Thomas Maier'
438
+ )
439
+ );
440
+ }
441
  }
442
  }
443
+
444
+ /**
445
+ * check if license keys are missing or invalid
446
+ *
447
+ * @since 1.6.6
448
+ * @return true if there are missing licenses
449
+ */
450
+ static function check_licenses_invalid(){
451
+
452
+ $add_ons = apply_filters( 'advanced-ads-add-ons', array() );
453
+
454
+ if( $add_ons === array() ) {
455
+ return false;
456
+ }
457
+
458
+ foreach( $add_ons as $_add_on_key => $_add_on ){
459
+ $status = get_option($_add_on['options_slug'] . '-license-status', false);
460
+
461
+ // don’t check if license is valid
462
+ if( $status === 'valid' ) {
463
+ continue;
464
+ }
465
+
466
+ // retrieve our license key from the DB
467
+ $licenses = get_option(ADVADS_SLUG . '-licenses', array());
468
+
469
+ $license_key = isset($licenses[$_add_on_key]) ? $licenses[$_add_on_key] : false;
470
+
471
+ if( ! $license_key || $status !== 'valid' ){
472
+ return true;
473
+ }
474
+ }
475
+
476
+ return false;
477
+ }
478
+
479
+ /**
480
+ * check if license keys are going to expire within next 14 days
481
+ *
482
+ * @since 1.6.6
483
+ * @return true if there are expiring licenses
484
+ */
485
+ static function check_licenses_expire(){
486
+
487
+ $add_ons = apply_filters( 'advanced-ads-add-ons', array() );
488
+
489
+ if( $add_ons === array() ) {
490
+ return false;
491
+ }
492
+
493
+ $now = time();
494
+
495
+ foreach( $add_ons as $_add_on_key => $_add_on ){
496
+ // don’t display error for invalid licenses
497
+ if( get_option($_add_on['options_slug'] . '-license-status', false) === 'invalid' ) {
498
+ continue;
499
+ }
500
+
501
+ $expiry_date = get_option($_add_on['options_slug'] . '-license-expires', false);
502
+
503
+ if( $expiry_date ){
504
+ $expiry_date_t = strtotime( $expiry_date );
505
+ $in_two_weeks = time() + ( WEEK_IN_SECONDS * 2) ;
506
+ // check if expiry date is within next comming 2 weeks
507
+ if( $expiry_date_t < $in_two_weeks && $expiry_date_t >= $now ){
508
+ return true;
509
+ }
510
+
511
+ }
512
+ }
513
+
514
+ return false;
515
+ }
516
+
517
+ /**
518
+ * check if license keys are already expired
519
+ *
520
+ * @since 1.6.6
521
+ * @return true if there are expired licenses
522
+ */
523
+ static function check_licenses_expired(){
524
+
525
+ $add_ons = apply_filters( 'advanced-ads-add-ons', array() );
526
+
527
+ if( $add_ons === array() ) {
528
+ return false;
529
+ }
530
+
531
+ $now = time();
532
+
533
+ foreach( $add_ons as $_add_on_key => $_add_on ){
534
+ // don’t display error for invalid licenses
535
+ if( get_option($_add_on['options_slug'] . '-license-status', false) === 'invalid' ) {
536
+ continue;
537
+ }
538
+
539
+ $expiry_date = get_option($_add_on['options_slug'] . '-license-expires', false);
540
+
541
+ if( $expiry_date && strtotime( $expiry_date ) < $now ){
542
+ return true;
543
+ }
544
+ }
545
+
546
+ return false;
547
+ }
548
  }
classes/visitor-conditions.php CHANGED
@@ -116,7 +116,7 @@ class Advanced_Ads_Visitor_Conditions {
116
 
117
  ?><input type="hidden" name="<?php echo $name; ?>[type]" value="<?php echo $options['type']; ?>"/>
118
  <input type="hidden" name="<?php echo $name; ?>[connector]" value="<?php echo $connector; ?>"/>
119
- ?><select name="<?php echo $name; ?>[operator]">
120
  <option value="is_equal" <?php selected( 'is_equal', $operator ); ?>><?php _e( 'equal', ADVADS_SLUG ); ?></option>
121
  <option value="is_higher" <?php selected( 'is_higher', $operator ); ?>><?php _e( 'equal or higher', ADVADS_SLUG ); ?></option>
122
  <option value="is_lower" <?php selected( 'is_lower', $operator ); ?>><?php _e( 'equal or lower', ADVADS_SLUG ); ?></option>
@@ -314,11 +314,20 @@ class Advanced_Ads_Visitor_Conditions {
314
  break;
315
  // string is a regular expression
316
  case 'regex' :
317
- $condition = preg_match( $value, $string );
 
 
 
 
 
318
  break;
319
  // string is not a regular expression
320
  case 'regex_not' :
321
- $condition = ! preg_match( $value, $string );
 
 
 
 
322
  break;
323
  }
324
 
116
 
117
  ?><input type="hidden" name="<?php echo $name; ?>[type]" value="<?php echo $options['type']; ?>"/>
118
  <input type="hidden" name="<?php echo $name; ?>[connector]" value="<?php echo $connector; ?>"/>
119
+ <select name="<?php echo $name; ?>[operator]">
120
  <option value="is_equal" <?php selected( 'is_equal', $operator ); ?>><?php _e( 'equal', ADVADS_SLUG ); ?></option>
121
  <option value="is_higher" <?php selected( 'is_higher', $operator ); ?>><?php _e( 'equal or higher', ADVADS_SLUG ); ?></option>
122
  <option value="is_lower" <?php selected( 'is_lower', $operator ); ?>><?php _e( 'equal or lower', ADVADS_SLUG ); ?></option>
314
  break;
315
  // string is a regular expression
316
  case 'regex' :
317
+ // check regular expression first
318
+ if( @preg_match( $value, null ) === false ){
319
+ Advanced_Ads::log( "Advanced Ads: regular expression '$value' in visitor condition is broken." );
320
+ } else {
321
+ $condition = preg_match( $value, $string );
322
+ }
323
  break;
324
  // string is not a regular expression
325
  case 'regex_not' :
326
+ if( @preg_match( $value, null ) === false ){
327
+ Advanced_Ads::log( "Advanced Ads: regular expression '$value' in visitor condition is broken." );
328
+ } else {
329
+ ! $condition = preg_match( $value, $string );
330
+ }
331
  break;
332
  }
333
 
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: Sun Jul 05 2015 20:31:52 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"
@@ -26,62 +26,57 @@ msgstr ""
26
  "X-Textdomain-Support: yes\n"
27
  "X-Loco-Target-Locale: de_DE"
28
 
29
- #: ../admin/class-advanced-ads-admin.php:223
30
  msgid "Overview"
31
  msgstr "Übersicht"
32
 
33
- #. translators: plugin header field 'Name'
34
- #: ../admin/class-advanced-ads-admin.php:223 ../classes/widget.php:21
35
- msgid "Advanced Ads"
36
- msgstr "Advanced Ads"
37
-
38
- #: ../admin/class-advanced-ads-admin.php:227 ../admin/class-advanced-ads-admin.
39
- #: php:227 ../admin/views/ad-group-list-form-row.php:25 ../admin/views/ad-group-
40
- #: list-header.php:5 ../admin/views/placements.php:64 ../classes/widget.php:66 ..
41
- #: public/class-advanced-ads.php:551
42
  msgid "Ads"
43
  msgstr "Anzeigen"
44
 
45
- #: ../admin/class-advanced-ads-admin.php:231 ../admin/views/placements.php:57 ..
46
- #: classes/widget.php:59
47
  msgid "Ad Groups"
48
  msgstr "Anzeigen-Gruppen"
49
 
50
- #: ../admin/class-advanced-ads-admin.php:231 ../public/class-advanced-ads.php:525
51
  msgid "Groups"
52
  msgstr "Gruppen"
53
 
54
- #: ../admin/class-advanced-ads-admin.php:236 ../admin/views/debug.php:14
55
  msgid "Ad Placements"
56
  msgstr "Anzeigen-Platzierungen"
57
 
58
- #: ../admin/class-advanced-ads-admin.php:236 ../admin/views/placements.php:18
59
  msgid "Placements"
60
  msgstr "Platzierungen"
61
 
62
- #: ../admin/class-advanced-ads-admin.php:240
63
  msgid "Advanced Ads Settings"
64
  msgstr "Advanced-Ads-Einstellungen"
65
 
66
- #: ../admin/class-advanced-ads-admin.php:240 ../admin/class-advanced-ads-admin.
67
- #: php:410 ../admin/views/debug.php:11
68
  msgid "Settings"
69
  msgstr "Einstellungen"
70
 
71
- #: ../admin/class-advanced-ads-admin.php:243
72
  msgid "Advanced Ads Debugging"
73
  msgstr "Advanced-Ads-Fehleranalyse (Debugging)"
74
 
75
- #: ../admin/class-advanced-ads-admin.php:243
76
  msgid "Debug"
77
  msgstr "Debug"
78
 
79
- #: ../admin/class-advanced-ads-admin.php:324 ../admin/class-advanced-ads-admin.
80
- #: php:351
81
  msgid "Sorry, you are not allowed to access this feature."
82
  msgstr "Sie haben leider keinen Zugriff auf diese Funktion"
83
 
84
- #: ../admin/class-advanced-ads-admin.php:337
85
  msgid ""
86
  "You attempted to edit an ad group that doesn&#8217;t exist. Perhaps it was "
87
  "deleted?"
@@ -89,165 +84,166 @@ msgstr ""
89
  "Sie haben versucht, ein Element, das nicht existiert, zu bearbeiten. "
90
  "Vielleicht wurde es gelöscht?"
91
 
92
- #: ../admin/class-advanced-ads-admin.php:452
93
  msgid "Ad Type"
94
  msgstr "Anzeigen-Typ"
95
 
96
- #: ../admin/class-advanced-ads-admin.php:455
97
  msgid "Ad Parameters"
98
  msgstr "Anzeigen-Parameter"
99
 
100
- #: ../admin/class-advanced-ads-admin.php:458
101
  msgid "Layout / Output"
102
  msgstr "Layout / Ausgabe"
103
 
104
- #: ../admin/class-advanced-ads-admin.php:461
105
  msgid "Display Conditions"
106
  msgstr "Anzeige-Bedingungen"
107
 
108
- #: ../admin/class-advanced-ads-admin.php:464
109
  msgid "Visitor Conditions"
110
  msgstr "Besucher-Bedingungen"
111
 
112
- #: ../admin/class-advanced-ads-admin.php:625 ../admin/class-advanced-ads-admin.
113
- #: php:626
114
  msgid "Ad updated."
115
  msgstr "Anzeige aktualisiert."
116
 
117
  #. translators: %s: date and time of the revision
118
- #: ../admin/class-advanced-ads-admin.php:628
119
  #, php-format
120
  msgid "Ad restored to revision from %s"
121
  msgstr "Anzeige aus Revision %s wiederhergestellt"
122
 
123
- #: ../admin/class-advanced-ads-admin.php:629
124
  msgid "Ad published."
125
  msgstr "Anzeige veröffentlicht."
126
 
127
- #: ../admin/class-advanced-ads-admin.php:630
128
  msgid "Ad saved."
129
  msgstr "Anzeige gespeichert."
130
 
131
- #: ../admin/class-advanced-ads-admin.php:631
132
  msgid "Ad submitted."
133
  msgstr "Anzeige gesendet."
134
 
135
- #: ../admin/class-advanced-ads-admin.php:633
136
  #, php-format
137
  msgid "Ad scheduled for: <strong>%1$s</strong>."
138
  msgstr "Anzeige geplant für <strong>%1$s</strong>."
139
 
140
  #. translators: Publish box date format, see http://php.net/date
141
- #: ../admin/class-advanced-ads-admin.php:635
142
  msgid "M j, Y @ G:i"
143
  msgstr "j M Y @ G:i"
144
 
145
- #: ../admin/class-advanced-ads-admin.php:637
146
  msgid "Ad draft updated."
147
  msgstr "Anzeigenentwurf gespeichert."
148
 
149
- #: ../admin/class-advanced-ads-admin.php:656
150
  #, php-format
151
  msgid "%s ad updated."
152
  msgid_plural "%s ads updated."
153
  msgstr[0] "%s Anzeige aktualisiert."
154
  msgstr[1] "%s Anzeigen aktualisiert."
155
 
156
- #: ../admin/class-advanced-ads-admin.php:657
157
  #, php-format
158
  msgid "%s ad not updated, somebody is editing it."
159
  msgid_plural "%s ads not updated, somebody is editing them."
160
  msgstr[0] "%s Anzeige nicht aktualisiert, jemand bearbeitet sie."
161
  msgstr[1] "%s Anzeigen nicht aktualisiert, jemand bearbeitet sie."
162
 
163
- #: ../admin/class-advanced-ads-admin.php:658
164
  #, php-format
165
  msgid "%s ad permanently deleted."
166
  msgid_plural "%s ads permanently deleted."
167
  msgstr[0] "%s Anzeige endgültig gelöscht."
168
  msgstr[1] "%s Anzeigen endgültig gelöscht."
169
 
170
- #: ../admin/class-advanced-ads-admin.php:659
171
  #, php-format
172
  msgid "%s ad moved to the Trash."
173
  msgid_plural "%s ads moved to the Trash."
174
  msgstr[0] "%s Anzeige in den Papierkorb verschoben."
175
  msgstr[1] "%s Anzeigen in den Papierkorb verschoben."
176
 
177
- #: ../admin/class-advanced-ads-admin.php:660
178
  #, php-format
179
  msgid "%s ad restored from the Trash."
180
  msgid_plural "%s ads restored from the Trash."
181
  msgstr[0] "%s Anzeige aus dem Papierkorb wiederhergestellt."
182
  msgstr[1] "%s Anzeige aus dem Papierkorb wiederhergestellt."
183
 
184
- #: ../admin/class-advanced-ads-admin.php:697 ../admin/views/settings.php:12
185
  msgid "General"
186
  msgstr "Allgemein"
187
 
188
- #: ../admin/class-advanced-ads-admin.php:705 ../admin/views/settings.php:18
 
189
  msgid "Licenses"
190
  msgstr "Lizenzen"
191
 
192
- #: ../admin/class-advanced-ads-admin.php:713
193
  msgid "Disable ads"
194
  msgstr "Anzeigen auf dieser Seite deaktivieren."
195
 
196
- #: ../admin/class-advanced-ads-admin.php:721
197
  msgid "Hide ads for logged in users"
198
  msgstr "Verstecke Anzeigen vor eingeloggten Benutzern"
199
 
200
- #: ../admin/class-advanced-ads-admin.php:729
201
  msgid "Use advanced JavaScript"
202
  msgstr "Advanced-JavaScript benutzen"
203
 
204
- #: ../admin/class-advanced-ads-admin.php:737
205
  msgid "Unlimited ad injection"
206
  msgstr "Anzeigen-Injektion überall aktivieren "
207
 
208
- #: ../admin/class-advanced-ads-admin.php:745
209
  msgid "Priority of content injection filter"
210
  msgstr "Priorität der Anzeigen-Injektion"
211
 
212
- #: ../admin/class-advanced-ads-admin.php:753
213
  msgid "Hide ads from bots"
214
  msgstr "Anzeigen vor Bots verbergen"
215
 
216
- #: ../admin/class-advanced-ads-admin.php:761
217
  msgid "Disable notices"
218
  msgstr "Mitteilungen deaktivieren"
219
 
220
- #: ../admin/class-advanced-ads-admin.php:819
221
  msgid "(display to all)"
222
  msgstr "(für alle sichtbar)"
223
 
224
- #: ../admin/class-advanced-ads-admin.php:820
225
  msgid "Subscriber"
226
  msgstr "Abonnent"
227
 
228
- #: ../admin/class-advanced-ads-admin.php:821
229
  msgid "Contributor"
230
  msgstr "Mitarbeiter"
231
 
232
- #: ../admin/class-advanced-ads-admin.php:822
233
  msgid "Author"
234
  msgstr "Autor"
235
 
236
- #: ../admin/class-advanced-ads-admin.php:823
237
  msgid "Editor"
238
  msgstr "Redakteur"
239
 
240
- #: ../admin/class-advanced-ads-admin.php:824
241
  msgid "Admin"
242
  msgstr "Admin"
243
 
244
- #: ../admin/class-advanced-ads-admin.php:832
245
  msgid "Choose the lowest role a user must have in order to not see any ads."
246
  msgstr ""
247
  "Wählen Sie die niedrigste Rolle die ein Benutzer haben muss um keine "
248
  "Anzeigen zu sehen."
249
 
250
- #: ../admin/class-advanced-ads-admin.php:845
251
  #, php-format
252
  msgid ""
253
  "Only enable this if you can and want to use the advanced JavaScript "
@@ -256,7 +252,7 @@ msgstr ""
256
  "Aktivieren Sie dies nur, wenn Sie die erweiterten und <a href=\"%s\">hier</a> "
257
  "beschriebenen Advanced-JavaScript-Funktionen verwenden können und wollen."
258
 
259
- #: ../admin/class-advanced-ads-admin.php:858
260
  msgid ""
261
  "Some plugins and themes trigger ad injection where it shouldn’t happen. "
262
  "Therefore, Advanced Ads ignores injected placements on non-singular pages "
@@ -274,7 +270,7 @@ msgstr ""
274
  "werden überall dort, wo Beiträge geladen werden, angezeigt (z.B. auch auf "
275
  "Archiv-Seiten)."
276
 
277
- #: ../admin/class-advanced-ads-admin.php:872
278
  msgid ""
279
  "Play with this value in order to change the priority of the injected ads "
280
  "compared to other auto injected elements in the post content."
@@ -282,7 +278,7 @@ msgstr ""
282
  "Ändern Sie diesen Wert um die Position automatisch eingefügter Anzeigen im "
283
  "Content gegenüber anderer Elementen zu beeinflussen."
284
 
285
- #: ../admin/class-advanced-ads-admin.php:885
286
  #, php-format
287
  msgid ""
288
  "Hide ads from crawlers, bots and empty user agents. Also prevents counting "
@@ -293,7 +289,7 @@ msgstr ""
293
  "werden mit dem <a href=\"%s\" target=\"_blank\">Tracking Add-On</a> dann auch "
294
  "keine Impressionen mehr gezählt."
295
 
296
- #: ../admin/class-advanced-ads-admin.php:886
297
  msgid ""
298
  "Disabling this option only makes sense if your ads contain content you want "
299
  "to display to bots (like search engines) or your site is cached and bots "
@@ -302,7 +298,7 @@ msgstr ""
302
  "Deaktivieren Sie diese Option, wenn Bots (z.B. Suchmaschinen) die "
303
  "Werbeinhalte sehen sollen oder Ihre Seite einen Cache nutzt."
304
 
305
- #: ../admin/class-advanced-ads-admin.php:899
306
  msgid ""
307
  "Disable all internal notices like tips, tutorials and email newsletters but "
308
  "not critical update notices. Disabling notices is recommended if you run "
@@ -312,54 +308,54 @@ msgstr ""
312
  "Kritische Nachrichten sind hiervon ausgenommen. Nutzen Sie diese Einstellung,"
313
  " wenn Sie Advanced Ads auf mehreren Blog installiert haben."
314
 
315
- #: ../admin/class-advanced-ads-admin.php:950
316
  msgid "Ad Details"
317
  msgstr "Anzeigeneinstellungen"
318
 
319
- #: ../admin/class-advanced-ads-admin.php:1024
320
  msgid "Ad Settings"
321
  msgstr "Anzeigen-Einstellungen"
322
 
323
- #: ../admin/class-advanced-ads-admin.php:1103 ../admin/views/overview.php:23
324
  msgid "Ads Dashboard"
325
  msgstr "Anzeigen-Dashboard"
326
 
327
- #: ../admin/class-advanced-ads-admin.php:1115
328
  msgid "From the ad optimization universe"
329
  msgstr "Neues aus dem Anzeigen-Universum"
330
 
331
- #: ../admin/class-advanced-ads-admin.php:1124
332
  msgid "Advanced Ads Tutorials"
333
  msgstr "Advanced Ads Tutorials"
334
 
335
- #: ../admin/class-advanced-ads-admin.php:1135
336
  #, php-format
337
  msgid "%d ads – <a href=\"%s\">manage</a> - <a href=\"%s\">new</a>"
338
  msgstr "%d Anzeigen – <a href=\"%s\">verwalten</a> - <a href=\"%s\">neu</a>"
339
 
340
- #: ../admin/class-advanced-ads-admin.php:1146
341
  msgid "plugin manual and homepage"
342
  msgstr "Plugin-Anleitung und Homepage"
343
 
344
- #: ../admin/class-advanced-ads-admin.php:1153
345
  msgid "Get the tutorial via email"
346
  msgstr "Tutorial per E-Mail (engl.)\n"
347
 
348
- #: ../admin/class-advanced-ads-admin.php:1160
349
  msgid "Get AdSense tips via email"
350
  msgstr "AdSense Tips per E-Mail (engl.)"
351
 
352
- #: ../admin/class-advanced-ads-admin.php:1234
353
  msgid "Error while trying to register the license. Please contact support."
354
  msgstr ""
355
  "Die Lizenz konnte nicht registriert werden. Bitte kontaktieren Sie den "
356
  "Support."
357
 
358
- #: ../admin/class-advanced-ads-admin.php:1240
359
  msgid "Please enter and save a valid license key first."
360
  msgstr "Bitte speichern Sie zunächst einen gültigen Lizenzschlüssel."
361
 
362
- #: ../admin/class-advanced-ads-admin.php:1260
363
  #, php-format
364
  msgid "License is invalid. Reason: %s"
365
  msgstr "Die Lizenz ist ungültig. Grund: %s"
@@ -411,7 +407,7 @@ msgid "Display ads with the highest ad weight first"
411
  msgstr "Anzeigen mit dem höchsten Anzeigengewicht zuerst einblenden."
412
 
413
  #: ../admin/includes/class-ad-groups-list.php:259 ../public/class-advanced-ads.
414
- #: php:555
415
  msgid "Edit"
416
  msgstr "Bearbeiten"
417
 
@@ -583,21 +579,32 @@ msgstr "neu"
583
  msgid "type the title"
584
  msgstr "Geben Sie den Titel ein"
585
 
586
- #: ../admin/includes/class-notices.php:307
587
  #, php-format
588
  msgid ""
589
- "You don’t seem to have an email address. Please add one to your <a "
590
- "href=\"%s\">WordPress profile</a>"
591
  msgstr ""
592
- "Scheinbar haben Sie keine E-Mail Adresse hinterlegt. Bitte tragen Sie eine "
593
- "in Ihrem <a href=\"%s\">Profil</a> ein."
594
 
595
- #: ../admin/includes/class-notices.php:325
596
  msgid "How embarrassing. The email server seems to be down. Please try again later."
597
  msgstr ""
598
  "Peinlich. Der E-Mail-Dienst scheint gerade nicht erreichbar zu sein. Bitte "
599
  "versuchen Sie es später noch einmal."
600
 
 
 
 
 
 
 
 
 
 
 
 
601
  #: ../admin/includes/class-overview-widgets.php:45
602
  msgid "Tips and Tutorials"
603
  msgstr "Tipps und Tutorials"
@@ -894,6 +901,40 @@ msgstr ""
894
  "Erfahren Sie im Newsletter mehr darüber, wie und <strong>wie viel Sie mit "
895
  "AdSense verdienen</strong> können (engl.)."
896
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
897
  #: ../admin/views/ad-display-metabox.php:8
898
  msgid "Choose where to display the ad and where to hide it."
899
  msgstr "Wählen Sie, wo die Anzeige sichtbar und wo sie versteckt ist."
@@ -979,7 +1020,7 @@ msgstr "Neue Anzeigengruppe erstellen"
979
  msgid "Update"
980
  msgstr "Update"
981
 
982
- #: ../admin/views/ad-group-list-form-row.php:3 ../admin/views/placements.php:33
983
  msgid "Name"
984
  msgstr "Name"
985
 
@@ -987,7 +1028,7 @@ msgstr "Name"
987
  msgid "Description"
988
  msgstr "Beschreibung"
989
 
990
- #: ../admin/views/ad-group-list-form-row.php:7 ../admin/views/placements.php:34 ..
991
  #: modules/gadsense/admin/views/adsense-ad-parameters.php:38
992
  msgid "Type"
993
  msgstr "Typ"
@@ -1006,7 +1047,7 @@ msgid "Number of ads to display in the block"
1006
  msgstr "Anzahl der Anzeigen die gleichzeitig im Block ausgegeben werden."
1007
 
1008
  #: ../admin/views/ad-group-list-form-row.php:28 ../public/class-advanced-ads.php:
1009
- #: 552
1010
  msgid "Ad"
1011
  msgstr "Anzeige"
1012
 
@@ -1023,12 +1064,12 @@ msgid "Details"
1023
  msgstr "Details"
1024
 
1025
  #: ../admin/views/ad-group-list-row.php:8 ../admin/views/ad-group.php:63 ..
1026
- #: admin/views/ad-info.php:3 ../admin/views/placements.php:22
1027
  msgid "shortcode"
1028
  msgstr "Shortcode"
1029
 
1030
  #: ../admin/views/ad-group-list-row.php:11 ../admin/views/ad-group.php:66 ..
1031
- #: admin/views/placements.php:25
1032
  msgid "template"
1033
  msgstr "Template"
1034
 
@@ -1228,8 +1269,7 @@ msgstr "Position"
1228
  msgid "- default -"
1229
  msgstr "- default -"
1230
 
1231
- #: ../admin/views/ad-output-metabox.php:7 ../admin/views/placements.php:49 ..
1232
- #: classes/ad_placements.php:31
1233
  msgid "default"
1234
  msgstr "Standard"
1235
 
@@ -1389,10 +1429,12 @@ msgstr ""
1389
  "wenn Sie sie verstehen, aber es gibt hier für Sie nichts zu tun."
1390
 
1391
  #: ../admin/views/placements.php:8
1392
- msgid "Couldn’t create empty or existing slug."
 
 
1393
  msgstr ""
1394
- "Platzierung aufgrund der leeren Angabe oder eines bereits vergebenen Slugs "
1395
- "nicht angelegt.\n"
1396
 
1397
  #: ../admin/views/placements.php:10
1398
  msgid "Placements updated"
@@ -1418,87 +1460,68 @@ msgstr ""
1418
  "Weitere Informationen finden Sie in der Anleitung (engl.) unter <a "
1419
  "href=\"%s\">Placements</a> und <a href=\"%s\">Auto Injection</a>."
1420
 
1421
- #: ../admin/views/placements.php:19
1422
- msgid "How to use the <i>default</i> Ad Placement?"
1423
- msgstr "Wie wird die <i>Standard</i>-Anzeigenplatzierung angewendet?"
1424
-
1425
- #: ../admin/views/placements.php:21
1426
- #, php-format
1427
- msgid ""
1428
- "Examples on how to use the <i>default</i> ad placement? Find more help and "
1429
- "examples in the <a href=\"%s\" target=\"_blank\">manual</a>"
1430
- msgstr ""
1431
- "Suchen Sie Beispiele, wie die <i>Standard</i>-Anzeigenplatzierung zu nutzen "
1432
- "ist? Sie finden Hilfe in der <a href=\"%s\" target=\"_blank\">Anleitung</a>"
1433
-
1434
- #: ../admin/views/placements.php:23
1435
- msgid "To use an ad placement with the ID skyscraper_left in content fields"
1436
- msgstr ""
1437
- "Zum Benutzen einer Anzeigen-Platzierung mit der ID skyscraper_left in "
1438
- "Content-Feldern"
1439
-
1440
- #: ../admin/views/placements.php:26
1441
- msgid "To use an ad placement with the ID skyscraper_left in template files"
1442
- msgstr ""
1443
- "Zum Benutzen einer Anzeigen-Platzierung mit der ID Skyscraper_left in "
1444
- "Template-Dateien"
1445
-
1446
- #: ../admin/views/placements.php:35
1447
  msgid "Options"
1448
  msgstr "Optionen"
1449
 
1450
- #: ../admin/views/placements.php:53
 
 
 
 
1451
  msgid "Item"
1452
  msgstr "Anzeige"
1453
 
1454
- #: ../admin/views/placements.php:55 ../classes/widget.php:57
1455
- msgid "--empty--"
1456
- msgstr "--leer--"
1457
 
1458
- #: ../admin/views/placements.php:75
1459
  msgid "Inject"
1460
  msgstr "Einfügen"
1461
 
1462
- #: ../admin/views/placements.php:76
1463
  msgid "after"
1464
  msgstr "nach"
1465
 
1466
- #: ../admin/views/placements.php:76
1467
  msgid "before"
1468
  msgstr "vor"
1469
 
1470
- #: ../admin/views/placements.php:101
1471
  msgid "remove placement"
1472
  msgstr "Platzierung entfernen"
1473
 
1474
- #: ../admin/views/placements.php:107
1475
  msgid "Save Placements"
1476
  msgstr "Platzierungen sichern"
1477
 
1478
- #: ../admin/views/placements.php:112
1479
  msgid "Create a new placement"
1480
  msgstr "Neue Platzierung erstellen"
1481
 
1482
- #: ../admin/views/placements.php:114
 
 
 
 
1483
  msgid "Choose a placement type"
1484
  msgstr "Typ der Platzierung wählen"
1485
 
1486
- #: ../admin/views/placements.php:115
1487
  #, php-format
1488
  msgid ""
1489
- "Placement types define how the placements works and where it is going to be "
1490
- "displayed. Learn more about the different types from the <a "
1491
- "href=\"%s\">manual</a>"
1492
  msgstr ""
1493
- "Der Platzierungstyp entscheidet darüber wie eine Platzierung funktioniert "
1494
- "und wo sie angezeigt wird. Mehr dazu finden Sie in der <a "
1495
- "href=\"%s\">Anleitung</a>.\n"
1496
 
1497
- #: ../admin/views/placements.php:125
1498
  msgid "Choose a Name"
1499
  msgstr "Bezeichnung wählen"
1500
 
1501
- #: ../admin/views/placements.php:126
1502
  msgid ""
1503
  "The name of the placement is only visible to you. Tip: choose a descriptive "
1504
  "one, e.g. <em>Below Post Headline</em>."
@@ -1506,11 +1529,19 @@ msgstr ""
1506
  "Die Bezeichnung der Platzierung ist nur für Sie sichtbar. Ich empfehle eine "
1507
  "beschreibende Bezeichnung, z.B. <em>Unter der Artikelüberschrift</em>."
1508
 
1509
- #: ../admin/views/placements.php:127
1510
  msgid "Placement Name"
1511
  msgstr "Bezeichnung"
1512
 
1513
- #: ../admin/views/placements.php:128
 
 
 
 
 
 
 
 
1514
  msgid "Save New Placement"
1515
  msgstr "Neue Platzierung sichern"
1516
 
@@ -1518,7 +1549,7 @@ msgstr "Neue Platzierung sichern"
1518
  msgid "Disable ads on this page"
1519
  msgstr "Anzeigen auf dieser Seite deaktivieren."
1520
 
1521
- #: ../admin/views/setting-license.php:9
1522
  #, php-format
1523
  msgid ""
1524
  "Your license expired. Please visit <a href=\"%s\" target=\"_blank\">the plugin "
@@ -1527,28 +1558,28 @@ msgstr ""
1527
  "Ihre Lizenz ist abgelaufen. Sie können Sie auf der <a href=\"%s\" "
1528
  "target=\"_blank\">Pluginseite</a> erweitern."
1529
 
1530
- #: ../admin/views/setting-license.php:13
1531
  msgid "License key"
1532
  msgstr "Lizenzschlüssel"
1533
 
1534
- #: ../admin/views/setting-license.php:25
1535
  msgid "Activate License"
1536
  msgstr "Lizenz aktivieren"
1537
 
1538
- #: ../admin/views/setting-license.php:28
1539
  msgid "license key invalid"
1540
  msgstr "Lizenzschlüssel ungültig"
1541
 
1542
- #: ../admin/views/setting-license.php:34
1543
  msgid "active"
1544
  msgstr "aktiv"
1545
 
1546
- #: ../admin/views/setting-license.php:35
1547
  #, php-format
1548
  msgid "(%d days left)"
1549
  msgstr "(noch %d Tage)"
1550
 
1551
- #: ../admin/views/setting-license.php:38
1552
  msgid ""
1553
  "1. enter the key and save options; 2. click the activate button behind the "
1554
  "field"
@@ -1596,27 +1627,27 @@ msgstr ""
1596
  "außerhalb der üblichen Seitenlogik. Aktivieren Sie dieses Feld, wenn "
1597
  "Anzeigen außerhalb der Hauptinhalte erscheinen und dies nicht tun sollen."
1598
 
1599
- #: ../admin/views/settings.php:40
1600
  msgid "Save settings on this page"
1601
  msgstr "Einstellungen auf dieser Seite speichern"
1602
 
1603
- #: ../admin/views/settings.php:47
1604
  msgid "Debug Page"
1605
  msgstr "Debug-Seite"
1606
 
1607
- #: ../admin/views/settings.php:48
1608
  msgid "Advanced Ads on WordPress.org"
1609
  msgstr "Advanced Ads auf WordPress.org"
1610
 
1611
- #: ../admin/views/settings.php:48
1612
  msgid "Advanced Ads on wp.org"
1613
  msgstr "Advanced Ads auf wp.org"
1614
 
1615
- #: ../admin/views/settings.php:49
1616
  msgid "the company behind Advanced Ads"
1617
  msgstr "das Unternehmen hinter Advanced Ads"
1618
 
1619
- #: ../admin/views/settings.php:49
1620
  msgid "webgilde GmbH"
1621
  msgstr "webgilde GmbH"
1622
 
@@ -1629,72 +1660,78 @@ msgstr "OK"
1629
  msgid "Close"
1630
  msgstr "Schließen"
1631
 
1632
- #: ../classes/ad_placements.php:32
1633
- msgid "Manual placement."
1634
- msgstr "Manuelle Platzierung."
1635
 
1636
- #: ../classes/ad_placements.php:35
1637
- msgid "header"
1638
- msgstr "Header"
1639
 
1640
  #: ../classes/ad_placements.php:36
1641
- msgid "Injected in Header (before closing </head> Tag, often not visible)."
 
 
 
 
1642
  msgstr ""
1643
- "Injiziert in den Header, und zwar vor das schließende </head>-Tag (oft nicht "
1644
- "sichtbar)."
1645
 
1646
- #: ../classes/ad_placements.php:39
1647
- msgid "footer"
1648
- msgstr "Footer"
1649
 
1650
- #: ../classes/ad_placements.php:40
1651
- msgid "Injected in Footer (before closing </body> Tag)."
1652
- msgstr "Injiziert in den Footer, und zwar vor das schließende </body>-Tag)."
 
 
1653
 
1654
- #: ../classes/ad_placements.php:43
1655
- msgid "before post"
1656
- msgstr "Vor dem Beitrag"
1657
 
1658
- #: ../classes/ad_placements.php:44
1659
  msgid "Injected before the post content."
1660
  msgstr "Injiziert vor den Beitrags-Inhalt."
1661
 
1662
- #: ../classes/ad_placements.php:47
1663
- msgid "after post"
1664
- msgstr "Nach dem Beitrag"
1665
 
1666
- #: ../classes/ad_placements.php:48
1667
  msgid "Injected after the post content."
1668
  msgstr "Injiziert hinter den Beitrags-Inhalt."
1669
 
1670
- #: ../classes/ad_placements.php:51
1671
- msgid "post content"
1672
- msgstr "Im Beitrag"
1673
 
1674
- #: ../classes/ad_placements.php:52
1675
  msgid ""
1676
  "Injected into the post content. You can choose the paragraph after which the "
1677
  "ad content is displayed."
1678
  msgstr ""
1679
- "Injiziert in den Beitrags-Inhalt. Sie können den Absatz wählen, nach dem der "
1680
- "Inhalt angezeigt wird."
1681
 
1682
- #: ../classes/ad_placements.php:190
1683
  #, php-format
1684
  msgid "paragraph (%s)"
1685
  msgstr "Absatz (%s)"
1686
 
1687
- #: ../classes/ad_placements.php:191
1688
  #, php-format
1689
  msgid "headline 2 (%s)"
1690
  msgstr "Überschrift 2 (%s)"
1691
 
1692
- #: ../classes/ad_placements.php:192
1693
  #, php-format
1694
  msgid "headline 3 (%s)"
1695
  msgstr "Überschrift 3 (%s)"
1696
 
1697
- #: ../classes/ad_placements.php:193
1698
  #, php-format
1699
  msgid "headline 4 (%s)"
1700
  msgstr "Überschrift 4 (%s)"
@@ -1857,6 +1894,10 @@ msgstr "Anzeigen und Anzeigen-Gruppen zeigen."
1857
  msgid "Title:"
1858
  msgstr "Titel:"
1859
 
 
 
 
 
1860
  #: ../includes/array_ad_conditions.php:38
1861
  msgid "Post Types"
1862
  msgstr "Beitrags-Typen"
@@ -2066,93 +2107,97 @@ msgstr "AdSense Anzeige"
2066
  msgid "Use ads from your Google AdSense account"
2067
  msgstr "Anzeigen aus Ihrem Google AdSense Konto"
2068
 
 
 
 
 
2069
  #: ../modules/gadsense/includes/class-gadsense-data.php:42
2070
  msgid "Auto"
2071
  msgstr "Auto"
2072
 
2073
- #: ../public/class-advanced-ads.php:302
2074
  #, php-format
2075
  msgid "Advanced Ads Error: %s"
2076
  msgstr "Advanced-Ads-Fehler: %s"
2077
 
2078
- #: ../public/class-advanced-ads.php:515
2079
  msgctxt "ad group general name"
2080
  msgid "Ad Groups"
2081
  msgstr "Anzeigen-Gruppen"
2082
 
2083
- #: ../public/class-advanced-ads.php:516
2084
  msgctxt "ad group singular name"
2085
  msgid "Ad Group"
2086
  msgstr "Anzeigen-Gruppe"
2087
 
2088
- #: ../public/class-advanced-ads.php:517
2089
  msgid "Search Ad Groups"
2090
  msgstr "Anzeigen-Gruppen suchen"
2091
 
2092
- #: ../public/class-advanced-ads.php:518
2093
  msgid "All Ad Groups"
2094
  msgstr "Alle Anzeigen-Gruppen"
2095
 
2096
- #: ../public/class-advanced-ads.php:519
2097
  msgid "Parent Ad Groups"
2098
  msgstr "Parent-Anzeigen-Gruppen"
2099
 
2100
- #: ../public/class-advanced-ads.php:520
2101
  msgid "Parent Ad Groups:"
2102
  msgstr "Parent-Anzeigen-Gruppen"
2103
 
2104
- #: ../public/class-advanced-ads.php:521
2105
  msgid "Edit Ad Group"
2106
  msgstr "Bearbeite Anzeigen-Gruppe"
2107
 
2108
- #: ../public/class-advanced-ads.php:522
2109
  msgid "Update Ad Group"
2110
  msgstr "Aktualisiere Anzeigen-Gruppe"
2111
 
2112
- #: ../public/class-advanced-ads.php:523
2113
  msgid "Add New Ad Group"
2114
  msgstr "Neue Anzeigengruppe hinzufügen"
2115
 
2116
- #: ../public/class-advanced-ads.php:524
2117
  msgid "New Ad Groups Name"
2118
  msgstr "Neuer Anzeigen-Gruppen-Name"
2119
 
2120
- #: ../public/class-advanced-ads.php:526
2121
  msgid "No Ad Group found"
2122
  msgstr "Keine Anzeigen-Gruppe gefunden"
2123
 
2124
- #: ../public/class-advanced-ads.php:553 ../public/class-advanced-ads.php:557
2125
  msgid "New Ad"
2126
  msgstr "Neue Anzeige"
2127
 
2128
- #: ../public/class-advanced-ads.php:554
2129
  msgid "Add New Ad"
2130
  msgstr "Neue Anzeige hinzufügen"
2131
 
2132
- #: ../public/class-advanced-ads.php:556
2133
  msgid "Edit Ad"
2134
  msgstr "Anzeige bearbeiten"
2135
 
2136
- #: ../public/class-advanced-ads.php:558
2137
  msgid "View"
2138
  msgstr "Ansicht"
2139
 
2140
- #: ../public/class-advanced-ads.php:559
2141
  msgid "View the Ad"
2142
  msgstr "Anzeige ansehen"
2143
 
2144
- #: ../public/class-advanced-ads.php:560
2145
  msgid "Search Ads"
2146
  msgstr "Anzeigen suchen"
2147
 
2148
- #: ../public/class-advanced-ads.php:561
2149
  msgid "No Ads found"
2150
  msgstr "Keine Anzeigen gefunden"
2151
 
2152
- #: ../public/class-advanced-ads.php:562
2153
  msgid "No Ads found in Trash"
2154
  msgstr "Keine Anzeigen im Papierkorb gefunden"
2155
 
2156
- #: ../public/class-advanced-ads.php:563
2157
  msgid "Parent Ad"
2158
  msgstr "Übergeordnete Anzeige"
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: Sun Jul 26 2015 20:48:44 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"
26
  "X-Textdomain-Support: yes\n"
27
  "X-Loco-Target-Locale: de_DE"
28
 
29
+ #: ../admin/class-advanced-ads-admin.php:235
30
  msgid "Overview"
31
  msgstr "Übersicht"
32
 
33
+ #: ../admin/class-advanced-ads-admin.php:239 ../admin/class-advanced-ads-admin.
34
+ #: php:239 ../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:243 ../admin/views/placements.php:64 ..
41
+ #: admin/views/placements.php:148 ../classes/widget.php:59
42
  msgid "Ad Groups"
43
  msgstr "Anzeigen-Gruppen"
44
 
45
+ #: ../admin/class-advanced-ads-admin.php:243 ../public/class-advanced-ads.php:522
46
  msgid "Groups"
47
  msgstr "Gruppen"
48
 
49
+ #: ../admin/class-advanced-ads-admin.php:248 ../admin/views/debug.php:14
50
  msgid "Ad Placements"
51
  msgstr "Anzeigen-Platzierungen"
52
 
53
+ #: ../admin/class-advanced-ads-admin.php:248 ../admin/views/placements.php:18
54
  msgid "Placements"
55
  msgstr "Platzierungen"
56
 
57
+ #: ../admin/class-advanced-ads-admin.php:252
58
  msgid "Advanced Ads Settings"
59
  msgstr "Advanced-Ads-Einstellungen"
60
 
61
+ #: ../admin/class-advanced-ads-admin.php:252 ../admin/class-advanced-ads-admin.
62
+ #: php:423 ../admin/views/debug.php:11
63
  msgid "Settings"
64
  msgstr "Einstellungen"
65
 
66
+ #: ../admin/class-advanced-ads-admin.php:255
67
  msgid "Advanced Ads Debugging"
68
  msgstr "Advanced-Ads-Fehleranalyse (Debugging)"
69
 
70
+ #: ../admin/class-advanced-ads-admin.php:255
71
  msgid "Debug"
72
  msgstr "Debug"
73
 
74
+ #: ../admin/class-advanced-ads-admin.php:337 ../admin/class-advanced-ads-admin.
75
+ #: php:364
76
  msgid "Sorry, you are not allowed to access this feature."
77
  msgstr "Sie haben leider keinen Zugriff auf diese Funktion"
78
 
79
+ #: ../admin/class-advanced-ads-admin.php:350
80
  msgid ""
81
  "You attempted to edit an ad group that doesn&#8217;t exist. Perhaps it was "
82
  "deleted?"
84
  "Sie haben versucht, ein Element, das nicht existiert, zu bearbeiten. "
85
  "Vielleicht wurde es gelöscht?"
86
 
87
+ #: ../admin/class-advanced-ads-admin.php:465
88
  msgid "Ad Type"
89
  msgstr "Anzeigen-Typ"
90
 
91
+ #: ../admin/class-advanced-ads-admin.php:468
92
  msgid "Ad Parameters"
93
  msgstr "Anzeigen-Parameter"
94
 
95
+ #: ../admin/class-advanced-ads-admin.php:471
96
  msgid "Layout / Output"
97
  msgstr "Layout / Ausgabe"
98
 
99
+ #: ../admin/class-advanced-ads-admin.php:474
100
  msgid "Display Conditions"
101
  msgstr "Anzeige-Bedingungen"
102
 
103
+ #: ../admin/class-advanced-ads-admin.php:477
104
  msgid "Visitor Conditions"
105
  msgstr "Besucher-Bedingungen"
106
 
107
+ #: ../admin/class-advanced-ads-admin.php:643 ../admin/class-advanced-ads-admin.
108
+ #: php:644
109
  msgid "Ad updated."
110
  msgstr "Anzeige aktualisiert."
111
 
112
  #. translators: %s: date and time of the revision
113
+ #: ../admin/class-advanced-ads-admin.php:646
114
  #, php-format
115
  msgid "Ad restored to revision from %s"
116
  msgstr "Anzeige aus Revision %s wiederhergestellt"
117
 
118
+ #: ../admin/class-advanced-ads-admin.php:647
119
  msgid "Ad published."
120
  msgstr "Anzeige veröffentlicht."
121
 
122
+ #: ../admin/class-advanced-ads-admin.php:648
123
  msgid "Ad saved."
124
  msgstr "Anzeige gespeichert."
125
 
126
+ #: ../admin/class-advanced-ads-admin.php:649
127
  msgid "Ad submitted."
128
  msgstr "Anzeige gesendet."
129
 
130
+ #: ../admin/class-advanced-ads-admin.php:651
131
  #, php-format
132
  msgid "Ad scheduled for: <strong>%1$s</strong>."
133
  msgstr "Anzeige geplant für <strong>%1$s</strong>."
134
 
135
  #. translators: Publish box date format, see http://php.net/date
136
+ #: ../admin/class-advanced-ads-admin.php:653
137
  msgid "M j, Y @ G:i"
138
  msgstr "j M Y @ G:i"
139
 
140
+ #: ../admin/class-advanced-ads-admin.php:655
141
  msgid "Ad draft updated."
142
  msgstr "Anzeigenentwurf gespeichert."
143
 
144
+ #: ../admin/class-advanced-ads-admin.php:674
145
  #, php-format
146
  msgid "%s ad updated."
147
  msgid_plural "%s ads updated."
148
  msgstr[0] "%s Anzeige aktualisiert."
149
  msgstr[1] "%s Anzeigen aktualisiert."
150
 
151
+ #: ../admin/class-advanced-ads-admin.php:675
152
  #, php-format
153
  msgid "%s ad not updated, somebody is editing it."
154
  msgid_plural "%s ads not updated, somebody is editing them."
155
  msgstr[0] "%s Anzeige nicht aktualisiert, jemand bearbeitet sie."
156
  msgstr[1] "%s Anzeigen nicht aktualisiert, jemand bearbeitet sie."
157
 
158
+ #: ../admin/class-advanced-ads-admin.php:676
159
  #, php-format
160
  msgid "%s ad permanently deleted."
161
  msgid_plural "%s ads permanently deleted."
162
  msgstr[0] "%s Anzeige endgültig gelöscht."
163
  msgstr[1] "%s Anzeigen endgültig gelöscht."
164
 
165
+ #: ../admin/class-advanced-ads-admin.php:677
166
  #, php-format
167
  msgid "%s ad moved to the Trash."
168
  msgid_plural "%s ads moved to the Trash."
169
  msgstr[0] "%s Anzeige in den Papierkorb verschoben."
170
  msgstr[1] "%s Anzeigen in den Papierkorb verschoben."
171
 
172
+ #: ../admin/class-advanced-ads-admin.php:678
173
  #, php-format
174
  msgid "%s ad restored from the Trash."
175
  msgid_plural "%s ads restored from the Trash."
176
  msgstr[0] "%s Anzeige aus dem Papierkorb wiederhergestellt."
177
  msgstr[1] "%s Anzeige aus dem Papierkorb wiederhergestellt."
178
 
179
+ #: ../admin/class-advanced-ads-admin.php:713 ../admin/views/settings.php:12
180
  msgid "General"
181
  msgstr "Allgemein"
182
 
183
+ #: ../admin/class-advanced-ads-admin.php:725 ../admin/class-advanced-ads-admin.
184
+ #: php:805
185
  msgid "Licenses"
186
  msgstr "Lizenzen"
187
 
188
+ #: ../admin/class-advanced-ads-admin.php:736
189
  msgid "Disable ads"
190
  msgstr "Anzeigen auf dieser Seite deaktivieren."
191
 
192
+ #: ../admin/class-advanced-ads-admin.php:744
193
  msgid "Hide ads for logged in users"
194
  msgstr "Verstecke Anzeigen vor eingeloggten Benutzern"
195
 
196
+ #: ../admin/class-advanced-ads-admin.php:752
197
  msgid "Use advanced JavaScript"
198
  msgstr "Advanced-JavaScript benutzen"
199
 
200
+ #: ../admin/class-advanced-ads-admin.php:760
201
  msgid "Unlimited ad injection"
202
  msgstr "Anzeigen-Injektion überall aktivieren "
203
 
204
+ #: ../admin/class-advanced-ads-admin.php:768
205
  msgid "Priority of content injection filter"
206
  msgstr "Priorität der Anzeigen-Injektion"
207
 
208
+ #: ../admin/class-advanced-ads-admin.php:776
209
  msgid "Hide ads from bots"
210
  msgstr "Anzeigen vor Bots verbergen"
211
 
212
+ #: ../admin/class-advanced-ads-admin.php:784
213
  msgid "Disable notices"
214
  msgstr "Mitteilungen deaktivieren"
215
 
216
+ #: ../admin/class-advanced-ads-admin.php:859
217
  msgid "(display to all)"
218
  msgstr "(für alle sichtbar)"
219
 
220
+ #: ../admin/class-advanced-ads-admin.php:860
221
  msgid "Subscriber"
222
  msgstr "Abonnent"
223
 
224
+ #: ../admin/class-advanced-ads-admin.php:861
225
  msgid "Contributor"
226
  msgstr "Mitarbeiter"
227
 
228
+ #: ../admin/class-advanced-ads-admin.php:862
229
  msgid "Author"
230
  msgstr "Autor"
231
 
232
+ #: ../admin/class-advanced-ads-admin.php:863
233
  msgid "Editor"
234
  msgstr "Redakteur"
235
 
236
+ #: ../admin/class-advanced-ads-admin.php:864
237
  msgid "Admin"
238
  msgstr "Admin"
239
 
240
+ #: ../admin/class-advanced-ads-admin.php:872
241
  msgid "Choose the lowest role a user must have in order to not see any ads."
242
  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:885
247
  #, php-format
248
  msgid ""
249
  "Only enable this if you can and want to use the advanced JavaScript "
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:898
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
  "werden überall dort, wo Beiträge geladen werden, angezeigt (z.B. auch auf "
271
  "Archiv-Seiten)."
272
 
273
+ #: ../admin/class-advanced-ads-admin.php:912
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
  "Ä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:925
282
  #, php-format
283
  msgid ""
284
  "Hide ads from crawlers, bots and empty user agents. Also prevents counting "
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:926
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
  "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:939
302
  msgid ""
303
  "Disable all internal notices like tips, tutorials and email newsletters but "
304
  "not critical update notices. Disabling notices is recommended if you run "
308
  "Kritische Nachrichten sind hiervon ausgenommen. Nutzen Sie diese Einstellung,"
309
  " wenn Sie Advanced Ads auf mehreren Blog installiert haben."
310
 
311
+ #: ../admin/class-advanced-ads-admin.php:992
312
  msgid "Ad Details"
313
  msgstr "Anzeigeneinstellungen"
314
 
315
+ #: ../admin/class-advanced-ads-admin.php:1066
316
  msgid "Ad Settings"
317
  msgstr "Anzeigen-Einstellungen"
318
 
319
+ #: ../admin/class-advanced-ads-admin.php:1145 ../admin/views/overview.php:23
320
  msgid "Ads Dashboard"
321
  msgstr "Anzeigen-Dashboard"
322
 
323
+ #: ../admin/class-advanced-ads-admin.php:1157
324
  msgid "From the ad optimization universe"
325
  msgstr "Neues aus dem Anzeigen-Universum"
326
 
327
+ #: ../admin/class-advanced-ads-admin.php:1166
328
  msgid "Advanced Ads Tutorials"
329
  msgstr "Advanced Ads Tutorials"
330
 
331
+ #: ../admin/class-advanced-ads-admin.php:1177
332
  #, php-format
333
  msgid "%d ads – <a href=\"%s\">manage</a> - <a href=\"%s\">new</a>"
334
  msgstr "%d Anzeigen – <a href=\"%s\">verwalten</a> - <a href=\"%s\">neu</a>"
335
 
336
+ #: ../admin/class-advanced-ads-admin.php:1188
337
  msgid "plugin manual and homepage"
338
  msgstr "Plugin-Anleitung und Homepage"
339
 
340
+ #: ../admin/class-advanced-ads-admin.php:1195
341
  msgid "Get the tutorial via email"
342
  msgstr "Tutorial per E-Mail (engl.)\n"
343
 
344
+ #: ../admin/class-advanced-ads-admin.php:1202
345
  msgid "Get AdSense tips via email"
346
  msgstr "AdSense Tips per E-Mail (engl.)"
347
 
348
+ #: ../admin/class-advanced-ads-admin.php:1276
349
  msgid "Error while trying to register the license. Please contact support."
350
  msgstr ""
351
  "Die Lizenz konnte nicht registriert werden. Bitte kontaktieren Sie den "
352
  "Support."
353
 
354
+ #: ../admin/class-advanced-ads-admin.php:1282
355
  msgid "Please enter and save a valid license key first."
356
  msgstr "Bitte speichern Sie zunächst einen gültigen Lizenzschlüssel."
357
 
358
+ #: ../admin/class-advanced-ads-admin.php:1302
359
  #, php-format
360
  msgid "License is invalid. Reason: %s"
361
  msgstr "Die Lizenz ist ungültig. Grund: %s"
407
  msgstr "Anzeigen mit dem höchsten Anzeigengewicht zuerst einblenden."
408
 
409
  #: ../admin/includes/class-ad-groups-list.php:259 ../public/class-advanced-ads.
410
+ #: php:552
411
  msgid "Edit"
412
  msgstr "Bearbeiten"
413
 
579
  msgid "type the title"
580
  msgstr "Geben Sie den Titel ein"
581
 
582
+ #: ../admin/includes/class-notices.php:341
583
  #, php-format
584
  msgid ""
585
+ "You don’t seem to have an email address. Please use <a href=\"%s\" "
586
+ "target=\"_blank\">this form</a> to sign up."
587
  msgstr ""
588
+ "Es scheint keine E-Mail Adresse hinterlegt worden zu sein. Bitte nutzen Sie "
589
+ "<a href=\"%s\" target=\"_blank\">dieses Formular</a> um sich anzumelden."
590
 
591
+ #: ../admin/includes/class-notices.php:359
592
  msgid "How embarrassing. The email server seems to be down. Please try again later."
593
  msgstr ""
594
  "Peinlich. Der E-Mail-Dienst scheint gerade nicht erreichbar zu sein. Bitte "
595
  "versuchen Sie es später noch einmal."
596
 
597
+ #: ../admin/includes/class-notices.php:364
598
+ #, php-format
599
+ msgid ""
600
+ "Please check your email (%s) for the confirmation message. If you didn’t "
601
+ "receive one or want to use another email address then please use <a "
602
+ "href=\"%s\" target=\"_blank\">this form</a> to sign up."
603
+ msgstr ""
604
+ "Die Bestätigungsnachricht wurde an Ihre Adresse (%s) gesendet. Wenn Sie sie "
605
+ "nicht erhalten haben oder sich mit einer anderen Adresse anmelden wollen, "
606
+ "dann nutzen Sie bitte <a href=\"%s\" target=\"_blank\">dieses Formular</a>."
607
+
608
  #: ../admin/includes/class-overview-widgets.php:45
609
  msgid "Tips and Tutorials"
610
  msgstr "Tipps und Tutorials"
901
  "Erfahren Sie im Newsletter mehr darüber, wie und <strong>wie viel Sie mit "
902
  "AdSense verdienen</strong> können (engl.)."
903
 
904
+ #: ../admin/includes/notices.php:47
905
+ #, php-format
906
+ msgid ""
907
+ "One or more license keys for <strong>Advanced Ads add-ons are invalid or "
908
+ "missing</strong>. Please add valid license keys <a href=\"%s\">here</a>."
909
+ msgstr ""
910
+ "Ein oder mehrere Lizenzschlüssel für <strong>Advanced Ads Erweiterungen sind "
911
+ "ungültig oder fehlen</strong>. Bitte tragen Sie <a href=\"%s\">hier</a> "
912
+ "gültige Lizenzschlüssel ein."
913
+
914
+ #: ../admin/includes/notices.php:52
915
+ #, php-format
916
+ msgid ""
917
+ "One or more licenses for your <strong>Advanced Ads add-ons are expiring "
918
+ "soon</strong>. Don’t risk to lose support and updates and renew your license "
919
+ "before it expires with a significant discount on <a href=\"%s\" "
920
+ "target=\"_blank\">the add-on page</a>."
921
+ msgstr ""
922
+ "Ein oder mehrere Lizenzschlüssel für <strong>Advanced Ads Erweiterungen "
923
+ "laufen demnächst ab</strong>. Verlängern Sie Ihre Lizenz noch vor dem Ablauf "
924
+ "für weiteren Support und Updates und erhalten Sie dafür einen deutlichen "
925
+ "Rabatt. <a href=\"%s\" target=\"_blank\">Zur Plugin-Seite</a>."
926
+
927
+ #: ../admin/includes/notices.php:57
928
+ #, php-format
929
+ msgid ""
930
+ "<strong>Advanced Ads</strong> license(s) expired. Support and updates are "
931
+ "disabled. Please visit <a href=\"%s\"> the license page</a> for more "
932
+ "information."
933
+ msgstr ""
934
+ "Eine oder mehrere Lizenzen für <strong>Erweiterungen für Advanced "
935
+ "Ads</strong> sind abgelaufen. Support und Updates sind deaktiviert. Bitte "
936
+ "besuchen Sie die <a href=\"%s\">Lizenz-Übersicht</a> für weitere Informationen."
937
+
938
  #: ../admin/views/ad-display-metabox.php:8
939
  msgid "Choose where to display the ad and where to hide it."
940
  msgstr "Wählen Sie, wo die Anzeige sichtbar und wo sie versteckt ist."
1020
  msgid "Update"
1021
  msgstr "Update"
1022
 
1023
+ #: ../admin/views/ad-group-list-form-row.php:3 ../admin/views/placements.php:24
1024
  msgid "Name"
1025
  msgstr "Name"
1026
 
1028
  msgid "Description"
1029
  msgstr "Beschreibung"
1030
 
1031
+ #: ../admin/views/ad-group-list-form-row.php:7 ../admin/views/placements.php:23 ..
1032
  #: modules/gadsense/admin/views/adsense-ad-parameters.php:38
1033
  msgid "Type"
1034
  msgstr "Typ"
1047
  msgstr "Anzahl der Anzeigen die gleichzeitig im Block ausgegeben werden."
1048
 
1049
  #: ../admin/views/ad-group-list-form-row.php:28 ../public/class-advanced-ads.php:
1050
+ #: 549
1051
  msgid "Ad"
1052
  msgstr "Anzeige"
1053
 
1064
  msgstr "Details"
1065
 
1066
  #: ../admin/views/ad-group-list-row.php:8 ../admin/views/ad-group.php:63 ..
1067
+ #: admin/views/ad-info.php:3 ../admin/views/placements.php:49
1068
  msgid "shortcode"
1069
  msgstr "Shortcode"
1070
 
1071
  #: ../admin/views/ad-group-list-row.php:11 ../admin/views/ad-group.php:66 ..
1072
+ #: admin/views/placements.php:52
1073
  msgid "template"
1074
  msgstr "Template"
1075
 
1269
  msgid "- default -"
1270
  msgstr "- default -"
1271
 
1272
+ #: ../admin/views/ad-output-metabox.php:7 ../admin/views/placements.php:43
 
1273
  msgid "default"
1274
  msgstr "Standard"
1275
 
1429
  "wenn Sie sie verstehen, aber es gibt hier für Sie nichts zu tun."
1430
 
1431
  #: ../admin/views/placements.php:8
1432
+ msgid ""
1433
+ "Couldn’t create the new placement. Please check your form field and whether "
1434
+ "the name is already in use."
1435
  msgstr ""
1436
+ "Die Platzierung konnte nicht angelegt werden. Bitte überprüfen Sie die "
1437
+ "Formular-Felder und ob der Name bereits verwendet wird."
1438
 
1439
  #: ../admin/views/placements.php:10
1440
  msgid "Placements updated"
1460
  "Weitere Informationen finden Sie in der Anleitung (engl.) unter <a "
1461
  "href=\"%s\">Placements</a> und <a href=\"%s\">Auto Injection</a>."
1462
 
1463
+ #: ../admin/views/placements.php:25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1464
  msgid "Options"
1465
  msgstr "Optionen"
1466
 
1467
+ #: ../admin/views/placements.php:48
1468
+ msgid "show usage"
1469
+ msgstr "Nutzungshinweise"
1470
+
1471
+ #: ../admin/views/placements.php:60
1472
  msgid "Item"
1473
  msgstr "Anzeige"
1474
 
1475
+ #: ../admin/views/placements.php:62 ../admin/views/placements.php:146
1476
+ msgid "--not selected--"
1477
+ msgstr "--nicht gewählt--"
1478
 
1479
+ #: ../admin/views/placements.php:82
1480
  msgid "Inject"
1481
  msgstr "Einfügen"
1482
 
1483
+ #: ../admin/views/placements.php:83
1484
  msgid "after"
1485
  msgstr "nach"
1486
 
1487
+ #: ../admin/views/placements.php:83
1488
  msgid "before"
1489
  msgstr "vor"
1490
 
1491
+ #: ../admin/views/placements.php:107
1492
  msgid "remove placement"
1493
  msgstr "Platzierung entfernen"
1494
 
1495
+ #: ../admin/views/placements.php:113
1496
  msgid "Save Placements"
1497
  msgstr "Platzierungen sichern"
1498
 
1499
+ #: ../admin/views/placements.php:115
1500
  msgid "Create a new placement"
1501
  msgstr "Neue Platzierung erstellen"
1502
 
1503
+ #: ../admin/views/placements.php:116
1504
+ msgid "New Placement"
1505
+ msgstr "Neue Platzierung"
1506
+
1507
+ #: ../admin/views/placements.php:122
1508
  msgid "Choose a placement type"
1509
  msgstr "Typ der Platzierung wählen"
1510
 
1511
+ #: ../admin/views/placements.php:123
1512
  #, php-format
1513
  msgid ""
1514
+ "Placement types define where the ad is going to be displayed. Learn more "
1515
+ "about the different types from the <a href=\"%s\">manual</a>"
 
1516
  msgstr ""
1517
+ "Der Platzierungstyp entscheidet darüber wo eine Anzeige im Frontend "
1518
+ "platziert wird. Mehr dazu finden Sie in der <a href=\"%s\">Anleitung</a>."
 
1519
 
1520
+ #: ../admin/views/placements.php:140
1521
  msgid "Choose a Name"
1522
  msgstr "Bezeichnung wählen"
1523
 
1524
+ #: ../admin/views/placements.php:141
1525
  msgid ""
1526
  "The name of the placement is only visible to you. Tip: choose a descriptive "
1527
  "one, e.g. <em>Below Post Headline</em>."
1529
  "Die Bezeichnung der Platzierung ist nur für Sie sichtbar. Ich empfehle eine "
1530
  "beschreibende Bezeichnung, z.B. <em>Unter der Artikelüberschrift</em>."
1531
 
1532
+ #: ../admin/views/placements.php:142
1533
  msgid "Placement Name"
1534
  msgstr "Bezeichnung"
1535
 
1536
+ #: ../admin/views/placements.php:143
1537
+ msgid "Choose the Ad or Group"
1538
+ msgstr "Anzeige oder Gruppe wählen"
1539
+
1540
+ #: ../admin/views/placements.php:144
1541
+ msgid "The ad or group that should be displayed."
1542
+ msgstr "Die Anzeige oder Anzeigengruppe die angezeigt werden soll."
1543
+
1544
+ #: ../admin/views/placements.php:163
1545
  msgid "Save New Placement"
1546
  msgstr "Neue Platzierung sichern"
1547
 
1549
  msgid "Disable ads on this page"
1550
  msgstr "Anzeigen auf dieser Seite deaktivieren."
1551
 
1552
+ #: ../admin/views/setting-license.php:10
1553
  #, php-format
1554
  msgid ""
1555
  "Your license expired. Please visit <a href=\"%s\" target=\"_blank\">the plugin "
1558
  "Ihre Lizenz ist abgelaufen. Sie können Sie auf der <a href=\"%s\" "
1559
  "target=\"_blank\">Pluginseite</a> erweitern."
1560
 
1561
+ #: ../admin/views/setting-license.php:14
1562
  msgid "License key"
1563
  msgstr "Lizenzschlüssel"
1564
 
1565
+ #: ../admin/views/setting-license.php:26
1566
  msgid "Activate License"
1567
  msgstr "Lizenz aktivieren"
1568
 
1569
+ #: ../admin/views/setting-license.php:29
1570
  msgid "license key invalid"
1571
  msgstr "Lizenzschlüssel ungültig"
1572
 
1573
+ #: ../admin/views/setting-license.php:35
1574
  msgid "active"
1575
  msgstr "aktiv"
1576
 
1577
+ #: ../admin/views/setting-license.php:36
1578
  #, php-format
1579
  msgid "(%d days left)"
1580
  msgstr "(noch %d Tage)"
1581
 
1582
+ #: ../admin/views/setting-license.php:39
1583
  msgid ""
1584
  "1. enter the key and save options; 2. click the activate button behind the "
1585
  "field"
1627
  "außerhalb der üblichen Seitenlogik. Aktivieren Sie dieses Feld, wenn "
1628
  "Anzeigen außerhalb der Hauptinhalte erscheinen und dies nicht tun sollen."
1629
 
1630
+ #: ../admin/views/settings.php:34
1631
  msgid "Save settings on this page"
1632
  msgstr "Einstellungen auf dieser Seite speichern"
1633
 
1634
+ #: ../admin/views/settings.php:41
1635
  msgid "Debug Page"
1636
  msgstr "Debug-Seite"
1637
 
1638
+ #: ../admin/views/settings.php:42
1639
  msgid "Advanced Ads on WordPress.org"
1640
  msgstr "Advanced Ads auf WordPress.org"
1641
 
1642
+ #: ../admin/views/settings.php:42
1643
  msgid "Advanced Ads on wp.org"
1644
  msgstr "Advanced Ads auf wp.org"
1645
 
1646
+ #: ../admin/views/settings.php:43
1647
  msgid "the company behind Advanced Ads"
1648
  msgstr "das Unternehmen hinter Advanced Ads"
1649
 
1650
+ #: ../admin/views/settings.php:43
1651
  msgid "webgilde GmbH"
1652
  msgstr "webgilde GmbH"
1653
 
1660
  msgid "Close"
1661
  msgstr "Schließen"
1662
 
1663
+ #: ../classes/ad_placements.php:31
1664
+ msgid "Manual Placement"
1665
+ msgstr "Manuelle Platzierung"
1666
 
1667
+ #: ../classes/ad_placements.php:32
1668
+ msgid "Manual placement to use as function or shortcode."
1669
+ msgstr "Manuelle Platzierung zur Nutzung als Funktion oder Shortcode."
1670
 
1671
  #: ../classes/ad_placements.php:36
1672
+ msgid "Header Code"
1673
+ msgstr "Header-Code"
1674
+
1675
+ #: ../classes/ad_placements.php:37
1676
+ msgid "Injected in Header (before closing &lt;/head&gt; Tag, often not visible)."
1677
  msgstr ""
1678
+ "Automatisch im Header der Seite eingebunden (vor dem schließenden &lt;"
1679
+ "/head&gt; Tag, nicht für sichtbare Anzeigen gedacht)."
1680
 
1681
+ #: ../classes/ad_placements.php:41
1682
+ msgid "Footer Code"
1683
+ msgstr "Footer-Code"
1684
 
1685
+ #: ../classes/ad_placements.php:42
1686
+ msgid "Injected in Footer (before closing &lt;/body&gt; Tag)."
1687
+ msgstr ""
1688
+ "Automatisch im Footer der Seite eingebunden (vor dem schließenden &lt;"
1689
+ "/body&gt; Tag)."
1690
 
1691
+ #: ../classes/ad_placements.php:46
1692
+ msgid "Before Content"
1693
+ msgstr "Vor dem Inhalt"
1694
 
1695
+ #: ../classes/ad_placements.php:47
1696
  msgid "Injected before the post content."
1697
  msgstr "Injiziert vor den Beitrags-Inhalt."
1698
 
1699
+ #: ../classes/ad_placements.php:51
1700
+ msgid "After Content"
1701
+ msgstr "Nach dem Inhalt"
1702
 
1703
+ #: ../classes/ad_placements.php:52
1704
  msgid "Injected after the post content."
1705
  msgstr "Injiziert hinter den Beitrags-Inhalt."
1706
 
1707
+ #: ../classes/ad_placements.php:56
1708
+ msgid "Post Content"
1709
+ msgstr "Beitrags-Inhalt"
1710
 
1711
+ #: ../classes/ad_placements.php:57
1712
  msgid ""
1713
  "Injected into the post content. You can choose the paragraph after which the "
1714
  "ad content is displayed."
1715
  msgstr ""
1716
+ "Injiziert in den Beitrags-Inhalt. Sie können den Absatz oder die Überschrift "
1717
+ "wählen, nach dem die Anzeige eingebunden wird."
1718
 
1719
+ #: ../classes/ad_placements.php:199
1720
  #, php-format
1721
  msgid "paragraph (%s)"
1722
  msgstr "Absatz (%s)"
1723
 
1724
+ #: ../classes/ad_placements.php:200
1725
  #, php-format
1726
  msgid "headline 2 (%s)"
1727
  msgstr "Überschrift 2 (%s)"
1728
 
1729
+ #: ../classes/ad_placements.php:201
1730
  #, php-format
1731
  msgid "headline 3 (%s)"
1732
  msgstr "Überschrift 3 (%s)"
1733
 
1734
+ #: ../classes/ad_placements.php:202
1735
  #, php-format
1736
  msgid "headline 4 (%s)"
1737
  msgstr "Überschrift 4 (%s)"
1894
  msgid "Title:"
1895
  msgstr "Titel:"
1896
 
1897
+ #: ../classes/widget.php:57
1898
+ msgid "--empty--"
1899
+ msgstr "--leer--"
1900
+
1901
  #: ../includes/array_ad_conditions.php:38
1902
  msgid "Post Types"
1903
  msgstr "Beitrags-Typen"
2107
  msgid "Use ads from your Google AdSense account"
2108
  msgstr "Anzeigen aus Ihrem Google AdSense Konto"
2109
 
2110
+ #: ../modules/gadsense/includes/class-ad-type-adsense.php:101
2111
+ msgid "Your AdSense Publisher ID is missing."
2112
+ msgstr "Ihre AdSense Publisher ID fehlt."
2113
+
2114
  #: ../modules/gadsense/includes/class-gadsense-data.php:42
2115
  msgid "Auto"
2116
  msgstr "Auto"
2117
 
2118
+ #: ../public/class-advanced-ads.php:294
2119
  #, php-format
2120
  msgid "Advanced Ads Error: %s"
2121
  msgstr "Advanced-Ads-Fehler: %s"
2122
 
2123
+ #: ../public/class-advanced-ads.php:512
2124
  msgctxt "ad group general name"
2125
  msgid "Ad Groups"
2126
  msgstr "Anzeigen-Gruppen"
2127
 
2128
+ #: ../public/class-advanced-ads.php:513
2129
  msgctxt "ad group singular name"
2130
  msgid "Ad Group"
2131
  msgstr "Anzeigen-Gruppe"
2132
 
2133
+ #: ../public/class-advanced-ads.php:514
2134
  msgid "Search Ad Groups"
2135
  msgstr "Anzeigen-Gruppen suchen"
2136
 
2137
+ #: ../public/class-advanced-ads.php:515
2138
  msgid "All Ad Groups"
2139
  msgstr "Alle Anzeigen-Gruppen"
2140
 
2141
+ #: ../public/class-advanced-ads.php:516
2142
  msgid "Parent Ad Groups"
2143
  msgstr "Parent-Anzeigen-Gruppen"
2144
 
2145
+ #: ../public/class-advanced-ads.php:517
2146
  msgid "Parent Ad Groups:"
2147
  msgstr "Parent-Anzeigen-Gruppen"
2148
 
2149
+ #: ../public/class-advanced-ads.php:518
2150
  msgid "Edit Ad Group"
2151
  msgstr "Bearbeite Anzeigen-Gruppe"
2152
 
2153
+ #: ../public/class-advanced-ads.php:519
2154
  msgid "Update Ad Group"
2155
  msgstr "Aktualisiere Anzeigen-Gruppe"
2156
 
2157
+ #: ../public/class-advanced-ads.php:520
2158
  msgid "Add New Ad Group"
2159
  msgstr "Neue Anzeigengruppe hinzufügen"
2160
 
2161
+ #: ../public/class-advanced-ads.php:521
2162
  msgid "New Ad Groups Name"
2163
  msgstr "Neuer Anzeigen-Gruppen-Name"
2164
 
2165
+ #: ../public/class-advanced-ads.php:523
2166
  msgid "No Ad Group found"
2167
  msgstr "Keine Anzeigen-Gruppe gefunden"
2168
 
2169
+ #: ../public/class-advanced-ads.php:550 ../public/class-advanced-ads.php:554
2170
  msgid "New Ad"
2171
  msgstr "Neue Anzeige"
2172
 
2173
+ #: ../public/class-advanced-ads.php:551
2174
  msgid "Add New Ad"
2175
  msgstr "Neue Anzeige hinzufügen"
2176
 
2177
+ #: ../public/class-advanced-ads.php:553
2178
  msgid "Edit Ad"
2179
  msgstr "Anzeige bearbeiten"
2180
 
2181
+ #: ../public/class-advanced-ads.php:555
2182
  msgid "View"
2183
  msgstr "Ansicht"
2184
 
2185
+ #: ../public/class-advanced-ads.php:556
2186
  msgid "View the Ad"
2187
  msgstr "Anzeige ansehen"
2188
 
2189
+ #: ../public/class-advanced-ads.php:557
2190
  msgid "Search Ads"
2191
  msgstr "Anzeigen suchen"
2192
 
2193
+ #: ../public/class-advanced-ads.php:558
2194
  msgid "No Ads found"
2195
  msgstr "Keine Anzeigen gefunden"
2196
 
2197
+ #: ../public/class-advanced-ads.php:559
2198
  msgid "No Ads found in Trash"
2199
  msgstr "Keine Anzeigen im Papierkorb gefunden"
2200
 
2201
+ #: ../public/class-advanced-ads.php:560
2202
  msgid "Parent Ad"
2203
  msgstr "Übergeordnete Anzeige"
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: Sun Jul 05 2015 20:20:05 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"
@@ -24,230 +24,227 @@ msgstr ""
24
  "X-Poedit-Basepath: ../\n"
25
  "X-Poedit-SearchPath-0: ."
26
 
27
- #: ../admin/class-advanced-ads-admin.php:223
28
  msgid "Overview"
29
  msgstr ""
30
 
31
- #: ../admin/class-advanced-ads-admin.php:223 ../classes/widget.php:21
32
- msgid "Advanced Ads"
33
- msgstr ""
34
-
35
- #: ../admin/class-advanced-ads-admin.php:227 ../admin/class-advanced-ads-admin.
36
- #: php:227 ../admin/views/ad-group-list-form-row.php:25 ../admin/views/ad-group-
37
- #: list-header.php:5 ../admin/views/placements.php:64 ../classes/widget.php:66 ..
38
- #: /public/class-advanced-ads.php:551
39
  msgid "Ads"
40
  msgstr ""
41
 
42
- #: ../admin/class-advanced-ads-admin.php:231 ../admin/views/placements.php:57 ..
43
- #: /classes/widget.php:59
44
  msgid "Ad Groups"
45
  msgstr ""
46
 
47
- #: ../admin/class-advanced-ads-admin.php:231 ../public/class-advanced-ads.php:525
48
  msgid "Groups"
49
  msgstr ""
50
 
51
- #: ../admin/class-advanced-ads-admin.php:236 ../admin/views/debug.php:14
52
  msgid "Ad Placements"
53
  msgstr ""
54
 
55
- #: ../admin/class-advanced-ads-admin.php:236 ../admin/views/placements.php:18
56
  msgid "Placements"
57
  msgstr ""
58
 
59
- #: ../admin/class-advanced-ads-admin.php:240
60
  msgid "Advanced Ads Settings"
61
  msgstr ""
62
 
63
- #: ../admin/class-advanced-ads-admin.php:240 ../admin/class-advanced-ads-admin.
64
- #: php:410 ../admin/views/debug.php:11
65
  msgid "Settings"
66
  msgstr ""
67
 
68
- #: ../admin/class-advanced-ads-admin.php:243
69
  msgid "Advanced Ads Debugging"
70
  msgstr ""
71
 
72
- #: ../admin/class-advanced-ads-admin.php:243
73
  msgid "Debug"
74
  msgstr ""
75
 
76
- #: ../admin/class-advanced-ads-admin.php:324 ../admin/class-advanced-ads-admin.
77
- #: php:351
78
  msgid "Sorry, you are not allowed to access this feature."
79
  msgstr ""
80
 
81
- #: ../admin/class-advanced-ads-admin.php:337
82
  msgid ""
83
  "You attempted to edit an ad group that doesn&#8217;t exist. Perhaps it was "
84
  "deleted?"
85
  msgstr ""
86
 
87
- #: ../admin/class-advanced-ads-admin.php:452
88
  msgid "Ad Type"
89
  msgstr ""
90
 
91
- #: ../admin/class-advanced-ads-admin.php:455
92
  msgid "Ad Parameters"
93
  msgstr ""
94
 
95
- #: ../admin/class-advanced-ads-admin.php:458
96
  msgid "Layout / Output"
97
  msgstr ""
98
 
99
- #: ../admin/class-advanced-ads-admin.php:461
100
  msgid "Display Conditions"
101
  msgstr ""
102
 
103
- #: ../admin/class-advanced-ads-admin.php:464
104
  msgid "Visitor Conditions"
105
  msgstr ""
106
 
107
- #: ../admin/class-advanced-ads-admin.php:625 ../admin/class-advanced-ads-admin.
108
- #: php:626
109
  msgid "Ad updated."
110
  msgstr ""
111
 
112
  #. translators: %s: date and time of the revision
113
- #: ../admin/class-advanced-ads-admin.php:628
114
  #, php-format
115
  msgid "Ad restored to revision from %s"
116
  msgstr ""
117
 
118
- #: ../admin/class-advanced-ads-admin.php:629
119
  msgid "Ad published."
120
  msgstr ""
121
 
122
- #: ../admin/class-advanced-ads-admin.php:630
123
  msgid "Ad saved."
124
  msgstr ""
125
 
126
- #: ../admin/class-advanced-ads-admin.php:631
127
  msgid "Ad submitted."
128
  msgstr ""
129
 
130
- #: ../admin/class-advanced-ads-admin.php:633
131
  #, php-format
132
  msgid "Ad scheduled for: <strong>%1$s</strong>."
133
  msgstr ""
134
 
135
  #. translators: Publish box date format, see http://php.net/date
136
- #: ../admin/class-advanced-ads-admin.php:635
137
  msgid "M j, Y @ G:i"
138
  msgstr ""
139
 
140
- #: ../admin/class-advanced-ads-admin.php:637
141
  msgid "Ad draft updated."
142
  msgstr ""
143
 
144
- #: ../admin/class-advanced-ads-admin.php:656
145
  #, php-format
146
  msgid "%s ad updated."
147
  msgid_plural "%s ads updated."
148
  msgstr[0] ""
149
  msgstr[1] ""
150
 
151
- #: ../admin/class-advanced-ads-admin.php:657
152
  #, php-format
153
  msgid "%s ad not updated, somebody is editing it."
154
  msgid_plural "%s ads not updated, somebody is editing them."
155
  msgstr[0] ""
156
  msgstr[1] ""
157
 
158
- #: ../admin/class-advanced-ads-admin.php:658
159
  #, php-format
160
  msgid "%s ad permanently deleted."
161
  msgid_plural "%s ads permanently deleted."
162
  msgstr[0] ""
163
  msgstr[1] ""
164
 
165
- #: ../admin/class-advanced-ads-admin.php:659
166
  #, php-format
167
  msgid "%s ad moved to the Trash."
168
  msgid_plural "%s ads moved to the Trash."
169
  msgstr[0] ""
170
  msgstr[1] ""
171
 
172
- #: ../admin/class-advanced-ads-admin.php:660
173
  #, php-format
174
  msgid "%s ad restored from the Trash."
175
  msgid_plural "%s ads restored from the Trash."
176
  msgstr[0] ""
177
  msgstr[1] ""
178
 
179
- #: ../admin/class-advanced-ads-admin.php:697 ../admin/views/settings.php:12
180
  msgid "General"
181
  msgstr ""
182
 
183
- #: ../admin/class-advanced-ads-admin.php:705 ../admin/views/settings.php:18
 
184
  msgid "Licenses"
185
  msgstr ""
186
 
187
- #: ../admin/class-advanced-ads-admin.php:713
188
  msgid "Disable ads"
189
  msgstr ""
190
 
191
- #: ../admin/class-advanced-ads-admin.php:721
192
  msgid "Hide ads for logged in users"
193
  msgstr ""
194
 
195
- #: ../admin/class-advanced-ads-admin.php:729
196
  msgid "Use advanced JavaScript"
197
  msgstr ""
198
 
199
- #: ../admin/class-advanced-ads-admin.php:737
200
  msgid "Unlimited ad injection"
201
  msgstr ""
202
 
203
- #: ../admin/class-advanced-ads-admin.php:745
204
  msgid "Priority of content injection filter"
205
  msgstr ""
206
 
207
- #: ../admin/class-advanced-ads-admin.php:753
208
  msgid "Hide ads from bots"
209
  msgstr ""
210
 
211
- #: ../admin/class-advanced-ads-admin.php:761
212
  msgid "Disable notices"
213
  msgstr ""
214
 
215
- #: ../admin/class-advanced-ads-admin.php:819
216
  msgid "(display to all)"
217
  msgstr ""
218
 
219
- #: ../admin/class-advanced-ads-admin.php:820
220
  msgid "Subscriber"
221
  msgstr ""
222
 
223
- #: ../admin/class-advanced-ads-admin.php:821
224
  msgid "Contributor"
225
  msgstr ""
226
 
227
- #: ../admin/class-advanced-ads-admin.php:822
228
  msgid "Author"
229
  msgstr ""
230
 
231
- #: ../admin/class-advanced-ads-admin.php:823
232
  msgid "Editor"
233
  msgstr ""
234
 
235
- #: ../admin/class-advanced-ads-admin.php:824
236
  msgid "Admin"
237
  msgstr ""
238
 
239
- #: ../admin/class-advanced-ads-admin.php:832
240
  msgid "Choose the lowest role a user must have in order to not see any ads."
241
  msgstr ""
242
 
243
- #: ../admin/class-advanced-ads-admin.php:845
244
  #, php-format
245
  msgid ""
246
  "Only enable this if you can and want to use the advanced JavaScript "
247
  "functions described <a href=\"%s\">here</a>."
248
  msgstr ""
249
 
250
- #: ../admin/class-advanced-ads-admin.php:858
251
  msgid ""
252
  "Some plugins and themes trigger ad injection where it shouldn’t happen. "
253
  "Therefore, Advanced Ads ignores injected placements on non-singular pages "
@@ -256,13 +253,13 @@ msgid ""
256
  "on archive pages AT YOUR OWN RISK."
257
  msgstr ""
258
 
259
- #: ../admin/class-advanced-ads-admin.php:872
260
  msgid ""
261
  "Play with this value in order to change the priority of the injected ads "
262
  "compared to other auto injected elements in the post content."
263
  msgstr ""
264
 
265
- #: ../admin/class-advanced-ads-admin.php:885
266
  #, php-format
267
  msgid ""
268
  "Hide ads from crawlers, bots and empty user agents. Also prevents counting "
@@ -270,66 +267,66 @@ msgid ""
270
  "Add-On</a>."
271
  msgstr ""
272
 
273
- #: ../admin/class-advanced-ads-admin.php:886
274
  msgid ""
275
  "Disabling this option only makes sense if your ads contain content you want "
276
  "to display to bots (like search engines) or your site is cached and bots "
277
  "could create a cached version without the ads."
278
  msgstr ""
279
 
280
- #: ../admin/class-advanced-ads-admin.php:899
281
  msgid ""
282
  "Disable all internal notices like tips, tutorials and email newsletters but "
283
  "not critical update notices. Disabling notices is recommended if you run "
284
  "multiple blogs with Advanced Ads already.."
285
  msgstr ""
286
 
287
- #: ../admin/class-advanced-ads-admin.php:950
288
  msgid "Ad Details"
289
  msgstr ""
290
 
291
- #: ../admin/class-advanced-ads-admin.php:1024
292
  msgid "Ad Settings"
293
  msgstr ""
294
 
295
- #: ../admin/class-advanced-ads-admin.php:1103 ../admin/views/overview.php:23
296
  msgid "Ads Dashboard"
297
  msgstr ""
298
 
299
- #: ../admin/class-advanced-ads-admin.php:1115
300
  msgid "From the ad optimization universe"
301
  msgstr ""
302
 
303
- #: ../admin/class-advanced-ads-admin.php:1124
304
  msgid "Advanced Ads Tutorials"
305
  msgstr ""
306
 
307
- #: ../admin/class-advanced-ads-admin.php:1135
308
  #, php-format
309
  msgid "%d ads – <a href=\"%s\">manage</a> - <a href=\"%s\">new</a>"
310
  msgstr ""
311
 
312
- #: ../admin/class-advanced-ads-admin.php:1146
313
  msgid "plugin manual and homepage"
314
  msgstr ""
315
 
316
- #: ../admin/class-advanced-ads-admin.php:1153
317
  msgid "Get the tutorial via email"
318
  msgstr ""
319
 
320
- #: ../admin/class-advanced-ads-admin.php:1160
321
  msgid "Get AdSense tips via email"
322
  msgstr ""
323
 
324
- #: ../admin/class-advanced-ads-admin.php:1234
325
  msgid "Error while trying to register the license. Please contact support."
326
  msgstr ""
327
 
328
- #: ../admin/class-advanced-ads-admin.php:1240
329
  msgid "Please enter and save a valid license key first."
330
  msgstr ""
331
 
332
- #: ../admin/class-advanced-ads-admin.php:1260
333
  #, php-format
334
  msgid "License is invalid. Reason: %s"
335
  msgstr ""
@@ -381,7 +378,7 @@ msgid "Display ads with the highest ad weight first"
381
  msgstr ""
382
 
383
  #: ../admin/includes/class-ad-groups-list.php:259 ../public/class-advanced-ads.
384
- #: php:555
385
  msgid "Edit"
386
  msgstr ""
387
 
@@ -531,17 +528,25 @@ msgstr ""
531
  msgid "type the title"
532
  msgstr ""
533
 
534
- #: ../admin/includes/class-notices.php:307
535
  #, php-format
536
  msgid ""
537
- "You don’t seem to have an email address. Please add one to your <a "
538
- "href=\"%s\">WordPress profile</a>"
539
  msgstr ""
540
 
541
- #: ../admin/includes/class-notices.php:325
542
  msgid "How embarrassing. The email server seems to be down. Please try again later."
543
  msgstr ""
544
 
 
 
 
 
 
 
 
 
545
  #: ../admin/includes/class-overview-widgets.php:45
546
  msgid "Tips and Tutorials"
547
  msgstr ""
@@ -813,6 +818,30 @@ msgid ""
813
  "and Advanced Ads from my dedicated newsletter."
814
  msgstr ""
815
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
816
  #: ../admin/views/ad-display-metabox.php:8
817
  msgid "Choose where to display the ad and where to hide it."
818
  msgstr ""
@@ -894,7 +923,7 @@ msgstr ""
894
  msgid "Update"
895
  msgstr ""
896
 
897
- #: ../admin/views/ad-group-list-form-row.php:3 ../admin/views/placements.php:33
898
  msgid "Name"
899
  msgstr ""
900
 
@@ -902,7 +931,7 @@ msgstr ""
902
  msgid "Description"
903
  msgstr ""
904
 
905
- #: ../admin/views/ad-group-list-form-row.php:7 ../admin/views/placements.php:34 ..
906
  #: /modules/gadsense/admin/views/adsense-ad-parameters.php:38
907
  msgid "Type"
908
  msgstr ""
@@ -921,7 +950,7 @@ msgid "Number of ads to display in the block"
921
  msgstr ""
922
 
923
  #: ../admin/views/ad-group-list-form-row.php:28 ../public/class-advanced-ads.php:
924
- #: 552
925
  msgid "Ad"
926
  msgstr ""
927
 
@@ -938,12 +967,12 @@ msgid "Details"
938
  msgstr ""
939
 
940
  #: ../admin/views/ad-group-list-row.php:8 ../admin/views/ad-group.php:63 ..
941
- #: /admin/views/ad-info.php:3 ../admin/views/placements.php:22
942
  msgid "shortcode"
943
  msgstr ""
944
 
945
  #: ../admin/views/ad-group-list-row.php:11 ../admin/views/ad-group.php:66 ..
946
- #: /admin/views/placements.php:25
947
  msgid "template"
948
  msgstr ""
949
 
@@ -1121,8 +1150,7 @@ msgstr ""
1121
  msgid "- default -"
1122
  msgstr ""
1123
 
1124
- #: ../admin/views/ad-output-metabox.php:7 ../admin/views/placements.php:49 ..
1125
- #: /classes/ad_placements.php:31
1126
  msgid "default"
1127
  msgstr ""
1128
 
@@ -1266,7 +1294,9 @@ msgid ""
1266
  msgstr ""
1267
 
1268
  #: ../admin/views/placements.php:8
1269
- msgid "Couldn’t create empty or existing slug."
 
 
1270
  msgstr ""
1271
 
1272
  #: ../admin/views/placements.php:10
@@ -1287,88 +1317,84 @@ msgid ""
1287
  "<a href=\"%s\">auto injection</a>."
1288
  msgstr ""
1289
 
1290
- #: ../admin/views/placements.php:19
1291
- msgid "How to use the <i>default</i> Ad Placement?"
1292
- msgstr ""
1293
-
1294
- #: ../admin/views/placements.php:21
1295
- #, php-format
1296
- msgid ""
1297
- "Examples on how to use the <i>default</i> ad placement? Find more help and "
1298
- "examples in the <a href=\"%s\" target=\"_blank\">manual</a>"
1299
- msgstr ""
1300
-
1301
- #: ../admin/views/placements.php:23
1302
- msgid "To use an ad placement with the ID skyscraper_left in content fields"
1303
- msgstr ""
1304
-
1305
- #: ../admin/views/placements.php:26
1306
- msgid "To use an ad placement with the ID skyscraper_left in template files"
1307
  msgstr ""
1308
 
1309
- #: ../admin/views/placements.php:35
1310
- msgid "Options"
1311
  msgstr ""
1312
 
1313
- #: ../admin/views/placements.php:53
1314
  msgid "Item"
1315
  msgstr ""
1316
 
1317
- #: ../admin/views/placements.php:55 ../classes/widget.php:57
1318
- msgid "--empty--"
1319
  msgstr ""
1320
 
1321
- #: ../admin/views/placements.php:75
1322
  msgid "Inject"
1323
  msgstr ""
1324
 
1325
- #: ../admin/views/placements.php:76
1326
  msgid "after"
1327
  msgstr ""
1328
 
1329
- #: ../admin/views/placements.php:76
1330
  msgid "before"
1331
  msgstr ""
1332
 
1333
- #: ../admin/views/placements.php:101
1334
  msgid "remove placement"
1335
  msgstr ""
1336
 
1337
- #: ../admin/views/placements.php:107
1338
  msgid "Save Placements"
1339
  msgstr ""
1340
 
1341
- #: ../admin/views/placements.php:112
1342
  msgid "Create a new placement"
1343
  msgstr ""
1344
 
1345
- #: ../admin/views/placements.php:114
 
 
 
 
1346
  msgid "Choose a placement type"
1347
  msgstr ""
1348
 
1349
- #: ../admin/views/placements.php:115
1350
  #, php-format
1351
  msgid ""
1352
- "Placement types define how the placements works and where it is going to be "
1353
- "displayed. Learn more about the different types from the <a "
1354
- "href=\"%s\">manual</a>"
1355
  msgstr ""
1356
 
1357
- #: ../admin/views/placements.php:125
1358
  msgid "Choose a Name"
1359
  msgstr ""
1360
 
1361
- #: ../admin/views/placements.php:126
1362
  msgid ""
1363
  "The name of the placement is only visible to you. Tip: choose a descriptive "
1364
  "one, e.g. <em>Below Post Headline</em>."
1365
  msgstr ""
1366
 
1367
- #: ../admin/views/placements.php:127
1368
  msgid "Placement Name"
1369
  msgstr ""
1370
 
1371
- #: ../admin/views/placements.php:128
 
 
 
 
 
 
 
 
1372
  msgid "Save New Placement"
1373
  msgstr ""
1374
 
@@ -1376,35 +1402,35 @@ msgstr ""
1376
  msgid "Disable ads on this page"
1377
  msgstr ""
1378
 
1379
- #: ../admin/views/setting-license.php:9
1380
  #, php-format
1381
  msgid ""
1382
  "Your license expired. Please visit <a href=\"%s\" target=\"_blank\">the plugin "
1383
  "page</a> to renew it."
1384
  msgstr ""
1385
 
1386
- #: ../admin/views/setting-license.php:13
1387
  msgid "License key"
1388
  msgstr ""
1389
 
1390
- #: ../admin/views/setting-license.php:25
1391
  msgid "Activate License"
1392
  msgstr ""
1393
 
1394
- #: ../admin/views/setting-license.php:28
1395
  msgid "license key invalid"
1396
  msgstr ""
1397
 
1398
- #: ../admin/views/setting-license.php:34
1399
  msgid "active"
1400
  msgstr ""
1401
 
1402
- #: ../admin/views/setting-license.php:35
1403
  #, php-format
1404
  msgid "(%d days left)"
1405
  msgstr ""
1406
 
1407
- #: ../admin/views/setting-license.php:38
1408
  msgid ""
1409
  "1. enter the key and save options; 2. click the activate button behind the "
1410
  "field"
@@ -1443,27 +1469,27 @@ msgid ""
1443
  "appear."
1444
  msgstr ""
1445
 
1446
- #: ../admin/views/settings.php:40
1447
  msgid "Save settings on this page"
1448
  msgstr ""
1449
 
1450
- #: ../admin/views/settings.php:47
1451
  msgid "Debug Page"
1452
  msgstr ""
1453
 
1454
- #: ../admin/views/settings.php:48
1455
  msgid "Advanced Ads on WordPress.org"
1456
  msgstr ""
1457
 
1458
- #: ../admin/views/settings.php:48
1459
  msgid "Advanced Ads on wp.org"
1460
  msgstr ""
1461
 
1462
- #: ../admin/views/settings.php:49
1463
  msgid "the company behind Advanced Ads"
1464
  msgstr ""
1465
 
1466
- #: ../admin/views/settings.php:49
1467
  msgid "webgilde GmbH"
1468
  msgstr ""
1469
 
@@ -1476,68 +1502,72 @@ msgstr ""
1476
  msgid "Close"
1477
  msgstr ""
1478
 
1479
- #: ../classes/ad_placements.php:32
1480
- msgid "Manual placement."
1481
  msgstr ""
1482
 
1483
- #: ../classes/ad_placements.php:35
1484
- msgid "header"
1485
  msgstr ""
1486
 
1487
  #: ../classes/ad_placements.php:36
1488
- msgid "Injected in Header (before closing </head> Tag, often not visible)."
1489
  msgstr ""
1490
 
1491
- #: ../classes/ad_placements.php:39
1492
- msgid "footer"
1493
  msgstr ""
1494
 
1495
- #: ../classes/ad_placements.php:40
1496
- msgid "Injected in Footer (before closing </body> Tag)."
1497
  msgstr ""
1498
 
1499
- #: ../classes/ad_placements.php:43
1500
- msgid "before post"
1501
  msgstr ""
1502
 
1503
- #: ../classes/ad_placements.php:44
1504
- msgid "Injected before the post content."
1505
  msgstr ""
1506
 
1507
  #: ../classes/ad_placements.php:47
1508
- msgid "after post"
1509
  msgstr ""
1510
 
1511
- #: ../classes/ad_placements.php:48
 
 
 
 
1512
  msgid "Injected after the post content."
1513
  msgstr ""
1514
 
1515
- #: ../classes/ad_placements.php:51
1516
- msgid "post content"
1517
  msgstr ""
1518
 
1519
- #: ../classes/ad_placements.php:52
1520
  msgid ""
1521
  "Injected into the post content. You can choose the paragraph after which the "
1522
  "ad content is displayed."
1523
  msgstr ""
1524
 
1525
- #: ../classes/ad_placements.php:190
1526
  #, php-format
1527
  msgid "paragraph (%s)"
1528
  msgstr ""
1529
 
1530
- #: ../classes/ad_placements.php:191
1531
  #, php-format
1532
  msgid "headline 2 (%s)"
1533
  msgstr ""
1534
 
1535
- #: ../classes/ad_placements.php:192
1536
  #, php-format
1537
  msgid "headline 3 (%s)"
1538
  msgstr ""
1539
 
1540
- #: ../classes/ad_placements.php:193
1541
  #, php-format
1542
  msgid "headline 4 (%s)"
1543
  msgstr ""
@@ -1686,6 +1716,10 @@ msgstr ""
1686
  msgid "Title:"
1687
  msgstr ""
1688
 
 
 
 
 
1689
  #: ../includes/array_ad_conditions.php:38
1690
  msgid "Post Types"
1691
  msgstr ""
@@ -1882,93 +1916,97 @@ msgstr ""
1882
  msgid "Use ads from your Google AdSense account"
1883
  msgstr ""
1884
 
 
 
 
 
1885
  #: ../modules/gadsense/includes/class-gadsense-data.php:42
1886
  msgid "Auto"
1887
  msgstr ""
1888
 
1889
- #: ../public/class-advanced-ads.php:302
1890
  #, php-format
1891
  msgid "Advanced Ads Error: %s"
1892
  msgstr ""
1893
 
1894
- #: ../public/class-advanced-ads.php:515
1895
  msgctxt "ad group general name"
1896
  msgid "Ad Groups"
1897
  msgstr ""
1898
 
1899
- #: ../public/class-advanced-ads.php:516
1900
  msgctxt "ad group singular name"
1901
  msgid "Ad Group"
1902
  msgstr ""
1903
 
1904
- #: ../public/class-advanced-ads.php:517
1905
  msgid "Search Ad Groups"
1906
  msgstr ""
1907
 
1908
- #: ../public/class-advanced-ads.php:518
1909
  msgid "All Ad Groups"
1910
  msgstr ""
1911
 
1912
- #: ../public/class-advanced-ads.php:519
1913
  msgid "Parent Ad Groups"
1914
  msgstr ""
1915
 
1916
- #: ../public/class-advanced-ads.php:520
1917
  msgid "Parent Ad Groups:"
1918
  msgstr ""
1919
 
1920
- #: ../public/class-advanced-ads.php:521
1921
  msgid "Edit Ad Group"
1922
  msgstr ""
1923
 
1924
- #: ../public/class-advanced-ads.php:522
1925
  msgid "Update Ad Group"
1926
  msgstr ""
1927
 
1928
- #: ../public/class-advanced-ads.php:523
1929
  msgid "Add New Ad Group"
1930
  msgstr ""
1931
 
1932
- #: ../public/class-advanced-ads.php:524
1933
  msgid "New Ad Groups Name"
1934
  msgstr ""
1935
 
1936
- #: ../public/class-advanced-ads.php:526
1937
  msgid "No Ad Group found"
1938
  msgstr ""
1939
 
1940
- #: ../public/class-advanced-ads.php:553 ../public/class-advanced-ads.php:557
1941
  msgid "New Ad"
1942
  msgstr ""
1943
 
1944
- #: ../public/class-advanced-ads.php:554
1945
  msgid "Add New Ad"
1946
  msgstr ""
1947
 
1948
- #: ../public/class-advanced-ads.php:556
1949
  msgid "Edit Ad"
1950
  msgstr ""
1951
 
1952
- #: ../public/class-advanced-ads.php:558
1953
  msgid "View"
1954
  msgstr ""
1955
 
1956
- #: ../public/class-advanced-ads.php:559
1957
  msgid "View the Ad"
1958
  msgstr ""
1959
 
1960
- #: ../public/class-advanced-ads.php:560
1961
  msgid "Search Ads"
1962
  msgstr ""
1963
 
1964
- #: ../public/class-advanced-ads.php:561
1965
  msgid "No Ads found"
1966
  msgstr ""
1967
 
1968
- #: ../public/class-advanced-ads.php:562
1969
  msgid "No Ads found in Trash"
1970
  msgstr ""
1971
 
1972
- #: ../public/class-advanced-ads.php:563
1973
  msgid "Parent Ad"
1974
  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: Sun Jul 26 2015 20:46:52 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"
24
  "X-Poedit-Basepath: ../\n"
25
  "X-Poedit-SearchPath-0: ."
26
 
27
+ #: ../admin/class-advanced-ads-admin.php:235
28
  msgid "Overview"
29
  msgstr ""
30
 
31
+ #: ../admin/class-advanced-ads-admin.php:239 ../admin/class-advanced-ads-admin.
32
+ #: php:239 ../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:243 ../admin/views/placements.php:64 ..
39
+ #: /admin/views/placements.php:148 ../classes/widget.php:59
40
  msgid "Ad Groups"
41
  msgstr ""
42
 
43
+ #: ../admin/class-advanced-ads-admin.php:243 ../public/class-advanced-ads.php:522
44
  msgid "Groups"
45
  msgstr ""
46
 
47
+ #: ../admin/class-advanced-ads-admin.php:248 ../admin/views/debug.php:14
48
  msgid "Ad Placements"
49
  msgstr ""
50
 
51
+ #: ../admin/class-advanced-ads-admin.php:248 ../admin/views/placements.php:18
52
  msgid "Placements"
53
  msgstr ""
54
 
55
+ #: ../admin/class-advanced-ads-admin.php:252
56
  msgid "Advanced Ads Settings"
57
  msgstr ""
58
 
59
+ #: ../admin/class-advanced-ads-admin.php:252 ../admin/class-advanced-ads-admin.
60
+ #: php:423 ../admin/views/debug.php:11
61
  msgid "Settings"
62
  msgstr ""
63
 
64
+ #: ../admin/class-advanced-ads-admin.php:255
65
  msgid "Advanced Ads Debugging"
66
  msgstr ""
67
 
68
+ #: ../admin/class-advanced-ads-admin.php:255
69
  msgid "Debug"
70
  msgstr ""
71
 
72
+ #: ../admin/class-advanced-ads-admin.php:337 ../admin/class-advanced-ads-admin.
73
+ #: php:364
74
  msgid "Sorry, you are not allowed to access this feature."
75
  msgstr ""
76
 
77
+ #: ../admin/class-advanced-ads-admin.php:350
78
  msgid ""
79
  "You attempted to edit an ad group that doesn&#8217;t exist. Perhaps it was "
80
  "deleted?"
81
  msgstr ""
82
 
83
+ #: ../admin/class-advanced-ads-admin.php:465
84
  msgid "Ad Type"
85
  msgstr ""
86
 
87
+ #: ../admin/class-advanced-ads-admin.php:468
88
  msgid "Ad Parameters"
89
  msgstr ""
90
 
91
+ #: ../admin/class-advanced-ads-admin.php:471
92
  msgid "Layout / Output"
93
  msgstr ""
94
 
95
+ #: ../admin/class-advanced-ads-admin.php:474
96
  msgid "Display Conditions"
97
  msgstr ""
98
 
99
+ #: ../admin/class-advanced-ads-admin.php:477
100
  msgid "Visitor Conditions"
101
  msgstr ""
102
 
103
+ #: ../admin/class-advanced-ads-admin.php:643 ../admin/class-advanced-ads-admin.
104
+ #: php:644
105
  msgid "Ad updated."
106
  msgstr ""
107
 
108
  #. translators: %s: date and time of the revision
109
+ #: ../admin/class-advanced-ads-admin.php:646
110
  #, php-format
111
  msgid "Ad restored to revision from %s"
112
  msgstr ""
113
 
114
+ #: ../admin/class-advanced-ads-admin.php:647
115
  msgid "Ad published."
116
  msgstr ""
117
 
118
+ #: ../admin/class-advanced-ads-admin.php:648
119
  msgid "Ad saved."
120
  msgstr ""
121
 
122
+ #: ../admin/class-advanced-ads-admin.php:649
123
  msgid "Ad submitted."
124
  msgstr ""
125
 
126
+ #: ../admin/class-advanced-ads-admin.php:651
127
  #, php-format
128
  msgid "Ad scheduled for: <strong>%1$s</strong>."
129
  msgstr ""
130
 
131
  #. translators: Publish box date format, see http://php.net/date
132
+ #: ../admin/class-advanced-ads-admin.php:653
133
  msgid "M j, Y @ G:i"
134
  msgstr ""
135
 
136
+ #: ../admin/class-advanced-ads-admin.php:655
137
  msgid "Ad draft updated."
138
  msgstr ""
139
 
140
+ #: ../admin/class-advanced-ads-admin.php:674
141
  #, php-format
142
  msgid "%s ad updated."
143
  msgid_plural "%s ads updated."
144
  msgstr[0] ""
145
  msgstr[1] ""
146
 
147
+ #: ../admin/class-advanced-ads-admin.php:675
148
  #, php-format
149
  msgid "%s ad not updated, somebody is editing it."
150
  msgid_plural "%s ads not updated, somebody is editing them."
151
  msgstr[0] ""
152
  msgstr[1] ""
153
 
154
+ #: ../admin/class-advanced-ads-admin.php:676
155
  #, php-format
156
  msgid "%s ad permanently deleted."
157
  msgid_plural "%s ads permanently deleted."
158
  msgstr[0] ""
159
  msgstr[1] ""
160
 
161
+ #: ../admin/class-advanced-ads-admin.php:677
162
  #, php-format
163
  msgid "%s ad moved to the Trash."
164
  msgid_plural "%s ads moved to the Trash."
165
  msgstr[0] ""
166
  msgstr[1] ""
167
 
168
+ #: ../admin/class-advanced-ads-admin.php:678
169
  #, php-format
170
  msgid "%s ad restored from the Trash."
171
  msgid_plural "%s ads restored from the Trash."
172
  msgstr[0] ""
173
  msgstr[1] ""
174
 
175
+ #: ../admin/class-advanced-ads-admin.php:713 ../admin/views/settings.php:12
176
  msgid "General"
177
  msgstr ""
178
 
179
+ #: ../admin/class-advanced-ads-admin.php:725 ../admin/class-advanced-ads-admin.
180
+ #: php:805
181
  msgid "Licenses"
182
  msgstr ""
183
 
184
+ #: ../admin/class-advanced-ads-admin.php:736
185
  msgid "Disable ads"
186
  msgstr ""
187
 
188
+ #: ../admin/class-advanced-ads-admin.php:744
189
  msgid "Hide ads for logged in users"
190
  msgstr ""
191
 
192
+ #: ../admin/class-advanced-ads-admin.php:752
193
  msgid "Use advanced JavaScript"
194
  msgstr ""
195
 
196
+ #: ../admin/class-advanced-ads-admin.php:760
197
  msgid "Unlimited ad injection"
198
  msgstr ""
199
 
200
+ #: ../admin/class-advanced-ads-admin.php:768
201
  msgid "Priority of content injection filter"
202
  msgstr ""
203
 
204
+ #: ../admin/class-advanced-ads-admin.php:776
205
  msgid "Hide ads from bots"
206
  msgstr ""
207
 
208
+ #: ../admin/class-advanced-ads-admin.php:784
209
  msgid "Disable notices"
210
  msgstr ""
211
 
212
+ #: ../admin/class-advanced-ads-admin.php:859
213
  msgid "(display to all)"
214
  msgstr ""
215
 
216
+ #: ../admin/class-advanced-ads-admin.php:860
217
  msgid "Subscriber"
218
  msgstr ""
219
 
220
+ #: ../admin/class-advanced-ads-admin.php:861
221
  msgid "Contributor"
222
  msgstr ""
223
 
224
+ #: ../admin/class-advanced-ads-admin.php:862
225
  msgid "Author"
226
  msgstr ""
227
 
228
+ #: ../admin/class-advanced-ads-admin.php:863
229
  msgid "Editor"
230
  msgstr ""
231
 
232
+ #: ../admin/class-advanced-ads-admin.php:864
233
  msgid "Admin"
234
  msgstr ""
235
 
236
+ #: ../admin/class-advanced-ads-admin.php:872
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:885
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:898
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
  "on archive pages AT YOUR OWN RISK."
254
  msgstr ""
255
 
256
+ #: ../admin/class-advanced-ads-admin.php:912
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:925
263
  #, php-format
264
  msgid ""
265
  "Hide ads from crawlers, bots and empty user agents. Also prevents counting "
267
  "Add-On</a>."
268
  msgstr ""
269
 
270
+ #: ../admin/class-advanced-ads-admin.php:926
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:939
278
  msgid ""
279
  "Disable all internal notices like tips, tutorials and email newsletters but "
280
  "not critical update notices. Disabling notices is recommended if you run "
281
  "multiple blogs with Advanced Ads already.."
282
  msgstr ""
283
 
284
+ #: ../admin/class-advanced-ads-admin.php:992
285
  msgid "Ad Details"
286
  msgstr ""
287
 
288
+ #: ../admin/class-advanced-ads-admin.php:1066
289
  msgid "Ad Settings"
290
  msgstr ""
291
 
292
+ #: ../admin/class-advanced-ads-admin.php:1145 ../admin/views/overview.php:23
293
  msgid "Ads Dashboard"
294
  msgstr ""
295
 
296
+ #: ../admin/class-advanced-ads-admin.php:1157
297
  msgid "From the ad optimization universe"
298
  msgstr ""
299
 
300
+ #: ../admin/class-advanced-ads-admin.php:1166
301
  msgid "Advanced Ads Tutorials"
302
  msgstr ""
303
 
304
+ #: ../admin/class-advanced-ads-admin.php:1177
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:1188
310
  msgid "plugin manual and homepage"
311
  msgstr ""
312
 
313
+ #: ../admin/class-advanced-ads-admin.php:1195
314
  msgid "Get the tutorial via email"
315
  msgstr ""
316
 
317
+ #: ../admin/class-advanced-ads-admin.php:1202
318
  msgid "Get AdSense tips via email"
319
  msgstr ""
320
 
321
+ #: ../admin/class-advanced-ads-admin.php:1276
322
  msgid "Error while trying to register the license. Please contact support."
323
  msgstr ""
324
 
325
+ #: ../admin/class-advanced-ads-admin.php:1282
326
  msgid "Please enter and save a valid license key first."
327
  msgstr ""
328
 
329
+ #: ../admin/class-advanced-ads-admin.php:1302
330
  #, php-format
331
  msgid "License is invalid. Reason: %s"
332
  msgstr ""
378
  msgstr ""
379
 
380
  #: ../admin/includes/class-ad-groups-list.php:259 ../public/class-advanced-ads.
381
+ #: php:552
382
  msgid "Edit"
383
  msgstr ""
384
 
528
  msgid "type the title"
529
  msgstr ""
530
 
531
+ #: ../admin/includes/class-notices.php:341
532
  #, php-format
533
  msgid ""
534
+ "You don’t seem to have an email address. Please use <a href=\"%s\" "
535
+ "target=\"_blank\">this form</a> to sign up."
536
  msgstr ""
537
 
538
+ #: ../admin/includes/class-notices.php:359
539
  msgid "How embarrassing. The email server seems to be down. Please try again later."
540
  msgstr ""
541
 
542
+ #: ../admin/includes/class-notices.php:364
543
+ #, php-format
544
+ msgid ""
545
+ "Please check your email (%s) for the confirmation message. If you didn’t "
546
+ "receive one or want to use another email address then please use <a "
547
+ "href=\"%s\" target=\"_blank\">this form</a> to sign up."
548
+ msgstr ""
549
+
550
  #: ../admin/includes/class-overview-widgets.php:45
551
  msgid "Tips and Tutorials"
552
  msgstr ""
818
  "and Advanced Ads from my dedicated newsletter."
819
  msgstr ""
820
 
821
+ #: ../admin/includes/notices.php:47
822
+ #, php-format
823
+ msgid ""
824
+ "One or more license keys for <strong>Advanced Ads add-ons are invalid or "
825
+ "missing</strong>. Please add valid license keys <a href=\"%s\">here</a>."
826
+ msgstr ""
827
+
828
+ #: ../admin/includes/notices.php:52
829
+ #, php-format
830
+ msgid ""
831
+ "One or more licenses for your <strong>Advanced Ads add-ons are expiring "
832
+ "soon</strong>. Don’t risk to lose support and updates and renew your license "
833
+ "before it expires with a significant discount on <a href=\"%s\" "
834
+ "target=\"_blank\">the add-on page</a>."
835
+ msgstr ""
836
+
837
+ #: ../admin/includes/notices.php:57
838
+ #, php-format
839
+ msgid ""
840
+ "<strong>Advanced Ads</strong> license(s) expired. Support and updates are "
841
+ "disabled. Please visit <a href=\"%s\"> the license page</a> for more "
842
+ "information."
843
+ msgstr ""
844
+
845
  #: ../admin/views/ad-display-metabox.php:8
846
  msgid "Choose where to display the ad and where to hide it."
847
  msgstr ""
923
  msgid "Update"
924
  msgstr ""
925
 
926
+ #: ../admin/views/ad-group-list-form-row.php:3 ../admin/views/placements.php:24
927
  msgid "Name"
928
  msgstr ""
929
 
931
  msgid "Description"
932
  msgstr ""
933
 
934
+ #: ../admin/views/ad-group-list-form-row.php:7 ../admin/views/placements.php:23 ..
935
  #: /modules/gadsense/admin/views/adsense-ad-parameters.php:38
936
  msgid "Type"
937
  msgstr ""
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
 
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
  msgid "- default -"
1151
  msgstr ""
1152
 
1153
+ #: ../admin/views/ad-output-metabox.php:7 ../admin/views/placements.php:43
 
1154
  msgid "default"
1155
  msgstr ""
1156
 
1294
  msgstr ""
1295
 
1296
  #: ../admin/views/placements.php:8
1297
+ msgid ""
1298
+ "Couldn’t create the new placement. Please check your form field and whether "
1299
+ "the name is already in use."
1300
  msgstr ""
1301
 
1302
  #: ../admin/views/placements.php:10
1317
  "<a href=\"%s\">auto injection</a>."
1318
  msgstr ""
1319
 
1320
+ #: ../admin/views/placements.php:25
1321
+ msgid "Options"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1322
  msgstr ""
1323
 
1324
+ #: ../admin/views/placements.php:48
1325
+ msgid "show usage"
1326
  msgstr ""
1327
 
1328
+ #: ../admin/views/placements.php:60
1329
  msgid "Item"
1330
  msgstr ""
1331
 
1332
+ #: ../admin/views/placements.php:62 ../admin/views/placements.php:146
1333
+ msgid "--not selected--"
1334
  msgstr ""
1335
 
1336
+ #: ../admin/views/placements.php:82
1337
  msgid "Inject"
1338
  msgstr ""
1339
 
1340
+ #: ../admin/views/placements.php:83
1341
  msgid "after"
1342
  msgstr ""
1343
 
1344
+ #: ../admin/views/placements.php:83
1345
  msgid "before"
1346
  msgstr ""
1347
 
1348
+ #: ../admin/views/placements.php:107
1349
  msgid "remove placement"
1350
  msgstr ""
1351
 
1352
+ #: ../admin/views/placements.php:113
1353
  msgid "Save Placements"
1354
  msgstr ""
1355
 
1356
+ #: ../admin/views/placements.php:115
1357
  msgid "Create a new placement"
1358
  msgstr ""
1359
 
1360
+ #: ../admin/views/placements.php:116
1361
+ msgid "New Placement"
1362
+ msgstr ""
1363
+
1364
+ #: ../admin/views/placements.php:122
1365
  msgid "Choose a placement type"
1366
  msgstr ""
1367
 
1368
+ #: ../admin/views/placements.php:123
1369
  #, php-format
1370
  msgid ""
1371
+ "Placement types define where the ad is going to be displayed. Learn more "
1372
+ "about the different types from the <a href=\"%s\">manual</a>"
 
1373
  msgstr ""
1374
 
1375
+ #: ../admin/views/placements.php:140
1376
  msgid "Choose a Name"
1377
  msgstr ""
1378
 
1379
+ #: ../admin/views/placements.php:141
1380
  msgid ""
1381
  "The name of the placement is only visible to you. Tip: choose a descriptive "
1382
  "one, e.g. <em>Below Post Headline</em>."
1383
  msgstr ""
1384
 
1385
+ #: ../admin/views/placements.php:142
1386
  msgid "Placement Name"
1387
  msgstr ""
1388
 
1389
+ #: ../admin/views/placements.php:143
1390
+ msgid "Choose the Ad or Group"
1391
+ msgstr ""
1392
+
1393
+ #: ../admin/views/placements.php:144
1394
+ msgid "The ad or group that should be displayed."
1395
+ msgstr ""
1396
+
1397
+ #: ../admin/views/placements.php:163
1398
  msgid "Save New Placement"
1399
  msgstr ""
1400
 
1402
  msgid "Disable ads on this page"
1403
  msgstr ""
1404
 
1405
+ #: ../admin/views/setting-license.php:10
1406
  #, php-format
1407
  msgid ""
1408
  "Your license expired. Please visit <a href=\"%s\" target=\"_blank\">the plugin "
1409
  "page</a> to renew it."
1410
  msgstr ""
1411
 
1412
+ #: ../admin/views/setting-license.php:14
1413
  msgid "License key"
1414
  msgstr ""
1415
 
1416
+ #: ../admin/views/setting-license.php:26
1417
  msgid "Activate License"
1418
  msgstr ""
1419
 
1420
+ #: ../admin/views/setting-license.php:29
1421
  msgid "license key invalid"
1422
  msgstr ""
1423
 
1424
+ #: ../admin/views/setting-license.php:35
1425
  msgid "active"
1426
  msgstr ""
1427
 
1428
+ #: ../admin/views/setting-license.php:36
1429
  #, php-format
1430
  msgid "(%d days left)"
1431
  msgstr ""
1432
 
1433
+ #: ../admin/views/setting-license.php:39
1434
  msgid ""
1435
  "1. enter the key and save options; 2. click the activate button behind the "
1436
  "field"
1469
  "appear."
1470
  msgstr ""
1471
 
1472
+ #: ../admin/views/settings.php:34
1473
  msgid "Save settings on this page"
1474
  msgstr ""
1475
 
1476
+ #: ../admin/views/settings.php:41
1477
  msgid "Debug Page"
1478
  msgstr ""
1479
 
1480
+ #: ../admin/views/settings.php:42
1481
  msgid "Advanced Ads on WordPress.org"
1482
  msgstr ""
1483
 
1484
+ #: ../admin/views/settings.php:42
1485
  msgid "Advanced Ads on wp.org"
1486
  msgstr ""
1487
 
1488
+ #: ../admin/views/settings.php:43
1489
  msgid "the company behind Advanced Ads"
1490
  msgstr ""
1491
 
1492
+ #: ../admin/views/settings.php:43
1493
  msgid "webgilde GmbH"
1494
  msgstr ""
1495
 
1502
  msgid "Close"
1503
  msgstr ""
1504
 
1505
+ #: ../classes/ad_placements.php:31
1506
+ msgid "Manual Placement"
1507
  msgstr ""
1508
 
1509
+ #: ../classes/ad_placements.php:32
1510
+ msgid "Manual placement to use as function or shortcode."
1511
  msgstr ""
1512
 
1513
  #: ../classes/ad_placements.php:36
1514
+ msgid "Header Code"
1515
  msgstr ""
1516
 
1517
+ #: ../classes/ad_placements.php:37
1518
+ msgid "Injected in Header (before closing &lt;/head&gt; Tag, often not visible)."
1519
  msgstr ""
1520
 
1521
+ #: ../classes/ad_placements.php:41
1522
+ msgid "Footer Code"
1523
  msgstr ""
1524
 
1525
+ #: ../classes/ad_placements.php:42
1526
+ msgid "Injected in Footer (before closing &lt;/body&gt; Tag)."
1527
  msgstr ""
1528
 
1529
+ #: ../classes/ad_placements.php:46
1530
+ msgid "Before Content"
1531
  msgstr ""
1532
 
1533
  #: ../classes/ad_placements.php:47
1534
+ msgid "Injected before the post content."
1535
  msgstr ""
1536
 
1537
+ #: ../classes/ad_placements.php:51
1538
+ msgid "After Content"
1539
+ msgstr ""
1540
+
1541
+ #: ../classes/ad_placements.php:52
1542
  msgid "Injected after the post content."
1543
  msgstr ""
1544
 
1545
+ #: ../classes/ad_placements.php:56
1546
+ msgid "Post Content"
1547
  msgstr ""
1548
 
1549
+ #: ../classes/ad_placements.php:57
1550
  msgid ""
1551
  "Injected into the post content. You can choose the paragraph after which the "
1552
  "ad content is displayed."
1553
  msgstr ""
1554
 
1555
+ #: ../classes/ad_placements.php:199
1556
  #, php-format
1557
  msgid "paragraph (%s)"
1558
  msgstr ""
1559
 
1560
+ #: ../classes/ad_placements.php:200
1561
  #, php-format
1562
  msgid "headline 2 (%s)"
1563
  msgstr ""
1564
 
1565
+ #: ../classes/ad_placements.php:201
1566
  #, php-format
1567
  msgid "headline 3 (%s)"
1568
  msgstr ""
1569
 
1570
+ #: ../classes/ad_placements.php:202
1571
  #, php-format
1572
  msgid "headline 4 (%s)"
1573
  msgstr ""
1716
  msgid "Title:"
1717
  msgstr ""
1718
 
1719
+ #: ../classes/widget.php:57
1720
+ msgid "--empty--"
1721
+ msgstr ""
1722
+
1723
  #: ../includes/array_ad_conditions.php:38
1724
  msgid "Post Types"
1725
  msgstr ""
1916
  msgid "Use ads from your Google AdSense account"
1917
  msgstr ""
1918
 
1919
+ #: ../modules/gadsense/includes/class-ad-type-adsense.php:101
1920
+ msgid "Your AdSense Publisher ID is missing."
1921
+ msgstr ""
1922
+
1923
  #: ../modules/gadsense/includes/class-gadsense-data.php:42
1924
  msgid "Auto"
1925
  msgstr ""
1926
 
1927
+ #: ../public/class-advanced-ads.php:294
1928
  #, php-format
1929
  msgid "Advanced Ads Error: %s"
1930
  msgstr ""
1931
 
1932
+ #: ../public/class-advanced-ads.php:512
1933
  msgctxt "ad group general name"
1934
  msgid "Ad Groups"
1935
  msgstr ""
1936
 
1937
+ #: ../public/class-advanced-ads.php:513
1938
  msgctxt "ad group singular name"
1939
  msgid "Ad Group"
1940
  msgstr ""
1941
 
1942
+ #: ../public/class-advanced-ads.php:514
1943
  msgid "Search Ad Groups"
1944
  msgstr ""
1945
 
1946
+ #: ../public/class-advanced-ads.php:515
1947
  msgid "All Ad Groups"
1948
  msgstr ""
1949
 
1950
+ #: ../public/class-advanced-ads.php:516
1951
  msgid "Parent Ad Groups"
1952
  msgstr ""
1953
 
1954
+ #: ../public/class-advanced-ads.php:517
1955
  msgid "Parent Ad Groups:"
1956
  msgstr ""
1957
 
1958
+ #: ../public/class-advanced-ads.php:518
1959
  msgid "Edit Ad Group"
1960
  msgstr ""
1961
 
1962
+ #: ../public/class-advanced-ads.php:519
1963
  msgid "Update Ad Group"
1964
  msgstr ""
1965
 
1966
+ #: ../public/class-advanced-ads.php:520
1967
  msgid "Add New Ad Group"
1968
  msgstr ""
1969
 
1970
+ #: ../public/class-advanced-ads.php:521
1971
  msgid "New Ad Groups Name"
1972
  msgstr ""
1973
 
1974
+ #: ../public/class-advanced-ads.php:523
1975
  msgid "No Ad Group found"
1976
  msgstr ""
1977
 
1978
+ #: ../public/class-advanced-ads.php:550 ../public/class-advanced-ads.php:554
1979
  msgid "New Ad"
1980
  msgstr ""
1981
 
1982
+ #: ../public/class-advanced-ads.php:551
1983
  msgid "Add New Ad"
1984
  msgstr ""
1985
 
1986
+ #: ../public/class-advanced-ads.php:553
1987
  msgid "Edit Ad"
1988
  msgstr ""
1989
 
1990
+ #: ../public/class-advanced-ads.php:555
1991
  msgid "View"
1992
  msgstr ""
1993
 
1994
+ #: ../public/class-advanced-ads.php:556
1995
  msgid "View the Ad"
1996
  msgstr ""
1997
 
1998
+ #: ../public/class-advanced-ads.php:557
1999
  msgid "Search Ads"
2000
  msgstr ""
2001
 
2002
+ #: ../public/class-advanced-ads.php:558
2003
  msgid "No Ads found"
2004
  msgstr ""
2005
 
2006
+ #: ../public/class-advanced-ads.php:559
2007
  msgid "No Ads found in Trash"
2008
  msgstr ""
2009
 
2010
+ #: ../public/class-advanced-ads.php:560
2011
  msgid "Parent Ad"
2012
  msgstr ""
modules/gadsense/admin/class-gadsense-admin.php CHANGED
@@ -24,7 +24,7 @@ class Gadsense_Admin {
24
  public function ad_details_column($size, $the_ad) {
25
  if ( 'adsense' == $the_ad->type ) {
26
  $content = json_decode( $the_ad->content );
27
- if ( 'responsive' == $content->unitType ) { $size = __( 'Responsive', ADVADS_SLUG ); }
28
  }
29
  return $size;
30
  }
24
  public function ad_details_column($size, $the_ad) {
25
  if ( 'adsense' == $the_ad->type ) {
26
  $content = json_decode( $the_ad->content );
27
+ if ( $content && 'responsive' == $content->unitType ) { $size = __( 'Responsive', ADVADS_SLUG ); }
28
  }
29
  return $size;
30
  }
modules/gadsense/includes/class-ad-type-adsense.php CHANGED
@@ -96,6 +96,11 @@ class Advanced_Ads_Ad_Type_Adsense extends Advanced_Ads_Ad_Type_Abstract {
96
  }
97
  }
98
  }
 
 
 
 
 
99
  $default_template = GADSENSE_BASE_PATH . 'admin/views/adsense-ad-parameters.php';
100
  /**
101
  * Inclusion of other UI template is done here. The content is passed in order to allow the inclusion of different
96
  }
97
  }
98
  }
99
+
100
+ if( '' === trim( $pub_id ) && '' !== trim( $unit_code ) ){
101
+ $pub_id_errors = __( 'Your AdSense Publisher ID is missing.', ADVADS_SLUG );
102
+ }
103
+
104
  $default_template = GADSENSE_BASE_PATH . 'admin/views/adsense-ad-parameters.php';
105
  /**
106
  * Inclusion of other UI template is done here. The content is passed in order to allow the inclusion of different
public/assets/js/advanced.js CHANGED
@@ -1,77 +1 @@
1
- /*
2
- * advanced ads functions to be used directly within ad codes
3
- */
4
-
5
- advads = {
6
- /**
7
- * check if the ad is displayed more than {max} times per session
8
- * every check increases the counter
9
- *
10
- * @param {string} name (no id needed, just any id-formated string)
11
- * @param {type} max number of maximum times the ad can be displayed within the period
12
- * @returns {bool} true if limit is reached
13
- */
14
- max_per_session: function(name, max){
15
- var num = 1;
16
- if(max === undefined || parseInt( max ) === 0) { max = 1; }
17
-
18
- // check if cookie exists and get the value
19
- if(this.cookie_exists( name )){
20
- if(this.get_cookie( name ) >= max) { return true; }
21
- num = num + parseInt( this.get_cookie( name ) );
22
- }
23
- this.set_cookie( name, num );
24
- return false;
25
- },
26
- /**
27
- * get a cookie value
28
- *
29
- * @param {str} name of the cookie
30
- */
31
- get_cookie: function (name) {
32
- var i, x, y, ADVcookies = document.cookie.split( ";" );
33
- for (i = 0; i < ADVcookies.length; i++)
34
- {
35
- x = ADVcookies[i].substr( 0, ADVcookies[i].indexOf( "=" ) );
36
- y = ADVcookies[i].substr( ADVcookies[i].indexOf( "=" ) + 1 );
37
- x = x.replace( /^\s+|\s+$/g, "" );
38
- if (x === name)
39
- {
40
- return unescape( y );
41
- }
42
- }
43
- },
44
- /**
45
- * set a cookie value
46
- *
47
- * @param {str} name of the cookie
48
- * @param {str} value of the cookie
49
- * @param {int} exdays days until cookie expires
50
- * set 0 to expire cookie immidiatelly
51
- * set null to expire cookie in the current session
52
- */
53
- set_cookie: function (name, value, exdays, path, domain, secure) {
54
- var exdate = new Date();
55
- exdate.setDate( exdate.getDate() + exdays );
56
- document.cookie = name + "=" + escape( value ) +
57
- ((exdays == null) ? "" : "; expires=" + exdate.toUTCString()) +
58
- ((path == null) ? "; path=/" : "; path=" + path) +
59
- ((domain == null) ? "" : "; domain=" + domain) +
60
- ((secure == null) ? "" : "; secure");
61
- },
62
- /**
63
- * check if a cookie is set and contains a value
64
- *
65
- * @param {str} name of the cookie
66
- * @returns {bool} true, if cookie is set
67
- */
68
- cookie_exists: function (name)
69
- {
70
- var c_value = this.get_cookie( name );
71
- if (c_value !== null && c_value !== "" && c_value !== undefined)
72
- {
73
- return true;
74
- }
75
- return false;
76
- }
77
- };
1
+ advads={max_per_session:function(e,t){var s=1;if((void 0===t||0===parseInt(t))&&(t=1),this.cookie_exists(e)){if(this.get_cookie(e)>=t)return!0;s+=parseInt(this.get_cookie(e))}return this.set_cookie(e,s),!1},get_cookie:function(e){var t,s,i,n=document.cookie.split(";");for(t=0;t<n.length;t++)if(s=n[t].substr(0,n[t].indexOf("=")),i=n[t].substr(n[t].indexOf("=")+1),s=s.replace(/^\s+|\s+$/g,""),s===e)return unescape(i)},set_cookie:function(e,t,s,i,n,o){var r=new Date;r.setDate(r.getDate()+s),document.cookie=e+"="+escape(t)+(null==s?"":"; expires="+r.toUTCString())+(null==i?"; path=/":"; path="+i)+(null==n?"":"; domain="+n)+(null==o?"":"; secure")},cookie_exists:function(e){var t=this.get_cookie(e);return null!==t&&""!==t&&void 0!==t?!0:!1},move:function(e,t,s){var i=jQuery(e);if("undefined"==typeof s&&(s={}),"undefined"==typeof s.css&&(s.css={}),"undefined"==typeof s.method&&(s.method="prependTo"),""===t&&"undefined"!=typeof s.target)switch(s.target){case"wrapper":var n="left";"undefined"!=typeof s.offset&&(n=s.offset),t=this.find_wrapper(e,n)}switch(s.method){case"insertBefore":i.insertBefore(t);break;case"insertAfter":i.insertAfter(t);break;case"appendTo":i.appendTo(t);break;case"prependTo":i.prependTo(t);break;default:i.prependTo(t)}},fix_element:function(e){var t=jQuery(e),s=t.parent();("static"===s.css("position")||""===s.css("position"))&&s.css("position","relative");var i=parseInt(t.offset().top),n=parseInt(t.offset().left);t.css("position","fixed").css("top",i+"px").css("left",n+"px")},find_wrapper:function(e,t){var s;return jQuery("body").children().each(function(i,n){if(n.id!==e.substring(1)){var o=jQuery(n);if("right"===t&&o.offset().left+jQuery(o).width()<jQuery(window).width()||"left"===t&&o.offset().left>0)return("static"===o.css("position")||""===o.css("position"))&&o.css("position","relative"),s=n,!1}}),s},center_fixed_element:function(e){var t=jQuery(e),s=jQuery(window).width()/2-parseInt(t.css("width"))/2;t.css("left",s+"px")}};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
public/assets/js/advanced.orig.js ADDED
@@ -0,0 +1,192 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * advanced ads functions to be used directly within ad codes
3
+ */
4
+
5
+ advads = {
6
+ /**
7
+ * check if the ad is displayed more than {max} times per session
8
+ * every check increases the counter
9
+ *
10
+ * @param {string} name (no id needed, just any id-formated string)
11
+ * @param {type} max number of maximum times the ad can be displayed within the period
12
+ * @returns {bool} true if limit is reached
13
+ */
14
+ max_per_session: function(name, max){
15
+ var num = 1;
16
+ if(max === undefined || parseInt( max ) === 0) { max = 1; }
17
+
18
+ // check if cookie exists and get the value
19
+ if(this.cookie_exists( name )){
20
+ if(this.get_cookie( name ) >= max) { return true; }
21
+ num = num + parseInt( this.get_cookie( name ) );
22
+ }
23
+ this.set_cookie( name, num );
24
+ return false;
25
+ },
26
+ /**
27
+ * get a cookie value
28
+ *
29
+ * @param {str} name of the cookie
30
+ */
31
+ get_cookie: function (name) {
32
+ var i, x, y, ADVcookies = document.cookie.split( ";" );
33
+ for (i = 0; i < ADVcookies.length; i++)
34
+ {
35
+ x = ADVcookies[i].substr( 0, ADVcookies[i].indexOf( "=" ) );
36
+ y = ADVcookies[i].substr( ADVcookies[i].indexOf( "=" ) + 1 );
37
+ x = x.replace( /^\s+|\s+$/g, "" );
38
+ if (x === name)
39
+ {
40
+ return unescape( y );
41
+ }
42
+ }
43
+ },
44
+ /**
45
+ * set a cookie value
46
+ *
47
+ * @param {str} name of the cookie
48
+ * @param {str} value of the cookie
49
+ * @param {int} exdays days until cookie expires
50
+ * set 0 to expire cookie immidiatelly
51
+ * set null to expire cookie in the current session
52
+ */
53
+ set_cookie: function (name, value, exdays, path, domain, secure) {
54
+ var exdate = new Date();
55
+ exdate.setDate( exdate.getDate() + exdays );
56
+ document.cookie = name + "=" + escape( value ) +
57
+ ((exdays == null) ? "" : "; expires=" + exdate.toUTCString()) +
58
+ ((path == null) ? "; path=/" : "; path=" + path) +
59
+ ((domain == null) ? "" : "; domain=" + domain) +
60
+ ((secure == null) ? "" : "; secure");
61
+ },
62
+ /**
63
+ * check if a cookie is set and contains a value
64
+ *
65
+ * @param {str} name of the cookie
66
+ * @returns {bool} true, if cookie is set
67
+ */
68
+ cookie_exists: function (name)
69
+ {
70
+ var c_value = this.get_cookie( name );
71
+ if (c_value !== null && c_value !== "" && c_value !== undefined)
72
+ {
73
+ return true;
74
+ }
75
+ return false;
76
+ },
77
+ /**
78
+ * move one element into another
79
+ *
80
+ * @param {str} element selector of the element that should be moved
81
+ * @param {str} target selector of the element where to move
82
+ * @param {arr} options
83
+ */
84
+ move: function( element, target, options )
85
+ {
86
+
87
+ var el = jQuery(element);
88
+
89
+ if( typeof options === 'undefined' ){
90
+ options = {};
91
+ }
92
+ if( typeof options.css === 'undefined' ){
93
+ options.css = {};
94
+ }
95
+ if( typeof options.method === 'undefined' ){
96
+ options.method = 'prependTo';
97
+ }
98
+
99
+ // search for abstract target element
100
+ if( target === '' && typeof options.target !== 'undefined' ){
101
+ switch( options.target ){
102
+ case 'wrapper' : // wrapper
103
+ var offset = 'left';
104
+ if( typeof options.offset !== 'undefined' ){
105
+ offset = options.offset;
106
+ }
107
+ target = this.find_wrapper( element, offset );
108
+ break;
109
+ }
110
+ }
111
+
112
+ // switch insert method
113
+ switch( options.method ){
114
+ case 'insertBefore' :
115
+ el.insertBefore(target);
116
+ break;
117
+ case 'insertAfter' :
118
+ el.insertAfter(target);
119
+ break;
120
+ case 'appendTo' :
121
+ el.appendTo(target);
122
+ break;
123
+ case 'prependTo' :
124
+ el.prependTo(target);
125
+ break;
126
+ default :
127
+ el.prependTo(target);
128
+ }
129
+ },
130
+ /**
131
+ * make an absolute position element fixed at the current position
132
+ * hint: use only after DOM is fully loaded in order to fix a wrong position
133
+ *
134
+ * @param {str} element selector
135
+ */
136
+ fix_element: function( element ){
137
+ var el = jQuery(element);
138
+ // give "position" style to parent element, if missing
139
+ var parent = el.parent();
140
+ if(parent.css('position') === 'static' || parent.css('position') === ''){
141
+ parent.css('position', 'relative');
142
+ }
143
+
144
+ // fix element at current position
145
+ var topoffset = parseInt(el.offset().top);
146
+ var leftoffset = parseInt(el.offset().left);
147
+ el.css('position', 'fixed').css('top', topoffset + 'px').css('left', leftoffset + 'px');
148
+ },
149
+ /**
150
+ * find the main wrapper
151
+ * either id or first of its class
152
+ *
153
+ * @param {str} element selector
154
+ * @param {str} offset which position of the offset to check (left or right)
155
+ * @return {str} selector
156
+ */
157
+ find_wrapper: function( element, offset ){
158
+ // first margin: auto element after body
159
+ var returnValue;
160
+ jQuery('body').children().each(function(key, value){
161
+ // exclude current element
162
+ // TODO exclude <script>
163
+ if( value.id !== element.substring(1) ){
164
+ // check offset value
165
+ var checkedelement = jQuery( value );
166
+ // check if there is space left or right of the element
167
+ if( ( offset === 'right' && ( checkedelement.offset().left + jQuery(checkedelement).width() < jQuery(window).width() ) ) ||
168
+ ( offset === 'left' && checkedelement.offset().left > 0 ) ){
169
+ // fix element
170
+ if( checkedelement.css('position') === 'static' || checkedelement.css('position') === ''){
171
+ checkedelement.css('position', 'relative');
172
+ }
173
+ // set return value
174
+ returnValue = value;
175
+ return false;
176
+ }
177
+ }
178
+ });
179
+ return returnValue;
180
+ },
181
+ /**
182
+ * center fixed element on the screen
183
+ *
184
+ * @param {str} element selector
185
+ */
186
+ center_fixed_element: function( element ){
187
+ var el = jQuery(element);
188
+ // half window width minus half element width
189
+ var left = ( jQuery(window).width() / 2 ) - ( parseInt( el.css('width')) / 2 );
190
+ el.css('left', left + 'px');
191
+ }
192
+ };
public/class-advanced-ads.php CHANGED
@@ -285,7 +285,7 @@ class Advanced_Ads {
285
  * @since 1.0.0
286
  * @link http://www.smashingmagazine.com/2011/03/08/ten-things-every-wordpress-plugin-developer-should-know/
287
  */
288
- public function log($message) {
289
  if ( true === WP_DEBUG ) {
290
  if ( is_array( $message ) || is_object( $message ) ) {
291
  error_log( 'Advanced Ads Error following:', ADVADS_SLUG );
@@ -356,6 +356,11 @@ class Advanced_Ads {
356
  }
357
 
358
  $placements = get_option( 'advads-ads-placements', array() );
 
 
 
 
 
359
  foreach ( $placements as $_placement_id => $_placement ){
360
  if ( empty($_placement['item']) || ! isset($_placement['type']) ) { continue; }
361
  $_options = isset( $_placement['options'] ) ? $_placement['options'] : array();
285
  * @since 1.0.0
286
  * @link http://www.smashingmagazine.com/2011/03/08/ten-things-every-wordpress-plugin-developer-should-know/
287
  */
288
+ static function log($message) {
289
  if ( true === WP_DEBUG ) {
290
  if ( is_array( $message ) || is_object( $message ) ) {
291
  error_log( 'Advanced Ads Error following:', ADVADS_SLUG );
356
  }
357
 
358
  $placements = get_option( 'advads-ads-placements', array() );
359
+
360
+ if( ! apply_filters( 'advanced-ads-can-inject-into-content', true, $content, $placements )){
361
+ return $content;
362
+ }
363
+
364
  foreach ( $placements as $_placement_id => $_placement ){
365
  if ( empty($_placement['item']) || ! isset($_placement['type']) ) { continue; }
366
  $_options = isset( $_placement['options'] ) ? $_placement['options'] : array();
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.2
7
- Stable tag: 1.6.5
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -77,13 +77,16 @@ display ads by conditions based on the visitor
77
  * advanced visitor conditions: previous visited url (referrer), user capability, browser language, browser and device, url parameters included in [Pro](https://wpadvancedads.com/add-ons/advanced-ads-pro/)
78
  * display ads by exact browser width with the [Responsive add-on](https://wpadvancedads.com/add-ons/responsive-ads/)
79
 
80
- = ad injection =
81
 
82
- Advanced Ads comes with many options for ad injection (= display ads without the need to alter content or code)
83
 
84
- * inject ads into header and footer
85
- * inject ads into posts content (top, bottom, by paragraph)
86
- * inject ads into content before or after a specific paragraph or headline
 
 
 
87
 
88
  = ad networks =
89
 
@@ -98,7 +101,6 @@ There is an ad type dedicated to Google AdSense that supports:
98
  * switch between normal and responsive
99
  * automatic limit 3 AdSense ads according to AdSense terms of service (can be disabled)
100
  * assistant for exact sizes of responsive ads with the [Responsive add-on](https://wpadvancedads.com/add-ons/responsive-ads/)
101
- * (more coming soon)
102
 
103
  = based on WordPress standards =
104
 
@@ -111,11 +113,12 @@ Localizations: English, German, Italien, Portuguese
111
 
112
  > <strong>Add-Ons</strong>
113
  >
114
- > * Tracking ad tracking and statistics – [more](https://wpadvancedads.com/add-ons/tracking/)
115
- > * Responsive Ads – create mobile ads or ads for specific browser sizes - [Demo](https://wpadvancedads.com/add-ons/responsive-ads/)
116
- > * Sticky Ads – increase click rates with fixed, sticky, and anchor ads - [Demo](https://wpadvancedads.com/sticky-ads/demo/)
117
- > * PopUp and Layer Ads – display ads and other content in layers and popups - [Demo](https://wpadvancedads.com/add-ons/popup-and-layer-ads/)
118
- > * Slider create a simple slider from your ads – [more](https://wpadvancedads.com/add-ons/slider/)
 
119
 
120
  == Installation ==
121
 
@@ -175,9 +178,36 @@ There is no revenue share. Advanced Ads doesn’t alter your ad codes in a way t
175
  1. Create an ad almost like you would create an article or page.
176
  2. Align the ad and set a margin to other elements
177
  3. Choose from various conditions where and where not to display your ad.
 
178
 
179
  == Changelog ==
180
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
181
  = 1.6.5 =
182
 
183
  * removed "use strict" from js
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.2
7
+ Stable tag: 1.6.6
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
77
  * advanced visitor conditions: previous visited url (referrer), user capability, browser language, browser and device, url parameters included in [Pro](https://wpadvancedads.com/add-ons/advanced-ads-pro/)
78
  * display ads by exact browser width with the [Responsive add-on](https://wpadvancedads.com/add-ons/responsive-ads/)
79
 
80
+ = ad injection | placements =
81
 
82
+ Placements to inject ads in pre-defined positions in your theme and content:
83
 
84
+ * ads after any given paragraph or headline in the post content
85
+ * ads at the top of the post content
86
+ * ads at the bottom of the post content
87
+ * ads before closing `</head>` tag
88
+ * ads into page footer
89
+ * many more with [add-ons](https://wpadvancedads.com/add-ons/)
90
 
91
  = ad networks =
92
 
101
  * switch between normal and responsive
102
  * automatic limit 3 AdSense ads according to AdSense terms of service (can be disabled)
103
  * assistant for exact sizes of responsive ads with the [Responsive add-on](https://wpadvancedads.com/add-ons/responsive-ads/)
 
104
 
105
  = based on WordPress standards =
106
 
113
 
114
  > <strong>Add-Ons</strong>
115
  >
116
+ > * [Advanced Ads Pro](https://wpadvancedads.com/add-ons/advanced-ads-pro/) – powerful tools for ad optimizations: cache-busting, more placements, etc.
117
+ > * [Tracking](https://wpadvancedads.com/add-ons/tracking/) – ad tracking and statistics
118
+ > * [Responsive Ads ](https://wpadvancedads.com/add-ons/responsive-ads/) – create mobile ads or ads for specific browser sizes
119
+ > * [Sticky Ads](https://wpadvancedads.com/sticky-ads/demo/)increase click rates with fixed, sticky, and anchor ads
120
+ > * [PopUp and Layer Ads](https://wpadvancedads.com/add-ons/popup-and-layer-ads/) – display ads and other content in layers and popups
121
+ > * [Slider](https://wpadvancedads.com/add-ons/slider/) – create a simple slider from your ads
122
 
123
  == Installation ==
124
 
178
  1. Create an ad almost like you would create an article or page.
179
  2. Align the ad and set a margin to other elements
180
  3. Choose from various conditions where and where not to display your ad.
181
+ 4. Placements that let you inject ads anywhere into your site without coding (6 in Advanced Ads + 9 through add-ons)
182
 
183
  == Changelog ==
184
 
185
+ = 1.6.6 =
186
+
187
+ *features*
188
+
189
+ * added images to placement form ui
190
+ * allow to select item when creating a new placement
191
+ * always display placement form if no placement exists
192
+ * display shortcode and function for default placement type
193
+ * display notice if license keys are invalid, expired, or expire soon
194
+ * display error when AdSense Publisher ID is missing
195
+ * log error message in case regular expression is used wrong in visitor conditions
196
+
197
+ *fixes and under-the-hood*
198
+
199
+ * extended advanced js by move and fix_element function
200
+ * minified advanced js file
201
+ * added `advanced-ads-sanitize-settings` filter to sanitize plugin options
202
+ * added `advanced-ads-can-inject-into-content` filter
203
+ * added `advanced-ads-dashboard-screens` filter
204
+ * removed wrong output on Responsive settings
205
+ * store jquery ui css locally
206
+ * fixed saving empty placement options
207
+ * fixed free add-on notice showing up twice
208
+ * fixed error message in ads list when AdSense ad is empty
209
+ * fixed saving quick edit on ad list returning wrong columns
210
+
211
  = 1.6.5 =
212
 
213
  * removed "use strict" from js