Ad Inserter – WordPress Ads Management with AdSense Header Integration - Version 2.4.12

Version Description

  • Added ads.txt editor
  • Added option to prevent disabling caching for logged in administrators
  • Improved compatibility with PHP 7.2
  • Few minor bug fixes, cosmetic changes and code improvements
Download this release

Release Info

Developer spacetime
Plugin Icon 128x128 Ad Inserter – WordPress Ads Management with AdSense Header Integration
Version 2.4.12
Comparing to
See all releases

Code changes from version 2.4.11 to 2.4.12

ad-inserter.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  /*
4
  Plugin Name: Ad Inserter
5
- Version: 2.4.11
6
  Description: Ad management with many advanced advertising features to insert ads at optimal positions
7
  Author: Igor Funa
8
  Author URI: http://igorfuna.com/
@@ -15,6 +15,12 @@ Domain Path: /languages
15
 
16
  Change Log
17
 
 
 
 
 
 
 
18
  Ad Inserter 2.4.11 - 2019-02-23
19
  - Fix for saving code with slashes
20
  - Fix for rotation editor code import
@@ -762,7 +768,8 @@ function ai_buffering_end () {
762
  ai_log ("BUFFER body matches: " . count ($matches));
763
  }
764
 
765
- if (count ($matches) == 3) {
 
766
  if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
767
  ai_log ("BUFFER PROCESSING");
768
  }
@@ -772,14 +779,15 @@ function ai_buffering_end () {
772
 
773
  if (isset ($ai_db_options_extract [HTML_ELEMENT_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]) && class_exists ('DOMDocument')) {
774
 
775
- $php_version = explode ('.', PHP_VERSION);
776
- if ($php_version [0] > 5 || ($php_version [0] == 5 && $php_version [1] >= 3)) {
777
- // phpQuery with anonymous functions
778
- require_once ('includes/phpQuery.php');
779
- } else {
780
- // phpQuery with create_function
781
- require_once ('includes/phpQuery_52.php');
782
- }
 
783
 
784
  $no_closing_tag = array ('img', 'hr', 'br');
785
  $multibyte = $ai_wp_data [AI_MBSTRING_LOADED] && get_paragraph_counting_functions() == AI_MULTIBYTE_PARAGRAPH_COUNTING_FUNCTIONS;
@@ -1227,7 +1235,7 @@ function ai_wp_hook () {
1227
 
1228
  ai_http_header ();
1229
 
1230
- if (($ai_wp_data [AI_WP_USER] & AI_USER_ADMINISTRATOR) != 0) ai_disable_caching ();
1231
 
1232
  if ($ai_wp_data [AI_WP_PAGE_TYPE] != AI_PT_ADMIN &&
1233
  ($ai_wp_data [AI_WP_USER] & AI_USER_ADMINISTRATOR) != 0 &&
@@ -2848,10 +2856,12 @@ function ai_amp_head_hook () {
2848
  $processed_code = ltrim ($codes [1]);
2849
  }
2850
 
 
2851
  if (strpos ($processed_code, AD_AMP_SEPARATOR) !== false) {
2852
  $codes = explode (AD_AMP_SEPARATOR, $processed_code);
2853
  $processed_code = ltrim ($codes [1]);
2854
  echo $processed_code;
 
2855
 
2856
  if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
2857
  if (strlen ($processed_code) != 0)
@@ -3286,6 +3296,8 @@ function ai_write_debug_info ($write_processing_log = false) {
3286
  echo 'MAIN CONTENT: ', get_main_content_element (), "\n";
3287
  }
3288
  echo 'PLUGIN PRIORITY: ', get_plugin_priority (), "\n";
 
 
3289
  echo 'HEADER: ', $block_object [AI_HEADER_OPTION_NAME]->get_enable_manual () ? 'ENABLED' : 'DISABLED', "\n";
3290
  echo 'FOOTER: ', $block_object [AI_FOOTER_OPTION_NAME]->get_enable_manual () ? 'ENABLED' : 'DISABLED', "\n";
3291
  if (defined ('AI_ADBLOCKING_DETECTION') && AI_ADBLOCKING_DETECTION) {
@@ -3726,6 +3738,7 @@ function ai_check_plugin_options ($plugin_options = array ()) {
3726
  if (!isset ($plugin_options ['DYNAMIC_BLOCKS'])) $plugin_options ['DYNAMIC_BLOCKS'] = DEFAULT_DYNAMIC_BLOCKS;
3727
  if (!isset ($plugin_options ['PARAGRAPH_COUNTING_FUNCTIONS'])) $plugin_options ['PARAGRAPH_COUNTING_FUNCTIONS'] = DEFAULT_PARAGRAPH_COUNTING_FUNCTIONS;
3728
  if (!isset ($plugin_options ['OUTPUT_BUFFERING'])) $plugin_options ['OUTPUT_BUFFERING'] = DEFAULT_OUTPUT_BUFFERING;
 
3729
  if (!isset ($plugin_options ['NO_PARAGRAPH_COUNTING_INSIDE'])) $plugin_options ['NO_PARAGRAPH_COUNTING_INSIDE'] = DEFAULT_NO_PARAGRAPH_COUNTING_INSIDE;
3730
  if (!isset ($plugin_options ['AD_LABEL'])) $plugin_options ['AD_LABEL'] = DEFAULT_AD_TITLE;
3731
  if (!isset ($plugin_options ['MAIN_CONTENT_ELEMENT'])) $plugin_options ['MAIN_CONTENT_ELEMENT'] = DEFAULT_MAIN_CONTENT_ELEMENT;
@@ -3983,6 +3996,11 @@ function get_output_buffering(){
3983
  return ($ai_db_options [AI_OPTION_GLOBAL]['OUTPUT_BUFFERING']);
3984
  }
3985
 
 
 
 
 
 
3986
  function get_no_paragraph_counting_inside () {
3987
  global $ai_db_options;
3988
 
@@ -4724,6 +4742,9 @@ function ai_ajax_backend () {
4724
  }
4725
  }
4726
 
 
 
 
4727
  elseif (isset ($_GET ["settings"])) {
4728
  generate_settings_form ();
4729
  }
@@ -5547,6 +5568,7 @@ function ai_settings () {
5547
  if (isset ($_POST ['dynamic_blocks'])) $options ['DYNAMIC_BLOCKS'] = filter_option ('DYNAMIC_BLOCKS', $_POST ['dynamic_blocks']);
5548
  if (isset ($_POST ['paragraph_counting_functions'])) $options ['PARAGRAPH_COUNTING_FUNCTIONS'] = filter_option ('PARAGRAPH_COUNTING_FUNCTIONS', $_POST ['paragraph_counting_functions']);
5549
  if (isset ($_POST ['output-buffering'])) $options ['OUTPUT_BUFFERING'] = filter_option ('OUTPUT_BUFFERING', $_POST ['output-buffering']);
 
5550
  if (isset ($_POST ['no-paragraph-counting-inside'])) $options ['NO_PARAGRAPH_COUNTING_INSIDE'] = filter_option ('NO_PARAGRAPH_COUNTING_INSIDE', $_POST ['no-paragraph-counting-inside']);
5551
  if (isset ($_POST ['ad-label'])) $options ['AD_LABEL'] = filter_option ('AD_LABEL', $_POST ['ad-label']);
5552
  if (isset ($_POST ['main-content-element'])) $options ['MAIN_CONTENT_ELEMENT'] = filter_option ('MAIN_CONTENT_ELEMENT', $_POST ['main-content-element']);
@@ -5660,7 +5682,7 @@ function ai_settings () {
5660
  delete_option (AI_EXTRACT_NAME);
5661
 
5662
  if (is_multisite () && is_main_site ()) {
5663
- delete_site_option (AI_OPTION_NAME, $options);
5664
  }
5665
 
5666
  delete_option (AI_ADSENSE_CLIENT_IDS);
@@ -7493,7 +7515,7 @@ function get_paragraph_end_positions ($content, $multibyte, $paragraph_start_pos
7493
  if ($paragraph_end_string == '') continue;
7494
 
7495
  if (in_array ($paragraph_end_string, $no_closing_tag)) {
7496
- if (preg_match_all ("/<$paragraph_end_string(.*?)>/", $content, $images)) {
7497
  foreach ($images [0] as $paragraph_end) {
7498
  if ($multibyte) {
7499
  $last_position = mb_stripos ($content, $paragraph_end, $last_position + 1) + mb_strlen ($paragraph_end) - 1;
2
 
3
  /*
4
  Plugin Name: Ad Inserter
5
+ Version: 2.4.12
6
  Description: Ad management with many advanced advertising features to insert ads at optimal positions
7
  Author: Igor Funa
8
  Author URI: http://igorfuna.com/
15
 
16
  Change Log
17
 
18
+ Ad Inserter 2.4.12 - 2019-03-21
19
+ - Added ads.txt editor
20
+ - Added option to prevent disabling caching for logged in administrators
21
+ - Improved compatibility with PHP 7.2
22
+ - Few minor bug fixes, cosmetic changes and code improvements
23
+
24
  Ad Inserter 2.4.11 - 2019-02-23
25
  - Fix for saving code with slashes
26
  - Fix for rotation editor code import
768
  ai_log ("BUFFER body matches: " . count ($matches));
769
  }
770
 
771
+ $php_version = explode ('.', PHP_VERSION);
772
+ if (count ($matches) == 3 && ($php_version [0] > 5 || ($php_version [0] == 5 && $php_version [1] >= 3))) {
773
  if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
774
  ai_log ("BUFFER PROCESSING");
775
  }
779
 
780
  if (isset ($ai_db_options_extract [HTML_ELEMENT_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]) && class_exists ('DOMDocument')) {
781
 
782
+ // $php_version = explode ('.', PHP_VERSION);
783
+ // if ($php_version [0] > 5 || ($php_version [0] == 5 && $php_version [1] >= 3)) {
784
+ // // phpQuery with anonymous functions
785
+ // require_once ('includes/phpQuery.php');
786
+ // } else {
787
+ // // phpQuery with create_function
788
+ // require_once ('includes/phpQuery_52.php');
789
+ // }
790
+ require_once ('includes/phpQuery.php');
791
 
792
  $no_closing_tag = array ('img', 'hr', 'br');
793
  $multibyte = $ai_wp_data [AI_MBSTRING_LOADED] && get_paragraph_counting_functions() == AI_MULTIBYTE_PARAGRAPH_COUNTING_FUNCTIONS;
1235
 
1236
  ai_http_header ();
1237
 
1238
+ if (($ai_wp_data [AI_WP_USER] & AI_USER_ADMINISTRATOR) != 0 && get_disable_caching ()) ai_disable_caching ();
1239
 
1240
  if ($ai_wp_data [AI_WP_PAGE_TYPE] != AI_PT_ADMIN &&
1241
  ($ai_wp_data [AI_WP_USER] & AI_USER_ADMINISTRATOR) != 0 &&
2856
  $processed_code = ltrim ($codes [1]);
2857
  }
2858
 
2859
+ // ai_log ("ai_amp_head_hook ");
2860
  if (strpos ($processed_code, AD_AMP_SEPARATOR) !== false) {
2861
  $codes = explode (AD_AMP_SEPARATOR, $processed_code);
2862
  $processed_code = ltrim ($codes [1]);
2863
  echo $processed_code;
2864
+ // ai_log ("ai_amp_head_hook " . $processed_code);
2865
 
2866
  if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
2867
  if (strlen ($processed_code) != 0)
3296
  echo 'MAIN CONTENT: ', get_main_content_element (), "\n";
3297
  }
3298
  echo 'PLUGIN PRIORITY: ', get_plugin_priority (), "\n";
3299
+ echo 'ADMIN DISABLE CACHING: ', get_disable_caching () ? 'ENABLED' : 'DISABLED', "\n";
3300
+ echo 'DO NOT CACHE CONSTANTS: ', defined ('DONOTCACHEPAGE') ? 'DONOTCACHEPAGE ' : '', defined ('DONOTCACHEOBJECT') ? 'DONOTCACHEOBJECT ' : '', defined ('DONOTCACHEDB') ? 'DONOTCACHEDB ' : '', "\n";
3301
  echo 'HEADER: ', $block_object [AI_HEADER_OPTION_NAME]->get_enable_manual () ? 'ENABLED' : 'DISABLED', "\n";
3302
  echo 'FOOTER: ', $block_object [AI_FOOTER_OPTION_NAME]->get_enable_manual () ? 'ENABLED' : 'DISABLED', "\n";
3303
  if (defined ('AI_ADBLOCKING_DETECTION') && AI_ADBLOCKING_DETECTION) {
3738
  if (!isset ($plugin_options ['DYNAMIC_BLOCKS'])) $plugin_options ['DYNAMIC_BLOCKS'] = DEFAULT_DYNAMIC_BLOCKS;
3739
  if (!isset ($plugin_options ['PARAGRAPH_COUNTING_FUNCTIONS'])) $plugin_options ['PARAGRAPH_COUNTING_FUNCTIONS'] = DEFAULT_PARAGRAPH_COUNTING_FUNCTIONS;
3740
  if (!isset ($plugin_options ['OUTPUT_BUFFERING'])) $plugin_options ['OUTPUT_BUFFERING'] = DEFAULT_OUTPUT_BUFFERING;
3741
+ if (!isset ($plugin_options ['DISABLE_CACHING'])) $plugin_options ['DISABLE_CACHING'] = DEFAULT_DISABLE_CACHING;
3742
  if (!isset ($plugin_options ['NO_PARAGRAPH_COUNTING_INSIDE'])) $plugin_options ['NO_PARAGRAPH_COUNTING_INSIDE'] = DEFAULT_NO_PARAGRAPH_COUNTING_INSIDE;
3743
  if (!isset ($plugin_options ['AD_LABEL'])) $plugin_options ['AD_LABEL'] = DEFAULT_AD_TITLE;
3744
  if (!isset ($plugin_options ['MAIN_CONTENT_ELEMENT'])) $plugin_options ['MAIN_CONTENT_ELEMENT'] = DEFAULT_MAIN_CONTENT_ELEMENT;
3996
  return ($ai_db_options [AI_OPTION_GLOBAL]['OUTPUT_BUFFERING']);
3997
  }
3998
 
3999
+ function get_disable_caching (){
4000
+ global $ai_db_options;
4001
+ if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_CACHING'])) $ai_db_options [AI_OPTION_GLOBAL]['DISABLE_CACHING'] = DEFAULT_DISABLE_CACHING;
4002
+ return ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_CACHING']);
4003
+ }
4004
  function get_no_paragraph_counting_inside () {
4005
  global $ai_db_options;
4006
 
4742
  }
4743
  }
4744
 
4745
+ elseif (isset ($_GET ["ads-txt"])) {
4746
+ ads_txt ($_GET ["ads-txt"]);
4747
+ }
4748
  elseif (isset ($_GET ["settings"])) {
4749
  generate_settings_form ();
4750
  }
5568
  if (isset ($_POST ['dynamic_blocks'])) $options ['DYNAMIC_BLOCKS'] = filter_option ('DYNAMIC_BLOCKS', $_POST ['dynamic_blocks']);
5569
  if (isset ($_POST ['paragraph_counting_functions'])) $options ['PARAGRAPH_COUNTING_FUNCTIONS'] = filter_option ('PARAGRAPH_COUNTING_FUNCTIONS', $_POST ['paragraph_counting_functions']);
5570
  if (isset ($_POST ['output-buffering'])) $options ['OUTPUT_BUFFERING'] = filter_option ('OUTPUT_BUFFERING', $_POST ['output-buffering']);
5571
+ if (isset ($_POST ['disable-caching-admin'])) $options ['DISABLE_CACHING'] = filter_option ('DISABLE_CACHING', $_POST ['disable-caching-admin']);
5572
  if (isset ($_POST ['no-paragraph-counting-inside'])) $options ['NO_PARAGRAPH_COUNTING_INSIDE'] = filter_option ('NO_PARAGRAPH_COUNTING_INSIDE', $_POST ['no-paragraph-counting-inside']);
5573
  if (isset ($_POST ['ad-label'])) $options ['AD_LABEL'] = filter_option ('AD_LABEL', $_POST ['ad-label']);
5574
  if (isset ($_POST ['main-content-element'])) $options ['MAIN_CONTENT_ELEMENT'] = filter_option ('MAIN_CONTENT_ELEMENT', $_POST ['main-content-element']);
5682
  delete_option (AI_EXTRACT_NAME);
5683
 
5684
  if (is_multisite () && is_main_site ()) {
5685
+ delete_site_option (AI_OPTION_NAME);
5686
  }
5687
 
5688
  delete_option (AI_ADSENSE_CLIENT_IDS);
7515
  if ($paragraph_end_string == '') continue;
7516
 
7517
  if (in_array ($paragraph_end_string, $no_closing_tag)) {
7518
+ if (preg_match_all ("/<$paragraph_end_string([^>]*?)>/", $content, $images)) {
7519
  foreach ($images [0] as $paragraph_end) {
7520
  if ($multibyte) {
7521
  $last_position = mb_stripos ($content, $paragraph_end, $last_position + 1) + mb_strlen ($paragraph_end) - 1;
class.php CHANGED
@@ -2248,7 +2248,9 @@ abstract class ai_CodeBlock extends ai_BaseCodeBlock {
2248
  if (!isset ($rotate_parameters)) {
2249
  // using old separator |rotate|
2250
  $rotate_parameters = array ();
2251
- foreach ($ads as $ad) {
 
 
2252
  $rotate_parameters []= array ();
2253
  }
2254
  }
2248
  if (!isset ($rotate_parameters)) {
2249
  // using old separator |rotate|
2250
  $rotate_parameters = array ();
2251
+ foreach ($ads as $index => $ad) {
2252
+ // Skip parameters for first option (it will be added with array_unshift below)
2253
+ if ($index == 0) continue;
2254
  $rotate_parameters []= array ();
2255
  }
2256
  }
constants.php CHANGED
@@ -29,7 +29,7 @@ if (!defined( 'AD_INSERTER_NAME'))
29
  define ('AD_INSERTER_NAME', 'Ad Inserter');
30
 
31
  if (!defined( 'AD_INSERTER_VERSION'))
32
- define ('AD_INSERTER_VERSION', '2.4.11');
33
 
34
  if (!defined ('AD_INSERTER_PLUGIN_BASENAME'))
35
  define ('AD_INSERTER_PLUGIN_BASENAME', plugin_basename (__FILE__));
@@ -611,6 +611,9 @@ define ('AI_ADB_DETECTION_ADVANCED', 1);
611
  define ('AI_OUTPUT_BUFFERING_DISABLED', 0);
612
  define ('AI_OUTPUT_BUFFERING_ENABLED', 1);
613
 
 
 
 
614
  // Click detection
615
  define ('AI_CLICK_DETECTION_STANDARD', 0);
616
  define ('AI_CLICK_DETECTION_ADVANCED', 1);
@@ -739,6 +742,7 @@ define ('DEFAULT_ADB_BLOCK_ACTION', AI_ADB_BLOCK_ACTION_DO_NOTHING);
739
  define ('DEFAULT_ADB_DETECTION', AI_ADB_DETECTION_ADVANCED);
740
  define ('DEFAULT_CUSTOM_HOOK_PRIORITY', 10);
741
  define ('DEFAULT_OUTPUT_BUFFERING', AI_OUTPUT_BUFFERING_DISABLED);
 
742
  define ('DEFAULT_GEO_DB', AI_GEO_DB_WEBNET77);
743
  define ('DEFAULT_GEO_DB_UPDATES', AI_DISABLED);
744
  define ('DEFAULT_CLOSE_BUTTON', AI_CLOSE_NONE);
29
  define ('AD_INSERTER_NAME', 'Ad Inserter');
30
 
31
  if (!defined( 'AD_INSERTER_VERSION'))
32
+ define ('AD_INSERTER_VERSION', '2.4.12');
33
 
34
  if (!defined ('AD_INSERTER_PLUGIN_BASENAME'))
35
  define ('AD_INSERTER_PLUGIN_BASENAME', plugin_basename (__FILE__));
611
  define ('AI_OUTPUT_BUFFERING_DISABLED', 0);
612
  define ('AI_OUTPUT_BUFFERING_ENABLED', 1);
613
 
614
+ // Disable caching for administrators
615
+ define ('AI_DISABLE_CACHING_DISABLED', 0);
616
+ define ('AI_DISABLE_CACHING_ENABLED', 1);
617
  // Click detection
618
  define ('AI_CLICK_DETECTION_STANDARD', 0);
619
  define ('AI_CLICK_DETECTION_ADVANCED', 1);
742
  define ('DEFAULT_ADB_DETECTION', AI_ADB_DETECTION_ADVANCED);
743
  define ('DEFAULT_CUSTOM_HOOK_PRIORITY', 10);
744
  define ('DEFAULT_OUTPUT_BUFFERING', AI_OUTPUT_BUFFERING_DISABLED);
745
+ define ('DEFAULT_DISABLE_CACHING', AI_DISABLE_CACHING_ENABLED);
746
  define ('DEFAULT_GEO_DB', AI_GEO_DB_WEBNET77);
747
  define ('DEFAULT_GEO_DB_UPDATES', AI_DISABLED);
748
  define ('DEFAULT_CLOSE_BUTTON', AI_CLOSE_NONE);
css/ai-settings.css CHANGED
@@ -1,5 +1,5 @@
1
  #ai-data {
2
- font-family: "2.4.11"; /* Used for version number of the file */
3
  }
4
 
5
  #blocked-warning {
@@ -47,7 +47,7 @@ button.ai-top-button {
47
  padding: .4em 0.5em;
48
  }
49
 
50
- .adsense-list .ui-button-text, .select-image .ui-button-text {
51
  padding: 0.4em 0.5em;
52
  }
53
 
@@ -441,6 +441,9 @@ div.automatic-insertion img {
441
  color: #5f76ff;
442
  }
443
 
 
 
 
444
  .checkbox-button.light-blue.dashicons {
445
  color: #b0d2fd;
446
  }
@@ -528,6 +531,10 @@ span.checkbox-icon {
528
  height: 20px;
529
  }
530
 
 
 
 
 
531
  .checkbox-icon.size-16 {
532
  width: 16px;
533
  height: 16px;
@@ -1015,6 +1022,9 @@ img.automatic-insertion.preview {
1015
  background: url('images/icons.png') -180px -60px;
1016
  }
1017
 
 
 
 
1018
 
1019
 
1020
  .checkbox-icon.icon-enabled-all {
@@ -1098,6 +1108,9 @@ img.automatic-insertion.preview {
1098
  background: url('images/icons.png') -80px -100px;
1099
  }
1100
 
 
 
 
1101
 
1102
 
1103
  .checkbox-icon.size-8.icon-stop {
@@ -1121,9 +1134,10 @@ img.automatic-insertion.preview {
1121
  border-top: 8px solid #888;
1122
  }
1123
 
1124
- .icon-adsense {
1125
- background: url('../images/ga-logo.png') 0px 0px;
1126
- background-size: cover;
 
1127
  }
1128
 
1129
  .ai-button .ui-button-text.ai-button-active, .ai-button .ui-button-text.ai-button-updating {
@@ -1247,6 +1261,29 @@ table.check-pages a span.dashicons {
1247
  height: 16px;
1248
  }
1249
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1250
  @media (max-width: 782px) {
1251
  #ai-settings {
1252
  margin-right: 4px;
@@ -1472,3 +1509,6 @@ table.ai-page-types td.ai-page-type.ai-unavailable label {
1472
  color: #bbb;
1473
  }
1474
 
 
 
 
1
  #ai-data {
2
+ font-family: "2.4.12"; /* Used for version number of the file */
3
  }
4
 
5
  #blocked-warning {
47
  padding: .4em 0.5em;
48
  }
49
 
50
+ .adsense-list .ui-button-text, .select-image .ui-button-text, iab-ads-txt .ui-button-text{
51
  padding: 0.4em 0.5em;
52
  }
53
 
441
  color: #5f76ff;
442
  }
443
 
444
+ .checkbox-button.dashicons.on {
445
+ color: red;
446
+ }
447
  .checkbox-button.light-blue.dashicons {
448
  color: #b0d2fd;
449
  }
531
  height: 20px;
532
  }
533
 
534
+ .checkbox-icon.image {
535
+ width: 22px;
536
+ height: 20px;
537
+ }
538
  .checkbox-icon.size-16 {
539
  width: 16px;
540
  height: 16px;
1022
  background: url('images/icons.png') -180px -60px;
1023
  }
1024
 
1025
+ .checkbox-icon.icon-ads-txt {
1026
+ background: url('images/icons.png') -160px -60px;
1027
+ }
1028
 
1029
 
1030
  .checkbox-icon.icon-enabled-all {
1108
  background: url('images/icons.png') -80px -100px;
1109
  }
1110
 
1111
+ .checkbox-icon.icon-adsense {
1112
+ background: url('images/icons.png') -100px -120px;
1113
+ }
1114
 
1115
 
1116
  .checkbox-icon.size-8.icon-stop {
1134
  border-top: 8px solid #888;
1135
  }
1136
 
1137
+
1138
+ .checkbox-icon.size-img16.icon-adsense {
1139
+ background: url(images/icons.png) -80px -96px;
1140
+ background-size: 160px 112px;
1141
  }
1142
 
1143
  .ai-button .ui-button-text.ai-button-active, .ai-button .ui-button-text.ai-button-updating {
1261
  height: 16px;
1262
  }
1263
 
1264
+ #ai-sidebar-right {
1265
+ float: right;
1266
+ }
1267
+ .ai-image-left img, .ai-image-right img {
1268
+ margin-top: 10px;
1269
+ }
1270
+ @media (max-width: 762px) {
1271
+ #ai-sidebar-right {
1272
+ float: none;
1273
+ }
1274
+ .ai-image-left {
1275
+ float: left;
1276
+ width: 49%;
1277
+ }
1278
+ .ai-image-right {
1279
+ float: right;
1280
+ width: 49%;
1281
+ }
1282
+ .ai-image-left img, .ai-image-right img {
1283
+ width: 100%;
1284
+ height: auto;
1285
+ }
1286
+ }
1287
  @media (max-width: 782px) {
1288
  #ai-settings {
1289
  margin-right: 4px;
1509
  color: #bbb;
1510
  }
1511
 
1512
+ #ads-txt-table td {
1513
+ font-family: monospace, Courier, 'Courier New';
1514
+ }
css/images/icons.png CHANGED
Binary file
images/ga-logo.png DELETED
Binary file
includes/phpQuery_52.php DELETED
@@ -1,5712 +0,0 @@
1
- <?php
2
- /**
3
- * phpQuery is a server-side, chainable, CSS3 selector driven
4
- * Document Object Model (DOM) API based on jQuery JavaScript Library.
5
- *
6
- * @version 0.9.5
7
- * @link http://code.google.com/p/phpquery/
8
- * @link http://phpquery-library.blogspot.com/
9
- * @link http://jquery.com/
10
- * @author Tobiasz Cudnik <tobiasz.cudnik/gmail.com>
11
- * @license http://www.opensource.org/licenses/mit-license.php MIT License
12
- * @package phpQuery
13
- */
14
-
15
- // class names for instanceof
16
- // TODO move them as class constants into phpQuery
17
- define('DOMDOCUMENT', 'DOMDocument');
18
- define('DOMELEMENT', 'DOMElement');
19
- define('DOMNODELIST', 'DOMNodeList');
20
- define('DOMNODE', 'DOMNode');
21
-
22
- /**
23
- * DOMEvent class.
24
- *
25
- * Based on
26
- * @link http://developer.mozilla.org/En/DOM:event
27
- * @author Tobiasz Cudnik <tobiasz.cudnik/gmail.com>
28
- * @package phpQuery
29
- * @todo implement ArrayAccess ?
30
- */
31
- class DOMEvent {
32
- /**
33
- * Returns a boolean indicating whether the event bubbles up through the DOM or not.
34
- *
35
- * @var unknown_type
36
- */
37
- public $bubbles = true;
38
- /**
39
- * Returns a boolean indicating whether the event is cancelable.
40
- *
41
- * @var unknown_type
42
- */
43
- public $cancelable = true;
44
- /**
45
- * Returns a reference to the currently registered target for the event.
46
- *
47
- * @var unknown_type
48
- */
49
- public $currentTarget;
50
- /**
51
- * Returns detail about the event, depending on the type of event.
52
- *
53
- * @var unknown_type
54
- * @link http://developer.mozilla.org/en/DOM/event.detail
55
- */
56
- public $detail; // ???
57
- /**
58
- * Used to indicate which phase of the event flow is currently being evaluated.
59
- *
60
- * NOT IMPLEMENTED
61
- *
62
- * @var unknown_type
63
- * @link http://developer.mozilla.org/en/DOM/event.eventPhase
64
- */
65
- public $eventPhase; // ???
66
- /**
67
- * The explicit original target of the event (Mozilla-specific).
68
- *
69
- * NOT IMPLEMENTED
70
- *
71
- * @var unknown_type
72
- */
73
- public $explicitOriginalTarget; // moz only
74
- /**
75
- * The original target of the event, before any retargetings (Mozilla-specific).
76
- *
77
- * NOT IMPLEMENTED
78
- *
79
- * @var unknown_type
80
- */
81
- public $originalTarget; // moz only
82
- /**
83
- * Identifies a secondary target for the event.
84
- *
85
- * @var unknown_type
86
- */
87
- public $relatedTarget;
88
- /**
89
- * Returns a reference to the target to which the event was originally dispatched.
90
- *
91
- * @var unknown_type
92
- */
93
- public $target;
94
- /**
95
- * Returns the time that the event was created.
96
- *
97
- * @var unknown_type
98
- */
99
- public $timeStamp;
100
- /**
101
- * Returns the name of the event (case-insensitive).
102
- */
103
- public $type;
104
- public $runDefault = true;
105
- public $data = null;
106
- public function __construct($data) {
107
- foreach($data as $k => $v) {
108
- $this->$k = $v;
109
- }
110
- if (! $this->timeStamp)
111
- $this->timeStamp = time();
112
- }
113
- /**
114
- * Cancels the event (if it is cancelable).
115
- *
116
- */
117
- public function preventDefault() {
118
- $this->runDefault = false;
119
- }
120
- /**
121
- * Stops the propagation of events further along in the DOM.
122
- *
123
- */
124
- public function stopPropagation() {
125
- $this->bubbles = false;
126
- }
127
- }
128
-
129
-
130
- /**
131
- * DOMDocumentWrapper class simplifies work with DOMDocument.
132
- *
133
- * Know bug:
134
- * - in XHTML fragments, <br /> changes to <br clear="none" />
135
- *
136
- * @todo check XML catalogs compatibility
137
- * @author Tobiasz Cudnik <tobiasz.cudnik/gmail.com>
138
- * @package phpQuery
139
- */
140
- class DOMDocumentWrapper {
141
- /**
142
- * @var DOMDocument
143
- */
144
- public $document;
145
- public $id;
146
- /**
147
- * @todo Rewrite as method and quess if null.
148
- * @var unknown_type
149
- */
150
- public $contentType = '';
151
- public $xpath;
152
- public $uuid = 0;
153
- public $data = array();
154
- public $dataNodes = array();
155
- public $events = array();
156
- public $eventsNodes = array();
157
- public $eventsGlobal = array();
158
- /**
159
- * @TODO iframes support http://code.google.com/p/phpquery/issues/detail?id=28
160
- * @var unknown_type
161
- */
162
- public $frames = array();
163
- /**
164
- * Document root, by default equals to document itself.
165
- * Used by documentFragments.
166
- *
167
- * @var DOMNode
168
- */
169
- public $root;
170
- public $isDocumentFragment;
171
- public $isXML = false;
172
- public $isXHTML = false;
173
- public $isHTML = false;
174
- public $charset;
175
- public function __construct($markup = null, $contentType = null, $newDocumentID = null) {
176
- if (isset($markup))
177
- $this->load($markup, $contentType, $newDocumentID);
178
- $this->id = $newDocumentID
179
- ? $newDocumentID
180
- : md5(microtime());
181
- }
182
- public function load($markup, $contentType = null, $newDocumentID = null) {
183
- // phpQuery::$documents[$id] = $this;
184
- $this->contentType = strtolower($contentType);
185
- if ($markup instanceof DOMDOCUMENT) {
186
- $this->document = $markup;
187
- $this->root = $this->document;
188
- $this->charset = $this->document->encoding;
189
- // TODO isDocumentFragment
190
- } else {
191
- $loaded = $this->loadMarkup($markup);
192
- }
193
- if ($loaded) {
194
- // $this->document->formatOutput = true;
195
- $this->document->preserveWhiteSpace = true;
196
- $this->xpath = new DOMXPath($this->document);
197
- $this->afterMarkupLoad();
198
- return true;
199
- // remember last loaded document
200
- // return phpQuery::selectDocument($id);
201
- }
202
- return false;
203
- }
204
- protected function afterMarkupLoad() {
205
- if ($this->isXHTML) {
206
- $this->xpath->registerNamespace("html", "http://www.w3.org/1999/xhtml");
207
- }
208
- }
209
- protected function loadMarkup($markup) {
210
- $loaded = false;
211
- if ($this->contentType) {
212
- self::debug("Load markup for content type {$this->contentType}");
213
- // content determined by contentType
214
- list($contentType, $charset) = $this->contentTypeToArray($this->contentType);
215
- switch($contentType) {
216
- case 'text/html':
217
- phpQuery::debug("Loading HTML, content type '{$this->contentType}'");
218
- $loaded = $this->loadMarkupHTML($markup, $charset);
219
- break;
220
- case 'text/xml':
221
- case 'application/xhtml+xml':
222
- phpQuery::debug("Loading XML, content type '{$this->contentType}'");
223
- $loaded = $this->loadMarkupXML($markup, $charset);
224
- break;
225
- default:
226
- // for feeds or anything that sometimes doesn't use text/xml
227
- if (strpos('xml', $this->contentType) !== false) {
228
- phpQuery::debug("Loading XML, content type '{$this->contentType}'");
229
- $loaded = $this->loadMarkupXML($markup, $charset);
230
- } else
231
- phpQuery::debug("Could not determine document type from content type '{$this->contentType}'");
232
- }
233
- } else {
234
- // content type autodetection
235
- if ($this->isXML($markup)) {
236
- phpQuery::debug("Loading XML, isXML() == true");
237
- $loaded = $this->loadMarkupXML($markup);
238
- if (! $loaded && $this->isXHTML) {
239
- phpQuery::debug('Loading as XML failed, trying to load as HTML, isXHTML == true');
240
- $loaded = $this->loadMarkupHTML($markup);
241
- }
242
- } else {
243
- phpQuery::debug("Loading HTML, isXML() == false");
244
- $loaded = $this->loadMarkupHTML($markup);
245
- }
246
- }
247
- return $loaded;
248
- }
249
- protected function loadMarkupReset() {
250
- $this->isXML = $this->isXHTML = $this->isHTML = false;
251
- }
252
- protected function documentCreate($charset, $version = '1.0') {
253
- if (! $version)
254
- $version = '1.0';
255
- $this->document = new DOMDocument($version, $charset);
256
- $this->charset = $this->document->encoding;
257
- // $this->document->encoding = $charset;
258
- $this->document->formatOutput = true;
259
- $this->document->preserveWhiteSpace = true;
260
- }
261
- protected function loadMarkupHTML($markup, $requestedCharset = null) {
262
- if (phpQuery::$debug)
263
- phpQuery::debug('Full markup load (HTML): '.substr($markup, 0, 250));
264
- $this->loadMarkupReset();
265
- $this->isHTML = true;
266
- if (!isset($this->isDocumentFragment))
267
- $this->isDocumentFragment = self::isDocumentFragmentHTML($markup);
268
- $charset = null;
269
- $documentCharset = $this->charsetFromHTML($markup);
270
- $addDocumentCharset = false;
271
- if ($documentCharset) {
272
- $charset = $documentCharset;
273
- $markup = $this->charsetFixHTML($markup);
274
- } else if ($requestedCharset) {
275
- $charset = $requestedCharset;
276
- }
277
- if (! $charset)
278
- $charset = phpQuery::$defaultCharset;
279
- // HTTP 1.1 says that the default charset is ISO-8859-1
280
- // @see http://www.w3.org/International/O-HTTP-charset
281
- if (! $documentCharset) {
282
- $documentCharset = 'ISO-8859-1';
283
- $addDocumentCharset = true;
284
- }
285
- // Should be careful here, still need 'magic encoding detection' since lots of pages have other 'default encoding'
286
- // Worse, some pages can have mixed encodings... we'll try not to worry about that
287
- $requestedCharset = strtoupper($requestedCharset);
288
- $documentCharset = strtoupper($documentCharset);
289
- phpQuery::debug("DOC: $documentCharset REQ: $requestedCharset");
290
- if ($requestedCharset && $documentCharset && $requestedCharset !== $documentCharset) {
291
- phpQuery::debug("CHARSET CONVERT");
292
- // Document Encoding Conversion
293
- // http://code.google.com/p/phpquery/issues/detail?id=86
294
- if (function_exists('mb_detect_encoding')) {
295
- $possibleCharsets = array($documentCharset, $requestedCharset, 'AUTO');
296
- $docEncoding = mb_detect_encoding($markup, implode(', ', $possibleCharsets));
297
- if (! $docEncoding)
298
- $docEncoding = $documentCharset; // ok trust the document
299
- phpQuery::debug("DETECTED '$docEncoding'");
300
- // Detected does not match what document says...
301
- if ($docEncoding !== $documentCharset) {
302
- // Tricky..
303
- }
304
- if ($docEncoding !== $requestedCharset) {
305
- phpQuery::debug("CONVERT $docEncoding => $requestedCharset");
306
- $markup = mb_convert_encoding($markup, $requestedCharset, $docEncoding);
307
- $markup = $this->charsetAppendToHTML($markup, $requestedCharset);
308
- $charset = $requestedCharset;
309
- }
310
- } else {
311
- phpQuery::debug("TODO: charset conversion without mbstring...");
312
- }
313
- }
314
- $return = false;
315
- if ($this->isDocumentFragment) {
316
- phpQuery::debug("Full markup load (HTML), DocumentFragment detected, using charset '$charset'");
317
- $return = $this->documentFragmentLoadMarkup($this, $charset, $markup);
318
- } else {
319
- if ($addDocumentCharset) {
320
- phpQuery::debug("Full markup load (HTML), appending charset: '$charset'");
321
- $markup = $this->charsetAppendToHTML($markup, $charset);
322
- }
323
- phpQuery::debug("Full markup load (HTML), documentCreate('$charset')");
324
- $this->documentCreate($charset);
325
- $return = phpQuery::$debug === 2
326
- ? $this->document->loadHTML($markup)
327
- : @$this->document->loadHTML($markup);
328
- if ($return)
329
- $this->root = $this->document;
330
- }
331
- if ($return && ! $this->contentType)
332
- $this->contentType = 'text/html';
333
- return $return;
334
- }
335
- protected function loadMarkupXML($markup, $requestedCharset = null) {
336
- if (phpQuery::$debug)
337
- phpQuery::debug('Full markup load (XML): '.substr($markup, 0, 250));
338
- $this->loadMarkupReset();
339
- $this->isXML = true;
340
- // check agains XHTML in contentType or markup
341
- $isContentTypeXHTML = $this->isXHTML();
342
- $isMarkupXHTML = $this->isXHTML($markup);
343
- if ($isContentTypeXHTML || $isMarkupXHTML) {
344
- self::debug('Full markup load (XML), XHTML detected');
345
- $this->isXHTML = true;
346
- }
347
- // determine document fragment
348
- if (! isset($this->isDocumentFragment))
349
- $this->isDocumentFragment = $this->isXHTML
350
- ? self::isDocumentFragmentXHTML($markup)
351
- : self::isDocumentFragmentXML($markup);
352
- // this charset will be used
353
- $charset = null;
354
- // charset from XML declaration @var string
355
- $documentCharset = $this->charsetFromXML($markup);
356
- if (! $documentCharset) {
357
- if ($this->isXHTML) {
358
- // this is XHTML, try to get charset from content-type meta header
359
- $documentCharset = $this->charsetFromHTML($markup);
360
- if ($documentCharset) {
361
- phpQuery::debug("Full markup load (XML), appending XHTML charset '$documentCharset'");
362
- $this->charsetAppendToXML($markup, $documentCharset);
363
- $charset = $documentCharset;
364
- }
365
- }
366
- if (! $documentCharset) {
367
- // if still no document charset...
368
- $charset = $requestedCharset;
369
- }
370
- } else if ($requestedCharset) {
371
- $charset = $requestedCharset;
372
- }
373
- if (! $charset) {
374
- $charset = phpQuery::$defaultCharset;
375
- }
376
- if ($requestedCharset && $documentCharset && $requestedCharset != $documentCharset) {
377
- // TODO place for charset conversion
378
- // $charset = $requestedCharset;
379
- }
380
- $return = false;
381
- if ($this->isDocumentFragment) {
382
- phpQuery::debug("Full markup load (XML), DocumentFragment detected, using charset '$charset'");
383
- $return = $this->documentFragmentLoadMarkup($this, $charset, $markup);
384
- } else {
385
- // FIXME ???
386
- if ($isContentTypeXHTML && ! $isMarkupXHTML)
387
- if (! $documentCharset) {
388
- phpQuery::debug("Full markup load (XML), appending charset '$charset'");
389
- $markup = $this->charsetAppendToXML($markup, $charset);
390
- }
391
- // see http://pl2.php.net/manual/en/book.dom.php#78929
392
- // LIBXML_DTDLOAD (>= PHP 5.1)
393
- // does XML ctalogues works with LIBXML_NONET
394
- // $this->document->resolveExternals = true;
395
- // TODO test LIBXML_COMPACT for performance improvement
396
- // create document
397
- $this->documentCreate($charset);
398
- if (phpversion() < 5.1) {
399
- $this->document->resolveExternals = true;
400
- $return = phpQuery::$debug === 2
401
- ? $this->document->loadXML($markup)
402
- : @$this->document->loadXML($markup);
403
- } else {
404
- /** @link http://pl2.php.net/manual/en/libxml.constants.php */
405
- $libxmlStatic = phpQuery::$debug === 2
406
- ? LIBXML_DTDLOAD|LIBXML_DTDATTR|LIBXML_NONET
407
- : LIBXML_DTDLOAD|LIBXML_DTDATTR|LIBXML_NONET|LIBXML_NOWARNING|LIBXML_NOERROR;
408
- $return = $this->document->loadXML($markup, $libxmlStatic);
409
- // if (! $return)
410
- // $return = $this->document->loadHTML($markup);
411
- }
412
- if ($return)
413
- $this->root = $this->document;
414
- }
415
- if ($return) {
416
- if (! $this->contentType) {
417
- if ($this->isXHTML)
418
- $this->contentType = 'application/xhtml+xml';
419
- else
420
- $this->contentType = 'text/xml';
421
- }
422
- return $return;
423
- } else {
424
- throw new Exception("Error loading XML markup");
425
- }
426
- }
427
- protected function isXHTML($markup = null) {
428
- if (! isset($markup)) {
429
- return strpos($this->contentType, 'xhtml') !== false;
430
- }
431
- // XXX ok ?
432
- return strpos($markup, "<!DOCTYPE html") !== false;
433
- // return stripos($doctype, 'xhtml') !== false;
434
- // $doctype = isset($dom->doctype) && is_object($dom->doctype)
435
- // ? $dom->doctype->publicId
436
- // : self::$defaultDoctype;
437
- }
438
- protected function isXML($markup) {
439
- // return strpos($markup, '<?xml') !== false && stripos($markup, 'xhtml') === false;
440
- return strpos(substr($markup, 0, 100), '<'.'?xml') !== false;
441
- }
442
- protected function contentTypeToArray($contentType) {
443
- $matches = explode(';', trim(strtolower($contentType)));
444
- if (isset($matches[1])) {
445
- $matches[1] = explode('=', $matches[1]);
446
- // strip 'charset='
447
- $matches[1] = isset($matches[1][1]) && trim($matches[1][1])
448
- ? $matches[1][1]
449
- : $matches[1][0];
450
- } else
451
- $matches[1] = null;
452
- return $matches;
453
- }
454
- /**
455
- *
456
- * @param $markup
457
- * @return array contentType, charset
458
- */
459
- protected function contentTypeFromHTML($markup) {
460
- $matches = array();
461
- // find meta tag
462
- preg_match('@<meta[^>]+http-equiv\\s*=\\s*(["|\'])Content-Type\\1([^>]+?)>@i',
463
- $markup, $matches
464
- );
465
- if (! isset($matches[0]))
466
- return array(null, null);
467
- // get attr 'content'
468
- preg_match('@content\\s*=\\s*(["|\'])(.+?)\\1@', $matches[0], $matches);
469
- if (! isset($matches[0]))
470
- return array(null, null);
471
- return $this->contentTypeToArray($matches[2]);
472
- }
473
- protected function charsetFromHTML($markup) {
474
- $contentType = $this->contentTypeFromHTML($markup);
475
- return $contentType[1];
476
- }
477
- protected function charsetFromXML($markup) {
478
- $matches;
479
- // find declaration
480
- preg_match('@<'.'?xml[^>]+encoding\\s*=\\s*(["|\'])(.*?)\\1@i',
481
- $markup, $matches
482
- );
483
- return isset($matches[2])
484
- ? strtolower($matches[2])
485
- : null;
486
- }
487
- /**
488
- * Repositions meta[type=charset] at the start of head. Bypasses DOMDocument bug.
489
- *
490
- * @link http://code.google.com/p/phpquery/issues/detail?id=80
491
- * @param $html
492
- */
493
- protected function charsetFixHTML($markup) {
494
- $matches = array();
495
- // find meta tag
496
- preg_match('@\s*<meta[^>]+http-equiv\\s*=\\s*(["|\'])Content-Type\\1([^>]+?)>@i',
497
- $markup, $matches, PREG_OFFSET_CAPTURE
498
- );
499
- if (! isset($matches[0]))
500
- return;
501
- $metaContentType = $matches[0][0];
502
- $markup = substr($markup, 0, $matches[0][1])
503
- .substr($markup, $matches[0][1]+strlen($metaContentType));
504
- $headStart = stripos($markup, '<head>');
505
- $markup = substr($markup, 0, $headStart+6).$metaContentType
506
- .substr($markup, $headStart+6);
507
- return $markup;
508
- }
509
- protected function charsetAppendToHTML($html, $charset, $xhtml = false) {
510
- // remove existing meta[type=content-type]
511
- $html = preg_replace('@\s*<meta[^>]+http-equiv\\s*=\\s*(["|\'])Content-Type\\1([^>]+?)>@i', '', $html);
512
- $meta = '<meta http-equiv="Content-Type" content="text/html;charset='
513
- .$charset.'" '
514
- .($xhtml ? '/' : '')
515
- .'>';
516
- if (strpos($html, '<head') === false) {
517
- if (strpos($hltml, '<html') === false) {
518
- return $meta.$html;
519
- } else {
520
- return preg_replace(
521
- '@<html(.*?)(?(?<!\?)>)@s',
522
- "<html\\1><head>{$meta}</head>",
523
- $html
524
- );
525
- }
526
- } else {
527
- return preg_replace(
528
- '@<head(.*?)(?(?<!\?)>)@s',
529
- '<head\\1>'.$meta,
530
- $html
531
- );
532
- }
533
- }
534
- protected function charsetAppendToXML($markup, $charset) {
535
- $declaration = '<'.'?xml version="1.0" encoding="'.$charset.'"?'.'>';
536
- return $declaration.$markup;
537
- }
538
- public static function isDocumentFragmentHTML($markup) {
539
- return stripos($markup, '<html') === false && stripos($markup, '<!doctype') === false;
540
- }
541
- public static function isDocumentFragmentXML($markup) {
542
- return stripos($markup, '<'.'?xml') === false;
543
- }
544
- public static function isDocumentFragmentXHTML($markup) {
545
- return self::isDocumentFragmentHTML($markup);
546
- }
547
- public function importAttr($value) {
548
- // TODO
549
- }
550
- /**
551
- *
552
- * @param $source
553
- * @param $target
554
- * @param $sourceCharset
555
- * @return array Array of imported nodes.
556
- */
557
- public function import($source, $sourceCharset = null) {
558
- // TODO charset conversions
559
- $return = array();
560
- if ($source instanceof DOMNODE && !($source instanceof DOMNODELIST))
561
- $source = array($source);
562
- // if (is_array($source)) {
563
- // foreach($source as $node) {
564
- // if (is_string($node)) {
565
- // // string markup
566
- // $fake = $this->documentFragmentCreate($node, $sourceCharset);
567
- // if ($fake === false)
568
- // throw new Exception("Error loading documentFragment markup");
569
- // else
570
- // $return = array_merge($return,
571
- // $this->import($fake->root->childNodes)
572
- // );
573
- // } else {
574
- // $return[] = $this->document->importNode($node, true);
575
- // }
576
- // }
577
- // return $return;
578
- // } else {
579
- // // string markup
580
- // $fake = $this->documentFragmentCreate($source, $sourceCharset);
581
- // if ($fake === false)
582
- // throw new Exception("Error loading documentFragment markup");
583
- // else
584
- // return $this->import($fake->root->childNodes);
585
- // }
586
- if (is_array($source) || $source instanceof DOMNODELIST) {
587
- // dom nodes
588
- self::debug('Importing nodes to document');
589
- foreach($source as $node)
590
- $return[] = $this->document->importNode($node, true);
591
- } else {
592
- // string markup
593
- $fake = $this->documentFragmentCreate($source, $sourceCharset);
594
- if ($fake === false)
595
- throw new Exception("Error loading documentFragment markup");
596
- else
597
- return $this->import($fake->root->childNodes);
598
- }
599
- return $return;
600
- }
601
- /**
602
- * Creates new document fragment.
603
- *
604
- * @param $source
605
- * @return DOMDocumentWrapper
606
- */
607
- protected function documentFragmentCreate($source, $charset = null) {
608
- $fake = new DOMDocumentWrapper();
609
- $fake->contentType = $this->contentType;
610
- $fake->isXML = $this->isXML;
611
- $fake->isHTML = $this->isHTML;
612
- $fake->isXHTML = $this->isXHTML;
613
- $fake->root = $fake->document;
614
- if (! $charset)
615
- $charset = $this->charset;
616
- // $fake->documentCreate($this->charset);
617
- if ($source instanceof DOMNODE && !($source instanceof DOMNODELIST))
618
- $source = array($source);
619
- if (is_array($source) || $source instanceof DOMNODELIST) {
620
- // dom nodes
621
- // load fake document
622
- if (! $this->documentFragmentLoadMarkup($fake, $charset))
623
- return false;
624
- $nodes = $fake->import($source);
625
- foreach($nodes as $node)
626
- $fake->root->appendChild($node);
627
- } else {
628
- // string markup
629
- $this->documentFragmentLoadMarkup($fake, $charset, $source);
630
- }
631
- return $fake;
632
- }
633
- /**
634
- *
635
- * @param $document DOMDocumentWrapper
636
- * @param $markup
637
- * @return $document
638
- */
639
- private function documentFragmentLoadMarkup($fragment, $charset, $markup = null) {
640
- // TODO error handling
641
- // TODO copy doctype
642
- // tempolary turn off
643
- $fragment->isDocumentFragment = false;
644
- if ($fragment->isXML) {
645
- if ($fragment->isXHTML) {
646
- // add FAKE element to set default namespace
647
- $fragment->loadMarkupXML('<?xml version="1.0" encoding="'.$charset.'"?>'
648
- .'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" '
649
- .'"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
650
- .'<fake xmlns="http://www.w3.org/1999/xhtml">'.$markup.'</fake>');
651
- $fragment->root = $fragment->document->firstChild->nextSibling;
652
- } else {
653
- $fragment->loadMarkupXML('<?xml version="1.0" encoding="'.$charset.'"?'.'><fake>'.$markup.'</fake>');
654
- $fragment->root = $fragment->document->firstChild;
655
- }
656
- } else {
657
- $markup2 = phpQuery::$defaultDoctype.'<html><head><meta http-equiv="Content-Type" content="text/html;charset='
658
- .$charset.'"></head>';
659
- $noBody = strpos($markup, '<body') === false;
660
- if ($noBody)
661
- $markup2 .= '<body>';
662
- $markup2 .= $markup;
663
- if ($noBody)
664
- $markup2 .= '</body>';
665
- $markup2 .= '</html>';
666
- $fragment->loadMarkupHTML($markup2);
667
- // TODO resolv body tag merging issue
668
- $fragment->root = $noBody
669
- ? $fragment->document->firstChild->nextSibling->firstChild->nextSibling
670
- : $fragment->document->firstChild->nextSibling->firstChild->nextSibling;
671
- }
672
- if (! $fragment->root)
673
- return false;
674
- $fragment->isDocumentFragment = true;
675
- return true;
676
- }
677
- protected function documentFragmentToMarkup($fragment) {
678
- phpQuery::debug('documentFragmentToMarkup');
679
- $tmp = $fragment->isDocumentFragment;
680
- $fragment->isDocumentFragment = false;
681
- $markup = $fragment->markup();
682
- if ($fragment->isXML) {
683
- $markup = substr($markup, 0, strrpos($markup, '</fake>'));
684
- if ($fragment->isXHTML) {
685
- $markup = substr($markup, strpos($markup, '<fake')+43);
686
- } else {
687
- $markup = substr($markup, strpos($markup, '<fake>')+6);
688
- }
689
- } else {
690
- $markup = substr($markup, strpos($markup, '<body>')+6);
691
- $markup = substr($markup, 0, strrpos($markup, '</body>'));
692
- }
693
- $fragment->isDocumentFragment = $tmp;
694
- if (phpQuery::$debug)
695
- phpQuery::debug('documentFragmentToMarkup: '.substr($markup, 0, 150));
696
- return $markup;
697
- }
698
- /**
699
- * Return document markup, starting with optional $nodes as root.
700
- *
701
- * @param $nodes DOMNode|DOMNodeList
702
- * @return string
703
- */
704
- public function markup($nodes = null, $innerMarkup = false) {
705
- if (isset($nodes) && count($nodes) == 1 && $nodes[0] instanceof DOMDOCUMENT)
706
- $nodes = null;
707
- if (isset($nodes)) {
708
- $markup = '';
709
- if (!is_array($nodes) && !($nodes instanceof DOMNODELIST) )
710
- $nodes = array($nodes);
711
- if ($this->isDocumentFragment && ! $innerMarkup)
712
- foreach($nodes as $i => $node)
713
- if ($node->isSameNode($this->root)) {
714
- // var_dump($node);
715
- $nodes = array_slice($nodes, 0, $i)
716
- + phpQuery::DOMNodeListToArray($node->childNodes)
717
- + array_slice($nodes, $i+1);
718
- }
719
- if ($this->isXML && ! $innerMarkup) {
720
- self::debug("Getting outerXML with charset '{$this->charset}'");
721
- // we need outerXML, so we can benefit from
722
- // $node param support in saveXML()
723
- foreach($nodes as $node)
724
- $markup .= $this->document->saveXML($node);
725
- } else {
726
- $loop = array();
727
- if ($innerMarkup)
728
- foreach($nodes as $node) {
729
- if ($node->childNodes)
730
- foreach($node->childNodes as $child)
731
- $loop[] = $child;
732
- else
733
- $loop[] = $node;
734
- }
735
- else
736
- $loop = $nodes;
737
- self::debug("Getting markup, moving selected nodes (".count($loop).") to new DocumentFragment");
738
- $fake = $this->documentFragmentCreate($loop);
739
- $markup = $this->documentFragmentToMarkup($fake);
740
- }
741
- if ($this->isXHTML) {
742
- self::debug("Fixing XHTML");
743
- $markup = self::markupFixXHTML($markup);
744
- }
745
- self::debug("Markup: ".substr($markup, 0, 250));
746
- return $markup;
747
- } else {
748
- if ($this->isDocumentFragment) {
749
- // documentFragment, html only...
750
- self::debug("Getting markup, DocumentFragment detected");
751
- // return $this->markup(
752
- //// $this->document->getElementsByTagName('body')->item(0)
753
- // $this->document->root, true
754
- // );
755
- $markup = $this->documentFragmentToMarkup($this);
756
- // no need for markupFixXHTML, as it's done thought markup($nodes) method
757
- return $markup;
758
- } else {
759
- self::debug("Getting markup (".($this->isXML?'XML':'HTML')."), final with charset '{$this->charset}'");
760
- $markup = $this->isXML
761
- ? $this->document->saveXML()
762
- : $this->document->saveHTML();
763
- if ($this->isXHTML) {
764
- self::debug("Fixing XHTML");
765
- $markup = self::markupFixXHTML($markup);
766
- }
767
- self::debug("Markup: ".substr($markup, 0, 250));
768
- return $markup;
769
- }
770
- }
771
- }
772
- protected static function markupFixXHTML($markup) {
773
- $markup = self::expandEmptyTag('script', $markup);
774
- $markup = self::expandEmptyTag('select', $markup);
775
- $markup = self::expandEmptyTag('textarea', $markup);
776
- return $markup;
777
- }
778
- public static function debug($text) {
779
- phpQuery::debug($text);
780
- }
781
- /**
782
- * expandEmptyTag
783
- *
784
- * @param $tag
785
- * @param $xml
786
- * @return unknown_type
787
- * @author mjaque at ilkebenson dot com
788
- * @link http://php.net/manual/en/domdocument.savehtml.php#81256
789
- */
790
- public static function expandEmptyTag($tag, $xml){
791
- $indice = 0;
792
- while ($indice< strlen($xml)){
793
- $pos = strpos($xml, "<$tag ", $indice);
794
- if ($pos){
795
- $posCierre = strpos($xml, ">", $pos);
796
- if ($xml[$posCierre-1] == "/"){
797
- $xml = substr_replace($xml, "></$tag>", $posCierre-1, 2);
798
- }
799
- $indice = $posCierre;
800
- }
801
- else break;
802
- }
803
- return $xml;
804
- }
805
- }
806
-
807
- /**
808
- * Event handling class.
809
- *
810
- * @author Tobiasz Cudnik
811
- * @package phpQuery
812
- * @static
813
- */
814
- abstract class phpQueryEvents {
815
- /**
816
- * Trigger a type of event on every matched element.
817
- *
818
- * @param DOMNode|phpQueryObject|string $document
819
- * @param unknown_type $type
820
- * @param unknown_type $data
821
- *
822
- * @TODO exclusive events (with !)
823
- * @TODO global events (test)
824
- * @TODO support more than event in $type (space-separated)
825
- */
826
- public static function trigger($document, $type, $data = array(), $node = null) {
827
- // trigger: function(type, data, elem, donative, extra) {
828
- $documentID = phpQuery::getDocumentID($document);
829
- $namespace = null;
830
- if (strpos($type, '.') !== false)
831
- list($name, $namespace) = explode('.', $type);
832
- else
833
- $name = $type;
834
- if (! $node) {
835
- if (self::issetGlobal($documentID, $type)) {
836
- $pq = phpQuery::getDocument($documentID);
837
- // TODO check add($pq->document)
838
- $pq->find('*')->add($pq->document)
839
- ->trigger($type, $data);
840
- }
841
- } else {
842
- if (isset($data[0]) && $data[0] instanceof DOMEvent) {
843
- $event = $data[0];
844
- $event->relatedTarget = $event->target;
845
- $event->target = $node;
846
- $data = array_slice($data, 1);
847
- } else {
848
- $event = new DOMEvent(array(
849
- 'type' => $type,
850
- 'target' => $node,
851
- 'timeStamp' => time(),
852
- ));
853
- }
854
- $i = 0;
855
- while($node) {
856
- // TODO whois
857
- phpQuery::debug("Triggering ".($i?"bubbled ":'')."event '{$type}' on "
858
- ."node \n");//.phpQueryObject::whois($node)."\n");
859
- $event->currentTarget = $node;
860
- $eventNode = self::getNode($documentID, $node);
861
- if (isset($eventNode->eventHandlers)) {
862
- foreach($eventNode->eventHandlers as $eventType => $handlers) {
863
- $eventNamespace = null;
864
- if (strpos($type, '.') !== false)
865
- list($eventName, $eventNamespace) = explode('.', $eventType);
866
- else
867
- $eventName = $eventType;
868
- if ($name != $eventName)
869
- continue;
870
- if ($namespace && $eventNamespace && $namespace != $eventNamespace)
871
- continue;
872
- foreach($handlers as $handler) {
873
- phpQuery::debug("Calling event handler\n");
874
- $event->data = $handler['data']
875
- ? $handler['data']
876
- : null;
877
- $params = array_merge(array($event), $data);
878
- $return = phpQuery::callbackRun($handler['callback'], $params);
879
- if ($return === false) {
880
- $event->bubbles = false;
881
- }
882
- }
883
- }
884
- }
885
- // to bubble or not to bubble...
886
- if (! $event->bubbles)
887
- break;
888
- $node = $node->parentNode;
889
- $i++;
890
- }
891
- }
892
- }
893
- /**
894
- * Binds a handler to one or more events (like click) for each matched element.
895
- * Can also bind custom events.
896
- *
897
- * @param DOMNode|phpQueryObject|string $document
898
- * @param unknown_type $type
899
- * @param unknown_type $data Optional
900
- * @param unknown_type $callback
901
- *
902
- * @TODO support '!' (exclusive) events
903
- * @TODO support more than event in $type (space-separated)
904
- * @TODO support binding to global events
905
- */
906
- public static function add($document, $node, $type, $data, $callback = null) {
907
- phpQuery::debug("Binding '$type' event");
908
- $documentID = phpQuery::getDocumentID($document);
909
- // if (is_null($callback) && is_callable($data)) {
910
- // $callback = $data;
911
- // $data = null;
912
- // }
913
- $eventNode = self::getNode($documentID, $node);
914
- if (! $eventNode)
915
- $eventNode = self::setNode($documentID, $node);
916
- if (!isset($eventNode->eventHandlers[$type]))
917
- $eventNode->eventHandlers[$type] = array();
918
- $eventNode->eventHandlers[$type][] = array(
919
- 'callback' => $callback,
920
- 'data' => $data,
921
- );
922
- }
923
- /**
924
- * Enter description here...
925
- *
926
- * @param DOMNode|phpQueryObject|string $document
927
- * @param unknown_type $type
928
- * @param unknown_type $callback
929
- *
930
- * @TODO namespace events
931
- * @TODO support more than event in $type (space-separated)
932
- */
933
- public static function remove($document, $node, $type = null, $callback = null) {
934
- $documentID = phpQuery::getDocumentID($document);
935
- $eventNode = self::getNode($documentID, $node);
936
- if (is_object($eventNode) && isset($eventNode->eventHandlers[$type])) {
937
- if ($callback) {
938
- foreach($eventNode->eventHandlers[$type] as $k => $handler)
939
- if ($handler['callback'] == $callback)
940
- unset($eventNode->eventHandlers[$type][$k]);
941
- } else {
942
- unset($eventNode->eventHandlers[$type]);
943
- }
944
- }
945
- }
946
- protected static function getNode($documentID, $node) {
947
- foreach(phpQuery::$documents[$documentID]->eventsNodes as $eventNode) {
948
- if ($node->isSameNode($eventNode))
949
- return $eventNode;
950
- }
951
- }
952
- protected static function setNode($documentID, $node) {
953
- phpQuery::$documents[$documentID]->eventsNodes[] = $node;
954
- return phpQuery::$documents[$documentID]->eventsNodes[
955
- count(phpQuery::$documents[$documentID]->eventsNodes)-1
956
- ];
957
- }
958
- protected static function issetGlobal($documentID, $type) {
959
- return isset(phpQuery::$documents[$documentID])
960
- ? in_array($type, phpQuery::$documents[$documentID]->eventsGlobal)
961
- : false;
962
- }
963
- }
964
-
965
-
966
- interface ICallbackNamed {
967
- function hasName();
968
- function getName();
969
- }
970
- /**
971
- * Callback class introduces currying-like pattern.
972
- *
973
- * Example:
974
- * function foo($param1, $param2, $param3) {
975
- * var_dump($param1, $param2, $param3);
976
- * }
977
- * $fooCurried = new Callback('foo',
978
- * 'param1 is now statically set',
979
- * new CallbackParam, new CallbackParam
980
- * );
981
- * phpQuery::callbackRun($fooCurried,
982
- * array('param2 value', 'param3 value'
983
- * );
984
- *
985
- * Callback class is supported in all phpQuery methods which accepts callbacks.
986
- *
987
- * @link http://code.google.com/p/phpquery/wiki/Callbacks#Param_Structures
988
- * @author Tobiasz Cudnik <tobiasz.cudnik/gmail.com>
989
- *
990
- * @TODO??? return fake forwarding function created via create_function
991
- * @TODO honor paramStructure
992
- */
993
- class Callback
994
- implements ICallbackNamed {
995
- public $callback = null;
996
- public $params = null;
997
- protected $name;
998
- public function __construct($callback, $param1 = null, $param2 = null,
999
- $param3 = null) {
1000
- $params = func_get_args();
1001
- $params = array_slice($params, 1);
1002
- if ($callback instanceof Callback) {
1003
- // TODO implement recurention
1004
- } else {
1005
- $this->callback = $callback;
1006
- $this->params = $params;
1007
- }
1008
- }
1009
- public function getName() {
1010
- return 'Callback: '.$this->name;
1011
- }
1012
- public function hasName() {
1013
- return isset($this->name) && $this->name;
1014
- }
1015
- public function setName($name) {
1016
- $this->name = $name;
1017
- return $this;
1018
- }
1019
- // TODO test me
1020
- // public function addParams() {
1021
- // $params = func_get_args();
1022
- // return new Callback($this->callback, $this->params+$params);
1023
- // }
1024
- }
1025
- /**
1026
- * Shorthand for new Callback(create_function(...), ...);
1027
- *
1028
- * @author Tobiasz Cudnik <tobiasz.cudnik/gmail.com>
1029
- */
1030
- class CallbackBody extends Callback {
1031
- public function __construct($paramList, $code, $param1 = null, $param2 = null,
1032
- $param3 = null) {
1033
- $params = func_get_args();
1034
- $params = array_slice($params, 2);
1035
- $this->callback = create_function($paramList, $code);
1036
- $this->params = $params;
1037
- }
1038
- }
1039
- /**
1040
- * Callback type which on execution returns reference passed during creation.
1041
- *
1042
- * @author Tobiasz Cudnik <tobiasz.cudnik/gmail.com>
1043
- */
1044
- class CallbackReturnReference extends Callback
1045
- implements ICallbackNamed {
1046
- protected $reference;
1047
- public function __construct(&$reference, $name = null){
1048
- $this->reference =& $reference;
1049
- $this->callback = array($this, 'callback');
1050
- }
1051
- public function callback() {
1052
- return $this->reference;
1053
- }
1054
- public function getName() {
1055
- return 'Callback: '.$this->name;
1056
- }
1057
- public function hasName() {
1058
- return isset($this->name) && $this->name;
1059
- }
1060
- }
1061
- /**
1062
- * Callback type which on execution returns value passed during creation.
1063
- *
1064
- * @author Tobiasz Cudnik <tobiasz.cudnik/gmail.com>
1065
- */
1066
- class CallbackReturnValue extends Callback
1067
- implements ICallbackNamed {
1068
- protected $value;
1069
- protected $name;
1070
- public function __construct($value, $name = null){
1071
- $this->value =& $value;
1072
- $this->name = $name;
1073
- $this->callback = array($this, 'callback');
1074
- }
1075
- public function callback() {
1076
- return $this->value;
1077
- }
1078
- public function __toString() {
1079
- return $this->getName();
1080
- }
1081
- public function getName() {
1082
- return 'Callback: '.$this->name;
1083
- }
1084
- public function hasName() {
1085
- return isset($this->name) && $this->name;
1086
- }
1087
- }
1088
- /**
1089
- * CallbackParameterToReference can be used when we don't really want a callback,
1090
- * only parameter passed to it. CallbackParameterToReference takes first
1091
- * parameter's value and passes it to reference.
1092
- *
1093
- * @author Tobiasz Cudnik <tobiasz.cudnik/gmail.com>
1094
- */
1095
- class CallbackParameterToReference extends Callback {
1096
- /**
1097
- * @param $reference
1098
- * @TODO implement $paramIndex;
1099
- * param index choose which callback param will be passed to reference
1100
- */
1101
- public function __construct(&$reference){
1102
- $this->callback =& $reference;
1103
- }
1104
- }
1105
- //class CallbackReference extends Callback {
1106
- // /**
1107
- // *
1108
- // * @param $reference
1109
- // * @param $paramIndex
1110
- // * @todo implement $paramIndex; param index choose which callback param will be passed to reference
1111
- // */
1112
- // public function __construct(&$reference, $name = null){
1113
- // $this->callback =& $reference;
1114
- // }
1115
- //}
1116
- class CallbackParam {}
1117
-
1118
- /**
1119
- * Class representing phpQuery objects.
1120
- *
1121
- * @author Tobiasz Cudnik <tobiasz.cudnik/gmail.com>
1122
- * @package phpQuery
1123
- * @method phpQueryObject clone() clone()
1124
- * @method phpQueryObject empty() empty()
1125
- * @method phpQueryObject next() next($selector = null)
1126
- * @method phpQueryObject prev() prev($selector = null)
1127
- * @property Int $length
1128
- */
1129
- class phpQueryObject
1130
- implements Iterator, Countable, ArrayAccess {
1131
- public $documentID = null;
1132
- /**
1133
- * DOMDocument class.
1134
- *
1135
- * @var DOMDocument
1136
- */
1137
- public $document = null;
1138
- public $charset = null;
1139
- /**
1140
- *
1141
- * @var DOMDocumentWrapper
1142
- */
1143
- public $documentWrapper = null;
1144
- /**
1145
- * XPath interface.
1146
- *
1147
- * @var DOMXPath
1148
- */
1149
- public $xpath = null;
1150
- /**
1151
- * Stack of selected elements.
1152
- * @TODO refactor to ->nodes
1153
- * @var array
1154
- */
1155
- public $elements = array();
1156
- /**
1157
- * @access private
1158
- */
1159
- protected $elementsBackup = array();
1160
- /**
1161
- * @access private
1162
- */
1163
- protected $previous = null;
1164
- /**
1165
- * @access private
1166
- * @TODO deprecate
1167
- */
1168
- protected $root = array();
1169
- /**
1170
- * Indicated if doument is just a fragment (no <html> tag).
1171
- *
1172
- * Every document is realy a full document, so even documentFragments can
1173
- * be queried against <html>, but getDocument(id)->htmlOuter() will return
1174
- * only contents of <body>.
1175
- *
1176
- * @var bool
1177
- */
1178
- public $documentFragment = true;
1179
- /**
1180
- * Iterator interface helper
1181
- * @access private
1182
- */
1183
- protected $elementsInterator = array();
1184
- /**
1185
- * Iterator interface helper
1186
- * @access private
1187
- */
1188
- protected $valid = false;
1189
- /**
1190
- * Iterator interface helper
1191
- * @access private
1192
- */
1193
- protected $current = null;
1194
- /**
1195
- * Enter description here...
1196
- *
1197
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
1198
- */
1199
- public function __construct($documentID) {
1200
- // if ($documentID instanceof self)
1201
- // var_dump($documentID->getDocumentID());
1202
- $id = $documentID instanceof self
1203
- ? $documentID->getDocumentID()
1204
- : $documentID;
1205
- // var_dump($id);
1206
- if (! isset(phpQuery::$documents[$id] )) {
1207
- // var_dump(phpQuery::$documents);
1208
- throw new Exception("Document with ID '{$id}' isn't loaded. Use phpQuery::newDocument(\$html) or phpQuery::newDocumentFile(\$file) first.");
1209
- }
1210
- $this->documentID = $id;
1211
- $this->documentWrapper =& phpQuery::$documents[$id];
1212
- $this->document =& $this->documentWrapper->document;
1213
- $this->xpath =& $this->documentWrapper->xpath;
1214
- $this->charset =& $this->documentWrapper->charset;
1215
- $this->documentFragment =& $this->documentWrapper->isDocumentFragment;
1216
- // TODO check $this->DOM->documentElement;
1217
- // $this->root = $this->document->documentElement;
1218
- $this->root =& $this->documentWrapper->root;
1219
- // $this->toRoot();
1220
- $this->elements = array($this->root);
1221
- }
1222
- /**
1223
- *
1224
- * @access private
1225
- * @param $attr
1226
- * @return unknown_type
1227
- */
1228
- public function __get($attr) {
1229
- switch($attr) {
1230
- // FIXME doesnt work at all ?
1231
- case 'length':
1232
- return $this->size();
1233
- break;
1234
- default:
1235
- return $this->$attr;
1236
- }
1237
- }
1238
- /**
1239
- * Saves actual object to $var by reference.
1240
- * Useful when need to break chain.
1241
- * @param phpQueryObject $var
1242
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
1243
- */
1244
- public function toReference(&$var) {
1245
- return $var = $this;
1246
- }
1247
- public function documentFragment($state = null) {
1248
- if ($state) {
1249
- phpQuery::$documents[$this->getDocumentID()]['documentFragment'] = $state;
1250
- return $this;
1251
- }
1252
- return $this->documentFragment;
1253
- }
1254
- /**
1255
- * @access private
1256
- * @TODO documentWrapper
1257
- */
1258
- protected function isRoot( $node) {
1259
- // return $node instanceof DOMDOCUMENT || $node->tagName == 'html';
1260
- return $node instanceof DOMDOCUMENT
1261
- || ($node instanceof DOMELEMENT && $node->tagName == 'html')
1262
- || $this->root->isSameNode($node);
1263
- }
1264
- /**
1265
- * @access private
1266
- */
1267
- protected function stackIsRoot() {
1268
- return $this->size() == 1 && $this->isRoot($this->elements[0]);
1269
- }
1270
- /**
1271
- * Enter description here...
1272
- * NON JQUERY METHOD
1273
- *
1274
- * Watch out, it doesn't creates new instance, can be reverted with end().
1275
- *
1276
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
1277
- */
1278
- public function toRoot() {
1279
- $this->elements = array($this->root);
1280
- return $this;
1281
- // return $this->newInstance(array($this->root));
1282
- }
1283
- /**
1284
- * Saves object's DocumentID to $var by reference.
1285
- * <code>
1286
- * $myDocumentId;
1287
- * phpQuery::newDocument('<div/>')
1288
- * ->getDocumentIDRef($myDocumentId)
1289
- * ->find('div')->...
1290
- * </code>
1291
- *
1292
- * @param unknown_type $domId
1293
- * @see phpQuery::newDocument
1294
- * @see phpQuery::newDocumentFile
1295
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
1296
- */
1297
- public function getDocumentIDRef(&$documentID) {
1298
- $documentID = $this->getDocumentID();
1299
- return $this;
1300
- }
1301
- /**
1302
- * Returns object with stack set to document root.
1303
- *
1304
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
1305
- */
1306
- public function getDocument() {
1307
- return phpQuery::getDocument($this->getDocumentID());
1308
- }
1309
- /**
1310
- *
1311
- * @return DOMDocument
1312
- */
1313
- public function getDOMDocument() {
1314
- return $this->document;
1315
- }
1316
- /**
1317
- * Get object's Document ID.
1318
- *
1319
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
1320
- */
1321
- public function getDocumentID() {
1322
- return $this->documentID;
1323
- }
1324
- /**
1325
- * Unloads whole document from memory.
1326
- * CAUTION! None further operations will be possible on this document.
1327
- * All objects refering to it will be useless.
1328
- *
1329
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
1330
- */
1331
- public function unloadDocument() {
1332
- phpQuery::unloadDocuments($this->getDocumentID());
1333
- }
1334
- public function isHTML() {
1335
- return $this->documentWrapper->isHTML;
1336
- }
1337
- public function isXHTML() {
1338
- return $this->documentWrapper->isXHTML;
1339
- }
1340
- public function isXML() {
1341
- return $this->documentWrapper->isXML;
1342
- }
1343
- /**
1344
- * Enter description here...
1345
- *
1346
- * @link http://docs.jquery.com/Ajax/serialize
1347
- * @return string
1348
- */
1349
- public function serialize() {
1350
- return phpQuery::param($this->serializeArray());
1351
- }
1352
- /**
1353
- * Enter description here...
1354
- *
1355
- * @link http://docs.jquery.com/Ajax/serializeArray
1356
- * @return array
1357
- */
1358
- public function serializeArray($submit = null) {
1359
- $source = $this->filter('form, input, select, textarea')
1360
- ->find('input, select, textarea')
1361
- ->andSelf()
1362
- ->not('form');
1363
- $return = array();
1364
- // $source->dumpDie();
1365
- foreach($source as $input) {
1366
- $input = phpQuery::pq($input);
1367
- if ($input->is('[disabled]'))
1368
- continue;
1369
- if (!$input->is('[name]'))
1370
- continue;
1371
- if ($input->is('[type=checkbox]') && !$input->is('[checked]'))
1372
- continue;
1373
- // jquery diff
1374
- if ($submit && $input->is('[type=submit]')) {
1375
- if ($submit instanceof DOMELEMENT && ! $input->elements[0]->isSameNode($submit))
1376
- continue;
1377
- else if (is_string($submit) && $input->attr('name') != $submit)
1378
- continue;
1379
- }
1380
- $return[] = array(
1381
- 'name' => $input->attr('name'),
1382
- 'value' => $input->val(),
1383
- );
1384
- }
1385
- return $return;
1386
- }
1387
- /**
1388
- * @access private
1389
- */
1390
- protected function debug($in) {
1391
- if (! phpQuery::$debug )
1392
- return;
1393
- print('<pre>');
1394
- print_r($in);
1395
- // file debug
1396
- // file_put_contents(dirname(__FILE__).'/phpQuery.log', print_r($in, true)."\n", FILE_APPEND);
1397
- // quite handy debug trace
1398
- // if ( is_array($in))
1399
- // print_r(array_slice(debug_backtrace(), 3));
1400
- print("</pre>\n");
1401
- }
1402
- /**
1403
- * @access private
1404
- */
1405
- protected function isRegexp($pattern) {
1406
- return in_array(
1407
- $pattern[ mb_strlen($pattern)-1 ],
1408
- array('^','*','$')
1409
- );
1410
- }
1411
- /**
1412
- * Determines if $char is really a char.
1413
- *
1414
- * @param string $char
1415
- * @return bool
1416
- * @todo rewrite me to charcode range ! ;)
1417
- * @access private
1418
- */
1419
- protected function isChar($char) {
1420
- return extension_loaded('mbstring') && phpQuery::$mbstringSupport
1421
- ? mb_eregi('\w', $char)
1422
- : preg_match('@\w@', $char);
1423
- }
1424
- /**
1425
- * @access private
1426
- */
1427
- protected function parseSelector($query) {
1428
- // clean spaces
1429
- // TODO include this inside parsing ?
1430
- $query = trim(
1431
- preg_replace('@\s+@', ' ',
1432
- preg_replace('@\s*(>|\\+|~)\s*@', '\\1', $query)
1433
- )
1434
- );
1435
- $queries = array(array());
1436
- if (! $query)
1437
- return $queries;
1438
- $return =& $queries[0];
1439
- $specialChars = array('>',' ');
1440
- // $specialCharsMapping = array('/' => '>');
1441
- $specialCharsMapping = array();
1442
- $strlen = mb_strlen($query);
1443
- $classChars = array('.', '-');
1444
- $pseudoChars = array('-');
1445
- $tagChars = array('*', '|', '-');
1446
- // split multibyte string
1447
- // http://code.google.com/p/phpquery/issues/detail?id=76
1448
- $_query = array();
1449
- for ($i=0; $i<$strlen; $i++)
1450
- $_query[] = mb_substr($query, $i, 1);
1451
- $query = $_query;
1452
- // it works, but i dont like it...
1453
- $i = 0;
1454
- while( $i < $strlen) {
1455
- $c = $query[$i];
1456
- $tmp = '';
1457
- // TAG
1458
- if ($this->isChar($c) || in_array($c, $tagChars)) {
1459
- while(isset($query[$i])
1460
- && ($this->isChar($query[$i]) || in_array($query[$i], $tagChars))) {
1461
- $tmp .= $query[$i];
1462
- $i++;
1463
- }
1464
- $return[] = $tmp;
1465
- // IDs
1466
- } else if ( $c == '#') {
1467
- $i++;
1468
- while( isset($query[$i]) && ($this->isChar($query[$i]) || $query[$i] == '-')) {
1469
- $tmp .= $query[$i];
1470
- $i++;
1471
- }
1472
- $return[] = '#'.$tmp;
1473
- // SPECIAL CHARS
1474
- } else if (in_array($c, $specialChars)) {
1475
- $return[] = $c;
1476
- $i++;
1477
- // MAPPED SPECIAL MULTICHARS
1478
- // } else if ( $c.$query[$i+1] == '//') {
1479
- // $return[] = ' ';
1480
- // $i = $i+2;
1481
- // MAPPED SPECIAL CHARS
1482
- } else if ( isset($specialCharsMapping[$c])) {
1483
- $return[] = $specialCharsMapping[$c];
1484
- $i++;
1485
- // COMMA
1486
- } else if ( $c == ',') {
1487
- $queries[] = array();
1488
- $return =& $queries[ count($queries)-1 ];
1489
- $i++;
1490
- while( isset($query[$i]) && $query[$i] == ' ')
1491
- $i++;
1492
- // CLASSES
1493
- } else if ($c == '.') {
1494
- while( isset($query[$i]) && ($this->isChar($query[$i]) || in_array($query[$i], $classChars))) {
1495
- $tmp .= $query[$i];
1496
- $i++;
1497
- }
1498
- $return[] = $tmp;
1499
- // ~ General Sibling Selector
1500
- } else if ($c == '~') {
1501
- $spaceAllowed = true;
1502
- $tmp .= $query[$i++];
1503
- while( isset($query[$i])
1504
- && ($this->isChar($query[$i])
1505
- || in_array($query[$i], $classChars)
1506
- || $query[$i] == '*'
1507
- || ($query[$i] == ' ' && $spaceAllowed)
1508
- )) {
1509
- if ($query[$i] != ' ')
1510
- $spaceAllowed = false;
1511
- $tmp .= $query[$i];
1512
- $i++;
1513
- }
1514
- $return[] = $tmp;
1515
- // + Adjacent sibling selectors
1516
- } else if ($c == '+') {
1517
- $spaceAllowed = true;
1518
- $tmp .= $query[$i++];
1519
- while( isset($query[$i])
1520
- && ($this->isChar($query[$i])
1521
- || in_array($query[$i], $classChars)
1522
- || $query[$i] == '*'
1523
- || ($spaceAllowed && $query[$i] == ' ')
1524
- )) {
1525
- if ($query[$i] != ' ')
1526
- $spaceAllowed = false;
1527
- $tmp .= $query[$i];
1528
- $i++;
1529
- }
1530
- $return[] = $tmp;
1531
- // ATTRS
1532
- } else if ($c == '[') {
1533
- $stack = 1;
1534
- $tmp .= $c;
1535
- while( isset($query[++$i])) {
1536
- $tmp .= $query[$i];
1537
- if ( $query[$i] == '[') {
1538
- $stack++;
1539
- } else if ( $query[$i] == ']') {
1540
- $stack--;
1541
- if (! $stack )
1542
- break;
1543
- }
1544
- }
1545
- $return[] = $tmp;
1546
- $i++;
1547
- // PSEUDO CLASSES
1548
- } else if ($c == ':') {
1549
- $stack = 1;
1550
- $tmp .= $query[$i++];
1551
- while( isset($query[$i]) && ($this->isChar($query[$i]) || in_array($query[$i], $pseudoChars))) {
1552
- $tmp .= $query[$i];
1553
- $i++;
1554
- }
1555
- // with arguments ?
1556
- if ( isset($query[$i]) && $query[$i] == '(') {
1557
- $tmp .= $query[$i];
1558
- $stack = 1;
1559
- while( isset($query[++$i])) {
1560
- $tmp .= $query[$i];
1561
- if ( $query[$i] == '(') {
1562
- $stack++;
1563
- } else if ( $query[$i] == ')') {
1564
- $stack--;
1565
- if (! $stack )
1566
- break;
1567
- }
1568
- }
1569
- $return[] = $tmp;
1570
- $i++;
1571
- } else {
1572
- $return[] = $tmp;
1573
- }
1574
- } else {
1575
- $i++;
1576
- }
1577
- }
1578
- foreach($queries as $k => $q) {
1579
- if (isset($q[0])) {
1580
- if (isset($q[0][0]) && $q[0][0] == ':')
1581
- array_unshift($queries[$k], '*');
1582
- if ($q[0] != '>')
1583
- array_unshift($queries[$k], ' ');
1584
- }
1585
- }
1586
- return $queries;
1587
- }
1588
- /**
1589
- * Return matched DOM nodes.
1590
- *
1591
- * @param int $index
1592
- * @return array|DOMElement Single DOMElement or array of DOMElement.
1593
- */
1594
- public function get($index = null, $callback1 = null, $callback2 = null, $callback3 = null) {
1595
- $return = isset($index)
1596
- ? (isset($this->elements[$index]) ? $this->elements[$index] : null)
1597
- : $this->elements;
1598
- // pass thou callbacks
1599
- $args = func_get_args();
1600
- $args = array_slice($args, 1);
1601
- foreach($args as $callback) {
1602
- if (is_array($return))
1603
- foreach($return as $k => $v)
1604
- $return[$k] = phpQuery::callbackRun($callback, array($v));
1605
- else
1606
- $return = phpQuery::callbackRun($callback, array($return));
1607
- }
1608
- return $return;
1609
- }
1610
- /**
1611
- * Return matched DOM nodes.
1612
- * jQuery difference.
1613
- *
1614
- * @param int $index
1615
- * @return array|string Returns string if $index != null
1616
- * @todo implement callbacks
1617
- * @todo return only arrays ?
1618
- * @todo maybe other name...
1619
- */
1620
- public function getString($index = null, $callback1 = null, $callback2 = null, $callback3 = null) {
1621
- if ($index)
1622
- $return = $this->eq($index)->text();
1623
- else {
1624
- $return = array();
1625
- for($i = 0; $i < $this->size(); $i++) {
1626
- $return[] = $this->eq($i)->text();
1627
- }
1628
- }
1629
- // pass thou callbacks
1630
- $args = func_get_args();
1631
- $args = array_slice($args, 1);
1632
- foreach($args as $callback) {
1633
- $return = phpQuery::callbackRun($callback, array($return));
1634
- }
1635
- return $return;
1636
- }
1637
- /**
1638
- * Return matched DOM nodes.
1639
- * jQuery difference.
1640
- *
1641
- * @param int $index
1642
- * @return array|string Returns string if $index != null
1643
- * @todo implement callbacks
1644
- * @todo return only arrays ?
1645
- * @todo maybe other name...
1646
- */
1647
- public function getStrings($index = null, $callback1 = null, $callback2 = null, $callback3 = null) {
1648
- if ($index)
1649
- $return = $this->eq($index)->text();
1650
- else {
1651
- $return = array();
1652
- for($i = 0; $i < $this->size(); $i++) {
1653
- $return[] = $this->eq($i)->text();
1654
- }
1655
- // pass thou callbacks
1656
- $args = func_get_args();
1657
- $args = array_slice($args, 1);
1658
- }
1659
- foreach($args as $callback) {
1660
- if (is_array($return))
1661
- foreach($return as $k => $v)
1662
- $return[$k] = phpQuery::callbackRun($callback, array($v));
1663
- else
1664
- $return = phpQuery::callbackRun($callback, array($return));
1665
- }
1666
- return $return;
1667
- }
1668
- /**
1669
- * Returns new instance of actual class.
1670
- *
1671
- * @param array $newStack Optional. Will replace old stack with new and move old one to history.c
1672
- */
1673
- public function newInstance($newStack = null) {
1674
- $class = get_class($this);
1675
- // support inheritance by passing old object to overloaded constructor
1676
- $new = $class != 'phpQuery'
1677
- ? new $class($this, $this->getDocumentID())
1678
- : new phpQueryObject($this->getDocumentID());
1679
- $new->previous = $this;
1680
- if (is_null($newStack)) {
1681
- $new->elements = $this->elements;
1682
- if ($this->elementsBackup)
1683
- $this->elements = $this->elementsBackup;
1684
- } else if (is_string($newStack)) {
1685
- $new->elements = phpQuery::pq($newStack, $this->getDocumentID())->stack();
1686
- } else {
1687
- $new->elements = $newStack;
1688
- }
1689
- return $new;
1690
- }
1691
- /**
1692
- * Enter description here...
1693
- *
1694
- * In the future, when PHP will support XLS 2.0, then we would do that this way:
1695
- * contains(tokenize(@class, '\s'), "something")
1696
- * @param unknown_type $class
1697
- * @param unknown_type $node
1698
- * @return boolean
1699
- * @access private
1700
- */
1701
- protected function matchClasses($class, $node) {
1702
- // multi-class
1703
- if ( mb_strpos($class, '.', 1)) {
1704
- $classes = explode('.', substr($class, 1));
1705
- $classesCount = count( $classes );
1706
- $nodeClasses = explode(' ', $node->getAttribute('class') );
1707
- $nodeClassesCount = count( $nodeClasses );
1708
- if ( $classesCount > $nodeClassesCount )
1709
- return false;
1710
- $diff = count(
1711
- array_diff(
1712
- $classes,
1713
- $nodeClasses
1714
- )
1715
- );
1716
- if (! $diff )
1717
- return true;
1718
- // single-class
1719
- } else {
1720
- return in_array(
1721
- // strip leading dot from class name
1722
- substr($class, 1),
1723
- // get classes for element as array
1724
- explode(' ', $node->getAttribute('class') )
1725
- );
1726
- }
1727
- }
1728
- /**
1729
- * @access private
1730
- */
1731
- protected function runQuery($XQuery, $selector = null, $compare = null) {
1732
- if ($compare && ! method_exists($this, $compare))
1733
- return false;
1734
- $stack = array();
1735
- if (! $this->elements)
1736
- $this->debug('Stack empty, skipping...');
1737
- // var_dump($this->elements[0]->nodeType);
1738
- // element, document
1739
- foreach($this->stack(array(1, 9, 13)) as $k => $stackNode) {
1740
- $detachAfter = false;
1741
- // to work on detached nodes we need temporary place them somewhere
1742
- // thats because context xpath queries sucks ;]
1743
- $testNode = $stackNode;
1744
- while ($testNode) {
1745
- if (! $testNode->parentNode && ! $this->isRoot($testNode)) {
1746
- $this->root->appendChild($testNode);
1747
- $detachAfter = $testNode;
1748
- break;
1749
- }
1750
- $testNode = isset($testNode->parentNode)
1751
- ? $testNode->parentNode
1752
- : null;
1753
- }
1754
- // XXX tmp ?
1755
- $xpath = $this->documentWrapper->isXHTML
1756
- ? $this->getNodeXpath($stackNode, 'html')
1757
- : $this->getNodeXpath($stackNode);
1758
- // FIXME pseudoclasses-only query, support XML
1759
- $query = $XQuery == '//' && $xpath == '/html[1]'
1760
- ? '//*'
1761
- : $xpath.$XQuery;
1762
- $this->debug("XPATH: {$query}");
1763
- // run query, get elements
1764
- $nodes = $this->xpath->query($query);
1765
- $this->debug("QUERY FETCHED");
1766
- if (! $nodes->length )
1767
- $this->debug('Nothing found');
1768
- $debug = array();
1769
- foreach($nodes as $node) {
1770
- $matched = false;
1771
- if ( $compare) {
1772
- phpQuery::$debug ?
1773
- $this->debug("Found: ".$this->whois( $node ).", comparing with {$compare}()")
1774
- : null;
1775
- $phpQueryDebug = phpQuery::$debug;
1776
- phpQuery::$debug = false;
1777
- // TODO ??? use phpQuery::callbackRun()
1778
- if (call_user_func_array(array($this, $compare), array($selector, $node)))
1779
- $matched = true;
1780
- phpQuery::$debug = $phpQueryDebug;
1781
- } else {
1782
- $matched = true;
1783
- }
1784
- if ( $matched) {
1785
- if (phpQuery::$debug)
1786
- $debug[] = $this->whois( $node );
1787
- $stack[] = $node;
1788
- }
1789
- }
1790
- if (phpQuery::$debug) {
1791
- $this->debug("Matched ".count($debug).": ".implode(', ', $debug));
1792
- }
1793
- if ($detachAfter)
1794
- $this->root->removeChild($detachAfter);
1795
- }
1796
- $this->elements = $stack;
1797
- }
1798
- /**
1799
- * Enter description here...
1800
- *
1801
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
1802
- */
1803
- public function find($selectors, $context = null, $noHistory = false) {
1804
- if (!$noHistory)
1805
- // backup last stack /for end()/
1806
- $this->elementsBackup = $this->elements;
1807
- // allow to define context
1808
- // TODO combine code below with phpQuery::pq() context guessing code
1809
- // as generic function
1810
- if ($context) {
1811
- if (! is_array($context) && $context instanceof DOMELEMENT)
1812
- $this->elements = array($context);
1813
- else if (is_array($context)) {
1814
- $this->elements = array();
1815
- foreach ($context as $c)
1816
- if ($c instanceof DOMELEMENT)
1817
- $this->elements[] = $c;
1818
- } else if ( $context instanceof self )
1819
- $this->elements = $context->elements;
1820
- }
1821
- $queries = $this->parseSelector($selectors);
1822
- $this->debug(array('FIND', $selectors, $queries));
1823
- $XQuery = '';
1824
- // remember stack state because of multi-queries
1825
- $oldStack = $this->elements;
1826
- // here we will be keeping found elements
1827
- $stack = array();
1828
- foreach($queries as $selector) {
1829
- $this->elements = $oldStack;
1830
- $delimiterBefore = false;
1831
- foreach($selector as $s) {
1832
- // TAG
1833
- $isTag = extension_loaded('mbstring') && phpQuery::$mbstringSupport
1834
- ? mb_ereg_match('^[\w|\||-]+$', $s) || $s == '*'
1835
- : preg_match('@^[\w|\||-]+$@', $s) || $s == '*';
1836
- if ($isTag) {
1837
- if ($this->isXML()) {
1838
- // namespace support
1839
- if (mb_strpos($s, '|') !== false) {
1840
- $ns = $tag = null;
1841
- list($ns, $tag) = explode('|', $s);
1842
- $XQuery .= "$ns:$tag";
1843
- } else if ($s == '*') {
1844
- $XQuery .= "*";
1845
- } else {
1846
- $XQuery .= "*[local-name()='$s']";
1847
- }
1848
- } else {
1849
- $XQuery .= $s;
1850
- }
1851
- // ID
1852
- } else if ($s[0] == '#') {
1853
- if ($delimiterBefore)
1854
- $XQuery .= '*';
1855
- $XQuery .= "[@id='".substr($s, 1)."']";
1856
- // ATTRIBUTES
1857
- } else if ($s[0] == '[') {
1858
- if ($delimiterBefore)
1859
- $XQuery .= '*';
1860
- // strip side brackets
1861
- $attr = trim($s, '][');
1862
- $execute = false;
1863
- // attr with specifed value
1864
- if (mb_strpos($s, '=')) {
1865
- $value = null;
1866
- list($attr, $value) = explode('=', $attr);
1867
- $value = trim($value, "'\"");
1868
- if ($this->isRegexp($attr)) {
1869
- // cut regexp character
1870
- $attr = substr($attr, 0, -1);
1871
- $execute = true;
1872
- $XQuery .= "[@{$attr}]";
1873
- } else {
1874
- $XQuery .= "[@{$attr}='{$value}']";
1875
- }
1876
- // attr without specified value
1877
- } else {
1878
- $XQuery .= "[@{$attr}]";
1879
- }
1880
- if ($execute) {
1881
- $this->runQuery($XQuery, $s, 'is');
1882
- $XQuery = '';
1883
- if (! $this->length())
1884
- break;
1885
- }
1886
- // CLASSES
1887
- } else if ($s[0] == '.') {
1888
- // TODO use return $this->find("./self::*[contains(concat(\" \",@class,\" \"), \" $class \")]");
1889
- // thx wizDom ;)
1890
- if ($delimiterBefore)
1891
- $XQuery .= '*';
1892
- $XQuery .= '[@class]';
1893
- $this->runQuery($XQuery, $s, 'matchClasses');
1894
- $XQuery = '';
1895
- if (! $this->length() )
1896
- break;
1897
- // ~ General Sibling Selector
1898
- } else if ($s[0] == '~') {
1899
- $this->runQuery($XQuery);
1900
- $XQuery = '';
1901
- $this->elements = $this
1902
- ->siblings(
1903
- substr($s, 1)
1904
- )->elements;
1905
- if (! $this->length() )
1906
- break;
1907
- // + Adjacent sibling selectors
1908
- } else if ($s[0] == '+') {
1909
- // TODO /following-sibling::
1910
- $this->runQuery($XQuery);
1911
- $XQuery = '';
1912
- $subSelector = substr($s, 1);
1913
- $subElements = $this->elements;
1914
- $this->elements = array();
1915
- foreach($subElements as $node) {
1916
- // search first DOMElement sibling
1917
- $test = $node->nextSibling;
1918
- while($test && ! ($test instanceof DOMELEMENT))
1919
- $test = $test->nextSibling;
1920
- if ($test && $this->is($subSelector, $test))
1921
- $this->elements[] = $test;
1922
- }
1923
- if (! $this->length() )
1924
- break;
1925
- // PSEUDO CLASSES
1926
- } else if ($s[0] == ':') {
1927
- // TODO optimization for :first :last
1928
- if ($XQuery) {
1929
- $this->runQuery($XQuery);
1930
- $XQuery = '';
1931
- }
1932
- if (! $this->length())
1933
- break;
1934
- $this->pseudoClasses($s);
1935
- if (! $this->length())
1936
- break;
1937
- // DIRECT DESCENDANDS
1938
- } else if ($s == '>') {
1939
- $XQuery .= '/';
1940
- $delimiterBefore = 2;
1941
- // ALL DESCENDANDS
1942
- } else if ($s == ' ') {
1943
- $XQuery .= '//';
1944
- $delimiterBefore = 2;
1945
- // ERRORS
1946
- } else {
1947
- phpQuery::debug("Unrecognized token '$s'");
1948
- }
1949
- $delimiterBefore = $delimiterBefore === 2;
1950
- }
1951
- // run query if any
1952
- if ($XQuery && $XQuery != '//') {
1953
- $this->runQuery($XQuery);
1954
- $XQuery = '';
1955
- }
1956
- foreach($this->elements as $node)
1957
- if (! $this->elementsContainsNode($node, $stack))
1958
- $stack[] = $node;
1959
- }
1960
- $this->elements = $stack;
1961
- return $this->newInstance();
1962
- }
1963
- /**
1964
- * @todo create API for classes with pseudoselectors
1965
- * @access private
1966
- */
1967
- protected function pseudoClasses($class) {
1968
- // TODO clean args parsing ?
1969
- $class = ltrim($class, ':');
1970
- $haveArgs = mb_strpos($class, '(');
1971
- if ($haveArgs !== false) {
1972
- $args = substr($class, $haveArgs+1, -1);
1973
- $class = substr($class, 0, $haveArgs);
1974
- }
1975
- switch($class) {
1976
- case 'even':
1977
- case 'odd':
1978
- $stack = array();
1979
- foreach($this->elements as $i => $node) {
1980
- if ($class == 'even' && ($i%2) == 0)
1981
- $stack[] = $node;
1982
- else if ( $class == 'odd' && $i % 2 )
1983
- $stack[] = $node;
1984
- }
1985
- $this->elements = $stack;
1986
- break;
1987
- case 'eq':
1988
- $k = intval($args);
1989
- $this->elements = isset( $this->elements[$k] )
1990
- ? array( $this->elements[$k] )
1991
- : array();
1992
- break;
1993
- case 'gt':
1994
- $this->elements = array_slice($this->elements, $args+1);
1995
- break;
1996
- case 'lt':
1997
- $this->elements = array_slice($this->elements, 0, $args+1);
1998
- break;
1999
- case 'first':
2000
- if (isset($this->elements[0]))
2001
- $this->elements = array($this->elements[0]);
2002
- break;
2003
- case 'last':
2004
- if ($this->elements)
2005
- $this->elements = array($this->elements[count($this->elements)-1]);
2006
- break;
2007
- /*case 'parent':
2008
- $stack = array();
2009
- foreach($this->elements as $node) {
2010
- if ( $node->childNodes->length )
2011
- $stack[] = $node;
2012
- }
2013
- $this->elements = $stack;
2014
- break;*/
2015
- case 'contains':
2016
- $text = trim($args, "\"'");
2017
- $stack = array();
2018
- foreach($this->elements as $node) {
2019
- if (mb_stripos($node->textContent, $text) === false)
2020
- continue;
2021
- $stack[] = $node;
2022
- }
2023
- $this->elements = $stack;
2024
- break;
2025
- case 'not':
2026
- $selector = self::unQuote($args);
2027
- $this->elements = $this->not($selector)->stack();
2028
- break;
2029
- case 'slice':
2030
- // TODO jQuery difference ?
2031
- $args = explode(',',
2032
- str_replace(', ', ',', trim($args, "\"'"))
2033
- );
2034
- $start = $args[0];
2035
- $end = isset($args[1])
2036
- ? $args[1]
2037
- : null;
2038
- if ($end > 0)
2039
- $end = $end-$start;
2040
- $this->elements = array_slice($this->elements, $start, $end);
2041
- break;
2042
- case 'has':
2043
- $selector = trim($args, "\"'");
2044
- $stack = array();
2045
- foreach($this->stack(1) as $el) {
2046
- if ($this->find($selector, $el, true)->length)
2047
- $stack[] = $el;
2048
- }
2049
- $this->elements = $stack;
2050
- break;
2051
- case 'submit':
2052
- case 'reset':
2053
- $this->elements = phpQuery::merge(
2054
- $this->map(array($this, 'is'),
2055
- "input[type=$class]", new CallbackParam()
2056
- ),
2057
- $this->map(array($this, 'is'),
2058
- "button[type=$class]", new CallbackParam()
2059
- )
2060
- );
2061
- break;
2062
- // $stack = array();
2063
- // foreach($this->elements as $node)
2064
- // if ($node->is('input[type=submit]') || $node->is('button[type=submit]'))
2065
- // $stack[] = $el;
2066
- // $this->elements = $stack;
2067
- case 'input':
2068
- $this->elements = $this->map(
2069
- array($this, 'is'),
2070
- 'input', new CallbackParam()
2071
- )->elements;
2072
- break;
2073
- case 'password':
2074
- case 'checkbox':
2075
- case 'radio':
2076
- case 'hidden':
2077
- case 'image':
2078
- case 'file':
2079
- $this->elements = $this->map(
2080
- array($this, 'is'),
2081
- "input[type=$class]", new CallbackParam()
2082
- )->elements;
2083
- break;
2084
- case 'parent':
2085
- $this->elements = $this->map(
2086
- create_function('$node', '
2087
- return $node instanceof DOMELEMENT && $node->childNodes->length
2088
- ? $node : null;')
2089
- )->elements;
2090
- break;
2091
- case 'empty':
2092
- $this->elements = $this->map(
2093
- create_function('$node', '
2094
- return $node instanceof DOMELEMENT && $node->childNodes->length
2095
- ? null : $node;')
2096
- )->elements;
2097
- break;
2098
- case 'disabled':
2099
- case 'selected':
2100
- case 'checked':
2101
- $this->elements = $this->map(
2102
- array($this, 'is'),
2103
- "[$class]", new CallbackParam()
2104
- )->elements;
2105
- break;
2106
- case 'enabled':
2107
- $this->elements = $this->map(
2108
- create_function('$node', '
2109
- return pq($node)->not(":disabled") ? $node : null;')
2110
- )->elements;
2111
- break;
2112
- case 'header':
2113
- $this->elements = $this->map(
2114
- create_function('$node',
2115
- '$isHeader = isset($node->tagName) && in_array($node->tagName, array(
2116
- "h1", "h2", "h3", "h4", "h5", "h6", "h7"
2117
- ));
2118
- return $isHeader
2119
- ? $node
2120
- : null;')
2121
- )->elements;
2122
- // $this->elements = $this->map(
2123
- // create_function('$node', '$node = pq($node);
2124
- // return $node->is("h1")
2125
- // || $node->is("h2")
2126
- // || $node->is("h3")
2127
- // || $node->is("h4")
2128
- // || $node->is("h5")
2129
- // || $node->is("h6")
2130
- // || $node->is("h7")
2131
- // ? $node
2132
- // : null;')
2133
- // )->elements;
2134
- break;
2135
- case 'only-child':
2136
- $this->elements = $this->map(
2137
- create_function('$node',
2138
- 'return pq($node)->siblings()->size() == 0 ? $node : null;')
2139
- )->elements;
2140
- break;
2141
- case 'first-child':
2142
- $this->elements = $this->map(
2143
- create_function('$node', 'return pq($node)->prevAll()->size() == 0 ? $node : null;')
2144
- )->elements;
2145
- break;
2146
- case 'last-child':
2147
- $this->elements = $this->map(
2148
- create_function('$node', 'return pq($node)->nextAll()->size() == 0 ? $node : null;')
2149
- )->elements;
2150
- break;
2151
- case 'nth-child':
2152
- $param = trim($args, "\"'");
2153
- if (! $param)
2154
- break;
2155
- // nth-child(n+b) to nth-child(1n+b)
2156
- if ($param{0} == 'n')
2157
- $param = '1'.$param;
2158
- // :nth-child(index/even/odd/equation)
2159
- if ($param == 'even' || $param == 'odd')
2160
- $mapped = $this->map(
2161
- create_function('$node, $param',
2162
- '$index = pq($node)->prevAll()->size()+1;
2163
- if ($param == "even" && ($index%2) == 0)
2164
- return $node;
2165
- else if ($param == "odd" && $index%2 == 1)
2166
- return $node;
2167
- else
2168
- return null;'),
2169
- new CallbackParam(), $param
2170
- );
2171
- else if (mb_strlen($param) > 1 && $param{1} == 'n')
2172
- // an+b
2173
- $mapped = $this->map(
2174
- create_function('$node, $param',
2175
- '$prevs = pq($node)->prevAll()->size();
2176
- $index = 1+$prevs;
2177
- $b = mb_strlen($param) > 3
2178
- ? $param{3}
2179
- : 0;
2180
- $a = $param{0};
2181
- if ($b && $param{2} == "-")
2182
- $b = -$b;
2183
- if ($a > 0) {
2184
- return ($index-$b)%$a == 0
2185
- ? $node
2186
- : null;
2187
- phpQuery::debug($a."*".floor($index/$a)."+$b-1 == ".($a*floor($index/$a)+$b-1)." ?= $prevs");
2188
- return $a*floor($index/$a)+$b-1 == $prevs
2189
- ? $node
2190
- : null;
2191
- } else if ($a == 0)
2192
- return $index == $b
2193
- ? $node
2194
- : null;
2195
- else
2196
- // negative value
2197
- return $index <= $b
2198
- ? $node
2199
- : null;
2200
- // if (! $b)
2201
- // return $index%$a == 0
2202
- // ? $node
2203
- // : null;
2204
- // else
2205
- // return ($index-$b)%$a == 0
2206
- // ? $node
2207
- // : null;
2208
- '),
2209
- new CallbackParam(), $param
2210
- );
2211
- else
2212
- // index
2213
- $mapped = $this->map(
2214
- create_function('$node, $index',
2215
- '$prevs = pq($node)->prevAll()->size();
2216
- if ($prevs && $prevs == $index-1)
2217
- return $node;
2218
- else if (! $prevs && $index == 1)
2219
- return $node;
2220
- else
2221
- return null;'),
2222
- new CallbackParam(), $param
2223
- );
2224
- $this->elements = $mapped->elements;
2225
- break;
2226
- default:
2227
- $this->debug("Unknown pseudoclass '{$class}', skipping...");
2228
- }
2229
- }
2230
- /**
2231
- * @access private
2232
- */
2233
- // protected function __pseudoClassParam($paramsString) {
2234
- protected function ai_pseudoClassParam($paramsString) {
2235
- // TODO;
2236
- }
2237
- /**
2238
- * Enter description here...
2239
- *
2240
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2241
- */
2242
- public function is($selector, $nodes = null) {
2243
- phpQuery::debug(array("Is:", $selector));
2244
- if (! $selector)
2245
- return false;
2246
- $oldStack = $this->elements;
2247
- $returnArray = false;
2248
- if ($nodes && is_array($nodes)) {
2249
- $this->elements = $nodes;
2250
- } else if ($nodes)
2251
- $this->elements = array($nodes);
2252
- $this->filter($selector, true);
2253
- $stack = $this->elements;
2254
- $this->elements = $oldStack;
2255
- if ($nodes)
2256
- return $stack ? $stack : null;
2257
- return (bool)count($stack);
2258
- }
2259
- /**
2260
- * Enter description here...
2261
- * jQuery difference.
2262
- *
2263
- * Callback:
2264
- * - $index int
2265
- * - $node DOMNode
2266
- *
2267
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2268
- * @link http://docs.jquery.com/Traversing/filter
2269
- */
2270
- public function filterCallback($callback, $_skipHistory = false) {
2271
- if (! $_skipHistory) {
2272
- $this->elementsBackup = $this->elements;
2273
- $this->debug("Filtering by callback");
2274
- }
2275
- $newStack = array();
2276
- foreach($this->elements as $index => $node) {
2277
- $result = phpQuery::callbackRun($callback, array($index, $node));
2278
- if (is_null($result) || (! is_null($result) && $result))
2279
- $newStack[] = $node;
2280
- }
2281
- $this->elements = $newStack;
2282
- return $_skipHistory
2283
- ? $this
2284
- : $this->newInstance();
2285
- }
2286
- /**
2287
- * Enter description here...
2288
- *
2289
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2290
- * @link http://docs.jquery.com/Traversing/filter
2291
- */
2292
- public function filter($selectors, $_skipHistory = false) {
2293
- if ($selectors instanceof Callback OR $selectors instanceof Closure)
2294
- return $this->filterCallback($selectors, $_skipHistory);
2295
- if (! $_skipHistory)
2296
- $this->elementsBackup = $this->elements;
2297
- $notSimpleSelector = array(' ', '>', '~', '+', '/');
2298
- if (! is_array($selectors))
2299
- $selectors = $this->parseSelector($selectors);
2300
- if (! $_skipHistory)
2301
- $this->debug(array("Filtering:", $selectors));
2302
- $finalStack = array();
2303
- foreach($selectors as $selector) {
2304
- $stack = array();
2305
- if (! $selector)
2306
- break;
2307
- // avoid first space or /
2308
- if (in_array($selector[0], $notSimpleSelector))
2309
- $selector = array_slice($selector, 1);
2310
- // PER NODE selector chunks
2311
- foreach($this->stack() as $node) {
2312
- $break = false;
2313
- foreach($selector as $s) {
2314
- if (!($node instanceof DOMELEMENT)) {
2315
- // all besides DOMElement
2316
- if ( $s[0] == '[') {
2317
- $attr = trim($s, '[]');
2318
- if ( mb_strpos($attr, '=')) {
2319
- list( $attr, $val ) = explode('=', $attr);
2320
- if ($attr == 'nodeType' && $node->nodeType != $val)
2321
- $break = true;
2322
- }
2323
- } else
2324
- $break = true;
2325
- } else {
2326
- // DOMElement only
2327
- // ID
2328
- if ( $s[0] == '#') {
2329
- if ( $node->getAttribute('id') != substr($s, 1) )
2330
- $break = true;
2331
- // CLASSES
2332
- } else if ( $s[0] == '.') {
2333
- if (! $this->matchClasses( $s, $node ) )
2334
- $break = true;
2335
- // ATTRS
2336
- } else if ( $s[0] == '[') {
2337
- // strip side brackets
2338
- $attr = trim($s, '[]');
2339
- if (mb_strpos($attr, '=')) {
2340
- list($attr, $val) = explode('=', $attr);
2341
- $val = self::unQuote($val);
2342
- if ($attr == 'nodeType') {
2343
- if ($val != $node->nodeType)
2344
- $break = true;
2345
- } else if ($this->isRegexp($attr)) {
2346
- $val = extension_loaded('mbstring') && phpQuery::$mbstringSupport
2347
- ? quotemeta(trim($val, '"\''))
2348
- : preg_quote(trim($val, '"\''), '@');
2349
- // switch last character
2350
- switch( substr($attr, -1)) {
2351
- // quotemeta used insted of preg_quote
2352
- // http://code.google.com/p/phpquery/issues/detail?id=76
2353
- case '^':
2354
- $pattern = '^'.$val;
2355
- break;
2356
- case '*':
2357
- $pattern = '.*'.$val.'.*';
2358
- break;
2359
- case '$':
2360
- $pattern = '.*'.$val.'$';
2361
- break;
2362
- }
2363
- // cut last character
2364
- $attr = substr($attr, 0, -1);
2365
- $isMatch = extension_loaded('mbstring') && phpQuery::$mbstringSupport
2366
- ? mb_ereg_match($pattern, $node->getAttribute($attr))
2367
- : preg_match("@{$pattern}@", $node->getAttribute($attr));
2368
- if (! $isMatch)
2369
- $break = true;
2370
- } else if ($node->getAttribute($attr) != $val)
2371
- $break = true;
2372
- } else if (! $node->hasAttribute($attr))
2373
- $break = true;
2374
- // PSEUDO CLASSES
2375
- } else if ( $s[0] == ':') {
2376
- // skip
2377
- // TAG
2378
- } else if (trim($s)) {
2379
- if ($s != '*') {
2380
- // TODO namespaces
2381
- if (isset($node->tagName)) {
2382
- if ($node->tagName != $s)
2383
- $break = true;
2384
- } else if ($s == 'html' && ! $this->isRoot($node))
2385
- $break = true;
2386
- }
2387
- // AVOID NON-SIMPLE SELECTORS
2388
- } else if (in_array($s, $notSimpleSelector)) {
2389
- $break = true;
2390
- $this->debug(array('Skipping non simple selector', $selector));
2391
- }
2392
- }
2393
- if ($break)
2394
- break;
2395
- }
2396
- // if element passed all chunks of selector - add it to new stack
2397
- if (! $break )
2398
- $stack[] = $node;
2399
- }
2400
- $tmpStack = $this->elements;
2401
- $this->elements = $stack;
2402
- // PER ALL NODES selector chunks
2403
- foreach($selector as $s)
2404
- // PSEUDO CLASSES
2405
- if ($s[0] == ':')
2406
- $this->pseudoClasses($s);
2407
- foreach($this->elements as $node)
2408
- // XXX it should be merged without duplicates
2409
- // but jQuery doesnt do that
2410
- $finalStack[] = $node;
2411
- $this->elements = $tmpStack;
2412
- }
2413
- $this->elements = $finalStack;
2414
- if ($_skipHistory) {
2415
- return $this;
2416
- } else {
2417
- $this->debug("Stack length after filter(): ".count($finalStack));
2418
- return $this->newInstance();
2419
- }
2420
- }
2421
- /**
2422
- *
2423
- * @param $value
2424
- * @return unknown_type
2425
- * @TODO implement in all methods using passed parameters
2426
- */
2427
- protected static function unQuote($value) {
2428
- return $value[0] == '\'' || $value[0] == '"'
2429
- ? substr($value, 1, -1)
2430
- : $value;
2431
- }
2432
- /**
2433
- * Enter description here...
2434
- *
2435
- * @link http://docs.jquery.com/Ajax/load
2436
- * @return phpQuery|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2437
- * @todo Support $selector
2438
- */
2439
- public function load($url, $data = null, $callback = null) {
2440
- if ($data && ! is_array($data)) {
2441
- $callback = $data;
2442
- $data = null;
2443
- }
2444
- if (mb_strpos($url, ' ') !== false) {
2445
- $matches = null;
2446
- if (extension_loaded('mbstring') && phpQuery::$mbstringSupport)
2447
- mb_ereg('^([^ ]+) (.*)$', $url, $matches);
2448
- else
2449
- preg_match('^([^ ]+) (.*)$', $url, $matches);
2450
- $url = $matches[1];
2451
- $selector = $matches[2];
2452
- // FIXME this sucks, pass as callback param
2453
- $this->_loadSelector = $selector;
2454
- }
2455
- $ajax = array(
2456
- 'url' => $url,
2457
- 'type' => $data ? 'POST' : 'GET',
2458
- 'data' => $data,
2459
- 'complete' => $callback,
2460
- // 'success' => array($this, '__loadSuccess')
2461
- 'success' => array($this, 'ai_loadSuccess')
2462
- );
2463
- phpQuery::ajax($ajax);
2464
- return $this;
2465
- }
2466
- /**
2467
- * @access private
2468
- * @param $html
2469
- * @return unknown_type
2470
- */
2471
- // public function __loadSuccess($html) {
2472
- public function ai_loadSuccess($html) {
2473
- if ($this->_loadSelector) {
2474
- $html = phpQuery::newDocument($html)->find($this->_loadSelector);
2475
- unset($this->_loadSelector);
2476
- }
2477
- foreach($this->stack(1) as $node) {
2478
- phpQuery::pq($node, $this->getDocumentID())
2479
- ->markup($html);
2480
- }
2481
- }
2482
- /**
2483
- * Enter description here...
2484
- *
2485
- * @return phpQuery|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2486
- * @todo
2487
- */
2488
- public function css() {
2489
- // TODO
2490
- return $this;
2491
- }
2492
- /**
2493
- * @todo
2494
- *
2495
- */
2496
- public function show(){
2497
- // TODO
2498
- return $this;
2499
- }
2500
- /**
2501
- * @todo
2502
- *
2503
- */
2504
- public function hide(){
2505
- // TODO
2506
- return $this;
2507
- }
2508
- /**
2509
- * Trigger a type of event on every matched element.
2510
- *
2511
- * @param unknown_type $type
2512
- * @param unknown_type $data
2513
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2514
- * @TODO support more than event in $type (space-separated)
2515
- */
2516
- public function trigger($type, $data = array()) {
2517
- foreach($this->elements as $node)
2518
- phpQueryEvents::trigger($this->getDocumentID(), $type, $data, $node);
2519
- return $this;
2520
- }
2521
- /**
2522
- * This particular method triggers all bound event handlers on an element (for a specific event type) WITHOUT executing the browsers default actions.
2523
- *
2524
- * @param unknown_type $type
2525
- * @param unknown_type $data
2526
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2527
- * @TODO
2528
- */
2529
- public function triggerHandler($type, $data = array()) {
2530
- // TODO;
2531
- }
2532
- /**
2533
- * Binds a handler to one or more events (like click) for each matched element.
2534
- * Can also bind custom events.
2535
- *
2536
- * @param unknown_type $type
2537
- * @param unknown_type $data Optional
2538
- * @param unknown_type $callback
2539
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2540
- * @TODO support '!' (exclusive) events
2541
- * @TODO support more than event in $type (space-separated)
2542
- */
2543
- public function bind($type, $data, $callback = null) {
2544
- // TODO check if $data is callable, not using is_callable
2545
- if (! isset($callback)) {
2546
- $callback = $data;
2547
- $data = null;
2548
- }
2549
- foreach($this->elements as $node)
2550
- phpQueryEvents::add($this->getDocumentID(), $node, $type, $data, $callback);
2551
- return $this;
2552
- }
2553
- /**
2554
- * Enter description here...
2555
- *
2556
- * @param unknown_type $type
2557
- * @param unknown_type $callback
2558
- * @return unknown
2559
- * @TODO namespace events
2560
- * @TODO support more than event in $type (space-separated)
2561
- */
2562
- public function unbind($type = null, $callback = null) {
2563
- foreach($this->elements as $node)
2564
- phpQueryEvents::remove($this->getDocumentID(), $node, $type, $callback);
2565
- return $this;
2566
- }
2567
- /**
2568
- * Enter description here...
2569
- *
2570
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2571
- */
2572
- public function change($callback = null) {
2573
- if ($callback)
2574
- return $this->bind('change', $callback);
2575
- return $this->trigger('change');
2576
- }
2577
- /**
2578
- * Enter description here...
2579
- *
2580
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2581
- */
2582
- public function submit($callback = null) {
2583
- if ($callback)
2584
- return $this->bind('submit', $callback);
2585
- return $this->trigger('submit');
2586
- }
2587
- /**
2588
- * Enter description here...
2589
- *
2590
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2591
- */
2592
- public function click($callback = null) {
2593
- if ($callback)
2594
- return $this->bind('click', $callback);
2595
- return $this->trigger('click');
2596
- }
2597
- /**
2598
- * Enter description here...
2599
- *
2600
- * @param String|phpQuery
2601
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2602
- */
2603
- public function wrapAllOld($wrapper) {
2604
- $wrapper = pq($wrapper)->_clone();
2605
- if (! $wrapper->length() || ! $this->length() )
2606
- return $this;
2607
- $wrapper->insertBefore($this->elements[0]);
2608
- $deepest = $wrapper->elements[0];
2609
- while($deepest->firstChild && $deepest->firstChild instanceof DOMELEMENT)
2610
- $deepest = $deepest->firstChild;
2611
- pq($deepest)->append($this);
2612
- return $this;
2613
- }
2614
- /**
2615
- * Enter description here...
2616
- *
2617
- * TODO testme...
2618
- * @param String|phpQuery
2619
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2620
- */
2621
- public function wrapAll($wrapper) {
2622
- if (! $this->length())
2623
- return $this;
2624
- return phpQuery::pq($wrapper, $this->getDocumentID())
2625
- ->clone()
2626
- ->insertBefore($this->get(0))
2627
- ->map(array($this, '___wrapAllCallback'))
2628
- ->append($this);
2629
- }
2630
- /**
2631
- *
2632
- * @param $node
2633
- * @return unknown_type
2634
- * @access private
2635
- */
2636
- public function ___wrapAllCallback($node) {
2637
- $deepest = $node;
2638
- while($deepest->firstChild && $deepest->firstChild instanceof DOMELEMENT)
2639
- $deepest = $deepest->firstChild;
2640
- return $deepest;
2641
- }
2642
- /**
2643
- * Enter description here...
2644
- * NON JQUERY METHOD
2645
- *
2646
- * @param String|phpQuery
2647
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2648
- */
2649
- public function wrapAllPHP($codeBefore, $codeAfter) {
2650
- return $this
2651
- ->slice(0, 1)
2652
- ->beforePHP($codeBefore)
2653
- ->end()
2654
- ->slice(-1)
2655
- ->afterPHP($codeAfter)
2656
- ->end();
2657
- }
2658
- /**
2659
- * Enter description here...
2660
- *
2661
- * @param String|phpQuery
2662
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2663
- */
2664
- public function wrap($wrapper) {
2665
- foreach($this->stack() as $node)
2666
- phpQuery::pq($node, $this->getDocumentID())->wrapAll($wrapper);
2667
- return $this;
2668
- }
2669
- /**
2670
- * Enter description here...
2671
- *
2672
- * @param String|phpQuery
2673
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2674
- */
2675
- public function wrapPHP($codeBefore, $codeAfter) {
2676
- foreach($this->stack() as $node)
2677
- phpQuery::pq($node, $this->getDocumentID())->wrapAllPHP($codeBefore, $codeAfter);
2678
- return $this;
2679
- }
2680
- /**
2681
- * Enter description here...
2682
- *
2683
- * @param String|phpQuery
2684
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2685
- */
2686
- public function wrapInner($wrapper) {
2687
- foreach($this->stack() as $node)
2688
- phpQuery::pq($node, $this->getDocumentID())->contents()->wrapAll($wrapper);
2689
- return $this;
2690
- }
2691
- /**
2692
- * Enter description here...
2693
- *
2694
- * @param String|phpQuery
2695
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2696
- */
2697
- public function wrapInnerPHP($codeBefore, $codeAfter) {
2698
- foreach($this->stack(1) as $node)
2699
- phpQuery::pq($node, $this->getDocumentID())->contents()
2700
- ->wrapAllPHP($codeBefore, $codeAfter);
2701
- return $this;
2702
- }
2703
- /**
2704
- * Enter description here...
2705
- *
2706
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2707
- * @testme Support for text nodes
2708
- */
2709
- public function contents() {
2710
- $stack = array();
2711
- foreach($this->stack(1) as $el) {
2712
- // FIXME (fixed) http://code.google.com/p/phpquery/issues/detail?id=56
2713
- // if (! isset($el->childNodes))
2714
- // continue;
2715
- foreach($el->childNodes as $node) {
2716
- $stack[] = $node;
2717
- }
2718
- }
2719
- return $this->newInstance($stack);
2720
- }
2721
- /**
2722
- * Enter description here...
2723
- *
2724
- * jQuery difference.
2725
- *
2726
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2727
- */
2728
- public function contentsUnwrap() {
2729
- foreach($this->stack(1) as $node) {
2730
- if (! $node->parentNode )
2731
- continue;
2732
- $childNodes = array();
2733
- // any modification in DOM tree breaks childNodes iteration, so cache them first
2734
- foreach($node->childNodes as $chNode )
2735
- $childNodes[] = $chNode;
2736
- foreach($childNodes as $chNode )
2737
- // $node->parentNode->appendChild($chNode);
2738
- $node->parentNode->insertBefore($chNode, $node);
2739
- $node->parentNode->removeChild($node);
2740
- }
2741
- return $this;
2742
- }
2743
- /**
2744
- * Enter description here...
2745
- *
2746
- * jQuery difference.
2747
- */
2748
- public function switchWith($markup) {
2749
- $markup = pq($markup, $this->getDocumentID());
2750
- $content = null;
2751
- foreach($this->stack(1) as $node) {
2752
- pq($node)
2753
- ->contents()->toReference($content)->end()
2754
- ->replaceWith($markup->clone()->append($content));
2755
- }
2756
- return $this;
2757
- }
2758
- /**
2759
- * Enter description here...
2760
- *
2761
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2762
- */
2763
- public function eq($num) {
2764
- $oldStack = $this->elements;
2765
- $this->elementsBackup = $this->elements;
2766
- $this->elements = array();
2767
- if ( isset($oldStack[$num]) )
2768
- $this->elements[] = $oldStack[$num];
2769
- return $this->newInstance();
2770
- }
2771
- /**
2772
- * Enter description here...
2773
- *
2774
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2775
- */
2776
- public function size() {
2777
- return count($this->elements);
2778
- }
2779
- /**
2780
- * Enter description here...
2781
- *
2782
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2783
- * @deprecated Use length as attribute
2784
- */
2785
- public function length() {
2786
- return $this->size();
2787
- }
2788
- public function count() {
2789
- return $this->size();
2790
- }
2791
- /**
2792
- * Enter description here...
2793
- *
2794
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2795
- * @todo $level
2796
- */
2797
- public function end($level = 1) {
2798
- // $this->elements = array_pop( $this->history );
2799
- // return $this;
2800
- // $this->previous->DOM = $this->DOM;
2801
- // $this->previous->XPath = $this->XPath;
2802
- return $this->previous
2803
- ? $this->previous
2804
- : $this;
2805
- }
2806
- /**
2807
- * Enter description here...
2808
- * Normal use ->clone() .
2809
- *
2810
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2811
- * @access private
2812
- */
2813
- public function _clone() {
2814
- $newStack = array();
2815
- //pr(array('copy... ', $this->whois()));
2816
- //$this->dumpHistory('copy');
2817
- $this->elementsBackup = $this->elements;
2818
- foreach($this->elements as $node) {
2819
- $newStack[] = $node->cloneNode(true);
2820
- }
2821
- $this->elements = $newStack;
2822
- return $this->newInstance();
2823
- }
2824
- /**
2825
- * Enter description here...
2826
- *
2827
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2828
- */
2829
- public function replaceWithPHP($code) {
2830
- return $this->replaceWith(phpQuery::php($code));
2831
- }
2832
- /**
2833
- * Enter description here...
2834
- *
2835
- * @param String|phpQuery $content
2836
- * @link http://docs.jquery.com/Manipulation/replaceWith#content
2837
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2838
- */
2839
- public function replaceWith($content) {
2840
- return $this->after($content)->remove();
2841
- }
2842
- /**
2843
- * Enter description here...
2844
- *
2845
- * @param String $selector
2846
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2847
- * @todo this works ?
2848
- */
2849
- public function replaceAll($selector) {
2850
- foreach(phpQuery::pq($selector, $this->getDocumentID()) as $node)
2851
- phpQuery::pq($node, $this->getDocumentID())
2852
- ->after($this->_clone())
2853
- ->remove();
2854
- return $this;
2855
- }
2856
- /**
2857
- * Enter description here...
2858
- *
2859
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2860
- */
2861
- public function remove($selector = null) {
2862
- $loop = $selector
2863
- ? $this->filter($selector)->elements
2864
- : $this->elements;
2865
- foreach($loop as $node) {
2866
- if (! $node->parentNode )
2867
- continue;
2868
- if (isset($node->tagName))
2869
- $this->debug("Removing '{$node->tagName}'");
2870
- $node->parentNode->removeChild($node);
2871
- // Mutation event
2872
- $event = new DOMEvent(array(
2873
- 'target' => $node,
2874
- 'type' => 'DOMNodeRemoved'
2875
- ));
2876
- phpQueryEvents::trigger($this->getDocumentID(),
2877
- $event->type, array($event), $node
2878
- );
2879
- }
2880
- return $this;
2881
- }
2882
- protected function markupEvents($newMarkup, $oldMarkup, $node) {
2883
- if ($node->tagName == 'textarea' && $newMarkup != $oldMarkup) {
2884
- $event = new DOMEvent(array(
2885
- 'target' => $node,
2886
- 'type' => 'change'
2887
- ));
2888
- phpQueryEvents::trigger($this->getDocumentID(),
2889
- $event->type, array($event), $node
2890
- );
2891
- }
2892
- }
2893
- /**
2894
- * jQuey difference
2895
- *
2896
- * @param $markup
2897
- * @return unknown_type
2898
- * @TODO trigger change event for textarea
2899
- */
2900
- public function markup($markup = null, $callback1 = null, $callback2 = null, $callback3 = null) {
2901
- $args = func_get_args();
2902
- if ($this->documentWrapper->isXML)
2903
- return call_user_func_array(array($this, 'xml'), $args);
2904
- else
2905
- return call_user_func_array(array($this, 'html'), $args);
2906
- }
2907
- /**
2908
- * jQuey difference
2909
- *
2910
- * @param $markup
2911
- * @return unknown_type
2912
- */
2913
- public function markupOuter($callback1 = null, $callback2 = null, $callback3 = null) {
2914
- $args = func_get_args();
2915
- if ($this->documentWrapper->isXML)
2916
- return call_user_func_array(array($this, 'xmlOuter'), $args);
2917
- else
2918
- return call_user_func_array(array($this, 'htmlOuter'), $args);
2919
- }
2920
- /**
2921
- * Enter description here...
2922
- *
2923
- * @param unknown_type $html
2924
- * @return string|phpQuery|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2925
- * @TODO force html result
2926
- */
2927
- public function html($html = null, $callback1 = null, $callback2 = null, $callback3 = null) {
2928
- if (isset($html)) {
2929
- // INSERT
2930
- $nodes = $this->documentWrapper->import($html);
2931
- $this->empty();
2932
- foreach($this->stack(1) as $alreadyAdded => $node) {
2933
- // for now, limit events for textarea
2934
- if (($this->isXHTML() || $this->isHTML()) && $node->tagName == 'textarea')
2935
- $oldHtml = pq($node, $this->getDocumentID())->markup();
2936
- foreach($nodes as $newNode) {
2937
- $node->appendChild($alreadyAdded
2938
- ? $newNode->cloneNode(true)
2939
- : $newNode
2940
- );
2941
- }
2942
- // for now, limit events for textarea
2943
- if (($this->isXHTML() || $this->isHTML()) && $node->tagName == 'textarea')
2944
- $this->markupEvents($html, $oldHtml, $node);
2945
- }
2946
- return $this;
2947
- } else {
2948
- // FETCH
2949
- $return = $this->documentWrapper->markup($this->elements, true);
2950
- $args = func_get_args();
2951
- foreach(array_slice($args, 1) as $callback) {
2952
- $return = phpQuery::callbackRun($callback, array($return));
2953
- }
2954
- return $return;
2955
- }
2956
- }
2957
- /**
2958
- * @TODO force xml result
2959
- */
2960
- public function xml($xml = null, $callback1 = null, $callback2 = null, $callback3 = null) {
2961
- $args = func_get_args();
2962
- return call_user_func_array(array($this, 'html'), $args);
2963
- }
2964
- /**
2965
- * Enter description here...
2966
- * @TODO force html result
2967
- *
2968
- * @return String
2969
- */
2970
- public function htmlOuter($callback1 = null, $callback2 = null, $callback3 = null) {
2971
- $markup = $this->documentWrapper->markup($this->elements);
2972
- // pass thou callbacks
2973
- $args = func_get_args();
2974
- foreach($args as $callback) {
2975
- $markup = phpQuery::callbackRun($callback, array($markup));
2976
- }
2977
- return $markup;
2978
- }
2979
- /**
2980
- * @TODO force xml result
2981
- */
2982
- public function xmlOuter($callback1 = null, $callback2 = null, $callback3 = null) {
2983
- $args = func_get_args();
2984
- return call_user_func_array(array($this, 'htmlOuter'), $args);
2985
- }
2986
- public function __toString() {
2987
- return $this->markupOuter();
2988
- }
2989
- /**
2990
- * Just like html(), but returns markup with VALID (dangerous) PHP tags.
2991
- *
2992
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
2993
- * @todo support returning markup with PHP tags when called without param
2994
- */
2995
- public function php($code = null) {
2996
- return $this->markupPHP($code);
2997
- }
2998
- /**
2999
- * Enter description here...
3000
- *
3001
- * @param $code
3002
- * @return unknown_type
3003
- */
3004
- public function markupPHP($code = null) {
3005
- return isset($code)
3006
- ? $this->markup(phpQuery::php($code))
3007
- : phpQuery::markupToPHP($this->markup());
3008
- }
3009
- /**
3010
- * Enter description here...
3011
- *
3012
- * @param $code
3013
- * @return unknown_type
3014
- */
3015
- public function markupOuterPHP() {
3016
- return phpQuery::markupToPHP($this->markupOuter());
3017
- }
3018
- /**
3019
- * Enter description here...
3020
- *
3021
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3022
- */
3023
- public function children($selector = null) {
3024
- $stack = array();
3025
- foreach($this->stack(1) as $node) {
3026
- // foreach($node->getElementsByTagName('*') as $newNode) {
3027
- foreach($node->childNodes as $newNode) {
3028
- if ($newNode->nodeType != 1)
3029
- continue;
3030
- if ($selector && ! $this->is($selector, $newNode))
3031
- continue;
3032
- if ($this->elementsContainsNode($newNode, $stack))
3033
- continue;
3034
- $stack[] = $newNode;
3035
- }
3036
- }
3037
- $this->elementsBackup = $this->elements;
3038
- $this->elements = $stack;
3039
- return $this->newInstance();
3040
- }
3041
- /**
3042
- * Enter description here...
3043
- *
3044
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3045
- */
3046
- public function ancestors($selector = null) {
3047
- return $this->children( $selector );
3048
- }
3049
- /**
3050
- * Enter description here...
3051
- *
3052
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3053
- */
3054
- public function append( $content) {
3055
- return $this->insert($content, __FUNCTION__);
3056
- }
3057
- /**
3058
- * Enter description here...
3059
- *
3060
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3061
- */
3062
- public function appendPHP( $content) {
3063
- return $this->insert("<php><!-- {$content} --></php>", 'append');
3064
- }
3065
- /**
3066
- * Enter description here...
3067
- *
3068
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3069
- */
3070
- public function appendTo( $seletor) {
3071
- return $this->insert($seletor, __FUNCTION__);
3072
- }
3073
- /**
3074
- * Enter description here...
3075
- *
3076
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3077
- */
3078
- public function prepend( $content) {
3079
- return $this->insert($content, __FUNCTION__);
3080
- }
3081
- /**
3082
- * Enter description here...
3083
- *
3084
- * @todo accept many arguments, which are joined, arrays maybe also
3085
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3086
- */
3087
- public function prependPHP( $content) {
3088
- return $this->insert("<php><!-- {$content} --></php>", 'prepend');
3089
- }
3090
- /**
3091
- * Enter description here...
3092
- *
3093
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3094
- */
3095
- public function prependTo( $seletor) {
3096
- return $this->insert($seletor, __FUNCTION__);
3097
- }
3098
- /**
3099
- * Enter description here...
3100
- *
3101
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3102
- */
3103
- public function before($content) {
3104
- return $this->insert($content, __FUNCTION__);
3105
- }
3106
- /**
3107
- * Enter description here...
3108
- *
3109
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3110
- */
3111
- public function beforePHP( $content) {
3112
- return $this->insert("<php><!-- {$content} --></php>", 'before');
3113
- }
3114
- /**
3115
- * Enter description here...
3116
- *
3117
- * @param String|phpQuery
3118
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3119
- */
3120
- public function insertBefore( $seletor) {
3121
- return $this->insert($seletor, __FUNCTION__);
3122
- }
3123
- /**
3124
- * Enter description here...
3125
- *
3126
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3127
- */
3128
- public function after( $content) {
3129
- return $this->insert($content, __FUNCTION__);
3130
- }
3131
- /**
3132
- * Enter description here...
3133
- *
3134
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3135
- */
3136
- public function afterPHP( $content) {
3137
- return $this->insert("<php><!-- {$content} --></php>", 'after');
3138
- }
3139
- /**
3140
- * Enter description here...
3141
- *
3142
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3143
- */
3144
- public function insertAfter( $seletor) {
3145
- return $this->insert($seletor, __FUNCTION__);
3146
- }
3147
- /**
3148
- * Internal insert method. Don't use it.
3149
- *
3150
- * @param unknown_type $target
3151
- * @param unknown_type $type
3152
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3153
- * @access private
3154
- */
3155
- public function insert($target, $type) {
3156
- $this->debug("Inserting data with '{$type}'");
3157
- $to = false;
3158
- switch( $type) {
3159
- case 'appendTo':
3160
- case 'prependTo':
3161
- case 'insertBefore':
3162
- case 'insertAfter':
3163
- $to = true;
3164
- }
3165
- switch(gettype($target)) {
3166
- case 'string':
3167
- $insertFrom = $insertTo = array();
3168
- if ($to) {
3169
- // INSERT TO
3170
- $insertFrom = $this->elements;
3171
- if (phpQuery::isMarkup($target)) {
3172
- // $target is new markup, import it
3173
- $insertTo = $this->documentWrapper->import($target);
3174
- // insert into selected element
3175
- } else {
3176
- // $tagret is a selector
3177
- $thisStack = $this->elements;
3178
- $this->toRoot();
3179
- $insertTo = $this->find($target)->elements;
3180
- $this->elements = $thisStack;
3181
- }
3182
- } else {
3183
- // INSERT FROM
3184
- $insertTo = $this->elements;
3185
- $insertFrom = $this->documentWrapper->import($target);
3186
- }
3187
- break;
3188
- case 'object':
3189
- $insertFrom = $insertTo = array();
3190
- // phpQuery
3191
- if ($target instanceof self) {
3192
- if ($to) {
3193
- $insertTo = $target->elements;
3194
- if ($this->documentFragment && $this->stackIsRoot())
3195
- // get all body children
3196
- // $loop = $this->find('body > *')->elements;
3197
- // TODO test it, test it hard...
3198
- // $loop = $this->newInstance($this->root)->find('> *')->elements;
3199
- $loop = $this->root->childNodes;
3200
- else
3201
- $loop = $this->elements;
3202
- // import nodes if needed
3203
- $insertFrom = $this->getDocumentID() == $target->getDocumentID()
3204
- ? $loop
3205
- : $target->documentWrapper->import($loop);
3206
- } else {
3207
- $insertTo = $this->elements;
3208
- if ( $target->documentFragment && $target->stackIsRoot() )
3209
- // get all body children
3210
- // $loop = $target->find('body > *')->elements;
3211
- $loop = $target->root->childNodes;
3212
- else
3213
- $loop = $target->elements;
3214
- // import nodes if needed
3215
- $insertFrom = $this->getDocumentID() == $target->getDocumentID()
3216
- ? $loop
3217
- : $this->documentWrapper->import($loop);
3218
- }
3219
- // DOMNODE
3220
- } elseif ($target instanceof DOMNODE) {
3221
- // import node if needed
3222
- // if ( $target->ownerDocument != $this->DOM )
3223
- // $target = $this->DOM->importNode($target, true);
3224
- if ( $to) {
3225
- $insertTo = array($target);
3226
- if ($this->documentFragment && $this->stackIsRoot())
3227
- // get all body children
3228
- $loop = $this->root->childNodes;
3229
- // $loop = $this->find('body > *')->elements;
3230
- else
3231
- $loop = $this->elements;
3232
- foreach($loop as $fromNode)
3233
- // import nodes if needed
3234
- $insertFrom[] = ! $fromNode->ownerDocument->isSameNode($target->ownerDocument)
3235
- ? $target->ownerDocument->importNode($fromNode, true)
3236
- : $fromNode;
3237
- } else {
3238
- // import node if needed
3239
- if (! $target->ownerDocument->isSameNode($this->document))
3240
- $target = $this->document->importNode($target, true);
3241
- $insertTo = $this->elements;
3242
- $insertFrom[] = $target;
3243
- }
3244
- }
3245
- break;
3246
- }
3247
- phpQuery::debug("From ".count($insertFrom)."; To ".count($insertTo)." nodes");
3248
- foreach($insertTo as $insertNumber => $toNode) {
3249
- // we need static relative elements in some cases
3250
- switch( $type) {
3251
- case 'prependTo':
3252
- case 'prepend':
3253
- $firstChild = $toNode->firstChild;
3254
- break;
3255
- case 'insertAfter':
3256
- case 'after':
3257
- $nextSibling = $toNode->nextSibling;
3258
- break;
3259
- }
3260
- foreach($insertFrom as $fromNode) {
3261
- // clone if inserted already before
3262
- $insert = $insertNumber
3263
- ? $fromNode->cloneNode(true)
3264
- : $fromNode;
3265
- switch($type) {
3266
- case 'appendTo':
3267
- case 'append':
3268
- // $toNode->insertBefore(
3269
- // $fromNode,
3270
- // $toNode->lastChild->nextSibling
3271
- // );
3272
- $toNode->appendChild($insert);
3273
- $eventTarget = $insert;
3274
- break;
3275
- case 'prependTo':
3276
- case 'prepend':
3277
- $toNode->insertBefore(
3278
- $insert,
3279
- $firstChild
3280
- );
3281
- break;
3282
- case 'insertBefore':
3283
- case 'before':
3284
- if (! $toNode->parentNode)
3285
- throw new Exception("No parentNode, can't do {$type}()");
3286
- else
3287
- $toNode->parentNode->insertBefore(
3288
- $insert,
3289
- $toNode
3290
- );
3291
- break;
3292
- case 'insertAfter':
3293
- case 'after':
3294
- if (! $toNode->parentNode)
3295
- throw new Exception("No parentNode, can't do {$type}()");
3296
- else
3297
- $toNode->parentNode->insertBefore(
3298
- $insert,
3299
- $nextSibling
3300
- );
3301
- break;
3302
- }
3303
- // Mutation event
3304
- $event = new DOMEvent(array(
3305
- 'target' => $insert,
3306
- 'type' => 'DOMNodeInserted'
3307
- ));
3308
- phpQueryEvents::trigger($this->getDocumentID(),
3309
- $event->type, array($event), $insert
3310
- );
3311
- }
3312
- }
3313
- return $this;
3314
- }
3315
- /**
3316
- * Enter description here...
3317
- *
3318
- * @return Int
3319
- */
3320
- public function index($subject) {
3321
- $index = -1;
3322
- $subject = $subject instanceof phpQueryObject
3323
- ? $subject->elements[0]
3324
- : $subject;
3325
- foreach($this->newInstance() as $k => $node) {
3326
- if ($node->isSameNode($subject))
3327
- $index = $k;
3328
- }
3329
- return $index;
3330
- }
3331
- /**
3332
- * Enter description here...
3333
- *
3334
- * @param unknown_type $start
3335
- * @param unknown_type $end
3336
- *
3337
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3338
- * @testme
3339
- */
3340
- public function slice($start, $end = null) {
3341
- // $last = count($this->elements)-1;
3342
- // $end = $end
3343
- // ? min($end, $last)
3344
- // : $last;
3345
- // if ($start < 0)
3346
- // $start = $last+$start;
3347
- // if ($start > $last)
3348
- // return array();
3349
- if ($end > 0)
3350
- $end = $end-$start;
3351
- return $this->newInstance(
3352
- array_slice($this->elements, $start, $end)
3353
- );
3354
- }
3355
- /**
3356
- * Enter description here...
3357
- *
3358
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3359
- */
3360
- public function reverse() {
3361
- $this->elementsBackup = $this->elements;
3362
- $this->elements = array_reverse($this->elements);
3363
- return $this->newInstance();
3364
- }
3365
- /**
3366
- * Return joined text content.
3367
- * @return String
3368
- */
3369
- public function text($text = null, $callback1 = null, $callback2 = null, $callback3 = null) {
3370
- if (isset($text))
3371
- return $this->html(htmlspecialchars($text));
3372
- $args = func_get_args();
3373
- $args = array_slice($args, 1);
3374
- $return = '';
3375
- foreach($this->elements as $node) {
3376
- $text = $node->textContent;
3377
- if (count($this->elements) > 1 && $text)
3378
- $text .= "\n";
3379
- foreach($args as $callback) {
3380
- $text = phpQuery::callbackRun($callback, array($text));
3381
- }
3382
- $return .= $text;
3383
- }
3384
- return $return;
3385
- }
3386
- /**
3387
- * Enter description here...
3388
- *
3389
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3390
- */
3391
- public function plugin($class, $file = null) {
3392
- phpQuery::plugin($class, $file);
3393
- return $this;
3394
- }
3395
- /**
3396
- * Deprecated, use $pq->plugin() instead.
3397
- *
3398
- * @deprecated
3399
- * @param $class
3400
- * @param $file
3401
- * @return unknown_type
3402
- */
3403
- public static function extend($class, $file = null) {
3404
- return $this->plugin($class, $file);
3405
- }
3406
- /**
3407
- *
3408
- * @access private
3409
- * @param $method
3410
- * @param $args
3411
- * @return unknown_type
3412
- */
3413
- public function __call($method, $args) {
3414
- $aliasMethods = array('clone', 'empty');
3415
- if (isset(phpQuery::$extendMethods[$method])) {
3416
- array_unshift($args, $this);
3417
- return phpQuery::callbackRun(
3418
- phpQuery::$extendMethods[$method], $args
3419
- );
3420
- } else if (isset(phpQuery::$pluginsMethods[$method])) {
3421
- array_unshift($args, $this);
3422
- $class = phpQuery::$pluginsMethods[$method];
3423
- $realClass = "phpQueryObjectPlugin_$class";
3424
- $return = call_user_func_array(
3425
- array($realClass, $method),
3426
- $args
3427
- );
3428
- // XXX deprecate ?
3429
- return is_null($return)
3430
- ? $this
3431
- : $return;
3432
- } else if (in_array($method, $aliasMethods)) {
3433
- return call_user_func_array(array($this, '_'.$method), $args);
3434
- } else
3435
- throw new Exception("Method '{$method}' doesnt exist");
3436
- }
3437
- /**
3438
- * Safe rename of next().
3439
- *
3440
- * Use it ONLY when need to call next() on an iterated object (in same time).
3441
- * Normaly there is no need to do such thing ;)
3442
- *
3443
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3444
- * @access private
3445
- */
3446
- public function _next($selector = null) {
3447
- return $this->newInstance(
3448
- $this->getElementSiblings('nextSibling', $selector, true)
3449
- );
3450
- }
3451
- /**
3452
- * Use prev() and next().
3453
- *
3454
- * @deprecated
3455
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3456
- * @access private
3457
- */
3458
- public function _prev($selector = null) {
3459
- return $this->prev($selector);
3460
- }
3461
- /**
3462
- * Enter description here...
3463
- *
3464
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3465
- */
3466
- public function prev($selector = null) {
3467
- return $this->newInstance(
3468
- $this->getElementSiblings('previousSibling', $selector, true)
3469
- );
3470
- }
3471
- /**
3472
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3473
- * @todo
3474
- */
3475
- public function prevAll($selector = null) {
3476
- return $this->newInstance(
3477
- $this->getElementSiblings('previousSibling', $selector)
3478
- );
3479
- }
3480
- /**
3481
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3482
- * @todo FIXME: returns source elements insted of next siblings
3483
- */
3484
- public function nextAll($selector = null) {
3485
- return $this->newInstance(
3486
- $this->getElementSiblings('nextSibling', $selector)
3487
- );
3488
- }
3489
- /**
3490
- * @access private
3491
- */
3492
- protected function getElementSiblings($direction, $selector = null, $limitToOne = false) {
3493
- $stack = array();
3494
- $count = 0;
3495
- foreach($this->stack() as $node) {
3496
- $test = $node;
3497
- while( isset($test->{$direction}) && $test->{$direction}) {
3498
- $test = $test->{$direction};
3499
- if (! $test instanceof DOMELEMENT)
3500
- continue;
3501
- $stack[] = $test;
3502
- if ($limitToOne)
3503
- break;
3504
- }
3505
- }
3506
- if ($selector) {
3507
- $stackOld = $this->elements;
3508
- $this->elements = $stack;
3509
- $stack = $this->filter($selector, true)->stack();
3510
- $this->elements = $stackOld;
3511
- }
3512
- return $stack;
3513
- }
3514
- /**
3515
- * Enter description here...
3516
- *
3517
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3518
- */
3519
- public function siblings($selector = null) {
3520
- $stack = array();
3521
- $siblings = array_merge(
3522
- $this->getElementSiblings('previousSibling', $selector),
3523
- $this->getElementSiblings('nextSibling', $selector)
3524
- );
3525
- foreach($siblings as $node) {
3526
- if (! $this->elementsContainsNode($node, $stack))
3527
- $stack[] = $node;
3528
- }
3529
- return $this->newInstance($stack);
3530
- }
3531
- /**
3532
- * Enter description here...
3533
- *
3534
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3535
- */
3536
- public function not($selector = null) {
3537
- if (is_string($selector))
3538
- phpQuery::debug(array('not', $selector));
3539
- else
3540
- phpQuery::debug('not');
3541
- $stack = array();
3542
- if ($selector instanceof self || $selector instanceof DOMNODE) {
3543
- foreach($this->stack() as $node) {
3544
- if ($selector instanceof self) {
3545
- $matchFound = false;
3546
- foreach($selector->stack() as $notNode) {
3547
- if ($notNode->isSameNode($node))
3548
- $matchFound = true;
3549
- }
3550
- if (! $matchFound)
3551
- $stack[] = $node;
3552
- } else if ($selector instanceof DOMNODE) {
3553
- if (! $selector->isSameNode($node))
3554
- $stack[] = $node;
3555
- } else {
3556
- if (! $this->is($selector))
3557
- $stack[] = $node;
3558
- }
3559
- }
3560
- } else {
3561
- $orgStack = $this->stack();
3562
- $matched = $this->filter($selector, true)->stack();
3563
- // $matched = array();
3564
- // // simulate OR in filter() instead of AND 5y
3565
- // foreach($this->parseSelector($selector) as $s) {
3566
- // $matched = array_merge($matched,
3567
- // $this->filter(array($s))->stack()
3568
- // );
3569
- // }
3570
- foreach($orgStack as $node)
3571
- if (! $this->elementsContainsNode($node, $matched))
3572
- $stack[] = $node;
3573
- }
3574
- return $this->newInstance($stack);
3575
- }
3576
- /**
3577
- * Enter description here...
3578
- *
3579
- * @param string|phpQueryObject
3580
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3581
- */
3582
- public function add($selector = null) {
3583
- if (! $selector)
3584
- return $this;
3585
- $stack = array();
3586
- $this->elementsBackup = $this->elements;
3587
- $found = phpQuery::pq($selector, $this->getDocumentID());
3588
- $this->merge($found->elements);
3589
- return $this->newInstance();
3590
- }
3591
- /**
3592
- * @access private
3593
- */
3594
- protected function merge() {
3595
- foreach(func_get_args() as $nodes)
3596
- foreach($nodes as $newNode )
3597
- if (! $this->elementsContainsNode($newNode) )
3598
- $this->elements[] = $newNode;
3599
- }
3600
- /**
3601
- * @access private
3602
- * TODO refactor to stackContainsNode
3603
- */
3604
- protected function elementsContainsNode($nodeToCheck, $elementsStack = null) {
3605
- $loop = ! is_null($elementsStack)
3606
- ? $elementsStack
3607
- : $this->elements;
3608
- foreach($loop as $node) {
3609
- if ( $node->isSameNode( $nodeToCheck ) )
3610
- return true;
3611
- }
3612
- return false;
3613
- }
3614
- /**
3615
- * Enter description here...
3616
- *
3617
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3618
- */
3619
- public function parent($selector = null) {
3620
- $stack = array();
3621
- foreach($this->elements as $node )
3622
- if ( $node->parentNode && ! $this->elementsContainsNode($node->parentNode, $stack) )
3623
- $stack[] = $node->parentNode;
3624
- $this->elementsBackup = $this->elements;
3625
- $this->elements = $stack;
3626
- if ( $selector )
3627
- $this->filter($selector, true);
3628
- return $this->newInstance();
3629
- }
3630
- /**
3631
- * Enter description here...
3632
- *
3633
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3634
- */
3635
- public function parents($selector = null) {
3636
- $stack = array();
3637
- if (! $this->elements )
3638
- $this->debug('parents() - stack empty');
3639
- foreach($this->elements as $node) {
3640
- $test = $node;
3641
- while( $test->parentNode) {
3642
- $test = $test->parentNode;
3643
- if ($this->isRoot($test))
3644
- break;
3645
- if (! $this->elementsContainsNode($test, $stack)) {
3646
- $stack[] = $test;
3647
- continue;
3648
- }
3649
- }
3650
- }
3651
- $this->elementsBackup = $this->elements;
3652
- $this->elements = $stack;
3653
- if ( $selector )
3654
- $this->filter($selector, true);
3655
- return $this->newInstance();
3656
- }
3657
- /**
3658
- * Internal stack iterator.
3659
- *
3660
- * @access private
3661
- */
3662
- public function stack($nodeTypes = null) {
3663
- if (!isset($nodeTypes))
3664
- return $this->elements;
3665
- if (!is_array($nodeTypes))
3666
- $nodeTypes = array($nodeTypes);
3667
- $return = array();
3668
- foreach($this->elements as $node) {
3669
- if (in_array($node->nodeType, $nodeTypes))
3670
- $return[] = $node;
3671
- }
3672
- return $return;
3673
- }
3674
- // TODO phpdoc; $oldAttr is result of hasAttribute, before any changes
3675
- protected function attrEvents($attr, $oldAttr, $oldValue, $node) {
3676
- // skip events for XML documents
3677
- if (! $this->isXHTML() && ! $this->isHTML())
3678
- return;
3679
- $event = null;
3680
- // identify
3681
- $isInputValue = $node->tagName == 'input'
3682
- && (
3683
- in_array($node->getAttribute('type'),
3684
- array('text', 'password', 'hidden'))
3685
- || !$node->getAttribute('type')
3686
- );
3687
- $isRadio = $node->tagName == 'input'
3688
- && $node->getAttribute('type') == 'radio';
3689
- $isCheckbox = $node->tagName == 'input'
3690
- && $node->getAttribute('type') == 'checkbox';
3691
- $isOption = $node->tagName == 'option';
3692
- if ($isInputValue && $attr == 'value' && $oldValue != $node->getAttribute($attr)) {
3693
- $event = new DOMEvent(array(
3694
- 'target' => $node,
3695
- 'type' => 'change'
3696
- ));
3697
- } else if (($isRadio || $isCheckbox) && $attr == 'checked' && (
3698
- // check
3699
- (! $oldAttr && $node->hasAttribute($attr))
3700
- // un-check
3701
- || (! $node->hasAttribute($attr) && $oldAttr)
3702
- )) {
3703
- $event = new DOMEvent(array(
3704
- 'target' => $node,
3705
- 'type' => 'change'
3706
- ));
3707
- } else if ($isOption && $node->parentNode && $attr == 'selected' && (
3708
- // select
3709
- (! $oldAttr && $node->hasAttribute($attr))
3710
- // un-select
3711
- || (! $node->hasAttribute($attr) && $oldAttr)
3712
- )) {
3713
- $event = new DOMEvent(array(
3714
- 'target' => $node->parentNode,
3715
- 'type' => 'change'
3716
- ));
3717
- }
3718
- if ($event) {
3719
- phpQueryEvents::trigger($this->getDocumentID(),
3720
- $event->type, array($event), $node
3721
- );
3722
- }
3723
- }
3724
- public function attr($attr = null, $value = null) {
3725
- foreach($this->stack(1) as $node) {
3726
- if (! is_null($value)) {
3727
- $loop = $attr == '*'
3728
- ? $this->getNodeAttrs($node)
3729
- : array($attr);
3730
- foreach($loop as $a) {
3731
- $oldValue = $node->getAttribute($a);
3732
- $oldAttr = $node->hasAttribute($a);
3733
- // TODO raises an error when charset other than UTF-8
3734
- // while document's charset is also not UTF-8
3735
- @$node->setAttribute($a, $value);
3736
- $this->attrEvents($a, $oldAttr, $oldValue, $node);
3737
- }
3738
- } else if ($attr == '*') {
3739
- // jQuery difference
3740
- $return = array();
3741
- foreach($node->attributes as $n => $v)
3742
- $return[$n] = $v->value;
3743
- return $return;
3744
- } else
3745
- return $node->hasAttribute($attr)
3746
- ? $node->getAttribute($attr)
3747
- : null;
3748
- }
3749
- return is_null($value)
3750
- ? '' : $this;
3751
- }
3752
- /**
3753
- * @access private
3754
- */
3755
- protected function getNodeAttrs($node) {
3756
- $return = array();
3757
- foreach($node->attributes as $n => $o)
3758
- $return[] = $n;
3759
- return $return;
3760
- }
3761
- /**
3762
- * Enter description here...
3763
- *
3764
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3765
- * @todo check CDATA ???
3766
- */
3767
- public function attrPHP($attr, $code) {
3768
- if (! is_null($code)) {
3769
- $value = '<'.'?php '.$code.' ?'.'>';
3770
- // TODO tempolary solution
3771
- // http://code.google.com/p/phpquery/issues/detail?id=17
3772
- // if (function_exists('mb_detect_encoding') && mb_detect_encoding($value) == 'ASCII')
3773
- // $value = mb_convert_encoding($value, 'UTF-8', 'HTML-ENTITIES');
3774
- }
3775
- foreach($this->stack(1) as $node) {
3776
- if (! is_null($code)) {
3777
- // $attrNode = $this->DOM->createAttribute($attr);
3778
- $node->setAttribute($attr, $value);
3779
- // $attrNode->value = $value;
3780
- // $node->appendChild($attrNode);
3781
- } else if ( $attr == '*') {
3782
- // jQuery diff
3783
- $return = array();
3784
- foreach($node->attributes as $n => $v)
3785
- $return[$n] = $v->value;
3786
- return $return;
3787
- } else
3788
- return $node->getAttribute($attr);
3789
- }
3790
- return $this;
3791
- }
3792
- /**
3793
- * Enter description here...
3794
- *
3795
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3796
- */
3797
- public function removeAttr($attr) {
3798
- foreach($this->stack(1) as $node) {
3799
- $loop = $attr == '*'
3800
- ? $this->getNodeAttrs($node)
3801
- : array($attr);
3802
- foreach($loop as $a) {
3803
- $oldValue = $node->getAttribute($a);
3804
- $node->removeAttribute($a);
3805
- $this->attrEvents($a, $oldValue, null, $node);
3806
- }
3807
- }
3808
- return $this;
3809
- }
3810
- /**
3811
- * Return form element value.
3812
- *
3813
- * @return String Fields value.
3814
- */
3815
- public function val($val = null) {
3816
- if (! isset($val)) {
3817
- if ($this->eq(0)->is('select')) {
3818
- $selected = $this->eq(0)->find('option[selected=selected]');
3819
- if ($selected->is('[value]'))
3820
- return $selected->attr('value');
3821
- else
3822
- return $selected->text();
3823
- } else if ($this->eq(0)->is('textarea'))
3824
- return $this->eq(0)->markup();
3825
- else
3826
- return $this->eq(0)->attr('value');
3827
- } else {
3828
- $_val = null;
3829
- foreach($this->stack(1) as $node) {
3830
- $node = pq($node, $this->getDocumentID());
3831
- if (is_array($val) && in_array($node->attr('type'), array('checkbox', 'radio'))) {
3832
- $isChecked = in_array($node->attr('value'), $val)
3833
- || in_array($node->attr('name'), $val);
3834
- if ($isChecked)
3835
- $node->attr('checked', 'checked');
3836
- else
3837
- $node->removeAttr('checked');
3838
- } else if ($node->get(0)->tagName == 'select') {
3839
- if (! isset($_val)) {
3840
- $_val = array();
3841
- if (! is_array($val))
3842
- $_val = array((string)$val);
3843
- else
3844
- foreach($val as $v)
3845
- $_val[] = $v;
3846
- }
3847
- foreach($node['option']->stack(1) as $option) {
3848
- $option = pq($option, $this->getDocumentID());
3849
- $selected = false;
3850
- // XXX: workaround for string comparsion, see issue #96
3851
- // http://code.google.com/p/phpquery/issues/detail?id=96
3852
- $selected = is_null($option->attr('value'))
3853
- ? in_array($option->markup(), $_val)
3854
- : in_array($option->attr('value'), $_val);
3855
- // $optionValue = $option->attr('value');
3856
- // $optionText = $option->text();
3857
- // $optionTextLenght = mb_strlen($optionText);
3858
- // foreach($_val as $v)
3859
- // if ($optionValue == $v)
3860
- // $selected = true;
3861
- // else if ($optionText == $v && $optionTextLenght == mb_strlen($v))
3862
- // $selected = true;
3863
- if ($selected)
3864
- $option->attr('selected', 'selected');
3865
- else
3866
- $option->removeAttr('selected');
3867
- }
3868
- } else if ($node->get(0)->tagName == 'textarea')
3869
- $node->markup($val);
3870
- else
3871
- $node->attr('value', $val);
3872
- }
3873
- }
3874
- return $this;
3875
- }
3876
- /**
3877
- * Enter description here...
3878
- *
3879
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3880
- */
3881
- public function andSelf() {
3882
- if ( $this->previous )
3883
- $this->elements = array_merge($this->elements, $this->previous->elements);
3884
- return $this;
3885
- }
3886
- /**
3887
- * Enter description here...
3888
- *
3889
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3890
- */
3891
- public function addClass( $className) {
3892
- if (! $className)
3893
- return $this;
3894
- foreach($this->stack(1) as $node) {
3895
- if (! $this->is(".$className", $node))
3896
- $node->setAttribute(
3897
- 'class',
3898
- trim($node->getAttribute('class').' '.$className)
3899
- );
3900
- }
3901
- return $this;
3902
- }
3903
- /**
3904
- * Enter description here...
3905
- *
3906
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3907
- */
3908
- public function addClassPHP( $className) {
3909
- foreach($this->stack(1) as $node) {
3910
- $classes = $node->getAttribute('class');
3911
- $newValue = $classes
3912
- ? $classes.' <'.'?php '.$className.' ?'.'>'
3913
- : '<'.'?php '.$className.' ?'.'>';
3914
- $node->setAttribute('class', $newValue);
3915
- }
3916
- return $this;
3917
- }
3918
- /**
3919
- * Enter description here...
3920
- *
3921
- * @param string $className
3922
- * @return bool
3923
- */
3924
- public function hasClass($className) {
3925
- foreach($this->stack(1) as $node) {
3926
- if ( $this->is(".$className", $node))
3927
- return true;
3928
- }
3929
- return false;
3930
- }
3931
- /**
3932
- * Enter description here...
3933
- *
3934
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3935
- */
3936
- public function removeClass($className) {
3937
- foreach($this->stack(1) as $node) {
3938
- $classes = explode( ' ', $node->getAttribute('class'));
3939
- if ( in_array($className, $classes)) {
3940
- $classes = array_diff($classes, array($className));
3941
- if ( $classes )
3942
- $node->setAttribute('class', implode(' ', $classes));
3943
- else
3944
- $node->removeAttribute('class');
3945
- }
3946
- }
3947
- return $this;
3948
- }
3949
- /**
3950
- * Enter description here...
3951
- *
3952
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3953
- */
3954
- public function toggleClass($className) {
3955
- foreach($this->stack(1) as $node) {
3956
- if ( $this->is( $node, '.'.$className ))
3957
- $this->removeClass($className);
3958
- else
3959
- $this->addClass($className);
3960
- }
3961
- return $this;
3962
- }
3963
- /**
3964
- * Proper name without underscore (just ->empty()) also works.
3965
- *
3966
- * Removes all child nodes from the set of matched elements.
3967
- *
3968
- * Example:
3969
- * pq("p")._empty()
3970
- *
3971
- * HTML:
3972
- * <p>Hello, <span>Person</span> <a href="#">and person</a></p>
3973
- *
3974
- * Result:
3975
- * [ <p></p> ]
3976
- *
3977
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3978
- * @access private
3979
- */
3980
- public function _empty() {
3981
- foreach($this->stack(1) as $node) {
3982
- // thx to 'dave at dgx dot cz'
3983
- $node->nodeValue = '';
3984
- }
3985
- return $this;
3986
- }
3987
- /**
3988
- * Enter description here...
3989
- *
3990
- * @param array|string $callback Expects $node as first param, $index as second
3991
- * @param array $scope External variables passed to callback. Use compact('varName1', 'varName2'...) and extract($scope)
3992
- * @param array $arg1 Will ba passed as third and futher args to callback.
3993
- * @param array $arg2 Will ba passed as fourth and futher args to callback, and so on...
3994
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
3995
- */
3996
- public function each($callback, $param1 = null, $param2 = null, $param3 = null) {
3997
- $paramStructure = null;
3998
- if (func_num_args() > 1) {
3999
- $paramStructure = func_get_args();
4000
- $paramStructure = array_slice($paramStructure, 1);
4001
- }
4002
- foreach($this->elements as $v)
4003
- phpQuery::callbackRun($callback, array($v), $paramStructure);
4004
- return $this;
4005
- }
4006
- /**
4007
- * Run callback on actual object.
4008
- *
4009
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
4010
- */
4011
- public function callback($callback, $param1 = null, $param2 = null, $param3 = null) {
4012
- $params = func_get_args();
4013
- $params[0] = $this;
4014
- phpQuery::callbackRun($callback, $params);
4015
- return $this;
4016
- }
4017
- /**
4018
- * Enter description here...
4019
- *
4020
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
4021
- * @todo add $scope and $args as in each() ???
4022
- */
4023
- public function map($callback, $param1 = null, $param2 = null, $param3 = null) {
4024
- // $stack = array();
4025
- //// foreach($this->newInstance() as $node) {
4026
- // foreach($this->newInstance() as $node) {
4027
- // $result = call_user_func($callback, $node);
4028
- // if ($result)
4029
- // $stack[] = $result;
4030
- // }
4031
- $params = func_get_args();
4032
- array_unshift($params, $this->elements);
4033
- return $this->newInstance(
4034
- call_user_func_array(array('phpQuery', 'map'), $params)
4035
- // phpQuery::map($this->elements, $callback)
4036
- );
4037
- }
4038
- /**
4039
- * Enter description here...
4040
- *
4041
- * @param <type> $key
4042
- * @param <type> $value
4043
- */
4044
- public function data($key, $value = null) {
4045
- if (! isset($value)) {
4046
- // TODO? implement specific jQuery behavior od returning parent values
4047
- // is child which we look up doesn't exist
4048
- return phpQuery::data($this->get(0), $key, $value, $this->getDocumentID());
4049
- } else {
4050
- foreach($this as $node)
4051
- phpQuery::data($node, $key, $value, $this->getDocumentID());
4052
- return $this;
4053
- }
4054
- }
4055
- /**
4056
- * Enter description here...
4057
- *
4058
- * @param <type> $key
4059
- */
4060
- public function removeData($key) {
4061
- foreach($this as $node)
4062
- phpQuery::removeData($node, $key, $this->getDocumentID());
4063
- return $this;
4064
- }
4065
- // INTERFACE IMPLEMENTATIONS
4066
-
4067
- // ITERATOR INTERFACE
4068
- /**
4069
- * @access private
4070
- */
4071
- public function rewind(){
4072
- $this->debug('iterating foreach');
4073
- // phpQuery::selectDocument($this->getDocumentID());
4074
- $this->elementsBackup = $this->elements;
4075
- $this->elementsInterator = $this->elements;
4076
- $this->valid = isset( $this->elements[0] )
4077
- ? 1 : 0;
4078
- // $this->elements = $this->valid
4079
- // ? array($this->elements[0])
4080
- // : array();
4081
- $this->current = 0;
4082
- }
4083
- /**
4084
- * @access private
4085
- */
4086
- public function current(){
4087
- return $this->elementsInterator[ $this->current ];
4088
- }
4089
- /**
4090
- * @access private
4091
- */
4092
- public function key(){
4093
- return $this->current;
4094
- }
4095
- /**
4096
- * Double-function method.
4097
- *
4098
- * First: main iterator interface method.
4099
- * Second: Returning next sibling, alias for _next().
4100
- *
4101
- * Proper functionality is choosed automagicaly.
4102
- *
4103
- * @see phpQueryObject::_next()
4104
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
4105
- */
4106
- public function next($cssSelector = null){
4107
- // if ($cssSelector || $this->valid)
4108
- // return $this->_next($cssSelector);
4109
- $this->valid = isset( $this->elementsInterator[ $this->current+1 ] )
4110
- ? true
4111
- : false;
4112
- if (! $this->valid && $this->elementsInterator) {
4113
- $this->elementsInterator = null;
4114
- } else if ($this->valid) {
4115
- $this->current++;
4116
- } else {
4117
- return $this->_next($cssSelector);
4118
- }
4119
- }
4120
- /**
4121
- * @access private
4122
- */
4123
- public function valid(){
4124
- return $this->valid;
4125
- }
4126
- // ITERATOR INTERFACE END
4127
- // ARRAYACCESS INTERFACE
4128
- /**
4129
- * @access private
4130
- */
4131
- public function offsetExists($offset) {
4132
- return $this->find($offset)->size() > 0;
4133
- }
4134
- /**
4135
- * @access private
4136
- */
4137
- public function offsetGet($offset) {
4138
- return $this->find($offset);
4139
- }
4140
- /**
4141
- * @access private
4142
- */
4143
- public function offsetSet($offset, $value) {
4144
- // $this->find($offset)->replaceWith($value);
4145
- $this->find($offset)->html($value);
4146
- }
4147
- /**
4148
- * @access private
4149
- */
4150
- public function offsetUnset($offset) {
4151
- // empty
4152
- throw new Exception("Can't do unset, use array interface only for calling queries and replacing HTML.");
4153
- }
4154
- // ARRAYACCESS INTERFACE END
4155
- /**
4156
- * Returns node's XPath.
4157
- *
4158
- * @param unknown_type $oneNode
4159
- * @return string
4160
- * @TODO use native getNodePath is avaible
4161
- * @access private
4162
- */
4163
- protected function getNodeXpath($oneNode = null, $namespace = null) {
4164
- $return = array();
4165
- $loop = $oneNode
4166
- ? array($oneNode)
4167
- : $this->elements;
4168
- // if ($namespace)
4169
- // $namespace .= ':';
4170
- foreach($loop as $node) {
4171
- if ($node instanceof DOMDOCUMENT) {
4172
- $return[] = '';
4173
- continue;
4174
- }
4175
- $xpath = array();
4176
- while(! ($node instanceof DOMDOCUMENT)) {
4177
- $i = 1;
4178
- $sibling = $node;
4179
- while($sibling->previousSibling) {
4180
- $sibling = $sibling->previousSibling;
4181
- $isElement = $sibling instanceof DOMELEMENT;
4182
- if ($isElement && $sibling->tagName == $node->tagName)
4183
- $i++;
4184
- }
4185
- $xpath[] = $this->isXML()
4186
- ? "*[local-name()='{$node->tagName}'][{$i}]"
4187
- : "{$node->tagName}[{$i}]";
4188
- $node = $node->parentNode;
4189
- }
4190
- $xpath = join('/', array_reverse($xpath));
4191
- $return[] = '/'.$xpath;
4192
- }
4193
- return $oneNode
4194
- ? $return[0]
4195
- : $return;
4196
- }
4197
- // HELPERS
4198
- public function whois($oneNode = null) {
4199
- $return = array();
4200
- $loop = $oneNode
4201
- ? array( $oneNode )
4202
- : $this->elements;
4203
- foreach($loop as $node) {
4204
- if (isset($node->tagName)) {
4205
- $tag = in_array($node->tagName, array('php', 'js'))
4206
- ? strtoupper($node->tagName)
4207
- : $node->tagName;
4208
- $return[] = $tag
4209
- .($node->getAttribute('id')
4210
- ? '#'.$node->getAttribute('id'):'')
4211
- .($node->getAttribute('class')
4212
- // ? '.'.join('.', split(' ', $node->getAttribute('class'))):'')
4213
- ? '.'.join('.', preg_split('/ /', $node->getAttribute('class'))):'')
4214
- .($node->getAttribute('name')
4215
- ? '[name="'.$node->getAttribute('name').'"]':'')
4216
- .($node->getAttribute('value') && strpos($node->getAttribute('value'), '<'.'?php') === false
4217
- ? '[value="'.substr(str_replace("\n", '', $node->getAttribute('value')), 0, 15).'"]':'')
4218
- .($node->getAttribute('value') && strpos($node->getAttribute('value'), '<'.'?php') !== false
4219
- ? '[value=PHP]':'')
4220
- .($node->getAttribute('selected')
4221
- ? '[selected]':'')
4222
- .($node->getAttribute('checked')
4223
- ? '[checked]':'')
4224
- ;
4225
- } else if ($node instanceof DOMTEXT) {
4226
- if (trim($node->textContent))
4227
- $return[] = 'Text:'.substr(str_replace("\n", ' ', $node->textContent), 0, 15);
4228
- } else {
4229
-
4230
- }
4231
- }
4232
- return $oneNode && isset($return[0])
4233
- ? $return[0]
4234
- : $return;
4235
- }
4236
- /**
4237
- * Dump htmlOuter and preserve chain. Usefull for debugging.
4238
- *
4239
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
4240
- *
4241
- */
4242
- public function dump() {
4243
- print 'DUMP #'.(phpQuery::$dumpCount++).' ';
4244
- $debug = phpQuery::$debug;
4245
- phpQuery::$debug = false;
4246
- // print __FILE__.':'.__LINE__."\n";
4247
- var_dump($this->htmlOuter());
4248
- return $this;
4249
- }
4250
- public function dumpWhois() {
4251
- print 'DUMP #'.(phpQuery::$dumpCount++).' ';
4252
- $debug = phpQuery::$debug;
4253
- phpQuery::$debug = false;
4254
- // print __FILE__.':'.__LINE__."\n";
4255
- var_dump('whois', $this->whois());
4256
- phpQuery::$debug = $debug;
4257
- return $this;
4258
- }
4259
- public function dumpLength() {
4260
- print 'DUMP #'.(phpQuery::$dumpCount++).' ';
4261
- $debug = phpQuery::$debug;
4262
- phpQuery::$debug = false;
4263
- // print __FILE__.':'.__LINE__."\n";
4264
- var_dump('length', $this->length());
4265
- phpQuery::$debug = $debug;
4266
- return $this;
4267
- }
4268
- public function dumpTree($html = true, $title = true) {
4269
- $output = $title
4270
- ? 'DUMP #'.(phpQuery::$dumpCount++)." \n" : '';
4271
- $debug = phpQuery::$debug;
4272
- phpQuery::$debug = false;
4273
- foreach($this->stack() as $node)
4274
- // $output .= $this->__dumpTree($node);
4275
- $output .= $this->ai_dumpTree($node);
4276
- phpQuery::$debug = $debug;
4277
- print $html
4278
- ? nl2br(str_replace(' ', '&nbsp;', $output))
4279
- : $output;
4280
- return $this;
4281
- }
4282
- // private function __dumpTree($node, $intend = 0) {
4283
- private function ai_dumpTree($node, $intend = 0) {
4284
- $whois = $this->whois($node);
4285
- $return = '';
4286
- if ($whois)
4287
- $return .= str_repeat(' - ', $intend).$whois."\n";
4288
- if (isset($node->childNodes))
4289
- foreach($node->childNodes as $chNode)
4290
- // $return .= $this->__dumpTree($chNode, $intend+1);
4291
- $return .= $this->ai_dumpTree($chNode, $intend+1);
4292
- return $return;
4293
- }
4294
- /**
4295
- * Dump htmlOuter and stop script execution. Usefull for debugging.
4296
- *
4297
- */
4298
- public function dumpDie() {
4299
- print __FILE__.':'.__LINE__;
4300
- var_dump($this->htmlOuter());
4301
- die();
4302
- }
4303
- }
4304
-
4305
-
4306
- // -- Multibyte Compatibility functions ---------------------------------------
4307
- // http://svn.iphonewebdev.com/lace/lib/mb_compat.php
4308
-
4309
- /**
4310
- * mb_internal_encoding()
4311
- *
4312
- * Included for mbstring pseudo-compatability.
4313
- */
4314
- if (!function_exists('mb_internal_encoding'))
4315
- {
4316
- function mb_internal_encoding($enc) {return true; }
4317
- }
4318
-
4319
- /**
4320
- * mb_regex_encoding()
4321
- *
4322
- * Included for mbstring pseudo-compatability.
4323
- */
4324
- if (!function_exists('mb_regex_encoding'))
4325
- {
4326
- function mb_regex_encoding($enc) {return true; }
4327
- }
4328
-
4329
- /**
4330
- * mb_strlen()
4331
- *
4332
- * Included for mbstring pseudo-compatability.
4333
- */
4334
- if (!function_exists('mb_strlen'))
4335
- {
4336
- function mb_strlen($str)
4337
- {
4338
- return strlen($str);
4339
- }
4340
- }
4341
-
4342
- /**
4343
- * mb_strpos()
4344
- *
4345
- * Included for mbstring pseudo-compatability.
4346
- */
4347
- if (!function_exists('mb_strpos'))
4348
- {
4349
- function mb_strpos($haystack, $needle, $offset=0)
4350
- {
4351
- return strpos($haystack, $needle, $offset);
4352
- }
4353
- }
4354
- /**
4355
- * mb_stripos()
4356
- *
4357
- * Included for mbstring pseudo-compatability.
4358
- */
4359
- if (!function_exists('mb_stripos'))
4360
- {
4361
- function mb_stripos($haystack, $needle, $offset=0)
4362
- {
4363
- return stripos($haystack, $needle, $offset);
4364
- }
4365
- }
4366
-
4367
- /**
4368
- * mb_substr()
4369
- *
4370
- * Included for mbstring pseudo-compatability.
4371
- */
4372
- if (!function_exists('mb_substr'))
4373
- {
4374
- function mb_substr($str, $start, $length=0)
4375
- {
4376
- return substr($str, $start, $length);
4377
- }
4378
- }
4379
-
4380
- /**
4381
- * mb_substr_count()
4382
- *
4383
- * Included for mbstring pseudo-compatability.
4384
- */
4385
- if (!function_exists('mb_substr_count'))
4386
- {
4387
- function mb_substr_count($haystack, $needle)
4388
- {
4389
- return substr_count($haystack, $needle);
4390
- }
4391
- }
4392
-
4393
-
4394
- /**
4395
- * Static namespace for phpQuery functions.
4396
- *
4397
- * @author Tobiasz Cudnik <tobiasz.cudnik/gmail.com>
4398
- * @package phpQuery
4399
- */
4400
- abstract class phpQuery {
4401
- /**
4402
- * XXX: Workaround for mbstring problems
4403
- *
4404
- * @var bool
4405
- */
4406
- public static $mbstringSupport = true;
4407
- public static $debug = false;
4408
- public static $documents = array();
4409
- public static $defaultDocumentID = null;
4410
- // public static $defaultDoctype = 'html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"';
4411
- /**
4412
- * Applies only to HTML.
4413
- *
4414
- * @var unknown_type
4415
- */
4416
- public static $defaultDoctype = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
4417
- "http://www.w3.org/TR/html4/loose.dtd">';
4418
- public static $defaultCharset = 'UTF-8';
4419
- /**
4420
- * Static namespace for plugins.
4421
- *
4422
- * @var object
4423
- */
4424
- public static $plugins = array();
4425
- /**
4426
- * List of loaded plugins.
4427
- *
4428
- * @var unknown_type
4429
- */
4430
- public static $pluginsLoaded = array();
4431
- public static $pluginsMethods = array();
4432
- public static $pluginsStaticMethods = array();
4433
- public static $extendMethods = array();
4434
- /**
4435
- * @TODO implement
4436
- */
4437
- public static $extendStaticMethods = array();
4438
- /**
4439
- * Hosts allowed for AJAX connections.
4440
- * Dot '.' means $_SERVER['HTTP_HOST'] (if any).
4441
- *
4442
- * @var array
4443
- */
4444
- public static $ajaxAllowedHosts = array(
4445
- '.'
4446
- );
4447
- /**
4448
- * AJAX settings.
4449
- *
4450
- * @var array
4451
- * XXX should it be static or not ?
4452
- */
4453
- public static $ajaxSettings = array(
4454
- 'url' => '',//TODO
4455
- 'global' => true,
4456
- 'type' => "GET",
4457
- 'timeout' => null,
4458
- 'contentType' => "application/x-www-form-urlencoded",
4459
- 'processData' => true,
4460
- // 'async' => true,
4461
- 'data' => null,
4462
- 'username' => null,
4463
- 'password' => null,
4464
- 'accepts' => array(
4465
- 'xml' => "application/xml, text/xml",
4466
- 'html' => "text/html",
4467
- 'script' => "text/javascript, application/javascript",
4468
- 'json' => "application/json, text/javascript",
4469
- 'text' => "text/plain",
4470
- '_default' => "*/*"
4471
- )
4472
- );
4473
- public static $lastModified = null;
4474
- public static $active = 0;
4475
- public static $dumpCount = 0;
4476
- /**
4477
- * Multi-purpose function.
4478
- * Use pq() as shortcut.
4479
- *
4480
- * In below examples, $pq is any result of pq(); function.
4481
- *
4482
- * 1. Import markup into existing document (without any attaching):
4483
- * - Import into selected document:
4484
- * pq('<div/>') // DOESNT accept text nodes at beginning of input string !
4485
- * - Import into document with ID from $pq->getDocumentID():
4486
- * pq('<div/>', $pq->getDocumentID())
4487
- * - Import into same document as DOMNode belongs to:
4488
- * pq('<div/>', DOMNode)
4489
- * - Import into document from phpQuery object:
4490
- * pq('<div/>', $pq)
4491
- *
4492
- * 2. Run query:
4493
- * - Run query on last selected document:
4494
- * pq('div.myClass')
4495
- * - Run query on document with ID from $pq->getDocumentID():
4496
- * pq('div.myClass', $pq->getDocumentID())
4497
- * - Run query on same document as DOMNode belongs to and use node(s)as root for query:
4498
- * pq('div.myClass', DOMNode)
4499
- * - Run query on document from phpQuery object
4500
- * and use object's stack as root node(s) for query:
4501
- * pq('div.myClass', $pq)
4502
- *
4503
- * @param string|DOMNode|DOMNodeList|array $arg1 HTML markup, CSS Selector, DOMNode or array of DOMNodes
4504
- * @param string|phpQueryObject|DOMNode $context DOM ID from $pq->getDocumentID(), phpQuery object (determines also query root) or DOMNode (determines also query root)
4505
- *
4506
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery|QueryTemplatesPhpQuery|false
4507
- * phpQuery object or false in case of error.
4508
- */
4509
- public static function pq($arg1, $context = null) {
4510
- if ($arg1 instanceof DOMNODE && ! isset($context)) {
4511
- foreach(phpQuery::$documents as $documentWrapper) {
4512
- $compare = $arg1 instanceof DOMDocument
4513
- ? $arg1 : $arg1->ownerDocument;
4514
- if ($documentWrapper->document->isSameNode($compare))
4515
- $context = $documentWrapper->id;
4516
- }
4517
- }
4518
- if (! $context) {
4519
- $domId = self::$defaultDocumentID;
4520
- if (! $domId)
4521
- throw new Exception("Can't use last created DOM, because there isn't any. Use phpQuery::newDocument() first.");
4522
- // } else if (is_object($context) && ($context instanceof PHPQUERY || is_subclass_of($context, 'phpQueryObject')))
4523
- } else if (is_object($context) && $context instanceof phpQueryObject)
4524
- $domId = $context->getDocumentID();
4525
- else if ($context instanceof DOMDOCUMENT) {
4526
- $domId = self::getDocumentID($context);
4527
- if (! $domId) {
4528
- //throw new Exception('Orphaned DOMDocument');
4529
- $domId = self::newDocument($context)->getDocumentID();
4530
- }
4531
- } else if ($context instanceof DOMNODE) {
4532
- $domId = self::getDocumentID($context);
4533
- if (! $domId) {
4534
- throw new Exception('Orphaned DOMNode');
4535
- // $domId = self::newDocument($context->ownerDocument);
4536
- }
4537
- } else
4538
- $domId = $context;
4539
- if ($arg1 instanceof phpQueryObject) {
4540
- // if (is_object($arg1) && (get_class($arg1) == 'phpQueryObject' || $arg1 instanceof PHPQUERY || is_subclass_of($arg1, 'phpQueryObject'))) {
4541
- /**
4542
- * Return $arg1 or import $arg1 stack if document differs:
4543
- * pq(pq('<div/>'))
4544
- */
4545
- if ($arg1->getDocumentID() == $domId)
4546
- return $arg1;
4547
- $class = get_class($arg1);
4548
- // support inheritance by passing old object to overloaded constructor
4549
- $phpQuery = $class != 'phpQuery'
4550
- ? new $class($arg1, $domId)
4551
- : new phpQueryObject($domId);
4552
- $phpQuery->elements = array();
4553
- foreach($arg1->elements as $node)
4554
- $phpQuery->elements[] = $phpQuery->document->importNode($node, true);
4555
- return $phpQuery;
4556
- } else if ($arg1 instanceof DOMNODE || (is_array($arg1) && isset($arg1[0]) && $arg1[0] instanceof DOMNODE)) {
4557
- /*
4558
- * Wrap DOM nodes with phpQuery object, import into document when needed:
4559
- * pq(array($domNode1, $domNode2))
4560
- */
4561
- $phpQuery = new phpQueryObject($domId);
4562
- if (!($arg1 instanceof DOMNODELIST) && ! is_array($arg1))
4563
- $arg1 = array($arg1);
4564
- $phpQuery->elements = array();
4565
- foreach($arg1 as $node) {
4566
- $sameDocument = $node->ownerDocument instanceof DOMDOCUMENT
4567
- && ! $node->ownerDocument->isSameNode($phpQuery->document);
4568
- $phpQuery->elements[] = $sameDocument
4569
- ? $phpQuery->document->importNode($node, true)
4570
- : $node;
4571
- }
4572
- return $phpQuery;
4573
- } else if (self::isMarkup($arg1)) {
4574
- /**
4575
- * Import HTML:
4576
- * pq('<div/>')
4577
- */
4578
- $phpQuery = new phpQueryObject($domId);
4579
- return $phpQuery->newInstance(
4580
- $phpQuery->documentWrapper->import($arg1)
4581
- );
4582
- } else {
4583
- /**
4584
- * Run CSS query:
4585
- * pq('div.myClass')
4586
- */
4587
- $phpQuery = new phpQueryObject($domId);
4588
- // if ($context && ($context instanceof PHPQUERY || is_subclass_of($context, 'phpQueryObject')))
4589
- if ($context && $context instanceof phpQueryObject)
4590
- $phpQuery->elements = $context->elements;
4591
- else if ($context && $context instanceof DOMNODELIST) {
4592
- $phpQuery->elements = array();
4593
- foreach($context as $node)
4594
- $phpQuery->elements[] = $node;
4595
- } else if ($context && $context instanceof DOMNODE)
4596
- $phpQuery->elements = array($context);
4597
- return $phpQuery->find($arg1);
4598
- }
4599
- }
4600
- /**
4601
- * Sets default document to $id. Document has to be loaded prior
4602
- * to using this method.
4603
- * $id can be retrived via getDocumentID() or getDocumentIDRef().
4604
- *
4605
- * @param unknown_type $id
4606
- */
4607
- public static function selectDocument($id) {
4608
- $id = self::getDocumentID($id);
4609
- self::debug("Selecting document '$id' as default one");
4610
- self::$defaultDocumentID = self::getDocumentID($id);
4611
- }
4612
- /**
4613
- * Returns document with id $id or last used as phpQueryObject.
4614
- * $id can be retrived via getDocumentID() or getDocumentIDRef().
4615
- * Chainable.
4616
- *
4617
- * @see phpQuery::selectDocument()
4618
- * @param unknown_type $id
4619
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
4620
- */
4621
- public static function getDocument($id = null) {
4622
- if ($id)
4623
- phpQuery::selectDocument($id);
4624
- else
4625
- $id = phpQuery::$defaultDocumentID;
4626
- return new phpQueryObject($id);
4627
- }
4628
- /**
4629
- * Creates new document from markup.
4630
- * Chainable.
4631
- *
4632
- * @param unknown_type $markup
4633
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
4634
- */
4635
- public static function newDocument($markup = null, $contentType = null) {
4636
- if (! $markup)
4637
- $markup = '';
4638
- $documentID = phpQuery::createDocumentWrapper($markup, $contentType);
4639
- return new phpQueryObject($documentID);
4640
- }
4641
- /**
4642
- * Creates new document from markup.
4643
- * Chainable.
4644
- *
4645
- * @param unknown_type $markup
4646
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
4647
- */
4648
- public static function newDocumentHTML($markup = null, $charset = null) {
4649
- $contentType = $charset
4650
- ? ";charset=$charset"
4651
- : '';
4652
- return self::newDocument($markup, "text/html{$contentType}");
4653
- }
4654
- /**
4655
- * Creates new document from markup.
4656
- * Chainable.
4657
- *
4658
- * @param unknown_type $markup
4659
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
4660
- */
4661
- public static function newDocumentXML($markup = null, $charset = null) {
4662
- $contentType = $charset
4663
- ? ";charset=$charset"
4664
- : '';
4665
- return self::newDocument($markup, "text/xml{$contentType}");
4666
- }
4667
- /**
4668
- * Creates new document from markup.
4669
- * Chainable.
4670
- *
4671
- * @param unknown_type $markup
4672
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
4673
- */
4674
- public static function newDocumentXHTML($markup = null, $charset = null) {
4675
- $contentType = $charset
4676
- ? ";charset=$charset"
4677
- : '';
4678
- return self::newDocument($markup, "application/xhtml+xml{$contentType}");
4679
- }
4680
- /**
4681
- * Creates new document from markup.
4682
- * Chainable.
4683
- *
4684
- * @param unknown_type $markup
4685
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
4686
- */
4687
- public static function newDocumentPHP($markup = null, $contentType = "text/html") {
4688
- // TODO pass charset to phpToMarkup if possible (use DOMDocumentWrapper function)
4689
- $markup = phpQuery::phpToMarkup($markup, self::$defaultCharset);
4690
- return self::newDocument($markup, $contentType);
4691
- }
4692
- public static function phpToMarkup($php, $charset = 'utf-8') {
4693
- $regexes = array(
4694
- '@(<(?!\\?)(?:[^>]|\\?>)+\\w+\\s*=\\s*)(\')([^\']*)<'.'?php?(.*?)(?:\\?>)([^\']*)\'@s',
4695
- '@(<(?!\\?)(?:[^>]|\\?>)+\\w+\\s*=\\s*)(")([^"]*)<'.'?php?(.*?)(?:\\?>)([^"]*)"@s',
4696
- );
4697
- foreach($regexes as $regex)
4698
- while (preg_match($regex, $php, $matches)) {
4699
- $php = preg_replace_callback(
4700
- $regex,
4701
- // create_function('$m, $charset = "'.$charset.'"',
4702
- // 'return $m[1].$m[2]
4703
- // .htmlspecialchars("<"."?php".$m[4]."?".">", ENT_QUOTES|ENT_NOQUOTES, $charset)
4704
- // .$m[5].$m[2];'
4705
- // ),
4706
- array('phpQuery', '_phpToMarkupCallback'),
4707
- $php
4708
- );
4709
- }
4710
- $regex = '@(^|>[^<]*)+?(<\?php(.*?)(\?>))@s';
4711
- //preg_match_all($regex, $php, $matches);
4712
- //var_dump($matches);
4713
- $php = preg_replace($regex, '\\1<php><!-- \\3 --></php>', $php);
4714
- return $php;
4715
- }
4716
- public static function _phpToMarkupCallback($php, $charset = 'utf-8') {
4717
- return $m[1].$m[2]
4718
- .htmlspecialchars("<"."?php".$m[4]."?".">", ENT_QUOTES|ENT_NOQUOTES, $charset)
4719
- .$m[5].$m[2];
4720
- }
4721
- public static function _markupToPHPCallback($m) {
4722
- return "<"."?php ".htmlspecialchars_decode($m[1])." ?".">";
4723
- }
4724
- /**
4725
- * Converts document markup containing PHP code generated by phpQuery::php()
4726
- * into valid (executable) PHP code syntax.
4727
- *
4728
- * @param string|phpQueryObject $content
4729
- * @return string PHP code.
4730
- */
4731
- public static function markupToPHP($content) {
4732
- if ($content instanceof phpQueryObject)
4733
- $content = $content->markupOuter();
4734
- /* <php>...</php> to <?php...? > */
4735
- $content = preg_replace_callback(
4736
- '@<php>\s*<!--(.*?)-->\s*</php>@s',
4737
- // create_function('$m',
4738
- // 'return "<'.'?php ".htmlspecialchars_decode($m[1])." ?'.'>";'
4739
- // ),
4740
- array('phpQuery', '_markupToPHPCallback'),
4741
- $content
4742
- );
4743
- /* <node attr='< ?php ? >'> extra space added to save highlighters */
4744
- $regexes = array(
4745
- '@(<(?!\\?)(?:[^>]|\\?>)+\\w+\\s*=\\s*)(\')([^\']*)(?:&lt;|%3C)\\?(?:php)?(.*?)(?:\\?(?:&gt;|%3E))([^\']*)\'@s',
4746
- '@(<(?!\\?)(?:[^>]|\\?>)+\\w+\\s*=\\s*)(")([^"]*)(?:&lt;|%3C)\\?(?:php)?(.*?)(?:\\?(?:&gt;|%3E))([^"]*)"@s',
4747
- );
4748
- foreach($regexes as $regex)
4749
- while (preg_match($regex, $content))
4750
- $content = preg_replace_callback(
4751
- $regex,
4752
- create_function('$m',
4753
- 'return $m[1].$m[2].$m[3]."<?php "
4754
- .str_replace(
4755
- array("%20", "%3E", "%09", "&#10;", "&#9;", "%7B", "%24", "%7D", "%22", "%5B", "%5D"),
4756
- array(" ", ">", " ", "\n", " ", "{", "$", "}", \'"\', "[", "]"),
4757
- htmlspecialchars_decode($m[4])
4758
- )
4759
- ." ?".">".$m[5].$m[2];'
4760
- ),
4761
- $content
4762
- );
4763
- return $content;
4764
- }
4765
- /**
4766
- * Creates new document from file $file.
4767
- * Chainable.
4768
- *
4769
- * @param string $file URLs allowed. See File wrapper page at php.net for more supported sources.
4770
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
4771
- */
4772
- public static function newDocumentFile($file, $contentType = null) {
4773
- $documentID = self::createDocumentWrapper(
4774
- file_get_contents($file), $contentType
4775
- );
4776
- return new phpQueryObject($documentID);
4777
- }
4778
- /**
4779
- * Creates new document from markup.
4780
- * Chainable.
4781
- *
4782
- * @param unknown_type $markup
4783
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
4784
- */
4785
- public static function newDocumentFileHTML($file, $charset = null) {
4786
- $contentType = $charset
4787
- ? ";charset=$charset"
4788
- : '';
4789
- return self::newDocumentFile($file, "text/html{$contentType}");
4790
- }
4791
- /**
4792
- * Creates new document from markup.
4793
- * Chainable.
4794
- *
4795
- * @param unknown_type $markup
4796
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
4797
- */
4798
- public static function newDocumentFileXML($file, $charset = null) {
4799
- $contentType = $charset
4800
- ? ";charset=$charset"
4801
- : '';
4802
- return self::newDocumentFile($file, "text/xml{$contentType}");
4803
- }
4804
- /**
4805
- * Creates new document from markup.
4806
- * Chainable.
4807
- *
4808
- * @param unknown_type $markup
4809
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
4810
- */
4811
- public static function newDocumentFileXHTML($file, $charset = null) {
4812
- $contentType = $charset
4813
- ? ";charset=$charset"
4814
- : '';
4815
- return self::newDocumentFile($file, "application/xhtml+xml{$contentType}");
4816
- }
4817
- /**
4818
- * Creates new document from markup.
4819
- * Chainable.
4820
- *
4821
- * @param unknown_type $markup
4822
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
4823
- */
4824
- public static function newDocumentFilePHP($file, $contentType = null) {
4825
- return self::newDocumentPHP(file_get_contents($file), $contentType);
4826
- }
4827
- /**
4828
- * Reuses existing DOMDocument object.
4829
- * Chainable.
4830
- *
4831
- * @param $document DOMDocument
4832
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
4833
- * @TODO support DOMDocument
4834
- */
4835
- public static function loadDocument($document) {
4836
- // TODO
4837
- die('TODO loadDocument');
4838
- }
4839
- /**
4840
- * Enter description here...
4841
- *
4842
- * @param unknown_type $html
4843
- * @param unknown_type $domId
4844
- * @return unknown New DOM ID
4845
- * @todo support PHP tags in input
4846
- * @todo support passing DOMDocument object from self::loadDocument
4847
- */
4848
- protected static function createDocumentWrapper($html, $contentType = null, $documentID = null) {
4849
- if (function_exists('domxml_open_mem'))
4850
- throw new Exception("Old PHP4 DOM XML extension detected. phpQuery won't work until this extension is enabled.");
4851
- // $id = $documentID
4852
- // ? $documentID
4853
- // : md5(microtime());
4854
- $document = null;
4855
- if ($html instanceof DOMDOCUMENT) {
4856
- if (self::getDocumentID($html)) {
4857
- // document already exists in phpQuery::$documents, make a copy
4858
- $document = clone $html;
4859
- } else {
4860
- // new document, add it to phpQuery::$documents
4861
- $wrapper = new DOMDocumentWrapper($html, $contentType, $documentID);
4862
- }
4863
- } else {
4864
- $wrapper = new DOMDocumentWrapper($html, $contentType, $documentID);
4865
- }
4866
- // $wrapper->id = $id;
4867
- // bind document
4868
- phpQuery::$documents[$wrapper->id] = $wrapper;
4869
- // remember last loaded document
4870
- phpQuery::selectDocument($wrapper->id);
4871
- return $wrapper->id;
4872
- }
4873
- /**
4874
- * Extend class namespace.
4875
- *
4876
- * @param string|array $target
4877
- * @param array $source
4878
- * @TODO support string $source
4879
- * @return unknown_type
4880
- */
4881
- public static function extend($target, $source) {
4882
- switch($target) {
4883
- case 'phpQueryObject':
4884
- $targetRef = &self::$extendMethods;
4885
- $targetRef2 = &self::$pluginsMethods;
4886
- break;
4887
- case 'phpQuery':
4888
- $targetRef = &self::$extendStaticMethods;
4889
- $targetRef2 = &self::$pluginsStaticMethods;
4890
- break;
4891
- default:
4892
- throw new Exception("Unsupported \$target type");
4893
- }
4894
- if (is_string($source))
4895
- $source = array($source => $source);
4896
- foreach($source as $method => $callback) {
4897
- if (isset($targetRef[$method])) {
4898
- // throw new Exception
4899
- self::debug("Duplicate method '{$method}', can\'t extend '{$target}'");
4900
- continue;
4901
- }
4902
- if (isset($targetRef2[$method])) {
4903
- // throw new Exception
4904
- self::debug("Duplicate method '{$method}' from plugin '{$targetRef2[$method]}',"
4905
- ." can\'t extend '{$target}'");
4906
- continue;
4907
- }
4908
- $targetRef[$method] = $callback;
4909
- }
4910
- return true;
4911
- }
4912
- /**
4913
- * Extend phpQuery with $class from $file.
4914
- *
4915
- * @param string $class Extending class name. Real class name can be prepended phpQuery_.
4916
- * @param string $file Filename to include. Defaults to "{$class}.php".
4917
- */
4918
- public static function plugin($class, $file = null) {
4919
- // TODO $class checked agains phpQuery_$class
4920
- // if (strpos($class, 'phpQuery') === 0)
4921
- // $class = substr($class, 8);
4922
- if (in_array($class, self::$pluginsLoaded))
4923
- return true;
4924
- if (! $file)
4925
- $file = $class.'.php';
4926
- $objectClassExists = class_exists('phpQueryObjectPlugin_'.$class);
4927
- $staticClassExists = class_exists('phpQueryPlugin_'.$class);
4928
- if (! $objectClassExists && ! $staticClassExists)
4929
- require_once($file);
4930
- self::$pluginsLoaded[] = $class;
4931
- // static methods
4932
- if (class_exists('phpQueryPlugin_'.$class)) {
4933
- $realClass = 'phpQueryPlugin_'.$class;
4934
- $vars = get_class_vars($realClass);
4935
- $loop = isset($vars['phpQueryMethods'])
4936
- && ! is_null($vars['phpQueryMethods'])
4937
- ? $vars['phpQueryMethods']
4938
- : get_class_methods($realClass);
4939
- foreach($loop as $method) {
4940
- if ($method == '__initialize')
4941
- continue;
4942
- if (! is_callable(array($realClass, $method)))
4943
- continue;
4944
- if (isset(self::$pluginsStaticMethods[$method])) {
4945
- throw new Exception("Duplicate method '{$method}' from plugin '{$c}' conflicts with same method from plugin '".self::$pluginsStaticMethods[$method]."'");
4946
- return;
4947
- }
4948
- self::$pluginsStaticMethods[$method] = $class;
4949
- }
4950
- if (method_exists($realClass, '__initialize'))
4951
- call_user_func_array(array($realClass, '__initialize'), array());
4952
- }
4953
- // object methods
4954
- if (class_exists('phpQueryObjectPlugin_'.$class)) {
4955
- $realClass = 'phpQueryObjectPlugin_'.$class;
4956
- $vars = get_class_vars($realClass);
4957
- $loop = isset($vars['phpQueryMethods'])
4958
- && ! is_null($vars['phpQueryMethods'])
4959
- ? $vars['phpQueryMethods']
4960
- : get_class_methods($realClass);
4961
- foreach($loop as $method) {
4962
- if (! is_callable(array($realClass, $method)))
4963
- continue;
4964
- if (isset(self::$pluginsMethods[$method])) {
4965
- throw new Exception("Duplicate method '{$method}' from plugin '{$c}' conflicts with same method from plugin '".self::$pluginsMethods[$method]."'");
4966
- continue;
4967
- }
4968
- self::$pluginsMethods[$method] = $class;
4969
- }
4970
- }
4971
- return true;
4972
- }
4973
- /**
4974
- * Unloades all or specified document from memory.
4975
- *
4976
- * @param mixed $documentID @see phpQuery::getDocumentID() for supported types.
4977
- */
4978
- public static function unloadDocuments($id = null) {
4979
- if (isset($id)) {
4980
- if ($id = self::getDocumentID($id))
4981
- unset(phpQuery::$documents[$id]);
4982
- } else {
4983
- foreach(phpQuery::$documents as $k => $v) {
4984
- unset(phpQuery::$documents[$k]);
4985
- }
4986
- }
4987
- }
4988
- /**
4989
- * Parses phpQuery object or HTML result against PHP tags and makes them active.
4990
- *
4991
- * @param phpQuery|string $content
4992
- * @deprecated
4993
- * @return string
4994
- */
4995
- public static function unsafePHPTags($content) {
4996
- return self::markupToPHP($content);
4997
- }
4998
- public static function DOMNodeListToArray($DOMNodeList) {
4999
- $array = array();
5000
- if (! $DOMNodeList)
5001
- return $array;
5002
- foreach($DOMNodeList as $node)
5003
- $array[] = $node;
5004
- return $array;
5005
- }
5006
- /**
5007
- * Checks if $input is HTML string, which has to start with '<'.
5008
- *
5009
- * @deprecated
5010
- * @param String $input
5011
- * @return Bool
5012
- * @todo still used ?
5013
- */
5014
- public static function isMarkup($input) {
5015
- return ! is_array($input) && substr(trim($input), 0, 1) == '<';
5016
- }
5017
- public static function debug($text) {
5018
- if (self::$debug)
5019
- print var_dump($text);
5020
- }
5021
- /**
5022
- * Make an AJAX request.
5023
- *
5024
- * @param array See $options http://docs.jquery.com/Ajax/jQuery.ajax#toptions
5025
- * Additional options are:
5026
- * 'document' - document for global events, @see phpQuery::getDocumentID()
5027
- * 'referer' - implemented
5028
- * 'requested_with' - TODO; not implemented (X-Requested-With)
5029
- * @return Zend_Http_Client
5030
- * @link http://docs.jquery.com/Ajax/jQuery.ajax
5031
- *
5032
- * @TODO $options['cache']
5033
- * @TODO $options['processData']
5034
- * @TODO $options['xhr']
5035
- * @TODO $options['data'] as string
5036
- * @TODO XHR interface
5037
- */
5038
- public static function ajax($options = array(), $xhr = null) {
5039
- $options = array_merge(
5040
- self::$ajaxSettings, $options
5041
- );
5042
- $documentID = isset($options['document'])
5043
- ? self::getDocumentID($options['document'])
5044
- : null;
5045
- if ($xhr) {
5046
- // reuse existing XHR object, but clean it up
5047
- $client = $xhr;
5048
- // $client->setParameterPost(null);
5049
- // $client->setParameterGet(null);
5050
- $client->setAuth(false);
5051
- $client->setHeaders("If-Modified-Since", null);
5052
- $client->setHeaders("Referer", null);
5053
- $client->resetParameters();
5054
- } else {
5055
- // create new XHR object
5056
- require_once('Zend/Http/Client.php');
5057
- $client = new Zend_Http_Client();
5058
- $client->setCookieJar();
5059
- }
5060
- if (isset($options['timeout']))
5061
- $client->setConfig(array(
5062
- 'timeout' => $options['timeout'],
5063
- ));
5064
- // 'maxredirects' => 0,
5065
- foreach(self::$ajaxAllowedHosts as $k => $host)
5066
- if ($host == '.' && isset($_SERVER['HTTP_HOST']))
5067
- self::$ajaxAllowedHosts[$k] = $_SERVER['HTTP_HOST'];
5068
- $host = parse_url($options['url'], PHP_URL_HOST);
5069
- if (! in_array($host, self::$ajaxAllowedHosts)) {
5070
- throw new Exception("Request not permitted, host '$host' not present in "
5071
- ."phpQuery::\$ajaxAllowedHosts");
5072
- }
5073
- // JSONP
5074
- $jsre = "/=\\?(&|$)/";
5075
- if (isset($options['dataType']) && $options['dataType'] == 'jsonp') {
5076
- $jsonpCallbackParam = $options['jsonp']
5077
- ? $options['jsonp'] : 'callback';
5078
- if (strtolower($options['type']) == 'get') {
5079
- if (! preg_match($jsre, $options['url'])) {
5080
- $sep = strpos($options['url'], '?')
5081
- ? '&' : '?';
5082
- $options['url'] .= "$sep$jsonpCallbackParam=?";
5083
- }
5084
- } else if ($options['data']) {
5085
- $jsonp = false;
5086
- foreach($options['data'] as $n => $v) {
5087
- if ($v == '?')
5088
- $jsonp = true;
5089
- }
5090
- if (! $jsonp) {
5091
- $options['data'][$jsonpCallbackParam] = '?';
5092
- }
5093
- }
5094
- $options['dataType'] = 'json';
5095
- }
5096
- if (isset($options['dataType']) && $options['dataType'] == 'json') {
5097
- $jsonpCallback = 'json_'.md5(microtime());
5098
- $jsonpData = $jsonpUrl = false;
5099
- if ($options['data']) {
5100
- foreach($options['data'] as $n => $v) {
5101
- if ($v == '?')
5102
- $jsonpData = $n;
5103
- }
5104
- }
5105
- if (preg_match($jsre, $options['url']))
5106
- $jsonpUrl = true;
5107
- if ($jsonpData !== false || $jsonpUrl) {
5108
- // remember callback name for httpData()
5109
- $options['_jsonp'] = $jsonpCallback;
5110
- if ($jsonpData !== false)
5111
- $options['data'][$jsonpData] = $jsonpCallback;
5112
- if ($jsonpUrl)
5113
- $options['url'] = preg_replace($jsre, "=$jsonpCallback\\1", $options['url']);
5114
- }
5115
- }
5116
- $client->setUri($options['url']);
5117
- $client->setMethod(strtoupper($options['type']));
5118
- if (isset($options['referer']) && $options['referer'])
5119
- $client->setHeaders('Referer', $options['referer']);
5120
- $client->setHeaders(array(
5121
- // 'content-type' => $options['contentType'],
5122
- 'User-Agent' => 'Mozilla/5.0 (X11; U; Linux x86; en-US; rv:1.9.0.5) Gecko'
5123
- .'/2008122010 Firefox/3.0.5',
5124
- // TODO custom charset
5125
- 'Accept-Charset' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
5126
- // 'Connection' => 'keep-alive',
5127
- // 'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
5128
- 'Accept-Language' => 'en-us,en;q=0.5',
5129
- ));
5130
- if ($options['username'])
5131
- $client->setAuth($options['username'], $options['password']);
5132
- if (isset($options['ifModified']) && $options['ifModified'])
5133
- $client->setHeaders("If-Modified-Since",
5134
- self::$lastModified
5135
- ? self::$lastModified
5136
- : "Thu, 01 Jan 1970 00:00:00 GMT"
5137
- );
5138
- $client->setHeaders("Accept",
5139
- isset($options['dataType'])
5140
- && isset(self::$ajaxSettings['accepts'][ $options['dataType'] ])
5141
- ? self::$ajaxSettings['accepts'][ $options['dataType'] ].", */*"
5142
- : self::$ajaxSettings['accepts']['_default']
5143
- );
5144
- // TODO $options['processData']
5145
- if ($options['data'] instanceof phpQueryObject) {
5146
- $serialized = $options['data']->serializeArray($options['data']);
5147
- $options['data'] = array();
5148
- foreach($serialized as $r)
5149
- $options['data'][ $r['name'] ] = $r['value'];
5150
- }
5151
- if (strtolower($options['type']) == 'get') {
5152
- $client->setParameterGet($options['data']);
5153
- } else if (strtolower($options['type']) == 'post') {
5154
- $client->setEncType($options['contentType']);
5155
- $client->setParameterPost($options['data']);
5156
- }
5157
- if (self::$active == 0 && $options['global'])
5158
- phpQueryEvents::trigger($documentID, 'ajaxStart');
5159
- self::$active++;
5160
- // beforeSend callback
5161
- if (isset($options['beforeSend']) && $options['beforeSend'])
5162
- phpQuery::callbackRun($options['beforeSend'], array($client));
5163
- // ajaxSend event
5164
- if ($options['global'])
5165
- phpQueryEvents::trigger($documentID, 'ajaxSend', array($client, $options));
5166
- if (phpQuery::$debug) {
5167
- self::debug("{$options['type']}: {$options['url']}\n");
5168
- self::debug("Options: <pre>".var_export($options, true)."</pre>\n");
5169
- // if ($client->getCookieJar())
5170
- // self::debug("Cookies: <pre>".var_export($client->getCookieJar()->getMatchingCookies($options['url']), true)."</pre>\n");
5171
- }
5172
- // request
5173
- $response = $client->request();
5174
- if (phpQuery::$debug) {
5175
- self::debug('Status: '.$response->getStatus().' / '.$response->getMessage());
5176
- self::debug($client->getLastRequest());
5177
- self::debug($response->getHeaders());
5178
- }
5179
- if ($response->isSuccessful()) {
5180
- // XXX tempolary
5181
- self::$lastModified = $response->getHeader('Last-Modified');
5182
- $data = self::httpData($response->getBody(), $options['dataType'], $options);
5183
- if (isset($options['success']) && $options['success'])
5184
- phpQuery::callbackRun($options['success'], array($data, $response->getStatus(), $options));
5185
- if ($options['global'])
5186
- phpQueryEvents::trigger($documentID, 'ajaxSuccess', array($client, $options));
5187
- } else {
5188
- if (isset($options['error']) && $options['error'])
5189
- phpQuery::callbackRun($options['error'], array($client, $response->getStatus(), $response->getMessage()));
5190
- if ($options['global'])
5191
- phpQueryEvents::trigger($documentID, 'ajaxError', array($client, /*$response->getStatus(),*/$response->getMessage(), $options));
5192
- }
5193
- if (isset($options['complete']) && $options['complete'])
5194
- phpQuery::callbackRun($options['complete'], array($client, $response->getStatus()));
5195
- if ($options['global'])
5196
- phpQueryEvents::trigger($documentID, 'ajaxComplete', array($client, $options));
5197
- if ($options['global'] && ! --self::$active)
5198
- phpQueryEvents::trigger($documentID, 'ajaxStop');
5199
- return $client;
5200
- // if (is_null($domId))
5201
- // $domId = self::$defaultDocumentID ? self::$defaultDocumentID : false;
5202
- // return new phpQueryAjaxResponse($response, $domId);
5203
- }
5204
- protected static function httpData($data, $type, $options) {
5205
- if (isset($options['dataFilter']) && $options['dataFilter'])
5206
- $data = self::callbackRun($options['dataFilter'], array($data, $type));
5207
- if (is_string($data)) {
5208
- if ($type == "json") {
5209
- if (isset($options['_jsonp']) && $options['_jsonp']) {
5210
- $data = preg_replace('/^\s*\w+\((.*)\)\s*$/s', '$1', $data);
5211
- }
5212
- $data = self::parseJSON($data);
5213
- }
5214
- }
5215
- return $data;
5216
- }
5217
- /**
5218
- * Enter description here...
5219
- *
5220
- * @param array|phpQuery $data
5221
- *
5222
- */
5223
- public static function param($data) {
5224
- return http_build_query($data, null, '&');
5225
- }
5226
- public static function get($url, $data = null, $callback = null, $type = null) {
5227
- if (!is_array($data)) {
5228
- $callback = $data;
5229
- $data = null;
5230
- }
5231
- // TODO some array_values on this shit
5232
- return phpQuery::ajax(array(
5233
- 'type' => 'GET',
5234
- 'url' => $url,
5235
- 'data' => $data,
5236
- 'success' => $callback,
5237
- 'dataType' => $type,
5238
- ));
5239
- }
5240
- public static function post($url, $data = null, $callback = null, $type = null) {
5241
- if (!is_array($data)) {
5242
- $callback = $data;
5243
- $data = null;
5244
- }
5245
- return phpQuery::ajax(array(
5246
- 'type' => 'POST',
5247
- 'url' => $url,
5248
- 'data' => $data,
5249
- 'success' => $callback,
5250
- 'dataType' => $type,
5251
- ));
5252
- }
5253
- public static function getJSON($url, $data = null, $callback = null) {
5254
- if (!is_array($data)) {
5255
- $callback = $data;
5256
- $data = null;
5257
- }
5258
- // TODO some array_values on this shit
5259
- return phpQuery::ajax(array(
5260
- 'type' => 'GET',
5261
- 'url' => $url,
5262
- 'data' => $data,
5263
- 'success' => $callback,
5264
- 'dataType' => 'json',
5265
- ));
5266
- }
5267
- public static function ajaxSetup($options) {
5268
- self::$ajaxSettings = array_merge(
5269
- self::$ajaxSettings,
5270
- $options
5271
- );
5272
- }
5273
- public static function ajaxAllowHost($host1, $host2 = null, $host3 = null) {
5274
- $loop = is_array($host1)
5275
- ? $host1
5276
- : func_get_args();
5277
- foreach($loop as $host) {
5278
- if ($host && ! in_array($host, phpQuery::$ajaxAllowedHosts)) {
5279
- phpQuery::$ajaxAllowedHosts[] = $host;
5280
- }
5281
- }
5282
- }
5283
- public static function ajaxAllowURL($url1, $url2 = null, $url3 = null) {
5284
- $loop = is_array($url1)
5285
- ? $url1
5286
- : func_get_args();
5287
- foreach($loop as $url)
5288
- phpQuery::ajaxAllowHost(parse_url($url, PHP_URL_HOST));
5289
- }
5290
- /**
5291
- * Returns JSON representation of $data.
5292
- *
5293
- * @static
5294
- * @param mixed $data
5295
- * @return string
5296
- */
5297
- public static function toJSON($data) {
5298
- if (function_exists('json_encode'))
5299
- return json_encode($data);
5300
- require_once('Zend/Json/Encoder.php');
5301
- return Zend_Json_Encoder::encode($data);
5302
- }
5303
- /**
5304
- * Parses JSON into proper PHP type.
5305
- *
5306
- * @static
5307
- * @param string $json
5308
- * @return mixed
5309
- */
5310
- public static function parseJSON($json) {
5311
- if (function_exists('json_decode')) {
5312
- $return = json_decode(trim($json), true);
5313
- // json_decode and UTF8 issues
5314
- if (isset($return))
5315
- return $return;
5316
- }
5317
- require_once('Zend/Json/Decoder.php');
5318
- return Zend_Json_Decoder::decode($json);
5319
- }
5320
- /**
5321
- * Returns source's document ID.
5322
- *
5323
- * @param $source DOMNode|phpQueryObject
5324
- * @return string
5325
- */
5326
- public static function getDocumentID($source) {
5327
- if ($source instanceof DOMDOCUMENT) {
5328
- foreach(phpQuery::$documents as $id => $document) {
5329
- if ($source->isSameNode($document->document))
5330
- return $id;
5331
- }
5332
- } else if ($source instanceof DOMNODE) {
5333
- foreach(phpQuery::$documents as $id => $document) {
5334
- if ($source->ownerDocument->isSameNode($document->document))
5335
- return $id;
5336
- }
5337
- } else if ($source instanceof phpQueryObject)
5338
- return $source->getDocumentID();
5339
- else if (is_string($source) && isset(phpQuery::$documents[$source]))
5340
- return $source;
5341
- }
5342
- /**
5343
- * Get DOMDocument object related to $source.
5344
- * Returns null if such document doesn't exist.
5345
- *
5346
- * @param $source DOMNode|phpQueryObject|string
5347
- * @return string
5348
- */
5349
- public static function getDOMDocument($source) {
5350
- if ($source instanceof DOMDOCUMENT)
5351
- return $source;
5352
- $source = self::getDocumentID($source);
5353
- return $source
5354
- ? self::$documents[$id]['document']
5355
- : null;
5356
- }
5357
-
5358
- // UTILITIES
5359
- // http://docs.jquery.com/Utilities
5360
-
5361
- /**
5362
- *
5363
- * @return unknown_type
5364
- * @link http://docs.jquery.com/Utilities/jQuery.makeArray
5365
- */
5366
- public static function makeArray($obj) {
5367
- $array = array();
5368
- if (is_object($object) && $object instanceof DOMNODELIST) {
5369
- foreach($object as $value)
5370
- $array[] = $value;
5371
- } else if (is_object($object) && ! ($object instanceof Iterator)) {
5372
- foreach(get_object_vars($object) as $name => $value)
5373
- $array[0][$name] = $value;
5374
- } else {
5375
- foreach($object as $name => $value)
5376
- $array[0][$name] = $value;
5377
- }
5378
- return $array;
5379
- }
5380
- public static function inArray($value, $array) {
5381
- return in_array($value, $array);
5382
- }
5383
- /**
5384
- *
5385
- * @param $object
5386
- * @param $callback
5387
- * @return unknown_type
5388
- * @link http://docs.jquery.com/Utilities/jQuery.each
5389
- */
5390
- public static function each($object, $callback, $param1 = null, $param2 = null, $param3 = null) {
5391
- $paramStructure = null;
5392
- if (func_num_args() > 2) {
5393
- $paramStructure = func_get_args();
5394
- $paramStructure = array_slice($paramStructure, 2);
5395
- }
5396
- if (is_object($object) && ! ($object instanceof Iterator)) {
5397
- foreach(get_object_vars($object) as $name => $value)
5398
- phpQuery::callbackRun($callback, array($name, $value), $paramStructure);
5399
- } else {
5400
- foreach($object as $name => $value)
5401
- phpQuery::callbackRun($callback, array($name, $value), $paramStructure);
5402
- }
5403
- }
5404
- /**
5405
- *
5406
- * @link http://docs.jquery.com/Utilities/jQuery.map
5407
- */
5408
- public static function map($array, $callback, $param1 = null, $param2 = null, $param3 = null) {
5409
- $result = array();
5410
- $paramStructure = null;
5411
- if (func_num_args() > 2) {
5412
- $paramStructure = func_get_args();
5413
- $paramStructure = array_slice($paramStructure, 2);
5414
- }
5415
- foreach($array as $v) {
5416
- $vv = phpQuery::callbackRun($callback, array($v), $paramStructure);
5417
- // $callbackArgs = $args;
5418
- // foreach($args as $i => $arg) {
5419
- // $callbackArgs[$i] = $arg instanceof CallbackParam
5420
- // ? $v
5421
- // : $arg;
5422
- // }
5423
- // $vv = call_user_func_array($callback, $callbackArgs);
5424
- if (is_array($vv)) {
5425
- foreach($vv as $vvv)
5426
- $result[] = $vvv;
5427
- } else if ($vv !== null) {
5428
- $result[] = $vv;
5429
- }
5430
- }
5431
- return $result;
5432
- }
5433
- /**
5434
- *
5435
- * @param $callback Callback
5436
- * @param $params
5437
- * @param $paramStructure
5438
- * @return unknown_type
5439
- */
5440
- public static function callbackRun($callback, $params = array(), $paramStructure = null) {
5441
- if (! $callback)
5442
- return;
5443
- if ($callback instanceof CallbackParameterToReference) {
5444
- // TODO support ParamStructure to select which $param push to reference
5445
- if (isset($params[0]))
5446
- $callback->callback = $params[0];
5447
- return true;
5448
- }
5449
- if ($callback instanceof Callback) {
5450
- $paramStructure = $callback->params;
5451
- $callback = $callback->callback;
5452
- }
5453
- if (! $paramStructure)
5454
- return call_user_func_array($callback, $params);
5455
- $p = 0;
5456
- foreach($paramStructure as $i => $v) {
5457
- $paramStructure[$i] = $v instanceof CallbackParam
5458
- ? $params[$p++]
5459
- : $v;
5460
- }
5461
- return call_user_func_array($callback, $paramStructure);
5462
- }
5463
- /**
5464
- * Merge 2 phpQuery objects.
5465
- * @param array $one
5466
- * @param array $two
5467
- * @protected
5468
- * @todo node lists, phpQueryObject
5469
- */
5470
- public static function merge($one, $two) {
5471
- $elements = $one->elements;
5472
- foreach($two->elements as $node) {
5473
- $exists = false;
5474
- foreach($elements as $node2) {
5475
- if ($node2->isSameNode($node))
5476
- $exists = true;
5477
- }
5478
- if (! $exists)
5479
- $elements[] = $node;
5480
- }
5481
- return $elements;
5482
- // $one = $one->newInstance();
5483
- // $one->elements = $elements;
5484
- // return $one;
5485
- }
5486
- /**
5487
- *
5488
- * @param $array
5489
- * @param $callback
5490
- * @param $invert
5491
- * @return unknown_type
5492
- * @link http://docs.jquery.com/Utilities/jQuery.grep
5493
- */
5494
- public static function grep($array, $callback, $invert = false) {
5495
- $result = array();
5496
- foreach($array as $k => $v) {
5497
- $r = call_user_func_array($callback, array($v, $k));
5498
- if ($r === !(bool)$invert)
5499
- $result[] = $v;
5500
- }
5501
- return $result;
5502
- }
5503
- public static function unique($array) {
5504
- return array_unique($array);
5505
- }
5506
- /**
5507
- *
5508
- * @param $function
5509
- * @return unknown_type
5510
- * @TODO there are problems with non-static methods, second parameter pass it
5511
- * but doesnt verify is method is really callable
5512
- */
5513
- public static function isFunction($function) {
5514
- return is_callable($function);
5515
- }
5516
- public static function trim($str) {
5517
- return trim($str);
5518
- }
5519
- /* PLUGINS NAMESPACE */
5520
- /**
5521
- *
5522
- * @param $url
5523
- * @param $callback
5524
- * @param $param1
5525
- * @param $param2
5526
- * @param $param3
5527
- * @return phpQueryObject
5528
- */
5529
- public static function browserGet($url, $callback, $param1 = null, $param2 = null, $param3 = null) {
5530
- if (self::plugin('WebBrowser')) {
5531
- $params = func_get_args();
5532
- return self::callbackRun(array(self::$plugins, 'browserGet'), $params);
5533
- } else {
5534
- self::debug('WebBrowser plugin not available...');
5535
- }
5536
- }
5537
- /**
5538
- *
5539
- * @param $url
5540
- * @param $data
5541
- * @param $callback
5542
- * @param $param1
5543
- * @param $param2
5544
- * @param $param3
5545
- * @return phpQueryObject
5546
- */
5547
- public static function browserPost($url, $data, $callback, $param1 = null, $param2 = null, $param3 = null) {
5548
- if (self::plugin('WebBrowser')) {
5549
- $params = func_get_args();
5550
- return self::callbackRun(array(self::$plugins, 'browserPost'), $params);
5551
- } else {
5552
- self::debug('WebBrowser plugin not available...');
5553
- }
5554
- }
5555
- /**
5556
- *
5557
- * @param $ajaxSettings
5558
- * @param $callback
5559
- * @param $param1
5560
- * @param $param2
5561
- * @param $param3
5562
- * @return phpQueryObject
5563
- */
5564
- public static function browser($ajaxSettings, $callback, $param1 = null, $param2 = null, $param3 = null) {
5565
- if (self::plugin('WebBrowser')) {
5566
- $params = func_get_args();
5567
- return self::callbackRun(array(self::$plugins, 'browser'), $params);
5568
- } else {
5569
- self::debug('WebBrowser plugin not available...');
5570
- }
5571
- }
5572
- /**
5573
- *
5574
- * @param $code
5575
- * @return string
5576
- */
5577
- public static function php($code) {
5578
- return self::code('php', $code);
5579
- }
5580
- /**
5581
- *
5582
- * @param $type
5583
- * @param $code
5584
- * @return string
5585
- */
5586
- public static function code($type, $code) {
5587
- return "<$type><!-- ".trim($code)." --></$type>";
5588
- }
5589
-
5590
- public static function __callStatic($method, $params) {
5591
- return call_user_func_array(
5592
- array(phpQuery::$plugins, $method),
5593
- $params
5594
- );
5595
- }
5596
- protected static function dataSetupNode($node, $documentID) {
5597
- // search are return if alredy exists
5598
- foreach(phpQuery::$documents[$documentID]->dataNodes as $dataNode) {
5599
- if ($node->isSameNode($dataNode))
5600
- return $dataNode;
5601
- }
5602
- // if doesn't, add it
5603
- phpQuery::$documents[$documentID]->dataNodes[] = $node;
5604
- return $node;
5605
- }
5606
- protected static function dataRemoveNode($node, $documentID) {
5607
- // search are return if alredy exists
5608
- foreach(phpQuery::$documents[$documentID]->dataNodes as $k => $dataNode) {
5609
- if ($node->isSameNode($dataNode)) {
5610
- unset(self::$documents[$documentID]->dataNodes[$k]);
5611
- unset(self::$documents[$documentID]->data[ $dataNode->dataID ]);
5612
- }
5613
- }
5614
- }
5615
- public static function data($node, $name, $data, $documentID = null) {
5616
- if (! $documentID)
5617
- // TODO check if this works
5618
- $documentID = self::getDocumentID($node);
5619
- $document = phpQuery::$documents[$documentID];
5620
- $node = self::dataSetupNode($node, $documentID);
5621
- if (! isset($node->dataID))
5622
- $node->dataID = ++phpQuery::$documents[$documentID]->uuid;
5623
- $id = $node->dataID;
5624
- if (! isset($document->data[$id]))
5625
- $document->data[$id] = array();
5626
- if (! is_null($data))
5627
- $document->data[$id][$name] = $data;
5628
- if ($name) {
5629
- if (isset($document->data[$id][$name]))
5630
- return $document->data[$id][$name];
5631
- } else
5632
- return $id;
5633
- }
5634
- public static function removeData($node, $name, $documentID) {
5635
- if (! $documentID)
5636
- // TODO check if this works
5637
- $documentID = self::getDocumentID($node);
5638
- $document = phpQuery::$documents[$documentID];
5639
- $node = self::dataSetupNode($node, $documentID);
5640
- $id = $node->dataID;
5641
- if ($name) {
5642
- if (isset($document->data[$id][$name]))
5643
- unset($document->data[$id][$name]);
5644
- $name = null;
5645
- // foreach($document->data[$id] as $name)
5646
- // break;
5647
- foreach($document->data[$id] as $name) {
5648
- break;
5649
- }
5650
- if (! $name)
5651
- self::removeData($node, $name, $documentID);
5652
- } else {
5653
- self::dataRemoveNode($node, $documentID);
5654
- }
5655
- }
5656
- }
5657
- /**
5658
- * Plugins static namespace class.
5659
- *
5660
- * @author Tobiasz Cudnik <tobiasz.cudnik/gmail.com>
5661
- * @package phpQuery
5662
- * @todo move plugin methods here (as statics)
5663
- */
5664
- class phpQueryPlugins {
5665
- public function __call($method, $args) {
5666
- if (isset(phpQuery::$extendStaticMethods[$method])) {
5667
- $return = call_user_func_array(
5668
- phpQuery::$extendStaticMethods[$method],
5669
- $args
5670
- );
5671
- } else if (isset(phpQuery::$pluginsStaticMethods[$method])) {
5672
- $class = phpQuery::$pluginsStaticMethods[$method];
5673
- $realClass = "phpQueryPlugin_$class";
5674
- $return = call_user_func_array(
5675
- array($realClass, $method),
5676
- $args
5677
- );
5678
- return isset($return)
5679
- ? $return
5680
- : $this;
5681
- } else
5682
- throw new Exception("Method '{$method}' doesnt exist");
5683
- }
5684
- }
5685
- /**
5686
- * Shortcut to phpQuery::pq($arg1, $context)
5687
- * Chainable.
5688
- *
5689
- * @see phpQuery::pq()
5690
- * @return phpQueryObject|QueryTemplatesSource|QueryTemplatesParse|QueryTemplatesSourceQuery
5691
- * @author Tobiasz Cudnik <tobiasz.cudnik/gmail.com>
5692
- * @package phpQuery
5693
- */
5694
- function pq($arg1, $context = null) {
5695
- $args = func_get_args();
5696
- return call_user_func_array(
5697
- array('phpQuery', 'pq'),
5698
- $args
5699
- );
5700
- }
5701
- // add plugins dir and Zend framework to include path
5702
- set_include_path(
5703
- get_include_path()
5704
- .PATH_SEPARATOR.dirname(__FILE__).'/phpQuery/'
5705
- .PATH_SEPARATOR.dirname(__FILE__).'/phpQuery/plugins/'
5706
- );
5707
- // why ? no __call nor __get for statics in php...
5708
- // XXX __callStatic will be available in PHP 5.3
5709
- phpQuery::$plugins = new phpQueryPlugins();
5710
- // include bootstrap file (personal library config)
5711
- if (file_exists(dirname(__FILE__).'/phpQuery/bootstrap.php'))
5712
- require_once dirname(__FILE__).'/phpQuery/bootstrap.php';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/preview.php CHANGED
@@ -420,10 +420,10 @@ function generate_code_preview (
420
  'animation': btoa (animation),
421
  'alignment_css': btoa (alignment_css),
422
  'custom_css': btoa (custom_css),
423
- 'php': <?php echo $process_php; ?>,
424
- 'label': <?php echo $show_label; ?>,
425
  'close': close_button,
426
- 'iframe': <?php echo $iframe; ?>,
427
  'check': check,
428
  'count': count,
429
  'rotate': rotate
@@ -2255,8 +2255,8 @@ select {
2255
  <span id="css-label" style="vertical-align: middle; margin: 4px 0 0 0 0; width: 36px; font-size: 14px; font-weight: bold; display: none;">CSS</span>
2256
  </td>
2257
  <td style="width: 100%; height: 32px; padding:0;">
2258
- <input id="custom-css" style="width: 100%; display: inline-block; padding: 5px 0 0 3px; border-radius: 4px; display: none; font-size: 12px; font-family: Courier, 'Courier New', monospace; font-weight: bold;" type="text" value="<?php echo $custom_css_code; ?>" size="70" maxlength="500" title="Custom CSS code for wrapping div" />
2259
- <span style="width: 100%; display: inline-block; padding: 5px 0 0 2px; font-family: Courier, 'Courier New', monospace; font-size: 12px; font-weight: bold; cursor: pointer; white-space: normal;">
2260
  <span id="css-no-wrapping" style="vertical-align: middle; display: none;"></span>
2261
  <span id="css-<?php echo AI_ALIGNMENT_DEFAULT; ?>" class="css-code" style="vertical-align: middle; display: none;" title="CSS code for wrapping div, click to edit"><?php echo $obj->alignment_style (AI_ALIGNMENT_DEFAULT); ?></span>
2262
  <span id="css-<?php echo AI_ALIGNMENT_LEFT; ?>" class="css-code" style="vertical-align: middle;display: none;" title="CSS code for wrapping div, click to edit"><?php echo $obj->alignment_style (AI_ALIGNMENT_LEFT); ?></span>
420
  'animation': btoa (animation),
421
  'alignment_css': btoa (alignment_css),
422
  'custom_css': btoa (custom_css),
423
+ 'php': <?php echo $process_php ? '1' : '0'; ?>,
424
+ 'label': <?php echo $show_label ? '1' : '0'; ?>,
425
  'close': close_button,
426
+ 'iframe': <?php echo $iframe ? '1' : '0'; ?>,
427
  'check': check,
428
  'count': count,
429
  'rotate': rotate
2255
  <span id="css-label" style="vertical-align: middle; margin: 4px 0 0 0 0; width: 36px; font-size: 14px; font-weight: bold; display: none;">CSS</span>
2256
  </td>
2257
  <td style="width: 100%; height: 32px; padding:0;">
2258
+ <input id="custom-css" style="width: 100%; display: inline-block; padding: 5px 0 0 3px; border-radius: 4px; display: none; font-size: 12px; font-family: monospace, Courier, 'Courier New'; font-weight: bold;" type="text" value="<?php echo $custom_css_code; ?>" size="70" maxlength="500" title="Custom CSS code for wrapping div" />
2259
+ <span style="width: 100%; display: inline-block; padding: 5px 0 0 5px; font-family: monospace, Courier, 'Courier New'; font-size: 12px; font-weight: bold; cursor: pointer; white-space: normal;">
2260
  <span id="css-no-wrapping" style="vertical-align: middle; display: none;"></span>
2261
  <span id="css-<?php echo AI_ALIGNMENT_DEFAULT; ?>" class="css-code" style="vertical-align: middle; display: none;" title="CSS code for wrapping div, click to edit"><?php echo $obj->alignment_style (AI_ALIGNMENT_DEFAULT); ?></span>
2262
  <span id="css-<?php echo AI_ALIGNMENT_LEFT; ?>" class="css-code" style="vertical-align: middle;display: none;" title="CSS code for wrapping div, click to edit"><?php echo $obj->alignment_style (AI_ALIGNMENT_LEFT); ?></span>
js/ad-inserter.js CHANGED
@@ -1,4 +1,4 @@
1
- var javascript_version = "2.4.11";
2
  var ignore_key = true;
3
  var start = 1;
4
  var end = 16;
@@ -232,6 +232,8 @@ var before_update_selection_from_list = null;
232
  title = title.replace (/(\[ADINSERTER.+\])/g, '<span class="tooltip-code">$1</span>');
233
  title = title.replace (/(\%N)/g, '<span class="tooltip-code">$1</span>');
234
  title = title.replace (/(\[\*\])/g, '<span class="tooltip-icon"><span class="dashicons dashicons-admin-generic" style="width: 11px; height: 11px; font-size: 12px; line-height: unset;"></span></span>');
 
 
235
 
236
  if (settings(this).bodyHandler) {
237
  helper.title.hide();
@@ -1987,6 +1989,22 @@ jQuery(document).ready(function($) {
1987
  frame.open();
1988
  });
1989
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1990
  }
1991
 
1992
  function configure_tab (tab) {
@@ -4296,6 +4314,41 @@ jQuery(document).ready(function($) {
4296
  });
4297
  }
4298
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4299
  function set_page_statuses (block) {
4300
  var automatic_insertion = parseInt ($("select#insertion-type-"+block+" option:selected").attr('value'));
4301
  var table = $('#page-types-' + block);
@@ -4825,6 +4878,33 @@ jQuery(document).ready(function($) {
4825
  var current_time = new Date().getTime();
4826
  console.log ("main time: " + ((current_time - current_time_ready) / 1000).toFixed (3));
4827
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4828
  });
4829
 
4830
 
1
+ var javascript_version = "2.4.12";
2
  var ignore_key = true;
3
  var start = 1;
4
  var end = 16;
232
  title = title.replace (/(\[ADINSERTER.+\])/g, '<span class="tooltip-code">$1</span>');
233
  title = title.replace (/(\%N)/g, '<span class="tooltip-code">$1</span>');
234
  title = title.replace (/(\[\*\])/g, '<span class="tooltip-icon"><span class="dashicons dashicons-admin-generic" style="width: 11px; height: 11px; font-size: 12px; line-height: unset;"></span></span>');
235
+ title = title.replace (/(http[^ ]+)/g, '<span class="tooltip-code">$1</span>');
236
+ title = title.replace (/(pub-[0-9]+)/g, '<span class="tooltip-code">$1</span>');
237
 
238
  if (settings(this).bodyHandler) {
239
  helper.title.hide();
1989
  frame.open();
1990
  });
1991
 
1992
+ $("#tab-0 .adsense-list").click (function () {
1993
+ $(this).blur ();
1994
+ var container = $("#adsense-list-container");
1995
+ container.toggle ();
1996
+ if (container.is(':visible')) {
1997
+ reload_adsense_list (false);
1998
+ }
1999
+ });
2000
+ $("#tab-0 #ai-ads-txt").click (function () {
2001
+ $(this).blur ();
2002
+ var container = $("#ads-txt-container");
2003
+ container.toggle ();
2004
+ if (container.is(':visible')) {
2005
+ load_ads_txt ();
2006
+ }
2007
+ });
2008
  }
2009
 
2010
  function configure_tab (tab) {
4314
  });
4315
  }
4316
 
4317
+ function load_ads_txt () {
4318
+ ads_txt_reload = false;
4319
+ var view = $("#ads-txt-editor").hasClass ('on') ? 'text' : 'table';
4320
+ var search = encodeURIComponent ($("#ads-txt-search").val());
4321
+ var data_container = $("#ads-txt-data");
4322
+ $("#ads-txt-reload").addClass ('on');
4323
+ data_container.load (ajaxurl+"?action=ai_ajax_backend&ads-txt=" + view + "&search=" + search + "&ai_check=" + ai_nonce, function (response, status, xhr) {
4324
+ $("#ads-txt-reload").removeClass ('on');
4325
+ if (status == "error") {
4326
+ var message = "Error loading ads.txt file: " + xhr.status + " " + xhr.statusText;
4327
+ data_container.html (message);
4328
+ if (debug) console.log (message);
4329
+ } else {
4330
+ $('#ads-txt-controls').show ();
4331
+ // data_container.disableSelection();
4332
+ }
4333
+ });
4334
+ }
4335
+ function save_ads_txt (reload) {
4336
+ var data_container = $("#ads-txt-data");
4337
+ var ads_txt_data = {'text': b64e (data_container.find ('textarea#ads-txt-text').val ())};
4338
+ $('#ads-txt-error').text ('');
4339
+ $.post (ajaxurl+"?action=ai_ajax_backend&ads-txt=save&ai_check=" + ai_nonce, ads_txt_data
4340
+ ).done (function (code_data) {
4341
+ }).fail (function (xhr, status, error) {
4342
+ var message = "Error saving ads.txt file: " + xhr.status + " " + xhr.statusText;
4343
+ $('#ads-txt-error').text (message);
4344
+ if (debug) console.log (message);
4345
+ }).always (function() {
4346
+ $("#ads-txt-save").removeClass ('on');
4347
+ if (reload) {
4348
+ setTimeout (function() {load_ads_txt ();}, 200);
4349
+ }
4350
+ });
4351
+ }
4352
  function set_page_statuses (block) {
4353
  var automatic_insertion = parseInt ($("select#insertion-type-"+block+" option:selected").attr('value'));
4354
  var table = $('#page-types-' + block);
4878
  var current_time = new Date().getTime();
4879
  console.log ("main time: " + ((current_time - current_time_ready) / 1000).toFixed (3));
4880
  }
4881
+ $("#ads-txt-reload").click (function () {
4882
+ setTimeout (function() {load_ads_txt ();}, 200);
4883
+ });
4884
+ $("#ads-txt-save").click (function () {
4885
+ $(this).addClass ('on');
4886
+ setTimeout (function() {save_ads_txt (true);}, 200);
4887
+ });
4888
+ $("#ads-txt-editor").click (function () {
4889
+ $(this).addClass ('on');
4890
+ $("#ads-txt-table").removeClass ('on');
4891
+ $('#ads-txt-search').hide ();
4892
+ $('#ads-txt-save').show ();
4893
+ $("#ads-txt-reload").click ();
4894
+ });
4895
+ $("#ads-txt-table").click (function () {
4896
+ $(this).addClass ('on');
4897
+ $("#ads-txt-editor").removeClass ('on');
4898
+ $('#ads-txt-search').show ();
4899
+ $('#ads-txt-save').hide ();
4900
+ $("#ads-txt-reload").click ();
4901
+ });
4902
+ $("#ads-txt-search").keyup (function (event) {
4903
+ if (!ads_txt_reload) {
4904
+ ads_txt_reload = true;
4905
+ setTimeout (function() {load_ads_txt ();}, 200);
4906
+ }
4907
+ });
4908
  });
4909
 
4910
 
languages/ad-inserter-sl_SI.mo CHANGED
Binary file
languages/ad-inserter-sl_SI.po CHANGED
@@ -4,8 +4,8 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: Ad Inserter 2.4.2\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/ad-inserter\n"
7
- "POT-Creation-Date: 2019-02-22 19:28:04+00:00\n"
8
- "PO-Revision-Date: 2019-02-22 20:29+0100\n"
9
  "Last-Translator: Igor Funa\n"
10
  "Language-Team: \n"
11
  "Language: sl_SI\n"
@@ -16,129 +16,129 @@ msgstr ""
16
  "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100>=3 && n"
17
  "%100<=4 ? 2 : 3);\n"
18
 
19
- #: ad-inserter.php:318
20
  msgctxt "Menu item"
21
  msgid "Debugging DEMO"
22
  msgstr "DEMO Razhroščevanje"
23
 
24
- #: ad-inserter.php:334
25
  msgctxt "Menu item"
26
  msgid "Label Blocks"
27
  msgstr "Označi bloke"
28
 
29
- #: ad-inserter.php:341
30
  msgctxt "Menu item"
31
  msgid "Show Positions"
32
  msgstr "Pokaži položaje"
33
 
34
- #: ad-inserter.php:412
35
  msgctxt "Menu item"
36
  msgid "Show HTML Tags"
37
  msgstr "Pokaži HTML značke"
38
 
39
- #: ad-inserter.php:419
40
  msgctxt "Menu item"
41
  msgid "Disable Insertion"
42
  msgstr "Onemogoči vstavljanje"
43
 
44
- #: ad-inserter.php:428
45
  msgctxt "Menu item"
46
  msgid "Ad Blocking Status"
47
  msgstr "Status blokiranja oglasov"
48
 
49
- #: ad-inserter.php:435
50
  msgctxt "Menu item"
51
  msgid "Simulate Ad Blocking"
52
  msgstr "Simuliraj blokiranje oglasov"
53
 
54
- #: ad-inserter.php:445
55
  msgctxt "Menu item"
56
  msgid "Log Processing"
57
  msgstr "Beleži procesiranje"
58
 
59
  #. translators: Debugging position name Before HTML element
60
- #: ad-inserter.php:1022
61
  msgid "Before"
62
  msgstr "Pred"
63
 
64
  #. translators: Debugging position name After HTML element
65
- #: ad-inserter.php:1027
66
  msgid "After"
67
  msgstr "Za"
68
 
69
  #. translators: Debugging position name Prepend content of HTML element (before
70
  #. the content of the HTML element)
71
- #: ad-inserter.php:1032 strings.php:98
72
  msgid "Prepend content"
73
  msgstr "Dodaj pred vsebino"
74
 
75
  #. translators: Debugging position name Append content of HTML element (after
76
  #. the content of the HTML element)
77
- #: ad-inserter.php:1037 strings.php:99
78
  msgid "Append content"
79
  msgstr "Dodaj za vsebino"
80
 
81
  #. translators: Debugging position name Replace content of HTML element
82
- #: ad-inserter.php:1042 strings.php:100
83
  msgid "Replace content"
84
  msgstr "Nadomesti vsebino"
85
 
86
  #. translators: Debugging position name Replace HTML element
87
- #: ad-inserter.php:1047 strings.php:150
88
  msgid "Replace"
89
  msgstr "Nadomesti"
90
 
91
  #. translators: Debugging message when output buffering is enabled
92
- #: ad-inserter.php:1094
93
  msgid "OUTPUT BUFFERING"
94
  msgstr "PREDPOMNJENJE IZHODA"
95
 
96
  #. translators: Debugging position
97
- #: ad-inserter.php:1098
98
  msgid "Above Header"
99
  msgstr "Nad Glavo"
100
 
101
- #: ad-inserter.php:1307
102
  msgctxt "Menu item"
103
  msgid "Log In"
104
  msgstr "Prijava"
105
 
106
  #. translators: %s: Ad Inserter
107
- #: ad-inserter.php:1582 ad-inserter.php:2445
108
  msgid "%s Settings"
109
  msgstr "%s Nastavitve"
110
 
111
  #. translators: AD BLOCKING DETECTED, PAGE VIEWS: n - NO ACTION
112
- #: ad-inserter.php:2016
113
  msgid "AD BLOCKING DETECTED, PAGE VIEWS"
114
  msgstr "ZAZNANO BLOKIRANJE OGLASOV, OGLEDI STRANI"
115
 
116
- #: ad-inserter.php:2016
117
  msgid "NO ACTION"
118
  msgstr "NI AKCIJE"
119
 
120
- #: ad-inserter.php:2017
121
  msgid "AD BLOCKING DETECTED, COOKIE DETECTED - NO ACTION"
122
  msgstr "ZAZNANO BLOKIRANJE OGLASOV, ZAZNAN PIŠKOTEK, NI AKCIJE"
123
 
124
- #: ad-inserter.php:2018
125
  msgid "AD BLOCKING DETECTED - ACTION"
126
  msgstr "ZAZNANO BLOKIRANJE OGLASOV - AKCIJA"
127
 
128
- #: ad-inserter.php:2019
129
  msgid "AD BLOCKING NOT DETECTED"
130
  msgstr "BLOKIRANJE OGLASOV NI ZAZNANO"
131
 
132
- #: ad-inserter.php:2020
133
  msgid "AD BLOCKING DETECTION COOKIES DELETED"
134
  msgstr "PIŠKOTKI ZA ZAZNAVANJE BLOKIRANJA OGLASOV POBRISANI"
135
 
136
- #: ad-inserter.php:2021
137
  msgid "AD BLOCKING DETECTED - NO ACTION"
138
  msgstr "ZAZNANO BLOKIRANJE OGLASOV - NI AKCIJE"
139
 
140
  #. Translators: 1: number of blocks, 2: Ad Inserter
141
- #: ad-inserter.php:2216
142
  msgid "Hey, you are now using %1$s %2$s block."
143
  msgid_plural "Hey, you are now using %1$s %2$s blocks."
144
  msgstr[0] "Hej, trenutno uporabljate %1$s %2$s blok."
@@ -146,21 +146,21 @@ msgstr[1] "Hej, trenutno uporabljate %1$s %2$s bloka."
146
  msgstr[2] "Hej, trenutno uporabljate %1$s %2$s bloke."
147
  msgstr[3] "Hej, trenutno uporabljate %1$s %2$s blokov."
148
 
149
- #: ad-inserter.php:2217 includes/functions.php:1489
150
  msgid "No, thank you."
151
  msgstr "Ne, hvala."
152
 
153
  #. Translators: %s: Ad Inserter
154
- #: ad-inserter.php:2220
155
  msgid ""
156
  "Hey, you've been using %s for a while now, and I hope you're happy with it."
157
  msgstr "Hej, %s uporabljate že kar nekaj časa. Upam, da ste zadovoljni z njim."
158
 
159
- #: ad-inserter.php:2221 includes/functions.php:1492
160
  msgid "Not now, maybe later."
161
  msgstr "Ne zdaj, mogoče kasneje."
162
 
163
- #: ad-inserter.php:2231
164
  msgid ""
165
  "I would really appreciate it if you could give the plugin a 5-star rating on "
166
  "WordPres."
@@ -168,7 +168,7 @@ msgstr ""
168
  "Res bi bili vesel, če bi lahko na WordPress-u vtičnik ocenili s 5-imi "
169
  "zvezicami."
170
 
171
- #: ad-inserter.php:2233
172
  msgid ""
173
  "Positive reviews are a great incentive to fix bugs and to add new features "
174
  "for better monetization of your website. Thank you, Igor"
@@ -177,105 +177,105 @@ msgstr ""
177
  "funkcij za boljšo monetizacijo vašega spletnega mesta. Hvala, Igor"
178
 
179
  #. translators: %s: Ad Inserter
180
- #: ad-inserter.php:2239
181
  msgid "Rate %s"
182
  msgstr "Ocenite %s"
183
 
184
- #: ad-inserter.php:2244
185
  msgid "I already did."
186
  msgstr "Sem že."
187
 
188
- #: ad-inserter.php:2258
189
  msgctxt "Menu item"
190
  msgid "Settings"
191
  msgstr "Nastavitve"
192
 
193
  #. translators: %s: Ad Inserter
194
- #: ad-inserter.php:2332
195
  msgctxt "Meta box name"
196
  msgid "%s Individual Exceptions"
197
  msgstr "Posamezne Izjeme za %s"
198
 
199
- #: ad-inserter.php:2361 ad-inserter.php:7972 class.php:1967
200
  #: includes/preview.php:1966 includes/preview.php:2010
201
- #: includes/preview.php:2047 settings.php:3352 strings.php:3
202
  msgid "Block"
203
  msgstr "Blok"
204
 
205
- #: ad-inserter.php:2362 settings.php:3353 settings.php:3427
206
  msgid "Name"
207
  msgstr "Ime"
208
 
209
- #: ad-inserter.php:2363 settings.php:3355
210
  msgid "Automatic insertion"
211
  msgstr "Samodejno vstavljanje"
212
 
213
- #: ad-inserter.php:2366
214
  msgid "Default insertion for pages"
215
  msgstr "Privzeto vstavljanje za strani"
216
 
217
- #: ad-inserter.php:2367
218
  msgid "Default insertion for posts"
219
  msgstr "Privzeto vstavljanje za prispevke"
220
 
221
  #. translators: For this post or page
222
- #: ad-inserter.php:2370
223
  msgctxt "Page"
224
  msgid "For this"
225
  msgstr "Za to"
226
 
227
- #: ad-inserter.php:2371
228
  msgctxt "Post"
229
  msgid "For this"
230
  msgstr "Za ta"
231
 
232
- #: ad-inserter.php:2379
233
  msgctxt "Enabled/disabled on all"
234
  msgid "pages"
235
  msgstr "straneh"
236
 
237
- #: ad-inserter.php:2380
238
  msgctxt "Default insertion for"
239
  msgid "pages"
240
  msgstr "strani"
241
 
242
- #: ad-inserter.php:2384
243
  msgctxt "Enabled/disabled on all"
244
  msgid "posts"
245
  msgstr "prispevkih"
246
 
247
- #: ad-inserter.php:2385
248
  msgctxt "Default insertion for"
249
  msgid "posts"
250
  msgstr "prispevke"
251
 
252
- #: ad-inserter.php:2404 ad-inserter.php:2417 strings.php:156
253
  msgid "Enabled"
254
  msgstr "Omogočeno"
255
 
256
  #. translators: Menu items
257
- #: ad-inserter.php:2404 ad-inserter.php:2417 includes/functions.php:2117
258
  #: strings.php:16
259
  msgid "Disabled"
260
  msgstr "Onemogočeno"
261
 
262
  #. translators: Enabled on all pages or posts
263
- #: ad-inserter.php:2407
264
  msgid "Enabled on all"
265
  msgstr "Omogočeno na vseh"
266
 
267
  #. translators: Disabled on all pages or posts
268
- #: ad-inserter.php:2409
269
  msgid "Disabled on all"
270
  msgstr "Onemogočeno na vseh"
271
 
272
  #. translators: No individual exceptions enabled for pages or posts
273
- #: ad-inserter.php:2437
274
  msgid "No individual exceptions enabled for"
275
  msgstr "Ni omogočenih posameznih izjem za"
276
 
277
  #. translators: 1: pages or posts, 2: Ad Inserter Settings (page)
278
- #: ad-inserter.php:2442
279
  msgid ""
280
  "Default insertion for %1$s can be configured for each block on %2$s page - "
281
  "selection next to <strong>Posts</strong> / <strong>Static pages</strong> "
@@ -285,7 +285,7 @@ msgstr ""
285
  "izbira poleg kljukice za vklop <strong>Prispevki</strong> / <strong>Statične "
286
  "strani</strong>.<br />"
287
 
288
- #: ad-inserter.php:2447
289
  msgid ""
290
  "Default value is <strong>blank</strong> and means no individual exceptions "
291
  "(even if previously defined here).<br />"
@@ -293,7 +293,7 @@ msgstr ""
293
  "Privzeta vrednost je <strong>prazno</strong> in pomeni brez posameznih izjem "
294
  "(tudi, če so bile predhodno nsatavljene tukaj).<br />"
295
 
296
- #: ad-inserter.php:2450
297
  msgctxt "Pages"
298
  msgid ""
299
  "Set to <strong>Individually disabled</strong> or <strong>Individually "
@@ -302,7 +302,7 @@ msgstr ""
302
  "Nastavite na <strong>Posamezno onemogočene</strong> ali <strong>Posamezno "
303
  "omogočene</strong> za vklop nastavitev posameznih izjem na tej strani.<br />"
304
 
305
- #: ad-inserter.php:2451
306
  msgctxt "Posts"
307
  msgid ""
308
  "Set to <strong>Individually disabled</strong> or <strong>Individually "
@@ -311,61 +311,61 @@ msgstr ""
311
  "Nastavite na <strong>Posamezno onemogočeni</strong> ali <strong>Posamezno "
312
  "omogočeni</strong> za vklop nastavitev posameznih izjem na tej strani.<br />"
313
 
314
- #: ad-inserter.php:2453
315
  msgid "For more information check page %s"
316
  msgstr "Za več informacij poglejte stran %s"
317
 
318
  #. translators: Ad Inserter Exceptions documentation page
319
- #: ad-inserter.php:2455
320
  msgid "Individual Exceptions"
321
  msgstr "Posamezne Izjeme"
322
 
323
- #: ad-inserter.php:2500
324
  msgid "STATIC PAGE"
325
  msgstr "STATIČNA STRAN"
326
 
327
- #: ad-inserter.php:2503
328
  msgid "POST"
329
  msgstr "PRISPEVEK"
330
 
331
- #: ad-inserter.php:2506
332
  msgid "HOMEPAGE"
333
  msgstr "DOMAČA STRAN"
334
 
335
- #: ad-inserter.php:2509
336
  msgid "CATEGORY PAGE"
337
  msgstr "STRAN KATEGORIJE"
338
 
339
- #: ad-inserter.php:2512
340
  msgid "SEARCH PAGE"
341
  msgstr "STRAN ISKANJE"
342
 
343
- #: ad-inserter.php:2515
344
  msgid "ARCHIVE PAGE"
345
  msgstr "STRAN ARHIVA"
346
 
347
- #: ad-inserter.php:2518
348
  msgid "ERROR 404 PAGE"
349
  msgstr "STRAN NAPAKA 404"
350
 
351
- #: ad-inserter.php:2521
352
  msgid "AJAX CALL"
353
  msgstr "AJAX KLIC"
354
 
355
- #: ad-inserter.php:2524
356
  msgid "UNKNOWN PAGE TYPE"
357
  msgstr "NEZNAN TIP STRANI"
358
 
359
- #: ad-inserter.php:2541
360
  msgid "Click to delete ad blocking detection cokies"
361
  msgstr "Klikni za brisanje piškotkov za zaznavanje blokiranja oglasov"
362
 
363
- #: ad-inserter.php:2542
364
  msgid "AD BLOCKING STATUS UNKNOWN"
365
  msgstr "NEZNAN STATUS BLOKIRANJA OGLASOV"
366
 
367
  #. translators: %s: AdSense Auto Ads
368
- #: ad-inserter.php:2566
369
  msgid ""
370
  "Code for %s detected - Code will automatically insert AdSense ads at optimal "
371
  "positions"
@@ -373,11 +373,11 @@ msgstr ""
373
  "Zaznana koda za %s - Koda bo samodejno vstavila oglase AdSense na optimalne "
374
  "položaje"
375
 
376
- #: ad-inserter.php:2705
377
  msgid "Code for insertion"
378
  msgstr "Koda za vstavljanje"
379
 
380
- #: ad-inserter.php:2705
381
  msgid "character"
382
  msgid_plural "characters"
383
  msgstr[0] "znak"
@@ -385,16 +385,16 @@ msgstr[1] "znaka"
385
  msgstr[2] "znaki"
386
  msgstr[3] "znakov"
387
 
388
- #: ad-inserter.php:2748
389
  msgid "Header code"
390
  msgstr "Koda v glavi"
391
 
392
- #: ad-inserter.php:2748
393
  msgctxt "Header code"
394
  msgid "DISABLED"
395
  msgstr "ONEMOGOČENA"
396
 
397
- #: ad-inserter.php:2748 ad-inserter.php:2966
398
  msgid "character inserted"
399
  msgid_plural "characters inserted"
400
  msgstr[0] "znak vstavljen"
@@ -402,43 +402,43 @@ msgstr[1] "znaka vstavljena"
402
  msgstr[2] "znaki vstavljeni"
403
  msgstr[3] "znakov vstavljenih"
404
 
405
- #: ad-inserter.php:2781
406
  msgid "Automatically placed by AdSense Auto ads code"
407
  msgstr "Samodejno postavila koda za oglase AdSense Auto ads"
408
 
409
- #: ad-inserter.php:2966
410
  msgid "Footer code"
411
  msgstr "Koda v nogi"
412
 
413
- #: ad-inserter.php:2966
414
  msgctxt "Footer code"
415
  msgid "DISABLED"
416
  msgstr "ONEMOGOČENA"
417
 
418
- #: ad-inserter.php:2972
419
  msgid "JAVASCRIPT NOT WORKING"
420
  msgstr "JAVASCRIPT NE DELA"
421
 
422
- #: ad-inserter.php:2972
423
  msgid "NO JAVASCRIPT ERRORS"
424
  msgstr "BREZ JAVASCRIPT NAPAK"
425
 
426
- #: ad-inserter.php:2972
427
  msgid "JAVASCRIPT ERRORS"
428
  msgstr "JAVASCRIPT NAPAKE"
429
 
430
  #. translators: block name (block with default settings)
431
- #: ad-inserter.php:5032
432
  msgctxt "Block name"
433
  msgid "Default"
434
  msgstr "Privzeti"
435
 
436
  #. translators: %s: Ad Inserter
437
- #: ad-inserter.php:5596
438
  msgid "Error importing %s settings."
439
  msgstr "Napaka pri uvozu %s nastavitev."
440
 
441
- #: ad-inserter.php:5597
442
  msgid "Error importing settings for block"
443
  msgid_plural "Error importing settings for blocks:"
444
  msgstr[0] "Napaka pri uvozu nastavitev za blok"
@@ -446,15 +446,15 @@ msgstr[1] "Napaka pri uvozu nastavitev za bloka:"
446
  msgstr[2] "Napaka pri uvozu nastavitev za bloke:"
447
  msgstr[3] "Napaka pri uvozu nastavitev za bloke:"
448
 
449
- #: ad-inserter.php:5646
450
  msgid "Settings saved."
451
  msgstr "Nastavitve shranjene."
452
 
453
- #: ad-inserter.php:5731
454
  msgid "Settings cleared."
455
  msgstr "Nastavitve ponastavljene."
456
 
457
- #: ad-inserter.php:6076 ad-inserter.php:6078 ad-inserter.php:6101
458
  msgid "word"
459
  msgid_plural "words"
460
  msgstr[0] "beseda"
@@ -462,38 +462,38 @@ msgstr[1] "besedi"
462
  msgstr[2] "besede"
463
  msgstr[3] "besed"
464
 
465
- #: ad-inserter.php:6115 ad-inserter.php:6227
466
  msgid "HTML TAGS REMOVED"
467
  msgstr "HTML ZNAČKE ODSTRANJENE"
468
 
469
- #: ad-inserter.php:6303
470
  msgid "BEFORE COMMENTS"
471
  msgstr "PRED KOMENTARJI"
472
 
473
- #: ad-inserter.php:6411
474
  msgid "AFTER COMMENTS"
475
  msgstr "PO KOMETARJIH"
476
 
477
- #: ad-inserter.php:6474
478
  msgid "BETWEEN COMMENTS"
479
  msgstr "MED KOMENTARJI"
480
 
481
- #: ad-inserter.php:7619
482
  msgid "requires WordPress 4.0 or newer"
483
  msgstr "potrebuje WordPress 4.0 ali novejši"
484
 
485
- #: ad-inserter.php:7619
486
  msgid "Please update!"
487
  msgstr "Prosimo, posodobite!"
488
 
489
  #. translators: Opt-in message: Thank you for installing Ad Inserter (plugin
490
  #. name with HTML tags will be added)
491
- #: ad-inserter.php:7845
492
  msgid "Thank you for installing"
493
  msgstr "Hvala za namestitev vtičnika"
494
 
495
  #. translators: Opt-in message: %s: HTML tags
496
- #: ad-inserter.php:7847
497
  msgid ""
498
  "We would like to %s track its usage %s on your site. This is completely "
499
  "optional and can be disabled at any time."
@@ -501,7 +501,7 @@ msgstr ""
501
  "Radi bi %s sledili njegovi uporabi %s na vašem spletnem mestu. To je povsem "
502
  "izbirno in se lahko izključi kadarkoli."
503
 
504
- #: ad-inserter.php:7849
505
  msgid ""
506
  "We don't record any sensitive data, only information regarding the WordPress "
507
  "environment and plugin usage, which will help us to make improvements to the "
@@ -511,7 +511,7 @@ msgstr ""
511
  "uporabe vtičnika, kar nam bo omogočilo izdelavo izboljšav za vtičnik."
512
 
513
  #. translators: Deactivation message: %s: HTML tags
514
- #: ad-inserter.php:7886
515
  msgid ""
516
  "Looking for %s Documentation, %s %s Common Settings, %s %s Quick Start %s or "
517
  "help for %s AdSense ads? %s The plugin doesn't work with your theme? %s Let "
@@ -522,49 +522,49 @@ msgstr ""
522
  "nam %s in poskušali vam bomo pomagati."
523
 
524
  #. translators: %s: Ad Inserter
525
- #: ad-inserter.php:7929
526
  msgid "%s block."
527
  msgstr "%s blok."
528
 
529
  #. translators: widget title
530
- #: ad-inserter.php:7945 ad-inserter.php:7981
531
  msgid "Processing log"
532
  msgstr "Dnevnik procesiranja"
533
 
534
  #. translators: widget title
535
- #: ad-inserter.php:7947 ad-inserter.php:7982
536
  msgid "Dummy widget"
537
  msgstr "Prazen gradnik"
538
 
539
  #. translators: widget title
540
- #: ad-inserter.php:7949 ad-inserter.php:7980
541
  msgid "Debugging tools"
542
  msgstr "Orodja za razhroščevanje"
543
 
544
  #. translators: block status (widget title)
545
- #: ad-inserter.php:7956
546
  msgctxt "block"
547
  msgid "PAUSED"
548
  msgstr "USTAVLJEN"
549
 
550
- #: ad-inserter.php:7957
551
  msgid "WIDGET DISABLED"
552
  msgstr "GRADNIK ONEMOGOČEN"
553
 
554
- #: ad-inserter.php:7958
555
  msgid "Unknown block"
556
  msgstr "Neznan blok"
557
 
558
- #: ad-inserter.php:7967 includes/functions.php:2630 settings.php:1038
559
  msgid "Title"
560
  msgstr "Naslov"
561
 
562
- #: ad-inserter.php:7989
563
  msgctxt "Widget"
564
  msgid "Sticky"
565
  msgstr "Lepljiv"
566
 
567
- #: ad-inserter.php:8038
568
  msgid ""
569
  "Ad Inserter can't be used while Ad Inserter Pro is active! To activate Ad "
570
  "Inserter you need to first deactivate Ad Inserter Pro."
@@ -573,7 +573,7 @@ msgstr ""
573
  "aktiven! Za aktivacijo vtičnika Ad Inserter morate najprej onemogočiti Ad "
574
  "Inserter Pro."
575
 
576
- #: ad-inserter.php:8039
577
  msgid ""
578
  "<strong>WARNING</strong>: Please note that saving settings in Ad Inserter "
579
  "will clear all settings that are available only in the Pro version "
@@ -608,11 +608,11 @@ msgstr "Pred prispevkom"
608
  msgid "After post"
609
  msgstr "Za prispevkom"
610
 
611
- #: class.php:1957 settings.php:1624 settings.php:3359
612
  msgid "Widget"
613
  msgstr "Gradnik"
614
 
615
- #: class.php:1962 settings.php:3357
616
  msgid "PHP function call"
617
  msgstr "Klic PHP funkcije"
618
 
@@ -649,69 +649,69 @@ msgctxt "block or widget"
649
  msgid "INSERTED BUT NOT VISIBLE"
650
  msgstr "VSTAVLJEN, VENDAR NI VIDEN"
651
 
652
- #: class.php:2408 class.php:2467
653
  msgid "ACTIVE GROUPS"
654
  msgstr "AKTIVNE SKUPINE"
655
 
656
  #. translators: %s: list parameters and type
657
- #: class.php:2642
658
  msgid "parameters='%s' type='%s'"
659
  msgstr "parametri='%s' tip='%s'"
660
 
661
  #. translators: %s: list parameters and type
662
- #: class.php:2644
663
  msgid "referers='%s' type='%s'"
664
  msgstr "napotitelji='%s' tip='%s'"
665
 
666
  #. translators: %s: list parameters and type
667
- #: class.php:2705
668
  msgid "countries='%s' type='%s'"
669
  msgstr "države='%s' tip='%s'"
670
 
671
  #. translators: %s: list parameters and type
672
- #: class.php:2707
673
  msgid "ip addresses='%s' type='%s'"
674
  msgstr "ip naslovi='%s' tip='%s'"
675
 
676
- #: class.php:2941 strings.php:228
677
  msgid "BEFORE"
678
  msgstr "PRED"
679
 
680
- #: class.php:2949 strings.php:230
681
  msgid "PREPEND CONTENT"
682
  msgstr "DODAJ PRED VSEBINO"
683
 
684
- #: class.php:2953 strings.php:231
685
  msgid "APPEND CONTENT"
686
  msgstr "DODAJ ZA VSEBINO"
687
 
688
- #: class.php:2957 strings.php:232
689
  msgid "REPLACE CONTENT"
690
  msgstr "NADOMESTI VSEBINO"
691
 
692
- #: class.php:2961 strings.php:233
693
  msgid "REPLACE ELEMENT"
694
  msgstr "NADOMESTI ELEMENT"
695
 
696
- #: class.php:2972 strings.php:229
697
  msgid "AFTER"
698
  msgstr "ZA"
699
 
700
- #: class.php:3039
701
  msgctxt "JavaScript"
702
  msgid "script"
703
  msgstr "skripta"
704
 
705
- #: class.php:3042 settings.php:1893
706
  msgid "for"
707
  msgstr "za"
708
 
709
- #: class.php:5582 class.php:5634
710
  msgctxt "category name"
711
  msgid "Uncategorized"
712
  msgstr "Nekategorizirano"
713
 
714
- #: class.php:6125
715
  msgid ""
716
  "ERROR: class DOMDocument not found. Your webhost needs to install the DOM "
717
  "extension for PHP."
@@ -821,7 +821,7 @@ msgstr ""
821
  "Glavni element vsebine (#id ali .razred) za položaj 'Lepljiv na vsebino'. "
822
  "Pustite prazno razen v primeru, ko položaj ni pravilno izračunan."
823
 
824
- #: includes/functions.php:420 settings.php:1194 settings.php:2449
825
  msgid "Open HTML element selector"
826
  msgstr "Odpri izbirnik HTML elementa"
827
 
@@ -845,7 +845,7 @@ msgstr "Sledi prikazom in klikom za ta blok"
845
  msgid " - global tracking disabled"
846
  msgstr " - globalno sledenje onemogočeno"
847
 
848
- #: includes/functions.php:461 includes/functions.php:2459
849
  msgid "Generate report"
850
  msgstr "Generiraj poročilo"
851
 
@@ -853,7 +853,7 @@ msgstr "Generiraj poročilo"
853
  msgid "Toggle Ad Blocking Statistics"
854
  msgstr "Preklopi Statistiko Blokiranja Oglasov"
855
 
856
- #: includes/functions.php:479 includes/functions.php:2444
857
  msgid "Toggle Statistics"
858
  msgstr "Preklopi Statistiko"
859
 
@@ -948,8 +948,8 @@ msgstr "Sledenje je globalno onemogočeno"
948
  msgid "Tracking for this block is disabled"
949
  msgstr "Sledenje za ta blok je onemogočeno"
950
 
951
- #: includes/functions.php:732 settings.php:3120 settings.php:3156
952
- #: strings.php:209
953
  msgid "Loading..."
954
  msgstr "Nalagam..."
955
 
@@ -1047,29 +1047,29 @@ msgstr "Shranjene nastavitve za blok"
1047
  msgid "Export / Import Ad Inserter Pro Settings"
1048
  msgstr "Izvozi / Uvozi Ad Inserter Pro Nastavitve"
1049
 
1050
- #: includes/functions.php:832
1051
  msgid "Are you sure you want to clear all statistics data for all blocks?"
1052
  msgstr ""
1053
  "Ali ste prepričani, da želite pobrisati vse podatke o statistiki za vse "
1054
  "bloke?"
1055
 
1056
- #: includes/functions.php:834
1057
  msgid "Clear All Statistics Data"
1058
  msgstr "Pobriši Vse Podatke o Statistiki"
1059
 
1060
- #: includes/functions.php:860
1061
  msgid "Toggle country/city editor"
1062
  msgstr "Preklopi urejevalnik držav/mest"
1063
 
1064
- #: includes/functions.php:866
1065
  msgid "IP Addresses"
1066
  msgstr "IP Naslovi"
1067
 
1068
- #: includes/functions.php:869
1069
  msgid "Toggle IP address editor"
1070
  msgstr "Preklopi urejevalnik IP nslovov"
1071
 
1072
- #: includes/functions.php:872
1073
  msgid ""
1074
  "Comma separated IP addresses, you can also use partial IP addresses with * "
1075
  "(ip-address-start*. *ip-address-pattern*, *ip-address-end)"
@@ -1077,48 +1077,48 @@ msgstr ""
1077
  "Z vejico ločeni IP naslovi, uporabite lahko tudi delne IP naslove z * (ip-"
1078
  "naslov-začetek*. *ip-naslov-vzorec*, *ip-naslov-konec)"
1079
 
1080
- #: includes/functions.php:876
1081
  msgid "Blacklist IP addresses"
1082
  msgstr "Črni seznam IP naslovov"
1083
 
1084
- #: includes/functions.php:880
1085
  msgid "Whitelist IP addresses"
1086
  msgstr "Beli seznam IP naslovov"
1087
 
1088
- #: includes/functions.php:891
1089
  msgid "Countries"
1090
  msgstr "Države"
1091
 
1092
- #: includes/functions.php:892
1093
  msgid "Cities"
1094
  msgstr "Mesta"
1095
 
1096
- #: includes/functions.php:896 includes/functions.php:2409
1097
  msgid "Toggle country editor"
1098
  msgstr "Preklopi urejevalnik držav"
1099
 
1100
- #: includes/functions.php:899
1101
  msgid "Toggle city editor"
1102
  msgstr "Preklopi urejevalnik mest"
1103
 
1104
- #: includes/functions.php:903 includes/functions.php:2412
1105
  msgid "Comma separated country ISO Alpha-2 codes"
1106
  msgstr "Z vejico ločene ISO Alpha-2 kode držav"
1107
 
1108
- #: includes/functions.php:907
1109
  msgid "Blacklist countries"
1110
  msgstr "Črni seznam držav"
1111
 
1112
- #: includes/functions.php:911
1113
  msgid "Whitelist countries"
1114
  msgstr "Beli seznam držav"
1115
 
1116
- #: includes/functions.php:1225 includes/functions.php:1445
1117
  msgid "Enter license key"
1118
  msgstr "Vnesite licenčni ključ"
1119
 
1120
  #. translators: %s: Ad Inserter Pro
1121
- #: includes/functions.php:1231
1122
  msgid ""
1123
  "%s license key is not set. Plugin functionality is limited and updates are "
1124
  "disabled."
@@ -1126,36 +1126,36 @@ msgstr ""
1126
  "%s licenčni ključ ni vnešen. Funkcionalnosti vtičnika so omejene in "
1127
  "posodobitve onemogočene."
1128
 
1129
- #: includes/functions.php:1240 includes/functions.php:1454
1130
  msgid "Check license key"
1131
  msgstr "Preverite licenčni ključ"
1132
 
1133
  #. translators: %s: Ad Inserter Pro
1134
- #: includes/functions.php:1246
1135
  msgid "Invalid %s license key."
1136
  msgstr "Neveljaven %s licenčni ključ."
1137
 
1138
  #. translators: %s: Ad Inserter Pro
1139
- #: includes/functions.php:1255
1140
  msgid "%s license expired. Plugin updates are disabled."
1141
  msgstr "%s licenca je potekla. Posodobitve vtičnika so onemogočene."
1142
 
1143
- #: includes/functions.php:1256
1144
  msgid "Renew license"
1145
  msgstr "Obnovite licenco"
1146
 
1147
  #. translators: %s: Ad Inserter Pro
1148
- #: includes/functions.php:1264
1149
  msgid "%s license overused. Plugin updates are disabled."
1150
  msgstr ""
1151
  "%s licenca je prekomerno uporabljena. Posodobitve vtičnika so onemogočene."
1152
 
1153
- #: includes/functions.php:1265
1154
  msgid "Upgrade license"
1155
  msgstr "Nadgradite licenco"
1156
 
1157
  #. translators: 1, 2: HTML tags, 3: Ad Inserter Pro
1158
- #: includes/functions.php:1447
1159
  msgid ""
1160
  "%1$s Warning: %2$s %3$s license key is not set. Plugin functionality is "
1161
  "limited and updates are disabled."
@@ -1164,12 +1164,12 @@ msgstr ""
1164
  "so omejene in posodobitve onemogočene."
1165
 
1166
  #. translators: 1, 2,: HTML tags, 3: Ad Inserter Pro
1167
- #: includes/functions.php:1456
1168
  msgid "%1$s Warning: %2$s Invalid %3$s license key."
1169
  msgstr "%1$s Opozorilo: %2$s Neveljaven %3$s licenčni ključ."
1170
 
1171
  #. translators: 2, 3: HTML tags, 1: Ad Inserter Pro
1172
- #: includes/functions.php:1472
1173
  msgid ""
1174
  "Hey, %1$s license has expired - plugin updates are now disabled. Please "
1175
  "renew the license to enable updates. Check %2$s what you are missing. %3$s"
@@ -1179,7 +1179,7 @@ msgstr ""
1179
  "pogrešate. %3$s"
1180
 
1181
  #. translators: 1, 3: HTML tags, 2: percentage
1182
- #: includes/functions.php:1479
1183
  msgid ""
1184
  "During the license period and 30 days after the license has expired we offer "
1185
  "%1$s %2$s discount on all license renewals and license upgrades. %3$s"
@@ -1187,16 +1187,16 @@ msgstr ""
1187
  "V obdobju licence in 30 dni po tem, ko licenca poteče, vam ponujamo %1$s "
1188
  "%2$s popust na vse obnovitve in nadgradnje licenc. %3$s"
1189
 
1190
- #: includes/functions.php:1506
1191
  msgid "Renew the licence"
1192
  msgstr "Obnovi licenco"
1193
 
1194
- #: includes/functions.php:1508
1195
  msgid "Update license status"
1196
  msgstr "Posodobi status licence"
1197
 
1198
  #. translators: 1, 2, 4, 5: HTML tags, 3: Ad Inserter Pro
1199
- #: includes/functions.php:1519
1200
  msgid ""
1201
  "%1$s Warning: %2$s %3$s license overused. Plugin updates are disabled. %4$s "
1202
  "Upgrade license %5$s"
@@ -1205,95 +1205,95 @@ msgstr ""
1205
  "vtičnika so onemogočene. %4$s Nadgradite licenco %5$s"
1206
 
1207
  #. Translators: %s: HTML tag
1208
- #: includes/functions.php:1539
1209
  msgid "Warning: %s MaxMind IP geolocation database not found."
1210
  msgstr "Opozorilo: %s MaxMind IP geolocijska podatkovna baza ni najdena."
1211
 
1212
- #: includes/functions.php:2046
1213
  msgid "Geolocation"
1214
  msgstr "Geolokacija"
1215
 
1216
- #: includes/functions.php:2050
1217
  msgid "Exceptions"
1218
  msgstr "Izjeme"
1219
 
1220
- #: includes/functions.php:2055
1221
  msgid "Multisite"
1222
  msgstr "Multisite"
1223
 
1224
- #: includes/functions.php:2060
1225
  msgid "Tracking"
1226
  msgstr "Sledenje"
1227
 
1228
  #. translators: %d: days, hours, minutes
1229
- #: includes/functions.php:2091
1230
  msgid "Scheduled in %d days %d hours %d minutes"
1231
  msgstr "Planirano v %d dneh %d urah %d minutah"
1232
 
1233
  #. translators: %s: HTML dash separator, %d: days, hours, minutes, &mdash; is
1234
  #. HTML code for long dash separator
1235
- #: includes/functions.php:2100
1236
  msgid "Active %s expires in %d days %d hours %d minutes"
1237
  msgstr "Aktivno %s poteče v %d dneh %d urah %d minutah"
1238
 
1239
- #: includes/functions.php:2104
1240
  msgid "Expired"
1241
  msgstr "Poteklo"
1242
 
1243
- #: includes/functions.php:2112 settings.php:1277 settings.php:1292
1244
  #: settings.php:1879
1245
  msgid "and"
1246
  msgstr "in"
1247
 
1248
- #: includes/functions.php:2115
1249
  msgid "fallback"
1250
  msgstr "rezerva"
1251
 
1252
- #: includes/functions.php:2116
1253
  msgid "Block to be used when scheduling expires"
1254
  msgstr "Blok, ki se bo uporabil, ko urnik poteče"
1255
 
1256
- #: includes/functions.php:2141
1257
  msgid "Load in iframe"
1258
  msgstr "Naloži v iframe-u"
1259
 
1260
- #: includes/functions.php:2145 includes/placeholders.php:382
1261
  msgid "Width"
1262
  msgstr "Širina"
1263
 
1264
- #: includes/functions.php:2146
1265
  msgid "iframe width, empty means full width (100%)"
1266
  msgstr "širina iframe-a, prazno pomeni polna širina (100%)"
1267
 
1268
- #: includes/functions.php:2152 includes/placeholders.php:377
1269
  msgid "Height"
1270
  msgstr "Višina"
1271
 
1272
- #: includes/functions.php:2153
1273
  msgid "iframe height, empty means adjust it to iframe content height"
1274
  msgstr ""
1275
  "Višina iframe-a, prazno pomeni poravnavo glede na višino vsebine iframe-a"
1276
 
1277
- #: includes/functions.php:2160
1278
  msgid "Ad label in iframe"
1279
  msgstr "Oznaka oglasa v iframe-u"
1280
 
1281
- #: includes/functions.php:2165
1282
  msgid "Preview iframe code"
1283
  msgstr "Predpreglej kodo iframe"
1284
 
1285
- #: includes/functions.php:2165 includes/preview.php:1964 settings.php:954
1286
- #: settings.php:2511
1287
  msgid "Preview"
1288
  msgstr "Predogled"
1289
 
1290
- #: includes/functions.php:2179 includes/functions.php:3821
1291
- #: includes/functions.php:3884 settings.php:1996
1292
  msgid "Ad Blocking"
1293
  msgstr "Blokiranje Oglasov"
1294
 
1295
  #. translators: 1, 2 and 3, 4: HTML tags
1296
- #: includes/functions.php:2188
1297
  msgid ""
1298
  "%1$s WARNING: %2$s %3$s No wrapping %4$s style has no wrapping code needed "
1299
  "for tracking!"
@@ -1303,7 +1303,7 @@ msgstr ""
1303
 
1304
  #. translators: 1, 2, 4, 5: HTML tags, 3: Scroll with the content, 6: Above
1305
  #. header
1306
- #: includes/functions.php:2197
1307
  msgid ""
1308
  "%1$s WARNING: %2$s vertical position %3$s needs %4$s Output buffering %5$s "
1309
  "enabled and automatic insertion %6$s!"
@@ -1311,49 +1311,49 @@ msgstr ""
1311
  "%1$s OPOZORILO: %2$s vertikalni položaj %3$s potrebuje %4$s Predpomnjenje "
1312
  "izhoda %5$s omogočeno in samodejno vstavljanje %6$s!"
1313
 
1314
- #: includes/functions.php:2215
1315
  msgid "When ad blocking is detected"
1316
  msgstr "Ko je blokiranje oglasov zaznano"
1317
 
1318
- #: includes/functions.php:2224
1319
  msgid "replacement"
1320
  msgstr "nadomestek"
1321
 
1322
- #: includes/functions.php:2225
1323
  msgid "Block to be shown when ad blocking is detected"
1324
  msgstr "Blok, ki naj bo prikazan, ko je zaznano blokiranje oglasov"
1325
 
1326
- #: includes/functions.php:2226
1327
  msgctxt "replacement"
1328
  msgid "None"
1329
  msgstr "Noben"
1330
 
1331
- #: includes/functions.php:2243
1332
  msgid "Close button"
1333
  msgstr "Gumb Zapri"
1334
 
1335
- #: includes/functions.php:2290
1336
  msgid "Lazy loading"
1337
  msgstr "Leno nalaganje"
1338
 
1339
  #. Translators: %s MaxMind
1340
- #: includes/functions.php:2344
1341
  msgid "This product includes GeoLite2 data created by %s"
1342
  msgstr "Ta izdelek vsebuje %s GeoLite2 podatke"
1343
 
1344
- #: includes/functions.php:2355
1345
  msgid "IP geolocation database"
1346
  msgstr "Podatkovna baza za IP geolokacijo"
1347
 
1348
- #: includes/functions.php:2358
1349
  msgid "Select IP geolocation database."
1350
  msgstr "Izberite podatkovno bazo za IP geolokacijo."
1351
 
1352
- #: includes/functions.php:2369
1353
  msgid "Automatic database updates"
1354
  msgstr "Samodejna posodobitev podatkovne baze"
1355
 
1356
- #: includes/functions.php:2372
1357
  msgid ""
1358
  "Automatically download and update free GeoLite2 IP geolocation database by "
1359
  "MaxMind"
@@ -1361,11 +1361,11 @@ msgstr ""
1361
  "Samodejno prenesi in posodobi prostodostopno GeoLite2 IP geolokacijsko "
1362
  "podatkovno bazo MaxMind"
1363
 
1364
- #: includes/functions.php:2380
1365
  msgid "Database"
1366
  msgstr "Podatkovna baza"
1367
 
1368
- #: includes/functions.php:2383
1369
  msgid ""
1370
  "Aabsolute path starting with '/' or relative path to the MaxMind database "
1371
  "file"
@@ -1374,35 +1374,35 @@ msgstr ""
1374
  "podatkovne baze"
1375
 
1376
  #. translators: %d: group number
1377
- #: includes/functions.php:2401
1378
  msgid "Group %d"
1379
  msgstr "Skupina %d"
1380
 
1381
- #: includes/functions.php:2407
1382
  msgid "countries"
1383
  msgstr "države"
1384
 
1385
- #: includes/functions.php:2452
1386
  msgid "Enable tracking"
1387
  msgstr "Omogoči sledenje"
1388
 
1389
- #: includes/functions.php:2467
1390
  msgid "Impression and Click Tracking"
1391
  msgstr "Sledenje Prikazov in Klikov"
1392
 
1393
- #: includes/functions.php:2483
1394
  msgid "Internal"
1395
  msgstr "Notranje"
1396
 
1397
- #: includes/functions.php:2487
1398
  msgid "Track impressions and clicks with internal tracking and statistics"
1399
  msgstr "Sledi prikazom in klikom z notranjim sledenjem in statistiko"
1400
 
1401
- #: includes/functions.php:2492
1402
  msgid "External"
1403
  msgstr "Zunanje"
1404
 
1405
- #: includes/functions.php:2496
1406
  msgid ""
1407
  "Track impressions and clicks with Google Analytics or Matomo (needs tracking "
1408
  "code installed)"
@@ -1410,27 +1410,27 @@ msgstr ""
1410
  "Sledi prikazom in klikom z Google Analytics ali Matomo (potrebuje nameščeno "
1411
  "kodo za sledenje)"
1412
 
1413
- #: includes/functions.php:2501
1414
  msgid "Track Pageviews"
1415
  msgstr "Sledi Ogledom Strani"
1416
 
1417
- #: includes/functions.php:2507
1418
  msgid "Track Pageviews by Device (as configured for viewports)"
1419
  msgstr "Sledi Ogledom Strani po Napravah (kot so nastavljene za poglede)"
1420
 
1421
- #: includes/functions.php:2517
1422
  msgid "Track for Logged in Users"
1423
  msgstr "Sledi za Prijavljene Upor."
1424
 
1425
- #: includes/functions.php:2523
1426
  msgid "Track impressions and clicks from logged in users"
1427
  msgstr "Sledi prikazom in klikom neprijavljenih uporabnikov"
1428
 
1429
- #: includes/functions.php:2533
1430
  msgid "Click Detection"
1431
  msgstr "Zaznavanje klikov"
1432
 
1433
- #: includes/functions.php:2539
1434
  msgid ""
1435
  "Standard method detects clicks only on banners with links, Advanced method "
1436
  "can detect clicks on any kind of ads, but it is slightly less accurate"
@@ -1438,11 +1438,11 @@ msgstr ""
1438
  "Standardni način zazna klike samo na pasicah s povezavami, Napredni način "
1439
  "lahko zazna klike na kateremkoli oglasu, ampak je rahlo manj zanesljiv"
1440
 
1441
- #: includes/functions.php:2565
1442
  msgid "Report header image"
1443
  msgstr "Slika v glavi poročila"
1444
 
1445
- #: includes/functions.php:2568
1446
  msgid ""
1447
  "Image or logo to be displayed in the header of the statistins report. "
1448
  "Aabsolute path starting with '/' or relative path to the image file."
@@ -1450,128 +1450,128 @@ msgstr ""
1450
  "Slika ali logo, ki bo prikazan v glavi poročila statistike. Absolutna pot, "
1451
  "ki se začne z '/' ali relativna pot do datoteke slike."
1452
 
1453
- #: includes/functions.php:2569 strings.php:221
1454
  msgid "Select or upload header image"
1455
  msgstr "Izberi ali naloži sliko glave"
1456
 
1457
- #: includes/functions.php:2574
1458
  msgid "Report header title"
1459
  msgstr "Naslov v glavi poročila"
1460
 
1461
- #: includes/functions.php:2577
1462
  msgid ""
1463
  "Title to be displayed in the header of the statistins report. Text or HTML "
1464
  "code."
1465
  msgstr ""
1466
  "Naslov, ki bo prikazan v glavi poročila statistike. Besedilo ali HTML koda."
1467
 
1468
- #: includes/functions.php:2582
1469
  msgid "Report header description"
1470
  msgstr "Opis v glavi poročila"
1471
 
1472
- #: includes/functions.php:2585
1473
  msgid ""
1474
  "Description to be displayed in the header of the statistins report. Text or "
1475
  "HTML code."
1476
  msgstr ""
1477
  "Opis, ki bo prikazan v glavi poročila statistike. Besedilo ali HTML koda."
1478
 
1479
- #: includes/functions.php:2617
1480
  msgid "Are you sure you want to clear all exceptions for block"
1481
  msgstr "Ali ste prepričani, da želite pobrisati vse izjeme za blok"
1482
 
1483
- #: includes/functions.php:2618 settings.php:1041
1484
  msgid "Clear all exceptions for block"
1485
  msgstr "Pobriši vse izjeme za blok"
1486
 
1487
- #: includes/functions.php:2625
1488
  msgid "Are you sure you want to clear all exceptions?"
1489
  msgstr "Ali ste prepričani, da želite pobrisati vse izjeme?"
1490
 
1491
- #: includes/functions.php:2625
1492
  msgid "Clear all exceptions for all blocks"
1493
  msgstr "Pobriši vse izjeme za vse bloke"
1494
 
1495
- #: includes/functions.php:2630 settings.php:3429
1496
  msgid "Type"
1497
  msgstr "Vrsta"
1498
 
1499
- #: includes/functions.php:2648
1500
  msgid "View"
1501
  msgstr "Poglej"
1502
 
1503
- #: includes/functions.php:2649 includes/placeholders.php:346
1504
  #: includes/preview.php:2271 settings.php:1180
1505
  msgid "Edit"
1506
  msgstr "Uredi"
1507
 
1508
- #: includes/functions.php:2679
1509
  msgid "Are you sure you want to clear all exceptions for"
1510
  msgstr "Ali ste prepričani, da želite pobrisati vse izjeme za"
1511
 
1512
- #: includes/functions.php:2680
1513
  msgid "Clear all exceptions for"
1514
  msgstr "Pobriši vse izjeme za"
1515
 
1516
- #: includes/functions.php:2693
1517
  msgid "No exceptions"
1518
  msgstr "Brez izjem"
1519
 
1520
  #. translators: %s: Ad Inserter Pro
1521
- #: includes/functions.php:2704
1522
  msgid "%s options for network blogs"
1523
  msgstr "%s izbire za omrežne bloge"
1524
 
1525
  #. translators: %s: Ad Inserter Pro
1526
- #: includes/functions.php:2709
1527
  msgid "Enable %s widgets for sub-sites"
1528
  msgstr "Omogoči %s gradnik za pod-spletišča"
1529
 
1530
- #: includes/functions.php:2709
1531
  msgid "Widgets"
1532
  msgstr "Gradniki"
1533
 
1534
- #: includes/functions.php:2714
1535
  msgid "Enable PHP code processing for sub-sites"
1536
  msgstr "Omogoči procesiranje PHP kode za pod-spletišča"
1537
 
1538
- #: includes/functions.php:2714
1539
  msgid "PHP Processing"
1540
  msgstr "PHP Procesiranje"
1541
 
1542
  #. translators: %s: Ad Inserter Pro
1543
- #: includes/functions.php:2719
1544
  msgid "Enable %s block exceptions in post/page editor for sub-sites"
1545
  msgstr ""
1546
  "Omogoči %s izjeme blokov v urejevalniku prispevkov/strani za pod-spletišča"
1547
 
1548
- #: includes/functions.php:2719
1549
  msgid "Post/Page exceptions"
1550
  msgstr "Izjeme prispevkov/strani"
1551
 
1552
  #. translators: %s: Ad Inserter Pro
1553
- #: includes/functions.php:2724
1554
  msgid "Enable %s settings page for sub-sites"
1555
  msgstr "Omogoči nastavitveno stran %s za pod-spletišča"
1556
 
1557
- #: includes/functions.php:2724
1558
  msgid "Settings page"
1559
  msgstr "Stran z nastavitvami"
1560
 
1561
  #. translators: %s: Ad Inserter Pro
1562
- #: includes/functions.php:2729
1563
  msgid "Enable %s settings of main site to be used for all blogs"
1564
  msgstr "Omogoči %s nastavitve glavnega spletišča za uporabo na vseh blogih"
1565
 
1566
- #: includes/functions.php:2729
1567
  msgid "Main site settings used for all blogs"
1568
  msgstr "Nastavitve glavnega spletišča uporabljene na vseh blogih"
1569
 
1570
- #: includes/functions.php:2740 settings.php:2407
1571
  msgid "Ad Blocking Detection"
1572
  msgstr "Zaznavanje Blokiranja Oglasov"
1573
 
1574
- #: includes/functions.php:2746
1575
  msgid ""
1576
  "Standard method is reliable but should be used only if Advanced method does "
1577
  "not work. Advanced method recreates files used for detection with random "
@@ -1583,71 +1583,71 @@ msgstr ""
1583
  "imeni in mogoče ne bo deloval s skriptami v upload mapi, če ta ni javno "
1584
  "dostopna"
1585
 
1586
- #: includes/functions.php:3366 includes/functions.php:3456
1587
- #: includes/functions.php:3476
1588
  msgid "AD BLOCKING"
1589
  msgstr "BLOKIRANJE OGLASOV"
1590
 
1591
- #: includes/functions.php:3367 includes/functions.php:3407
1592
- #: includes/functions.php:3450 includes/functions.php:3477
1593
  msgid "BLOCK INSERTED BUT NOT VISIBLE"
1594
  msgstr "BLOK VSTAVLJEN, VENDAR NI VIDEN"
1595
 
1596
- #: includes/functions.php:3370 includes/functions.php:3449
1597
- #: includes/functions.php:3483
1598
  msgid "NO AD BLOCKING"
1599
  msgstr "NI BLOKIRANJA OGLASOV"
1600
 
1601
- #: includes/functions.php:3406 includes/functions.php:3413
1602
  msgid "AD BLOCKING REPLACEMENT"
1603
  msgstr "NADOMESTEK V PRIMERU BLOKIRANJA OGLASOV"
1604
 
1605
- #: includes/functions.php:3674 includes/functions.php:3883
1606
  msgid "Pageviews"
1607
  msgstr "Ogledi strani"
1608
 
1609
- #: includes/functions.php:3820
1610
  msgctxt "Version"
1611
  msgid "Unknown"
1612
  msgstr "Neznana"
1613
 
1614
- #: includes/functions.php:3820
1615
  msgctxt "Times"
1616
  msgid "DISPLAYED"
1617
  msgstr "PRIKAZANO"
1618
 
1619
- #: includes/functions.php:3820
1620
  msgid "No version"
1621
  msgstr "Brez različice"
1622
 
1623
- #: includes/functions.php:3821
1624
  msgctxt "Times"
1625
  msgid "BLOCKED"
1626
  msgstr "BLOKIRANO"
1627
 
1628
- #: includes/functions.php:3883
1629
  msgid "Impressions"
1630
  msgstr "Prikazi"
1631
 
1632
- #: includes/functions.php:3884 includes/functions.php:3885
1633
- #: includes/functions.php:3915
1634
  msgid "Clicks"
1635
  msgstr "Kliki"
1636
 
1637
- #: includes/functions.php:3885
1638
  msgid "events"
1639
  msgstr "dogodki"
1640
 
1641
- #: includes/functions.php:3886
1642
  msgid "Ad Blocking Share"
1643
  msgstr "Delež blokiranja oglasov"
1644
 
1645
  #. translators: CTR as Click Through Rate
1646
- #: includes/functions.php:3886 includes/functions.php:3921
1647
  msgid "CTR"
1648
  msgstr "CTR"
1649
 
1650
- #: includes/functions.php:4003
1651
  msgid "pageviews"
1652
  msgid_plural "pageviews"
1653
  msgstr[0] "ogled strani"
@@ -1655,7 +1655,7 @@ msgstr[1] "ogleda strani"
1655
  msgstr[2] "ogledi strani"
1656
  msgstr[3] "ogledov strani"
1657
 
1658
- #: includes/functions.php:4003
1659
  msgid "impressions"
1660
  msgid_plural "impressions"
1661
  msgstr[0] "prikaz"
@@ -1663,7 +1663,7 @@ msgstr[1] "prikaza"
1663
  msgstr[2] "prikazi"
1664
  msgstr[3] "prikazov"
1665
 
1666
- #: includes/functions.php:4007
1667
  msgid "event"
1668
  msgid_plural "events"
1669
  msgstr[0] "dogodek"
@@ -1671,7 +1671,7 @@ msgstr[1] "dogodka"
1671
  msgstr[2] "dogodki"
1672
  msgstr[3] "dogodkov"
1673
 
1674
- #: includes/functions.php:4007
1675
  msgid "click"
1676
  msgid_plural "clicks"
1677
  msgstr[0] "klik"
@@ -1679,27 +1679,27 @@ msgstr[1] "klika"
1679
  msgstr[2] "kliki"
1680
  msgstr[3] "klikov"
1681
 
1682
- #: includes/functions.php:4102
1683
  msgctxt "Pageviews / Impressions"
1684
  msgid "Average"
1685
  msgstr "Povprečni"
1686
 
1687
- #: includes/functions.php:4123
1688
  msgctxt "Ad Blocking / Clicks"
1689
  msgid "Average"
1690
  msgstr "Povprečno"
1691
 
1692
- #: includes/functions.php:4147
1693
  msgctxt "Ad Blocking Share / CTR"
1694
  msgid "Average"
1695
  msgstr "Povprečni"
1696
 
1697
  #. Translators: %s: Ad Inserter Pro
1698
- #: includes/functions.php:4199
1699
  msgid "%s Report"
1700
  msgstr "%s Poročilo"
1701
 
1702
- #: includes/functions.php:4277
1703
  msgid "Advanced WordPress Ad Management Plugin"
1704
  msgstr "Napredni WordPress Vtičnik za Upravljanje z Oglasi"
1705
 
@@ -1727,7 +1727,7 @@ msgstr "Zapri urejevalnik polnila"
1727
  msgid "Placeholder"
1728
  msgstr "Polnilo"
1729
 
1730
- #: includes/placeholders.php:356 settings.php:808 settings.php:3430
1731
  msgid "Size"
1732
  msgstr "Velikost"
1733
 
@@ -1860,11 +1860,11 @@ msgstr "Prekliči"
1860
  msgid "Ad Blocking Detected Message Preview"
1861
  msgstr "Predogled Sporočila ko je Zaznano Blokiranje Oglasov"
1862
 
1863
- #: includes/preview-adb.php:348 settings.php:2524
1864
  msgid "Message CSS"
1865
  msgstr "CSS sporočila"
1866
 
1867
- #: includes/preview-adb.php:353 settings.php:2532
1868
  msgid "Overlay CSS"
1869
  msgstr "CSS prevleke"
1870
 
@@ -1905,7 +1905,7 @@ msgid "background"
1905
  msgstr "ozadje"
1906
 
1907
  #: includes/preview.php:2075 includes/preview.php:2226 settings.php:1141
1908
- #: settings.php:3356
1909
  msgid "Alignment"
1910
  msgstr "Poravnava"
1911
 
@@ -2181,7 +2181,7 @@ msgstr ""
2181
  msgid "General Settings"
2182
  msgstr "Splošne Nastavitve"
2183
 
2184
- #: settings.php:592 settings.php:2283 settings.php:2341 settings.php:2504
2185
  msgid "Toggle Syntax Highlighting / Simple editor for mobile devices"
2186
  msgstr ""
2187
  "Preklopi Poudarjanje Sintakse / Preprost urejevalnik za mobilne naprave"
@@ -2210,7 +2210,7 @@ msgstr "Preklopi urejevalnik rotacije"
2210
  msgid "Open visual HTML editor"
2211
  msgstr "Odpri vizualni HTML urejevalnik"
2212
 
2213
- #: settings.php:644
2214
  msgid "Show AdSense ad units"
2215
  msgstr "Pokaži oglasne enote AdSense"
2216
 
@@ -2218,7 +2218,7 @@ msgstr "Pokaži oglasne enote AdSense"
2218
  msgid "Clear block"
2219
  msgstr "Počisti blok"
2220
 
2221
- #: settings.php:658 settings.php:3324
2222
  msgid "Copy block"
2223
  msgstr "Kopiraj blok"
2224
 
@@ -2391,7 +2391,7 @@ msgstr ""
2391
  "Posamezne izjeme za prispevke (če so omogočene tukaj) se lahko nastavijo v "
2392
  "urejevalniku prispevka. Pustite prazno za prispevke brez posameznih izjem."
2393
 
2394
- #: settings.php:978 settings.php:3007
2395
  msgid "Posts"
2396
  msgstr "Prispevki"
2397
 
@@ -2405,7 +2405,7 @@ msgstr ""
2405
  "podstraneh), statična stran ali domača stran teme (razpoložljivi položaji so "
2406
  "lahko odvisni od ročic, ki jih tema uporablja)"
2407
 
2408
- #: settings.php:983 settings.php:3009
2409
  msgid "Homepage"
2410
  msgstr "Domača stran"
2411
 
@@ -2413,7 +2413,7 @@ msgstr "Domača stran"
2413
  msgid "Enable insertion on category blog pages (including sub-pages)"
2414
  msgstr "Omogoči vstavljanje na straneh kategorij (vključno s podstranmi)"
2415
 
2416
- #: settings.php:988 settings.php:3010
2417
  msgid "Category pages"
2418
  msgstr "Strani kategorij"
2419
 
@@ -2434,7 +2434,7 @@ msgstr ""
2434
  "nastavijo v urejevalniku strani. Pustite prazno za strani brez posameznih "
2435
  "izjem."
2436
 
2437
- #: settings.php:1006 settings.php:3008
2438
  msgid "Static pages"
2439
  msgstr "Statične strani"
2440
 
@@ -2442,7 +2442,7 @@ msgstr "Statične strani"
2442
  msgid "Enable insertion on search blog pages"
2443
  msgstr "Omogoči vstavljanje na iskalnih straneh"
2444
 
2445
- #: settings.php:1011 settings.php:3012
2446
  msgid "Search pages"
2447
  msgstr "Iskalne strani"
2448
 
@@ -2563,7 +2563,7 @@ msgstr "HTML element"
2563
  msgid "HTML element selector or comma separated list of selectors"
2564
  msgstr "Selektor HTML elementa ali z vejicami ločen seznam selektorjev"
2565
 
2566
- #: settings.php:1209 settings.php:2417
2567
  msgid "Action"
2568
  msgstr "Akcija"
2569
 
@@ -2851,7 +2851,7 @@ msgid "Enable shortcode for manual insertion of this block in posts and pages"
2851
  msgstr ""
2852
  "Omogočite kratko kodo za ročno vstavljanje tega bloka v prispevke in strani"
2853
 
2854
- #: settings.php:1636 settings.php:3358
2855
  msgid "Shortcode"
2856
  msgstr "Kratka koda"
2857
 
@@ -2915,7 +2915,7 @@ msgstr "Urnik"
2915
  msgid "Display"
2916
  msgstr "Prikaz"
2917
 
2918
- #: settings.php:1760 settings.php:1989
2919
  msgid "General"
2920
  msgstr "Splošno"
2921
 
@@ -2983,7 +2983,7 @@ msgstr ""
2983
  "Štej ta blok za omejitev Največ blokov na stran (določena na zavihku "
2984
  "&#9881; / zavihek Splošno)"
2985
 
2986
- #: settings.php:1805 settings.php:2147
2987
  msgid "Max blocks per page"
2988
  msgstr "Največ blokov na stran"
2989
 
@@ -3068,7 +3068,7 @@ msgstr "dni po objavi"
3068
  msgid "Not available"
3069
  msgstr "Ni na razpolago"
3070
 
3071
- #: settings.php:1908 settings.php:2139
3072
  msgid "Ad label"
3073
  msgstr "Oznaka oglasa"
3074
 
@@ -3097,78 +3097,94 @@ msgstr "Nastavitve"
3097
  msgid "Settings timestamp"
3098
  msgstr "Časovni žig nastavitev"
3099
 
3100
- #: settings.php:1967
3101
  msgid "Are you sure you want to reset all settings?"
3102
  msgstr "Ali ste prepričani, da želite ponastaviti vse nastavitve?"
3103
 
3104
- #: settings.php:1967
3105
  msgid "Reset All Settings"
3106
  msgstr "Ponastavi Vse Nastavitve"
3107
 
3108
- #: settings.php:1990
 
 
 
 
3109
  msgid "Viewports"
3110
  msgstr "Pogledi"
3111
 
3112
- #: settings.php:1991
3113
  msgid "Hooks"
3114
  msgstr "Ročice"
3115
 
3116
- #: settings.php:1992
3117
  msgid "Header"
3118
  msgstr "Glava"
3119
 
3120
- #: settings.php:1993 strings.php:30
3121
  msgid "Footer"
3122
  msgstr "Noga"
3123
 
3124
- #: settings.php:1998
3125
  msgid "Debugging"
3126
  msgstr "Razhroščevanje"
3127
 
3128
- #: settings.php:2008
3129
  msgid "Plugin priority"
3130
  msgstr "Prednost vtičnika"
3131
 
3132
- #: settings.php:2016
3133
  msgid "Output buffering"
3134
  msgstr "Predpomnjenje izhoda"
3135
 
3136
- #: settings.php:2019
3137
  msgid "Needed for position Above header but may not work with all themes"
3138
  msgstr "Potrebno za položaj Nad glavo, ampak lahko, da ne dela z vsemi temami"
3139
 
3140
- #: settings.php:2027
3141
  msgid "Syntax highlighting theme"
3142
  msgstr "Tema za poudarjanje sintakse"
3143
 
3144
- #: settings.php:2034
3145
  msgctxt "no syntax highlighting themes"
3146
  msgid "None"
3147
  msgstr "Brez"
3148
 
3149
- #: settings.php:2035
3150
  msgid "No Syntax Highlighting"
3151
  msgstr "Brez Poudarjanja Sintakse"
3152
 
3153
- #: settings.php:2037
3154
  msgctxt "syntax highlighting themes"
3155
  msgid "Light"
3156
  msgstr "Svetle"
3157
 
3158
- #: settings.php:2052
3159
  msgctxt "syntax highlighting themes"
3160
  msgid "Dark"
3161
  msgstr "Temne"
3162
 
3163
- #: settings.php:2078
3164
  msgid "Min. user role for ind. exceptions editing"
3165
  msgstr "Najm. uporabniška vloga za urejanje izjem"
3166
 
3167
- #: settings.php:2088
 
 
 
 
 
 
 
 
 
 
 
 
3168
  msgid "Sticky widget mode"
3169
  msgstr "Način za lepljive gradnike"
3170
 
3171
- #: settings.php:2091
3172
  msgid ""
3173
  "CSS mode is the best approach but may not work with all themes. JavaScript "
3174
  "mode works with most themes but may reload ads on page load."
@@ -3177,19 +3193,19 @@ msgstr ""
3177
  "Način JavaScript dela z večino tem, ampak lahko ponovno naloži oglase pri "
3178
  "nalaganju strani."
3179
 
3180
- #: settings.php:2099
3181
  msgid "Sticky widget top margin"
3182
  msgstr "Zgornji rob za lepljiv gradnik"
3183
 
3184
- #: settings.php:2107
3185
  msgid "Dynamic blocks"
3186
  msgstr "Dinamični bloki"
3187
 
3188
- #: settings.php:2120
3189
  msgid "Functions for paragraph counting"
3190
  msgstr "Funkcije za štetje odstavkov"
3191
 
3192
- #: settings.php:2123
3193
  msgid ""
3194
  "Standard PHP functions are faster and work in most cases, use Multibyte "
3195
  "functions if paragraphs are not counted properly on non-english pages."
@@ -3198,15 +3214,15 @@ msgstr ""
3198
  "Večznakovne funkcije, če na ne-angleških straneh odstavki niso pravilno "
3199
  "šteti."
3200
 
3201
- #: settings.php:2131
3202
  msgid "No paragraph counting inside"
3203
  msgstr "Ni štetja odstavkov znotraj"
3204
 
3205
- #: settings.php:2142
3206
  msgid "Label text or HTML code"
3207
  msgstr "Besedilo oznake ali HTML koda"
3208
 
3209
- #: settings.php:2150
3210
  msgid ""
3211
  "Maximum number of inserted blocks per page. You need to enable Max page "
3212
  "insertions (button Misc / tab Insertion) to count block for this limit."
@@ -3215,12 +3231,12 @@ msgstr ""
3215
  "blokov na stran (gumb Razno / zavihek Vstavljanje), da bo blok štel za to "
3216
  "omejitev."
3217
 
3218
- #: settings.php:2164
3219
  msgid "Plugin usage tracking"
3220
  msgstr "Sledenje uporabe vtičnika"
3221
 
3222
  #. translators: %s: Ad Inserter
3223
- #: settings.php:2167
3224
  msgid ""
3225
  "Enable tracking of %s usage and help us to make improvements to the plugin. "
3226
  "Only information regarding the WordPress environment and %s usage is "
@@ -3230,125 +3246,125 @@ msgstr ""
3230
  "Beležijo se samo informacije glede okolja WordPress in uporabe %s-ja (enkrat "
3231
  "mesečno in ob dogodkih kot so aktivacija/deaktivacija)."
3232
 
3233
- #: settings.php:2185
3234
  msgid "CSS class name for the wrapping div"
3235
  msgstr "Ime CSS razreda za div za ovijanje"
3236
 
3237
- #: settings.php:2185
3238
  msgid "Block class name"
3239
  msgstr "Ime razreda za blok"
3240
 
3241
- #: settings.php:2189
3242
  msgid "Include general plugin block class"
3243
  msgstr "Vključi splošni razred vtičnika za blok"
3244
 
3245
- #: settings.php:2189
3246
  msgid "Block class"
3247
  msgstr "Razred bloka"
3248
 
3249
- #: settings.php:2194
3250
  msgid "Include block number class"
3251
  msgstr "Vključi razred številke bloka"
3252
 
3253
- #: settings.php:2194
3254
  msgid "Block number class"
3255
  msgstr "Razred številke bloka"
3256
 
3257
- #: settings.php:2199
3258
  msgid ""
3259
  "Instead of alignment classes generate inline alignment styles for blocks"
3260
  msgstr ""
3261
  "Namesto razredov za poravnavo ustvari medvrstične sloge za poravnavo blokov"
3262
 
3263
- #: settings.php:2199
3264
  msgid "Inline styles"
3265
  msgstr "Medvrstični slogi"
3266
 
3267
- #: settings.php:2205
3268
  msgid "Preview of the block wrapping code"
3269
  msgstr "Predogled kode za ovijanje blokov"
3270
 
3271
- #: settings.php:2206
3272
  msgid "Wrapping div"
3273
  msgstr "div za ovijanje"
3274
 
3275
- #: settings.php:2207 settings.php:2607
3276
  msgid "BLOCK CODE"
3277
  msgstr "KODA BLOKA"
3278
 
3279
- #: settings.php:2215
3280
  msgid "Viewport Settings used for client-side device detection"
3281
  msgstr ""
3282
  "Nastavitve Pogledov, uporabljene za zaznavanje naprav na strani klienta"
3283
 
3284
  #. Translators: %d: viewport number
3285
- #: settings.php:2223
3286
  msgid "Viewport %d name"
3287
  msgstr "Ime pogleda %d"
3288
 
3289
- #: settings.php:2226
3290
  msgid "min width"
3291
  msgstr "najmanjša širina"
3292
 
3293
- #: settings.php:2237
3294
  msgid "Custom Hooks"
3295
  msgstr "Ročice Po Meri"
3296
 
3297
- #: settings.php:2249 settings.php:2252
3298
  msgid "Enable hook"
3299
  msgstr "Omogoči ročico"
3300
 
3301
  #. translators: %d: hook number
3302
- #: settings.php:2252
3303
  msgid "Hook %d name"
3304
  msgstr "Ime ročice %d"
3305
 
3306
- #: settings.php:2255
3307
  msgid "Hook name for automatic insertion selection"
3308
  msgstr "Ime ročice za izbiro samodejnega vstavljanja"
3309
 
3310
- #: settings.php:2258
3311
  msgid "action"
3312
  msgstr "akcija"
3313
 
3314
- #: settings.php:2261
3315
  msgid "Action name as used in the do_action () function"
3316
  msgstr "Ime akcije kot je uporabljena v do_action () funkciji"
3317
 
3318
- #: settings.php:2264
3319
  msgid "priority"
3320
  msgstr "prednost"
3321
 
3322
- #: settings.php:2267
3323
  msgid "Priority for the hook (default is 10)"
3324
  msgstr "Prednost za ročico (privzeta je 10)"
3325
 
3326
- #: settings.php:2288
3327
  msgid "Enable insertion of this code into HTML page header"
3328
  msgstr "Omogoči vstavljanje te kode v glavi HTML strani"
3329
 
3330
- #: settings.php:2292 settings.php:2350 settings.php:2509
3331
  msgid "Process PHP code"
3332
  msgstr "Procesiraj PHP kodo"
3333
 
3334
- #: settings.php:2296
3335
  msgid "HTML Page Header Code"
3336
  msgstr "Koda v Glavi HTML Strani"
3337
 
3338
- #: settings.php:2304
3339
  msgid "Code in the %s section of the HTML page"
3340
  msgstr "Koda v %s delu HTML strani"
3341
 
3342
- #: settings.php:2305 settings.php:2363
3343
  msgctxt "code in header or footer"
3344
  msgid "DISABLED"
3345
  msgstr "ONEMOGOČENA"
3346
 
3347
- #: settings.php:2318 settings.php:2376
3348
  msgid "Use server-side detection to insert code only for"
3349
  msgstr "Zaznavanje na strani strežnika za vstavljanje samo za"
3350
 
3351
- #: settings.php:2331
3352
  msgid ""
3353
  "Enable insertion of this code into HTML page header on page for Error 404: "
3354
  "Page not found"
@@ -3356,24 +3372,24 @@ msgstr ""
3356
  "Omogoči vstavljanje te kode v HTML glavo na strani za napako 404: Stran ne "
3357
  "obstaja"
3358
 
3359
- #: settings.php:2331 settings.php:2389
3360
  msgid "Insert on Error 404 page"
3361
  msgstr "Vstavi na strani Napake 404"
3362
 
3363
- #: settings.php:2346
3364
  msgid "Enable insertion of this code into HTML page footer"
3365
  msgstr "Omogoči vstavljanje te kode v HTML nogi"
3366
 
3367
- #: settings.php:2354
3368
  msgid "HTML Page Footer Code"
3369
  msgstr "Koda v Nogi HTML Strani"
3370
 
3371
  #. translators: %s: HTML tags
3372
- #: settings.php:2362
3373
  msgid "Code before the %s tag of the the HTML page"
3374
  msgstr "Koda pred %s značko HTML strani"
3375
 
3376
- #: settings.php:2389
3377
  msgid ""
3378
  "Enable insertion of this code into HTML page footer on page for Error 404: "
3379
  "Page not found"
@@ -3381,19 +3397,19 @@ msgstr ""
3381
  "Omogoči vstavljanje te kode v nogo HTML strani na strani za napako 404: "
3382
  "Stran ne obstaja"
3383
 
3384
- #: settings.php:2403
3385
  msgid "Enable detection of ad blocking"
3386
  msgstr "Omogoči zaznavanje blokiranja oglasov"
3387
 
3388
- #: settings.php:2420
3389
  msgid "Global action when ad blocking is detected"
3390
  msgstr "Globalna akcija, ko je zaznano blokiranje oglasov"
3391
 
3392
- #: settings.php:2429
3393
  msgid "Delay Action"
3394
  msgstr "Zakasni Akcijo"
3395
 
3396
- #: settings.php:2432
3397
  msgid ""
3398
  "Number of page views to delay action when ad blocking is detected. Leave "
3399
  "empty for no delay (action fires on first page view). Sets cookie."
@@ -3402,16 +3418,16 @@ msgstr ""
3402
  "oglasov. Prazno pomeni brez zakasnitve (akcija se sproži pri prvem ogledu "
3403
  "strani). Nastavi piškotek."
3404
 
3405
- #: settings.php:2432
3406
  msgctxt "Delay Action for x "
3407
  msgid "page views"
3408
  msgstr "ogledov strani"
3409
 
3410
- #: settings.php:2437
3411
  msgid "No Action Period"
3412
  msgstr "Obdobje Brez Akcije"
3413
 
3414
- #: settings.php:2440
3415
  msgid ""
3416
  "Number of days to supress action when ad blocking is detected. Leave empty "
3417
  "for no no-action period (action fires always after defined page view delay). "
@@ -3421,16 +3437,16 @@ msgstr ""
3421
  "pomeni brez zadržanja (akcija se sproži vedno po določeni zakasnitvi ogledov "
3422
  "strani). Nastavi piškotek."
3423
 
3424
- #: settings.php:2440
3425
  msgctxt "no action period"
3426
  msgid "days"
3427
  msgstr "dni"
3428
 
3429
- #: settings.php:2445
3430
  msgid "Custom Selectors"
3431
  msgstr "Selektorji Po Meri"
3432
 
3433
- #: settings.php:2448
3434
  msgid ""
3435
  "Comma seprarated list of selectors (.class, #id) used for additional ad "
3436
  "blocking detection. Invisible element or element with zero height means ad "
@@ -3440,15 +3456,15 @@ msgstr ""
3440
  "zaznavanje blokiranja oglasov. Neviden element ali element z ničelno višino "
3441
  "pomeni prisotnost blokiranja oglasov."
3442
 
3443
- #: settings.php:2460
3444
  msgid "Redirection Page"
3445
  msgstr "Stran za Preusmeritev"
3446
 
3447
- #: settings.php:2472
3448
  msgid "Custom Url"
3449
  msgstr "Url Po Meri"
3450
 
3451
- #: settings.php:2477
3452
  msgid ""
3453
  "Static page for redirection when ad blocking is detected. For other pages "
3454
  "select Custom url and set it below."
@@ -3456,27 +3472,27 @@ msgstr ""
3456
  "Statična stran za preusmeritev, ko je zaznano blokiranje oglasov. Za druge "
3457
  "strani izberite Url Po Meri in ga nastavite spodaj."
3458
 
3459
- #: settings.php:2486
3460
  msgid "Custom Redirection Url"
3461
  msgstr "Url za Preusmeritev Po Meri"
3462
 
3463
- #: settings.php:2498
3464
  msgid "Message HTML code"
3465
  msgstr "HTML koda sporočila"
3466
 
3467
- #: settings.php:2511
3468
  msgid "Preview message when ad blocking is detected"
3469
  msgstr "Predogled sporočila, ko je zaznano blokiranje oglasov"
3470
 
3471
- #: settings.php:2540
3472
  msgid "Prevent visitors from closing the warning message"
3473
  msgstr "Prepreči obiskovalcem, da zaprejo opozorilno sporočilo"
3474
 
3475
- #: settings.php:2540
3476
  msgid "Undismissible Message"
3477
  msgstr "Neodstranljivo Sporočilo"
3478
 
3479
- #: settings.php:2553
3480
  msgid ""
3481
  "Force showing admin toolbar for administrators when viewing site. Enable "
3482
  "this option when you are logged in as admin and you don't see admin toolbar."
@@ -3485,84 +3501,84 @@ msgstr ""
3485
  "možnost, če ste prijavljeni kot skrbnik, pa ne vidite orodne vrstice za "
3486
  "skrbnike."
3487
 
3488
- #: settings.php:2561
3489
  msgid "Disable header code (Header tab)"
3490
  msgstr "Onemogoči kodo v glavi (zavihek Glava)"
3491
 
3492
- #: settings.php:2565
3493
  msgid "Disable footer code (Footer tab)"
3494
  msgstr "Onemogoči kodo v nogi (zavihek Noga)"
3495
 
3496
  #. translators: %s: Ad Inserter
3497
- #: settings.php:2569
3498
  msgid "Disable %s JavaScript code"
3499
  msgstr "Onemogoči %s JavaScript kodo"
3500
 
3501
  #. translators: %s: Ad Inserter
3502
- #: settings.php:2573
3503
  msgid "Disable %s CSS code"
3504
  msgstr "Onemogoči %s CSS kodo"
3505
 
3506
- #: settings.php:2577
3507
  msgid ""
3508
  "Disable PHP code processing (in all blocks including header and footer code)"
3509
  msgstr ""
3510
  "Onemogoči procesiranje PHP kode (v vseh blokh vključno z glavo in nogo)"
3511
 
3512
- #: settings.php:2581
3513
  msgid "Disable insertion of all blocks"
3514
  msgstr "Onemogoči vstavljanje vseh blokov"
3515
 
3516
- #: settings.php:2585
3517
  msgid "Disable insertions"
3518
  msgstr "Onemogoči vstavljanja"
3519
 
3520
  #. translators: %s: Ad Inserter
3521
- #: settings.php:2597
3522
  msgid "%s CSS CODE"
3523
  msgstr "%s CSS KODA"
3524
 
3525
- #: settings.php:2600
3526
  msgid "HEADER CODE"
3527
  msgstr "KODA GLAVE"
3528
 
3529
  #. translators: %s: PHP tags
3530
- #: settings.php:2606
3531
  msgid "BLOCK PHP CODE"
3532
  msgstr "PHP KODA BLOKA"
3533
 
3534
  #. translators: %s: Ad Inserter
3535
- #: settings.php:2612
3536
  msgid "%s JS CODE"
3537
  msgstr "%s JS KODA"
3538
 
3539
- #: settings.php:2615
3540
  msgid "FOOTER CODE"
3541
  msgstr "KODA NOGE"
3542
 
3543
- #: settings.php:2624
3544
  msgid "Force showing admin toolbar when viewing site"
3545
  msgstr "Vsili prikaz orodne vrstice za skrbnike pri ogledu strani"
3546
 
3547
- #: settings.php:2631
3548
  msgid "Enable debugging functions in admin toolbar"
3549
  msgstr "Omogoči funkcije za razhroščevanje v orodni vrstici za skrbnike"
3550
 
3551
- #: settings.php:2633
3552
  msgid "Debugging functions in admin toolbar"
3553
  msgstr "Funkcije za razhroščevanje v orodni vrstici za skrbnike"
3554
 
3555
- #: settings.php:2640
3556
  msgid "Enable debugging functions in admin toolbar on mobile screens"
3557
  msgstr ""
3558
  "Omogoči funkcije za razhroščevanje v orodni vrstici za skrbnike na mobilnih "
3559
  "zaslonih"
3560
 
3561
- #: settings.php:2642
3562
  msgid "Debugging functions on mobile screens"
3563
  msgstr "Funkcije za razhroščevanje na mobilnih zaslonih"
3564
 
3565
- #: settings.php:2649
3566
  msgid ""
3567
  "Enable Debugger widget and code insertion debugging (blocks, positions, "
3568
  "tags, processing) by url parameters for non-logged in users. Enable this "
@@ -3577,11 +3593,11 @@ msgstr ""
3577
  "pomagali diagnosticirati težave. Za prijavljene skrbnike je razhroščevanje "
3578
  "vedno omogočeno."
3579
 
3580
- #: settings.php:2651
3581
  msgid "Remote debugging"
3582
  msgstr "Oddaljeno razhroščevanje"
3583
 
3584
- #: settings.php:2658
3585
  msgid ""
3586
  "Disable translation to see original texts for the settings and messages in "
3587
  "English"
@@ -3589,112 +3605,175 @@ msgstr ""
3589
  "Onemogoči prevod za prikaz prvotnih besedil nastavitev in sporočil v "
3590
  "angleščini"
3591
 
3592
- #: settings.php:2660
3593
  msgid "Disable translation"
3594
  msgstr "Onemogoči prevod"
3595
 
3596
- #: settings.php:2995
3597
  msgid "Available positions for current theme"
3598
  msgstr "Razpoložljivi položaji za trenutno temo"
3599
 
3600
- #: settings.php:2996
3601
  msgid "Error checking pages"
3602
  msgstr "Napaka pri preverjanju strani"
3603
 
3604
- #: settings.php:2999
3605
  msgid "Toggle theme checker for available positions for automatic insertion"
3606
  msgstr ""
3607
  "Preklopi preverjanje teme za razpoložljive položaje za samodejno vstavljanje"
3608
 
3609
- #: settings.php:2999
3610
  msgctxt "Button"
3611
  msgid "Check"
3612
  msgstr "Preveri"
3613
 
3614
- #: settings.php:3006
3615
  msgid "Position"
3616
  msgstr "Položaj"
3617
 
3618
- #: settings.php:3011
3619
  msgid "Archive pages"
3620
  msgstr "Strani arhiva"
3621
 
3622
- #: settings.php:3070
3623
  msgid ""
3624
  "Position not available because output buffering (tab [*]) is not enabled"
3625
  msgstr ""
3626
  "Položaj ni na razpolago ker predpomnjenje izhoda (zavihek [*]) ni omogočeno"
3627
 
3628
- #: settings.php:3073 strings.php:217
3629
  msgid "Position not checked yet"
3630
  msgstr "Položaj še ni bil preverjen"
3631
 
3632
- #: settings.php:3104
3633
  msgid "Toggle active/all blocks"
3634
  msgstr "Preklopi aktive/vse bloke"
3635
 
3636
- #: settings.php:3108 strings.php:204
3637
  msgid "Rearrange block order"
3638
  msgstr "Preuredi vrstni red blokov"
3639
 
3640
- #: settings.php:3113
3641
  msgid "Save new block order"
3642
  msgstr "Shrani vrstni red blokov"
3643
 
3644
- #: settings.php:3113
3645
  msgid "Save Changes"
3646
  msgstr "Sharani Nastavitve"
3647
 
3648
- #: settings.php:3138
3649
  msgid "Toggle active/all ad units"
3650
  msgstr "Preklopi aktivne/vse oglasne enote"
3651
 
3652
- #: settings.php:3142
3653
  msgid "Reload AdSense ad units"
3654
  msgstr "Ponovno naloži oglasne enote AdSense"
3655
 
3656
- #: settings.php:3146
3657
  msgid "Clear authorization to access AdSense account"
3658
  msgstr "Odstrani avtorizacijo za dostop do računa AdSense"
3659
 
3660
- #: settings.php:3150 settings.php:3515 settings.php:3582 strings.php:212
3661
  msgid "Google AdSense Homepage"
3662
  msgstr "Google AdSense Domača Stran"
3663
 
3664
- #: settings.php:3327
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3665
  msgid "Preview block"
3666
  msgstr "Predogled bloka"
3667
 
3668
- #: settings.php:3336
3669
  msgid "Insertion disabled"
3670
  msgstr "Vstavljanje onemogočeno"
3671
 
3672
- #: settings.php:3360
3673
  msgid "Widget positions"
3674
  msgstr "Položaji gradnikov"
3675
 
3676
- #: settings.php:3426
3677
  msgid "Ad unit"
3678
  msgstr "Enota"
3679
 
3680
- #: settings.php:3428
3681
  msgid "Slot ID"
3682
  msgstr "ID mesta"
3683
 
3684
- #: settings.php:3454
3685
  msgid "Copy AdSense code"
3686
  msgstr "Kopiraj kodo AdSense"
3687
 
3688
- #: settings.php:3457
3689
  msgid "Preview AdSense ad"
3690
  msgstr "Predogled oglasa AdSense"
3691
 
3692
- #: settings.php:3460
3693
  msgid "Get AdSense code"
3694
  msgstr "Pridobi kodo AdSense"
3695
 
3696
  #. translators: %s: HTML tags
3697
- #: settings.php:3492
3698
  msgid ""
3699
  "Please %s clear authorization %s with the button %s above and once again "
3700
  "authorize access to your AdSense account."
@@ -3702,16 +3781,16 @@ msgstr ""
3702
  "Prosimo, %s odstranite avtorizacijo %s z gumbom %s zgoraj in še enkrat "
3703
  "avtorizirajte dostop do vašega računa AdSense."
3704
 
3705
- #: settings.php:3511
3706
  msgid "AdSense Integration"
3707
  msgstr "Integracija AdSense"
3708
 
3709
- #: settings.php:3513
3710
  msgid "AdSense Integration - Step 2"
3711
  msgstr "Integracija AdSense - Korak 2"
3712
 
3713
  #. translators: %s: HTML tags
3714
- #: settings.php:3519
3715
  msgid ""
3716
  "Authorize %s to access your AdSense account. Click on the %s Get "
3717
  "Authorization Code %s button to open a new window where you can allow "
@@ -3724,7 +3803,7 @@ msgstr ""
3724
  "Avtoriziraj. %s"
3725
 
3726
  #. translators: %s: HTML tags
3727
- #: settings.php:3526
3728
  msgid ""
3729
  "If you get error, can't access ad units or would like to use own Google API "
3730
  "IDs click on the button %s Use own API IDs %s to enter Client ID and Client "
@@ -3735,7 +3814,7 @@ msgstr ""
3735
  "je %s za vnos podatkov ID Klienta in Skrivnost Klienta."
3736
 
3737
  #. translators: %s: HTML tags
3738
- #: settings.php:3528
3739
  msgid ""
3740
  "Now you can authorize %s to access your AdSense account. Click on the %s Get "
3741
  "Authorization Code %s button to open a new window where you can allow "
@@ -3748,7 +3827,7 @@ msgstr ""
3748
  "gumb %s Avtoriziraj. %s"
3749
 
3750
  #. translators: %s: HTML tags
3751
- #: settings.php:3535
3752
  msgid ""
3753
  "If you get error %s invalid client %s click on the button %s Clear and "
3754
  "return to Step 1 %s to re-enter Client ID and Client Secret."
@@ -3756,32 +3835,32 @@ msgstr ""
3756
  "Če se pojavi napaka %s neveljaven klient %s, kliknite na gumb %s Odstrani in "
3757
  "se vrni na Korak 1 %s za ponoven vnos ID klienta in Skrivnost Klienta."
3758
 
3759
- #: settings.php:3546
3760
  msgid "Get Authorization Code"
3761
  msgstr "Pridobi Avtoriazcijsko Kodo"
3762
 
3763
- #: settings.php:3549
3764
  msgid "Enter Authorization Code"
3765
  msgstr "Vnesi Avorizacijsko Kodo"
3766
 
3767
- #: settings.php:3559
3768
  msgid "Use own API IDs"
3769
  msgstr "Uporabi lastne API ID-je"
3770
 
3771
- #: settings.php:3561
3772
  msgid "Clear and return to Step 1"
3773
  msgstr "Odstrani in se vrni na Korak 1"
3774
 
3775
- #: settings.php:3565
3776
  msgid "Authorize"
3777
  msgstr "Avtoriziraj"
3778
 
3779
- #: settings.php:3581
3780
  msgid "AdSense Integration - Step 1"
3781
  msgstr "Integracija AdSense - Korak 1"
3782
 
3783
  #. translators: %s: Ad Inserter
3784
- #: settings.php:3585
3785
  msgid ""
3786
  "Here can %s list configured AdSense ad units and get code for AdSense ads. "
3787
  "To do this you need to authorize %s to access your AdSense account. The "
@@ -3794,12 +3873,12 @@ msgstr ""
3794
  "Klienta in Skrivnost Klienta."
3795
 
3796
  #. translators: %s: HTML tags
3797
- #: settings.php:3594
3798
  msgid "Go to %s Google APIs and Services console %s"
3799
  msgstr "Pojdite na %s konzolo Google API-ji in Storitve %s"
3800
 
3801
  #. translators: %1: Ad Inserter, 2, 3: HTML tags
3802
- #: settings.php:3595
3803
  msgid ""
3804
  "Create %1$s project - if the project and IDs are already created click on "
3805
  "the %2$s Credentials %3$s in the sidebar and go to step 16"
@@ -3808,7 +3887,7 @@ msgstr ""
3808
  "%2$s Pooblastila %3$s v stranski vrstici in pojdite na korak 16"
3809
 
3810
  #. translators: %s: HTML tags
3811
- #: settings.php:3596
3812
  msgid ""
3813
  "Click on project selection and then click on the %s NEW PROJECT %s button to "
3814
  "create a new project"
@@ -3817,12 +3896,12 @@ msgstr ""
3817
  "ustvaritev novega projekta"
3818
 
3819
  #. translators: 1: Ad Inserter, 2, 3: HTML tags
3820
- #: settings.php:3597
3821
  msgid "Enter %1$s for project name and click on the %2$s Create %3$s button"
3822
  msgstr "Vnesite %1$s za ime projekta in kliknite na gumb %2$s Ustvari %3$s"
3823
 
3824
  #. translators: %s: HTML tags
3825
- #: settings.php:3598
3826
  msgid ""
3827
  "Click on project selection, wait for the project to be created and then and "
3828
  "select %s as the current project"
@@ -3831,39 +3910,39 @@ msgstr ""
3831
  "izberite %s kot trenutni projekt"
3832
 
3833
  #. translators: %s: HTML tags
3834
- #: settings.php:3599
3835
  msgid "Click on %s ENABLE APIS AND SERVICES %s"
3836
  msgstr "Klinkite na %s OMOGOČI API-je IN STORITVE %s"
3837
 
3838
  #. translators: %s: HTML tags
3839
- #: settings.php:3600
3840
  msgid "Search for adsense and enable %s"
3841
  msgstr "Poiščite adsense in omogočite %s"
3842
 
3843
  #. translators: %s: HTML tags
3844
- #: settings.php:3601
3845
  msgid "Click on %s CREATE CREDENTIALS %s"
3846
  msgstr "Klinkite na %s USTVARI POOBLASTILA %s"
3847
 
3848
  #. translators: %s: HTML tags
3849
- #: settings.php:3602
3850
  msgid "For %s Where will you be calling the API from? %s select %s Other UI %s"
3851
  msgstr "Za %s Od kod boste klicali API-je? %s izberite %s Drugi UI %s"
3852
 
3853
  #. translators: %s: HTML tags
3854
- #: settings.php:3603
3855
  msgid "For %s What data will you be accessing? %s select %s User data %s"
3856
  msgstr ""
3857
  "Za %s Do katerih podatkov boste dostopali? %s izberite %s Uporabniški "
3858
  "podatki %s"
3859
 
3860
  #. translators: %s: HTML tags
3861
- #: settings.php:3604
3862
  msgid "Click on %s What credentials do I need? %s"
3863
  msgstr "Kliknite na %s Kakšna pooblastila potrebujem? %s"
3864
 
3865
  #. translators: %s: HTML tags
3866
- #: settings.php:3605
3867
  msgid ""
3868
  "Create an OAuth 2.0 client ID: For %s OAuth 2.0 client ID %s name enter %s "
3869
  "Ad Inserter client %s"
@@ -3872,7 +3951,7 @@ msgstr ""
3872
  "%s Ad Inserter klient %s"
3873
 
3874
  #. translators: %s: HTML tags
3875
- #: settings.php:3606
3876
  msgid ""
3877
  "Set up the OAuth 2.0 consent screen: For %s Product name shown to users %s "
3878
  "enter %s"
@@ -3881,17 +3960,17 @@ msgstr ""
3881
  "uporabnikom %s vnesite %s"
3882
 
3883
  #. translators: %s: HTML tags
3884
- #: settings.php:3607
3885
  msgid "Click on %s Continue %s"
3886
  msgstr "Kliknite na %s Nadaljuj %s"
3887
 
3888
  #. translators: %s: HTML tags
3889
- #: settings.php:3608
3890
  msgid "Click on %s Done %s"
3891
  msgstr "Kliknite na %s Končaj %s"
3892
 
3893
  #. translators: %s: HTML tags
3894
- #: settings.php:3609
3895
  msgid ""
3896
  "Click on %s Ad Inserter client %s to get %s Client ID %s and %s Client "
3897
  "secret %s"
@@ -3899,58 +3978,58 @@ msgstr ""
3899
  "Kliknite na %s Ad Inserter klient, %s da bi dobili %s ID klienta %s in %s "
3900
  "Skrivnost klienta %s"
3901
 
3902
- #: settings.php:3610
3903
  msgid "Copy them to the appropriate fields below"
3904
  msgstr "Skopirajte ju na ustrezni polji spodaj"
3905
 
3906
- #: settings.php:3616
3907
  msgid "Client ID"
3908
  msgstr "ID klienta"
3909
 
3910
- #: settings.php:3619
3911
  msgid "Enter Client ID"
3912
  msgstr "Vnesite ID klienta"
3913
 
3914
- #: settings.php:3624
3915
  msgid "Client secret"
3916
  msgstr "Skrivnost klienta"
3917
 
3918
- #: settings.php:3627
3919
  msgid "Enter Client secret"
3920
  msgstr "Vnesite Skrivnost klienta"
3921
 
3922
- #: settings.php:3637
3923
  msgid "Use default API IDs"
3924
  msgstr "Uporabi privzete API ID-je"
3925
 
3926
- #: settings.php:3642
3927
  msgid "Save"
3928
  msgstr "Shrani"
3929
 
3930
- #: settings.php:3918 settings.php:3931 settings.php:3944 settings.php:3959
3931
  msgid "Blank ad blocks? Looking for AdSense alternative?"
3932
  msgstr "Prazni oglasni bloki? Iščete alternativo za AdSense?"
3933
 
3934
- #: settings.php:3923 settings.php:3936 settings.php:3949 settings.php:3964
3935
- #: settings.php:4133 settings.php:4137 settings.php:4139 settings.php:4155
3936
- #: settings.php:4166 settings.php:4169 settings.php:4175 settings.php:4187
3937
  msgid "Looking for AdSense alternative?"
3938
  msgstr "Iščete alternativo za AdSense?"
3939
 
3940
- #: settings.php:3975
3941
  msgid "Try Infolinks Ads with Adsense or Media.net ads"
3942
  msgstr "Poskusite oglase Infolinks z oglasi AdSense ali Media.net"
3943
 
3944
- #: settings.php:3980 settings.php:4135 settings.php:4147 settings.php:4172
3945
- #: settings.php:4195
3946
  msgid "Use Infolinks ads with Adsense to earn more"
3947
  msgstr "Uporabite oglase Infolinks z AdSense za večji zaslužek"
3948
 
3949
- #: settings.php:3999 settings.php:4037
3950
  msgid "Support plugin development"
3951
  msgstr "Podprite razvoj vtičnika"
3952
 
3953
- #: settings.php:4000 settings.php:4038
3954
  msgid ""
3955
  "If you like Ad Inserter and have a moment, please help me spread the word by "
3956
  "reviewing the plugin on WordPres"
@@ -3958,12 +4037,12 @@ msgstr ""
3958
  "Če vam je Ad Inserter všeč in imate trenutek časa, mi prosim pomagajte "
3959
  "razširiti novico z oceno vtičnika na WordPress-u"
3960
 
3961
- #: settings.php:4000
3962
  msgctxt "Review ad Inserter"
3963
  msgid "Review"
3964
  msgstr "Oceni"
3965
 
3966
- #: settings.php:4001
3967
  msgid ""
3968
  "Support free Ad Inserter development. If you are making money with Ad "
3969
  "Inserter consider donating some small amount. Even 1 dollar counts. Thank "
@@ -3972,16 +4051,16 @@ msgstr ""
3972
  "Podprite razvoj brezplačnega Ad Inserter-ja. Če služite denar z Ad Inserter-"
3973
  "jem razmislite o donaciji manjšega zneska. Tudi 1 evro šteje. Hvala!"
3974
 
3975
- #: settings.php:4001
3976
  msgid "Donate"
3977
  msgstr "Donirajte"
3978
 
3979
- #: settings.php:4008 settings.php:4053
3980
  msgid "Average rating of the plugin - Thank you!"
3981
  msgstr "Povprečna ocena vtičnika - Hvala!"
3982
 
3983
  #. translators: %s: Ad Inserter, HTML tags
3984
- #: settings.php:4019
3985
  msgid ""
3986
  "You've been using %s for a while now, and I hope you're happy with it. "
3987
  "Positive %s reviews %s are a great way to show your appreciation for my "
@@ -3995,24 +4074,24 @@ msgstr ""
3995
  "vzpodbuda za odpravo hroščev in dodajanje novih funkcij za boljšo "
3996
  "monetizacijo vašega spletnega mesta. %s Hvala!"
3997
 
3998
- #: settings.php:4038
3999
  msgid "Review"
4000
  msgstr "Ocena"
4001
 
4002
- #: settings.php:4042
4003
  msgid "Ad Inserter on Twitter"
4004
  msgstr "Ad Inserter na Twitter-ju"
4005
 
4006
- #: settings.php:4043
4007
  msgid "Ad Inserter on Facebook"
4008
  msgstr "Ad Inserter na Facebook-u"
4009
 
4010
- #: settings.php:4046
4011
  msgid "Follow Ad Inserter"
4012
  msgstr "Sledi Ad Inserter-ju"
4013
 
4014
  #. translators: %s: HTML tags
4015
- #: settings.php:4073
4016
  msgid ""
4017
  "Need help with %s settings? %s Check %s Quick Start, %s %s Code Editing %s "
4018
  "and %s Common Settings %s pages"
@@ -4021,7 +4100,7 @@ msgstr ""
4021
  "Urejanje Kode, %s %s Pogoste Nastavitve %s"
4022
 
4023
  #. translators: %s: HTML tags
4024
- #: settings.php:4085
4025
  msgid ""
4026
  "%s New to %s AdSense? %s %s %s Connect your site %s - Advanced %s AdSense "
4027
  "code: %s %s In-feed ads, %s %s Auto ads, %s %s AMP ads %s"
@@ -4031,7 +4110,7 @@ msgstr ""
4031
  "%s"
4032
 
4033
  #. translators: %s: HTML tags
4034
- #: settings.php:4104
4035
  msgid ""
4036
  "Ads are not showing? Check %s troubleshooting guide %s to find out how to "
4037
  "diagnose and fix the problem."
@@ -4040,7 +4119,7 @@ msgstr ""
4040
  "navodili za diagnozo in rešitvami za težave."
4041
 
4042
  #. translators: %s: HTML tags
4043
- #: settings.php:4108
4044
  msgid ""
4045
  "If you need any kind of help or support, please do not hesitate to open a "
4046
  "thread on the %s support forum. %s"
@@ -4048,44 +4127,44 @@ msgstr ""
4048
  "Če potrebujete kakršno koli pomoč ali podporo ne oklevajte in odprite novo "
4049
  "nit na %s podpornem forumu. %s"
4050
 
4051
- #: settings.php:4151 settings.php:4191
4052
  msgid "A/B testing - Track ad impressions and clicks"
4053
  msgstr "A/B testiranje - Sledi prikazom in klikom"
4054
 
4055
- #: settings.php:4159 settings.php:4183
4056
  msgid "Code preview with visual CSS editor"
4057
  msgstr "Predogled kode z vizualnim CSS urejevalnikom"
4058
 
4059
- #: settings.php:4201
4060
  msgid "Looking for Pro Ad Management plugin?"
4061
  msgstr "Iščete Pro vtičnik za Upravljanje z Oglasi?"
4062
 
4063
- #: settings.php:4202
4064
  msgid "To Optimally Monetize your WordPress website?"
4065
  msgstr "Za optimalno monetizacijo vašega WordPress spletnega mesta?"
4066
 
4067
  #. translators: %s HTML tags
4068
- #: settings.php:4205
4069
  msgid "%s AdSense Integration %s"
4070
  msgstr "%s Integracija AdSense %s"
4071
 
4072
  #. translators: %s HTML tags
4073
- #: settings.php:4206
4074
  msgid "Syntax highlighting %s editor %s"
4075
  msgstr "%s Urejevalnik %s s poudarjanjem sintakse"
4076
 
4077
  #. translators: %s HTML tags
4078
- #: settings.php:4207
4079
  msgid "%s Code preview %s with visual CSS editor"
4080
  msgstr "%s Predogled kode %s z vizualnim CSS urejevalnikom"
4081
 
4082
  #. translators: %s HTML tags
4083
- #: settings.php:4208
4084
  msgid "Simple user interface - all settings on a single page"
4085
  msgstr "Preprost uporabniški vmesnik - vse nastavitve na eni strani"
4086
 
4087
  #. translators: %s HTML tags
4088
- #: settings.php:4209
4089
  msgid ""
4090
  "%s Automatic insertion %s before or after post / content / %s paragraph %s / "
4091
  "image / excerpt"
@@ -4094,27 +4173,27 @@ msgstr ""
4094
  "%s / sliko / izvlečkom"
4095
 
4096
  #. translators: %s HTML tags
4097
- #: settings.php:4210
4098
  msgid "%s Automatic insertion %s between posts on blog pages"
4099
  msgstr "%s Samodejno vstavljanje %s med prispevki na straneh bloga"
4100
 
4101
  #. translators: %s HTML tags
4102
- #: settings.php:4211
4103
  msgid "%s Automatic insertion %s before, between and after comments"
4104
  msgstr "%s Samodejno vstavljanje %s pred, med in po kometarjih"
4105
 
4106
  #. translators: %s HTML tags
4107
- #: settings.php:4212
4108
  msgid "%s Automatic insertion %s after %s or before %s tag"
4109
  msgstr "%s Samodejno vstavljanje %s za %s ali pred %s začko"
4110
 
4111
  #. translators: %s HTML tags
4112
- #: settings.php:4213
4113
  msgid "Automatic insertion at %s custom hook positions %s"
4114
  msgstr "Samodejno vstavljanje na %s položajih ročic po meri %s"
4115
 
4116
  #. translators: %s HTML tags
4117
- #: settings.php:4214
4118
  msgid ""
4119
  "Insertion %s before or after any HTML element on the page %s (using CSS "
4120
  "selectors)"
@@ -4123,17 +4202,17 @@ msgstr ""
4123
  "selektorjev)"
4124
 
4125
  #. translators: %s HTML tags
4126
- #: settings.php:4215
4127
  msgid "%s Insertion exceptions %s for individual posts and pages"
4128
  msgstr "%s Izjeme vstavljanja %s za individualne prispevke in strani"
4129
 
4130
  #. translators: %s HTML tags
4131
- #: settings.php:4216
4132
  msgid "%s Manual insertion: %s widgets, shortcodes, PHP function call"
4133
  msgstr "%s Ročno vstavljanje: %s gradniki, kratke kode in klic PHP funkcije"
4134
 
4135
  #. translators: %s HTML tags
4136
- #: settings.php:4217
4137
  msgid ""
4138
  "%s Sticky ads %s with optional close button (ads stay fixed when the page "
4139
  "scrolls)"
@@ -4142,19 +4221,19 @@ msgstr ""
4142
  "se stran pomika)"
4143
 
4144
  #. translators: %s HTML tags
4145
- #: settings.php:4218
4146
  msgid "%s Sticky sidebar ads %s (stick to the screen or to the content)"
4147
  msgstr ""
4148
  "%s Lepljivi oglasi v stranski vrstici %s (lepljivi na zaslon ali vsebino)"
4149
 
4150
  #. translators: %s HTML tags
4151
- #: settings.php:4219
4152
  msgid "%s Sticky ad animations %s (fade, slide, turn, flip, zoom)"
4153
  msgstr ""
4154
  "%s Animacije lepljivih oglasov %s (uveni, drsaj, obrni, prekucni, približaj)"
4155
 
4156
  #. translators: %s HTML tags
4157
- #: settings.php:4220
4158
  msgid ""
4159
  "%s Sticky ad trigger %s (page scroll in %% or px, HTML element becomes "
4160
  "visible)"
@@ -4163,7 +4242,7 @@ msgstr ""
4163
  "postane viden)"
4164
 
4165
  #. translators: %s HTML tags
4166
- #: settings.php:4221
4167
  msgid ""
4168
  "%s Sticky (fixed) widgets %s (sidebar does not move when the page scrolls)"
4169
  msgstr ""
@@ -4171,12 +4250,12 @@ msgstr ""
4171
  "strani)"
4172
 
4173
  #. translators: %s HTML tags
4174
- #: settings.php:4222
4175
  msgid "Block %s alignment and style %s customizations"
4176
  msgstr "%s Poravnave in slogi %s bloka po meri"
4177
 
4178
  #. translators: %s HTML tags
4179
- #: settings.php:4223
4180
  msgid ""
4181
  "%s Clearance %s options to avoid insertion near images or headers (AdSense "
4182
  "TOS)"
@@ -4184,7 +4263,7 @@ msgstr ""
4184
  "%s Izogibanje %s vstavljanja oglasov zraven slik ali naslovov (AdSense TOS)"
4185
 
4186
  #. translators: %s HTML tags
4187
- #: settings.php:4224
4188
  msgid ""
4189
  "Options to %s disable insertion %s on Ajax calls, 404 error pages or in RSS "
4190
  "feeds"
@@ -4193,12 +4272,12 @@ msgstr ""
4193
  "virih"
4194
 
4195
  #. translators: %s HTML tags
4196
- #: settings.php:4225
4197
  msgid "%s Ad rotation %s (works also with caching)"
4198
  msgstr "%s Rotacija oglasov %s (deluje tudi s predpomnjenjem)"
4199
 
4200
  #. translators: %s HTML tags
4201
- #: settings.php:4226
4202
  msgid ""
4203
  "Ad impression and click %s tracking %s (works also with Javascript ads like "
4204
  "AdSense)"
@@ -4207,66 +4286,66 @@ msgstr ""
4207
  "AdSense)"
4208
 
4209
  #. translators: %s HTML tags
4210
- #: settings.php:4227
4211
  msgid "Support for %s A/B testing %s"
4212
  msgstr "Podpora za %s A/B testiranje %s"
4213
 
4214
  #. translators: %s HTML tags
4215
- #: settings.php:4228
4216
  msgid "Support for %s lazy loading %s"
4217
  msgstr "Podpora za %s leno nalaganje %s"
4218
 
4219
  #. translators: %s HTML tags
4220
- #: settings.php:4229
4221
  msgid "Support for ads on %s AMP pages %s"
4222
  msgstr "Podpora za oglase na %s AMP straneh %s"
4223
 
4224
  #. translators: %s HTML tags
4225
- #: settings.php:4230
4226
  msgid "Support for contextual %s Amazon Native Shopping Ads %s (responsive)"
4227
  msgstr "Podpora za kontekstualne %s Amazon Native Shopping Ads %s (odzivni)"
4228
 
4229
  #. translators: %s HTML tags
4230
- #: settings.php:4231
4231
  msgid "Custom CSS class name for wrapping divs to avoid ad blockers"
4232
  msgstr ""
4233
  "Ime CSS razreda za div za ovijanje po meri za izogibanje blokiranju oglasov"
4234
 
4235
  #. translators: %s HTML tags
4236
- #: settings.php:4232
4237
  msgid "PHP code processing"
4238
  msgstr "Procesiranje PHP kode"
4239
 
4240
  #. translators: %s HTML tags
4241
- #: settings.php:4233
4242
  msgid "%s Banner %s code generator"
4243
  msgstr "Generator kode za %s pasice %s"
4244
 
4245
  #. translators: %s HTML tags
4246
- #: settings.php:4234
4247
  msgid "Support for %s header and footer %s code"
4248
  msgstr "Podpora za kodo v %s glavi in nogi %s"
4249
 
4250
  #. translators: %s HTML tags
4251
- #: settings.php:4235
4252
  msgid "Support for Google Analytics, Matomo or any other web analytics code"
4253
  msgstr ""
4254
  "Podpora za Google Analytics, Matomo ali katerokoli drugo spletno analitiko"
4255
 
4256
  #. translators: %s HTML tags
4257
- #: settings.php:4236
4258
  msgid "Desktop, tablet and phone server-side %s device detection %s"
4259
  msgstr ""
4260
  "%s Zaznava namizne, tablične in telefonske naprave %s na strani strani "
4261
  "strežnika"
4262
 
4263
  #. translators: %s HTML tags
4264
- #: settings.php:4237
4265
  msgid "Client-side %s mobile device detection %s (works with caching)"
4266
  msgstr "%s Zaznava mobilne naprave %s (deluje s predpomnjenjem)"
4267
 
4268
  #. translators: %s HTML tags
4269
- #: settings.php:4238
4270
  msgid ""
4271
  "%s Ad blocking detection %s - popup message, ad replacement, content "
4272
  "protection"
@@ -4275,12 +4354,12 @@ msgstr ""
4275
  "vsebine"
4276
 
4277
  #. translators: %s HTML tags
4278
- #: settings.php:4239
4279
  msgid "%s Ad blocking statistics %s"
4280
  msgstr "%s Statistika blokiranja oglasov %s"
4281
 
4282
  #. translators: %s HTML tags
4283
- #: settings.php:4240
4284
  msgid ""
4285
  "%s Black/White-list %s categories, tags, taxonomies, users, post IDs, urls, "
4286
  "referers"
@@ -4288,75 +4367,75 @@ msgstr ""
4288
  "%s Črni/Beli seznam %s kategorij, oznak, taksonomij, uporabnikov, url-jev"
4289
 
4290
  #. translators: %s HTML tags
4291
- #: settings.php:4241
4292
  msgid ""
4293
  "%s Black/White-list %s IP addresses or countries (works also with caching)"
4294
  msgstr ""
4295
  "%s Črni/Beli seznam %s IP naslovov ali držav (deluje tudi s predpomnjenjem)"
4296
 
4297
  #. translators: %s HTML tags
4298
- #: settings.php:4242
4299
  msgid "%s Multisite options %s to limit settings on the sites"
4300
  msgstr "%s Multisite možnosti %s za omejitev nastavitev na spletiščih"
4301
 
4302
  #. translators: %s HTML tags
4303
- #: settings.php:4243
4304
  msgid "%s Import/Export %s block or plugin settings"
4305
  msgstr "%s Uvoz/Izvoz %s nastavitve bloka ali vtičnika"
4306
 
4307
  #. translators: %s HTML tags
4308
- #: settings.php:4244
4309
  msgid "%s Insertion scheduling %s with fallback option"
4310
  msgstr "%s Urnik vstavljanja %s z možnostjo rezerve"
4311
 
4312
  #. translators: %s HTML tags
4313
- #: settings.php:4245
4314
  msgid "Country-level %s GEO targeting %s (works also with caching)"
4315
  msgstr "%s GEO ciljanje na ravni države %s (deluje tudi s predpomnjenjem)"
4316
 
4317
  #. translators: %s HTML tags
4318
- #: settings.php:4246
4319
  msgid "Simple troubleshooting with many %s debugging functions %s"
4320
  msgstr ""
4321
  "Preprosto odpravljanje napak z veliko %s funkcijami za razhroščevanje %s"
4322
 
4323
  #. translators: %s HTML tags
4324
- #: settings.php:4247
4325
  msgid "%s Visualization %s of inserted blocks or ads for easier placement"
4326
  msgstr ""
4327
  "%s Vizualizacija %s vstavljenih blokov ali oglasov za enostavno umeščanje"
4328
 
4329
  #. translators: %s HTML tags
4330
- #: settings.php:4248
4331
  msgid "%s Visualization %s of available positions for automatic ad insertion"
4332
  msgstr ""
4333
  "%s Vizualizacija %s razpoložljivih položajev za samodejno vstavljanje oglasov"
4334
 
4335
  #. translators: %s HTML tags
4336
- #: settings.php:4249
4337
  msgid ""
4338
  "%s Visualization %s of HTML tags for easier ad placement between paragraphs"
4339
  msgstr ""
4340
  "%s Vizualizacija %s HTML značk za enostavno vstavljanje oglasov med odstavki"
4341
 
4342
  #. translators: %s HTML tags
4343
- #: settings.php:4250
4344
  msgid "%s Clipboard support %s to easily copy blocks or settings"
4345
  msgstr ""
4346
  "%s Podpora za odložišče %s za enostavno kopiranje blokov ali nastavitev"
4347
 
4348
  #. translators: %s HTML tags
4349
- #: settings.php:4251
4350
  msgid "No ads on the settings page"
4351
  msgstr "Stran z nastavitvami brez oglasov"
4352
 
4353
  #. translators: %s HTML tags
4354
- #: settings.php:4252
4355
  msgid "Premium support via email"
4356
  msgstr "Vrhunska podpora prek elektronske pošte"
4357
 
4358
  #. translators: %s HTML tags
4359
- #: settings.php:4255
4360
  msgid ""
4361
  "Ad Inserter Pro is a complete all-in-one ad management plugin for WordPress "
4362
  "website with many advertising features to automatically insert adverts on "
@@ -4383,82 +4462,82 @@ msgstr ""
4383
  "bodo ohranile)."
4384
 
4385
  #. translators: %s HTML tags
4386
- #: settings.php:4268
4387
  msgid "Looking for %s Pro Ad Management plugin? %s"
4388
  msgstr "Iščete Pro vtičnik za %s Upravljanje z Oglasi? %s"
4389
 
4390
  #. translators: %s HTML tags
4391
- #: settings.php:4273
4392
  msgid "Ads between posts"
4393
  msgstr "Oglasi med prispevki"
4394
 
4395
  #. translators: %s HTML tags
4396
- #: settings.php:4274
4397
  msgid "Ads between comments"
4398
  msgstr "Oglasi med komentarji"
4399
 
4400
  #. translators: %s HTML tags
4401
- #: settings.php:4275
4402
  msgid "Support via email"
4403
  msgstr "Podpora prek elektronske pošte"
4404
 
4405
  #. translators: %s HTML tags
4406
- #: settings.php:4281
4407
  msgid "%s Sticky positions %s"
4408
  msgstr "%s Lepljivi položaji %s"
4409
 
4410
  #. translators: %s HTML tags
4411
- #: settings.php:4282
4412
  msgid "%s Limit insertions %s"
4413
  msgstr "%s Omeji vstavljanja %s"
4414
 
4415
  #. translators: %s HTML tags
4416
- #: settings.php:4283
4417
  msgid "%s Clearance %s options"
4418
  msgstr "Možnosti %s izogibanja %s"
4419
 
4420
  #. translators: %s HTML tags
4421
- #: settings.php:4289
4422
  msgid "Ad rotation"
4423
  msgstr "Vrtenje oglasov"
4424
 
4425
  #. translators: %s HTML tags
4426
- #: settings.php:4290
4427
  msgid "%s A/B testing %s"
4428
  msgstr "%s A/B testiranje %s"
4429
 
4430
  #. translators: %s HTML tags
4431
- #: settings.php:4291
4432
  msgid "%s Ad tracking %s"
4433
  msgstr "%s Sledenje oglasom %s"
4434
 
4435
  #. translators: %s HTML tags
4436
- #: settings.php:4297
4437
  msgid "Support for %s AMP pages %s"
4438
  msgstr "Podpora za %s AMP strani %s"
4439
 
4440
  #. translators: %s HTML tags
4441
- #: settings.php:4298
4442
  msgid "%s Ad blocking detection %s"
4443
  msgstr "%s Zaznavanje blokiranja oglasov %s"
4444
 
4445
  #. translators: %s HTML tags
4446
- #: settings.php:4299
4447
  msgid "%s Mobile device detection %s"
4448
  msgstr "%s Zaznavanje mobilne naprave %s"
4449
 
4450
  #. translators: %s HTML tags
4451
- #: settings.php:4306
4452
  msgid "64 code blocks"
4453
  msgstr "64 kodnih blokov"
4454
 
4455
  #. translators: %s HTML tags
4456
- #: settings.php:4307
4457
  msgid "%s GEO targeting %s"
4458
  msgstr "%s GEO ciljanje %s"
4459
 
4460
  #. translators: %s HTML tags
4461
- #: settings.php:4308
4462
  msgid "%s Scheduling %s"
4463
  msgstr "%s Urnik %s"
4464
 
@@ -5112,10 +5191,6 @@ msgstr[1] "dni"
5112
  msgstr[2] "dni"
5113
  msgstr[3] "dni"
5114
 
5115
- #: strings.php:197
5116
- msgid "Warning"
5117
- msgstr "Opozorilo"
5118
-
5119
  #: strings.php:198
5120
  msgid "Delete"
5121
  msgstr "Pobriši"
4
  msgstr ""
5
  "Project-Id-Version: Ad Inserter 2.4.2\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/ad-inserter\n"
7
+ "POT-Creation-Date: 2019-03-19 21:11:59+00:00\n"
8
+ "PO-Revision-Date: 2019-03-19 22:12+0100\n"
9
  "Last-Translator: Igor Funa\n"
10
  "Language-Team: \n"
11
  "Language: sl_SI\n"
16
  "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100>=3 && n"
17
  "%100<=4 ? 2 : 3);\n"
18
 
19
+ #: ad-inserter.php:324
20
  msgctxt "Menu item"
21
  msgid "Debugging DEMO"
22
  msgstr "DEMO Razhroščevanje"
23
 
24
+ #: ad-inserter.php:340
25
  msgctxt "Menu item"
26
  msgid "Label Blocks"
27
  msgstr "Označi bloke"
28
 
29
+ #: ad-inserter.php:347
30
  msgctxt "Menu item"
31
  msgid "Show Positions"
32
  msgstr "Pokaži položaje"
33
 
34
+ #: ad-inserter.php:418
35
  msgctxt "Menu item"
36
  msgid "Show HTML Tags"
37
  msgstr "Pokaži HTML značke"
38
 
39
+ #: ad-inserter.php:425
40
  msgctxt "Menu item"
41
  msgid "Disable Insertion"
42
  msgstr "Onemogoči vstavljanje"
43
 
44
+ #: ad-inserter.php:434
45
  msgctxt "Menu item"
46
  msgid "Ad Blocking Status"
47
  msgstr "Status blokiranja oglasov"
48
 
49
+ #: ad-inserter.php:441
50
  msgctxt "Menu item"
51
  msgid "Simulate Ad Blocking"
52
  msgstr "Simuliraj blokiranje oglasov"
53
 
54
+ #: ad-inserter.php:451
55
  msgctxt "Menu item"
56
  msgid "Log Processing"
57
  msgstr "Beleži procesiranje"
58
 
59
  #. translators: Debugging position name Before HTML element
60
+ #: ad-inserter.php:1030
61
  msgid "Before"
62
  msgstr "Pred"
63
 
64
  #. translators: Debugging position name After HTML element
65
+ #: ad-inserter.php:1035
66
  msgid "After"
67
  msgstr "Za"
68
 
69
  #. translators: Debugging position name Prepend content of HTML element (before
70
  #. the content of the HTML element)
71
+ #: ad-inserter.php:1040 strings.php:98
72
  msgid "Prepend content"
73
  msgstr "Dodaj pred vsebino"
74
 
75
  #. translators: Debugging position name Append content of HTML element (after
76
  #. the content of the HTML element)
77
+ #: ad-inserter.php:1045 strings.php:99
78
  msgid "Append content"
79
  msgstr "Dodaj za vsebino"
80
 
81
  #. translators: Debugging position name Replace content of HTML element
82
+ #: ad-inserter.php:1050 strings.php:100
83
  msgid "Replace content"
84
  msgstr "Nadomesti vsebino"
85
 
86
  #. translators: Debugging position name Replace HTML element
87
+ #: ad-inserter.php:1055 strings.php:150
88
  msgid "Replace"
89
  msgstr "Nadomesti"
90
 
91
  #. translators: Debugging message when output buffering is enabled
92
+ #: ad-inserter.php:1102
93
  msgid "OUTPUT BUFFERING"
94
  msgstr "PREDPOMNJENJE IZHODA"
95
 
96
  #. translators: Debugging position
97
+ #: ad-inserter.php:1106
98
  msgid "Above Header"
99
  msgstr "Nad Glavo"
100
 
101
+ #: ad-inserter.php:1315
102
  msgctxt "Menu item"
103
  msgid "Log In"
104
  msgstr "Prijava"
105
 
106
  #. translators: %s: Ad Inserter
107
+ #: ad-inserter.php:1590 ad-inserter.php:2453
108
  msgid "%s Settings"
109
  msgstr "%s Nastavitve"
110
 
111
  #. translators: AD BLOCKING DETECTED, PAGE VIEWS: n - NO ACTION
112
+ #: ad-inserter.php:2024
113
  msgid "AD BLOCKING DETECTED, PAGE VIEWS"
114
  msgstr "ZAZNANO BLOKIRANJE OGLASOV, OGLEDI STRANI"
115
 
116
+ #: ad-inserter.php:2024
117
  msgid "NO ACTION"
118
  msgstr "NI AKCIJE"
119
 
120
+ #: ad-inserter.php:2025
121
  msgid "AD BLOCKING DETECTED, COOKIE DETECTED - NO ACTION"
122
  msgstr "ZAZNANO BLOKIRANJE OGLASOV, ZAZNAN PIŠKOTEK, NI AKCIJE"
123
 
124
+ #: ad-inserter.php:2026
125
  msgid "AD BLOCKING DETECTED - ACTION"
126
  msgstr "ZAZNANO BLOKIRANJE OGLASOV - AKCIJA"
127
 
128
+ #: ad-inserter.php:2027
129
  msgid "AD BLOCKING NOT DETECTED"
130
  msgstr "BLOKIRANJE OGLASOV NI ZAZNANO"
131
 
132
+ #: ad-inserter.php:2028
133
  msgid "AD BLOCKING DETECTION COOKIES DELETED"
134
  msgstr "PIŠKOTKI ZA ZAZNAVANJE BLOKIRANJA OGLASOV POBRISANI"
135
 
136
+ #: ad-inserter.php:2029
137
  msgid "AD BLOCKING DETECTED - NO ACTION"
138
  msgstr "ZAZNANO BLOKIRANJE OGLASOV - NI AKCIJE"
139
 
140
  #. Translators: 1: number of blocks, 2: Ad Inserter
141
+ #: ad-inserter.php:2224
142
  msgid "Hey, you are now using %1$s %2$s block."
143
  msgid_plural "Hey, you are now using %1$s %2$s blocks."
144
  msgstr[0] "Hej, trenutno uporabljate %1$s %2$s blok."
146
  msgstr[2] "Hej, trenutno uporabljate %1$s %2$s bloke."
147
  msgstr[3] "Hej, trenutno uporabljate %1$s %2$s blokov."
148
 
149
+ #: ad-inserter.php:2225 includes/functions.php:1494
150
  msgid "No, thank you."
151
  msgstr "Ne, hvala."
152
 
153
  #. Translators: %s: Ad Inserter
154
+ #: ad-inserter.php:2228
155
  msgid ""
156
  "Hey, you've been using %s for a while now, and I hope you're happy with it."
157
  msgstr "Hej, %s uporabljate že kar nekaj časa. Upam, da ste zadovoljni z njim."
158
 
159
+ #: ad-inserter.php:2229 includes/functions.php:1497
160
  msgid "Not now, maybe later."
161
  msgstr "Ne zdaj, mogoče kasneje."
162
 
163
+ #: ad-inserter.php:2239
164
  msgid ""
165
  "I would really appreciate it if you could give the plugin a 5-star rating on "
166
  "WordPres."
168
  "Res bi bili vesel, če bi lahko na WordPress-u vtičnik ocenili s 5-imi "
169
  "zvezicami."
170
 
171
+ #: ad-inserter.php:2241
172
  msgid ""
173
  "Positive reviews are a great incentive to fix bugs and to add new features "
174
  "for better monetization of your website. Thank you, Igor"
177
  "funkcij za boljšo monetizacijo vašega spletnega mesta. Hvala, Igor"
178
 
179
  #. translators: %s: Ad Inserter
180
+ #: ad-inserter.php:2247
181
  msgid "Rate %s"
182
  msgstr "Ocenite %s"
183
 
184
+ #: ad-inserter.php:2252
185
  msgid "I already did."
186
  msgstr "Sem že."
187
 
188
+ #: ad-inserter.php:2266
189
  msgctxt "Menu item"
190
  msgid "Settings"
191
  msgstr "Nastavitve"
192
 
193
  #. translators: %s: Ad Inserter
194
+ #: ad-inserter.php:2340
195
  msgctxt "Meta box name"
196
  msgid "%s Individual Exceptions"
197
  msgstr "Posamezne Izjeme za %s"
198
 
199
+ #: ad-inserter.php:2369 ad-inserter.php:8000 class.php:1967
200
  #: includes/preview.php:1966 includes/preview.php:2010
201
+ #: includes/preview.php:2047 settings.php:3639 strings.php:3
202
  msgid "Block"
203
  msgstr "Blok"
204
 
205
+ #: ad-inserter.php:2370 settings.php:3640 settings.php:3714
206
  msgid "Name"
207
  msgstr "Ime"
208
 
209
+ #: ad-inserter.php:2371 settings.php:3642
210
  msgid "Automatic insertion"
211
  msgstr "Samodejno vstavljanje"
212
 
213
+ #: ad-inserter.php:2374
214
  msgid "Default insertion for pages"
215
  msgstr "Privzeto vstavljanje za strani"
216
 
217
+ #: ad-inserter.php:2375
218
  msgid "Default insertion for posts"
219
  msgstr "Privzeto vstavljanje za prispevke"
220
 
221
  #. translators: For this post or page
222
+ #: ad-inserter.php:2378
223
  msgctxt "Page"
224
  msgid "For this"
225
  msgstr "Za to"
226
 
227
+ #: ad-inserter.php:2379
228
  msgctxt "Post"
229
  msgid "For this"
230
  msgstr "Za ta"
231
 
232
+ #: ad-inserter.php:2387
233
  msgctxt "Enabled/disabled on all"
234
  msgid "pages"
235
  msgstr "straneh"
236
 
237
+ #: ad-inserter.php:2388
238
  msgctxt "Default insertion for"
239
  msgid "pages"
240
  msgstr "strani"
241
 
242
+ #: ad-inserter.php:2392
243
  msgctxt "Enabled/disabled on all"
244
  msgid "posts"
245
  msgstr "prispevkih"
246
 
247
+ #: ad-inserter.php:2393
248
  msgctxt "Default insertion for"
249
  msgid "posts"
250
  msgstr "prispevke"
251
 
252
+ #: ad-inserter.php:2412 ad-inserter.php:2425 strings.php:156
253
  msgid "Enabled"
254
  msgstr "Omogočeno"
255
 
256
  #. translators: Menu items
257
+ #: ad-inserter.php:2412 ad-inserter.php:2425 includes/functions.php:2122
258
  #: strings.php:16
259
  msgid "Disabled"
260
  msgstr "Onemogočeno"
261
 
262
  #. translators: Enabled on all pages or posts
263
+ #: ad-inserter.php:2415
264
  msgid "Enabled on all"
265
  msgstr "Omogočeno na vseh"
266
 
267
  #. translators: Disabled on all pages or posts
268
+ #: ad-inserter.php:2417
269
  msgid "Disabled on all"
270
  msgstr "Onemogočeno na vseh"
271
 
272
  #. translators: No individual exceptions enabled for pages or posts
273
+ #: ad-inserter.php:2445
274
  msgid "No individual exceptions enabled for"
275
  msgstr "Ni omogočenih posameznih izjem za"
276
 
277
  #. translators: 1: pages or posts, 2: Ad Inserter Settings (page)
278
+ #: ad-inserter.php:2450
279
  msgid ""
280
  "Default insertion for %1$s can be configured for each block on %2$s page - "
281
  "selection next to <strong>Posts</strong> / <strong>Static pages</strong> "
285
  "izbira poleg kljukice za vklop <strong>Prispevki</strong> / <strong>Statične "
286
  "strani</strong>.<br />"
287
 
288
+ #: ad-inserter.php:2455
289
  msgid ""
290
  "Default value is <strong>blank</strong> and means no individual exceptions "
291
  "(even if previously defined here).<br />"
293
  "Privzeta vrednost je <strong>prazno</strong> in pomeni brez posameznih izjem "
294
  "(tudi, če so bile predhodno nsatavljene tukaj).<br />"
295
 
296
+ #: ad-inserter.php:2458
297
  msgctxt "Pages"
298
  msgid ""
299
  "Set to <strong>Individually disabled</strong> or <strong>Individually "
302
  "Nastavite na <strong>Posamezno onemogočene</strong> ali <strong>Posamezno "
303
  "omogočene</strong> za vklop nastavitev posameznih izjem na tej strani.<br />"
304
 
305
+ #: ad-inserter.php:2459
306
  msgctxt "Posts"
307
  msgid ""
308
  "Set to <strong>Individually disabled</strong> or <strong>Individually "
311
  "Nastavite na <strong>Posamezno onemogočeni</strong> ali <strong>Posamezno "
312
  "omogočeni</strong> za vklop nastavitev posameznih izjem na tej strani.<br />"
313
 
314
+ #: ad-inserter.php:2461
315
  msgid "For more information check page %s"
316
  msgstr "Za več informacij poglejte stran %s"
317
 
318
  #. translators: Ad Inserter Exceptions documentation page
319
+ #: ad-inserter.php:2463
320
  msgid "Individual Exceptions"
321
  msgstr "Posamezne Izjeme"
322
 
323
+ #: ad-inserter.php:2508
324
  msgid "STATIC PAGE"
325
  msgstr "STATIČNA STRAN"
326
 
327
+ #: ad-inserter.php:2511
328
  msgid "POST"
329
  msgstr "PRISPEVEK"
330
 
331
+ #: ad-inserter.php:2514
332
  msgid "HOMEPAGE"
333
  msgstr "DOMAČA STRAN"
334
 
335
+ #: ad-inserter.php:2517
336
  msgid "CATEGORY PAGE"
337
  msgstr "STRAN KATEGORIJE"
338
 
339
+ #: ad-inserter.php:2520
340
  msgid "SEARCH PAGE"
341
  msgstr "STRAN ISKANJE"
342
 
343
+ #: ad-inserter.php:2523
344
  msgid "ARCHIVE PAGE"
345
  msgstr "STRAN ARHIVA"
346
 
347
+ #: ad-inserter.php:2526
348
  msgid "ERROR 404 PAGE"
349
  msgstr "STRAN NAPAKA 404"
350
 
351
+ #: ad-inserter.php:2529
352
  msgid "AJAX CALL"
353
  msgstr "AJAX KLIC"
354
 
355
+ #: ad-inserter.php:2532
356
  msgid "UNKNOWN PAGE TYPE"
357
  msgstr "NEZNAN TIP STRANI"
358
 
359
+ #: ad-inserter.php:2549
360
  msgid "Click to delete ad blocking detection cokies"
361
  msgstr "Klikni za brisanje piškotkov za zaznavanje blokiranja oglasov"
362
 
363
+ #: ad-inserter.php:2550
364
  msgid "AD BLOCKING STATUS UNKNOWN"
365
  msgstr "NEZNAN STATUS BLOKIRANJA OGLASOV"
366
 
367
  #. translators: %s: AdSense Auto Ads
368
+ #: ad-inserter.php:2574
369
  msgid ""
370
  "Code for %s detected - Code will automatically insert AdSense ads at optimal "
371
  "positions"
373
  "Zaznana koda za %s - Koda bo samodejno vstavila oglase AdSense na optimalne "
374
  "položaje"
375
 
376
+ #: ad-inserter.php:2713
377
  msgid "Code for insertion"
378
  msgstr "Koda za vstavljanje"
379
 
380
+ #: ad-inserter.php:2713
381
  msgid "character"
382
  msgid_plural "characters"
383
  msgstr[0] "znak"
385
  msgstr[2] "znaki"
386
  msgstr[3] "znakov"
387
 
388
+ #: ad-inserter.php:2756
389
  msgid "Header code"
390
  msgstr "Koda v glavi"
391
 
392
+ #: ad-inserter.php:2756
393
  msgctxt "Header code"
394
  msgid "DISABLED"
395
  msgstr "ONEMOGOČENA"
396
 
397
+ #: ad-inserter.php:2756 ad-inserter.php:2978
398
  msgid "character inserted"
399
  msgid_plural "characters inserted"
400
  msgstr[0] "znak vstavljen"
402
  msgstr[2] "znaki vstavljeni"
403
  msgstr[3] "znakov vstavljenih"
404
 
405
+ #: ad-inserter.php:2789
406
  msgid "Automatically placed by AdSense Auto ads code"
407
  msgstr "Samodejno postavila koda za oglase AdSense Auto ads"
408
 
409
+ #: ad-inserter.php:2978
410
  msgid "Footer code"
411
  msgstr "Koda v nogi"
412
 
413
+ #: ad-inserter.php:2978
414
  msgctxt "Footer code"
415
  msgid "DISABLED"
416
  msgstr "ONEMOGOČENA"
417
 
418
+ #: ad-inserter.php:2984
419
  msgid "JAVASCRIPT NOT WORKING"
420
  msgstr "JAVASCRIPT NE DELA"
421
 
422
+ #: ad-inserter.php:2984
423
  msgid "NO JAVASCRIPT ERRORS"
424
  msgstr "BREZ JAVASCRIPT NAPAK"
425
 
426
+ #: ad-inserter.php:2984
427
  msgid "JAVASCRIPT ERRORS"
428
  msgstr "JAVASCRIPT NAPAKE"
429
 
430
  #. translators: block name (block with default settings)
431
+ #: ad-inserter.php:5059
432
  msgctxt "Block name"
433
  msgid "Default"
434
  msgstr "Privzeti"
435
 
436
  #. translators: %s: Ad Inserter
437
+ #: ad-inserter.php:5624
438
  msgid "Error importing %s settings."
439
  msgstr "Napaka pri uvozu %s nastavitev."
440
 
441
+ #: ad-inserter.php:5625
442
  msgid "Error importing settings for block"
443
  msgid_plural "Error importing settings for blocks:"
444
  msgstr[0] "Napaka pri uvozu nastavitev za blok"
446
  msgstr[2] "Napaka pri uvozu nastavitev za bloke:"
447
  msgstr[3] "Napaka pri uvozu nastavitev za bloke:"
448
 
449
+ #: ad-inserter.php:5674
450
  msgid "Settings saved."
451
  msgstr "Nastavitve shranjene."
452
 
453
+ #: ad-inserter.php:5759
454
  msgid "Settings cleared."
455
  msgstr "Nastavitve ponastavljene."
456
 
457
+ #: ad-inserter.php:6104 ad-inserter.php:6106 ad-inserter.php:6129
458
  msgid "word"
459
  msgid_plural "words"
460
  msgstr[0] "beseda"
462
  msgstr[2] "besede"
463
  msgstr[3] "besed"
464
 
465
+ #: ad-inserter.php:6143 ad-inserter.php:6255
466
  msgid "HTML TAGS REMOVED"
467
  msgstr "HTML ZNAČKE ODSTRANJENE"
468
 
469
+ #: ad-inserter.php:6331
470
  msgid "BEFORE COMMENTS"
471
  msgstr "PRED KOMENTARJI"
472
 
473
+ #: ad-inserter.php:6439
474
  msgid "AFTER COMMENTS"
475
  msgstr "PO KOMETARJIH"
476
 
477
+ #: ad-inserter.php:6502
478
  msgid "BETWEEN COMMENTS"
479
  msgstr "MED KOMENTARJI"
480
 
481
+ #: ad-inserter.php:7647
482
  msgid "requires WordPress 4.0 or newer"
483
  msgstr "potrebuje WordPress 4.0 ali novejši"
484
 
485
+ #: ad-inserter.php:7647
486
  msgid "Please update!"
487
  msgstr "Prosimo, posodobite!"
488
 
489
  #. translators: Opt-in message: Thank you for installing Ad Inserter (plugin
490
  #. name with HTML tags will be added)
491
+ #: ad-inserter.php:7873
492
  msgid "Thank you for installing"
493
  msgstr "Hvala za namestitev vtičnika"
494
 
495
  #. translators: Opt-in message: %s: HTML tags
496
+ #: ad-inserter.php:7875
497
  msgid ""
498
  "We would like to %s track its usage %s on your site. This is completely "
499
  "optional and can be disabled at any time."
501
  "Radi bi %s sledili njegovi uporabi %s na vašem spletnem mestu. To je povsem "
502
  "izbirno in se lahko izključi kadarkoli."
503
 
504
+ #: ad-inserter.php:7877
505
  msgid ""
506
  "We don't record any sensitive data, only information regarding the WordPress "
507
  "environment and plugin usage, which will help us to make improvements to the "
511
  "uporabe vtičnika, kar nam bo omogočilo izdelavo izboljšav za vtičnik."
512
 
513
  #. translators: Deactivation message: %s: HTML tags
514
+ #: ad-inserter.php:7914
515
  msgid ""
516
  "Looking for %s Documentation, %s %s Common Settings, %s %s Quick Start %s or "
517
  "help for %s AdSense ads? %s The plugin doesn't work with your theme? %s Let "
522
  "nam %s in poskušali vam bomo pomagati."
523
 
524
  #. translators: %s: Ad Inserter
525
+ #: ad-inserter.php:7957
526
  msgid "%s block."
527
  msgstr "%s blok."
528
 
529
  #. translators: widget title
530
+ #: ad-inserter.php:7973 ad-inserter.php:8009
531
  msgid "Processing log"
532
  msgstr "Dnevnik procesiranja"
533
 
534
  #. translators: widget title
535
+ #: ad-inserter.php:7975 ad-inserter.php:8010
536
  msgid "Dummy widget"
537
  msgstr "Prazen gradnik"
538
 
539
  #. translators: widget title
540
+ #: ad-inserter.php:7977 ad-inserter.php:8008
541
  msgid "Debugging tools"
542
  msgstr "Orodja za razhroščevanje"
543
 
544
  #. translators: block status (widget title)
545
+ #: ad-inserter.php:7984
546
  msgctxt "block"
547
  msgid "PAUSED"
548
  msgstr "USTAVLJEN"
549
 
550
+ #: ad-inserter.php:7985
551
  msgid "WIDGET DISABLED"
552
  msgstr "GRADNIK ONEMOGOČEN"
553
 
554
+ #: ad-inserter.php:7986
555
  msgid "Unknown block"
556
  msgstr "Neznan blok"
557
 
558
+ #: ad-inserter.php:7995 includes/functions.php:2635 settings.php:1038
559
  msgid "Title"
560
  msgstr "Naslov"
561
 
562
+ #: ad-inserter.php:8017
563
  msgctxt "Widget"
564
  msgid "Sticky"
565
  msgstr "Lepljiv"
566
 
567
+ #: ad-inserter.php:8066
568
  msgid ""
569
  "Ad Inserter can't be used while Ad Inserter Pro is active! To activate Ad "
570
  "Inserter you need to first deactivate Ad Inserter Pro."
573
  "aktiven! Za aktivacijo vtičnika Ad Inserter morate najprej onemogočiti Ad "
574
  "Inserter Pro."
575
 
576
+ #: ad-inserter.php:8067
577
  msgid ""
578
  "<strong>WARNING</strong>: Please note that saving settings in Ad Inserter "
579
  "will clear all settings that are available only in the Pro version "
608
  msgid "After post"
609
  msgstr "Za prispevkom"
610
 
611
+ #: class.php:1957 settings.php:1624 settings.php:3646
612
  msgid "Widget"
613
  msgstr "Gradnik"
614
 
615
+ #: class.php:1962 settings.php:3644
616
  msgid "PHP function call"
617
  msgstr "Klic PHP funkcije"
618
 
649
  msgid "INSERTED BUT NOT VISIBLE"
650
  msgstr "VSTAVLJEN, VENDAR NI VIDEN"
651
 
652
+ #: class.php:2410 class.php:2469
653
  msgid "ACTIVE GROUPS"
654
  msgstr "AKTIVNE SKUPINE"
655
 
656
  #. translators: %s: list parameters and type
657
+ #: class.php:2644
658
  msgid "parameters='%s' type='%s'"
659
  msgstr "parametri='%s' tip='%s'"
660
 
661
  #. translators: %s: list parameters and type
662
+ #: class.php:2646
663
  msgid "referers='%s' type='%s'"
664
  msgstr "napotitelji='%s' tip='%s'"
665
 
666
  #. translators: %s: list parameters and type
667
+ #: class.php:2707
668
  msgid "countries='%s' type='%s'"
669
  msgstr "države='%s' tip='%s'"
670
 
671
  #. translators: %s: list parameters and type
672
+ #: class.php:2709
673
  msgid "ip addresses='%s' type='%s'"
674
  msgstr "ip naslovi='%s' tip='%s'"
675
 
676
+ #: class.php:2943 strings.php:228
677
  msgid "BEFORE"
678
  msgstr "PRED"
679
 
680
+ #: class.php:2951 strings.php:230
681
  msgid "PREPEND CONTENT"
682
  msgstr "DODAJ PRED VSEBINO"
683
 
684
+ #: class.php:2955 strings.php:231
685
  msgid "APPEND CONTENT"
686
  msgstr "DODAJ ZA VSEBINO"
687
 
688
+ #: class.php:2959 strings.php:232
689
  msgid "REPLACE CONTENT"
690
  msgstr "NADOMESTI VSEBINO"
691
 
692
+ #: class.php:2963 strings.php:233
693
  msgid "REPLACE ELEMENT"
694
  msgstr "NADOMESTI ELEMENT"
695
 
696
+ #: class.php:2974 strings.php:229
697
  msgid "AFTER"
698
  msgstr "ZA"
699
 
700
+ #: class.php:3041
701
  msgctxt "JavaScript"
702
  msgid "script"
703
  msgstr "skripta"
704
 
705
+ #: class.php:3044 settings.php:1893
706
  msgid "for"
707
  msgstr "za"
708
 
709
+ #: class.php:5584 class.php:5636
710
  msgctxt "category name"
711
  msgid "Uncategorized"
712
  msgstr "Nekategorizirano"
713
 
714
+ #: class.php:6127
715
  msgid ""
716
  "ERROR: class DOMDocument not found. Your webhost needs to install the DOM "
717
  "extension for PHP."
821
  "Glavni element vsebine (#id ali .razred) za položaj 'Lepljiv na vsebino'. "
822
  "Pustite prazno razen v primeru, ko položaj ni pravilno izračunan."
823
 
824
+ #: includes/functions.php:420 settings.php:1194 settings.php:2478
825
  msgid "Open HTML element selector"
826
  msgstr "Odpri izbirnik HTML elementa"
827
 
845
  msgid " - global tracking disabled"
846
  msgstr " - globalno sledenje onemogočeno"
847
 
848
+ #: includes/functions.php:461 includes/functions.php:2464
849
  msgid "Generate report"
850
  msgstr "Generiraj poročilo"
851
 
853
  msgid "Toggle Ad Blocking Statistics"
854
  msgstr "Preklopi Statistiko Blokiranja Oglasov"
855
 
856
+ #: includes/functions.php:479 includes/functions.php:2449
857
  msgid "Toggle Statistics"
858
  msgstr "Preklopi Statistiko"
859
 
948
  msgid "Tracking for this block is disabled"
949
  msgstr "Sledenje za ta blok je onemogočeno"
950
 
951
+ #: includes/functions.php:732 settings.php:3150 settings.php:3186
952
+ #: settings.php:3229 strings.php:209
953
  msgid "Loading..."
954
  msgstr "Nalagam..."
955
 
1047
  msgid "Export / Import Ad Inserter Pro Settings"
1048
  msgstr "Izvozi / Uvozi Ad Inserter Pro Nastavitve"
1049
 
1050
+ #: includes/functions.php:833
1051
  msgid "Are you sure you want to clear all statistics data for all blocks?"
1052
  msgstr ""
1053
  "Ali ste prepričani, da želite pobrisati vse podatke o statistiki za vse "
1054
  "bloke?"
1055
 
1056
+ #: includes/functions.php:835
1057
  msgid "Clear All Statistics Data"
1058
  msgstr "Pobriši Vse Podatke o Statistiki"
1059
 
1060
+ #: includes/functions.php:862
1061
  msgid "Toggle country/city editor"
1062
  msgstr "Preklopi urejevalnik držav/mest"
1063
 
1064
+ #: includes/functions.php:868
1065
  msgid "IP Addresses"
1066
  msgstr "IP Naslovi"
1067
 
1068
+ #: includes/functions.php:871
1069
  msgid "Toggle IP address editor"
1070
  msgstr "Preklopi urejevalnik IP nslovov"
1071
 
1072
+ #: includes/functions.php:874
1073
  msgid ""
1074
  "Comma separated IP addresses, you can also use partial IP addresses with * "
1075
  "(ip-address-start*. *ip-address-pattern*, *ip-address-end)"
1077
  "Z vejico ločeni IP naslovi, uporabite lahko tudi delne IP naslove z * (ip-"
1078
  "naslov-začetek*. *ip-naslov-vzorec*, *ip-naslov-konec)"
1079
 
1080
+ #: includes/functions.php:878
1081
  msgid "Blacklist IP addresses"
1082
  msgstr "Črni seznam IP naslovov"
1083
 
1084
+ #: includes/functions.php:882
1085
  msgid "Whitelist IP addresses"
1086
  msgstr "Beli seznam IP naslovov"
1087
 
1088
+ #: includes/functions.php:893
1089
  msgid "Countries"
1090
  msgstr "Države"
1091
 
1092
+ #: includes/functions.php:894
1093
  msgid "Cities"
1094
  msgstr "Mesta"
1095
 
1096
+ #: includes/functions.php:898 includes/functions.php:2414
1097
  msgid "Toggle country editor"
1098
  msgstr "Preklopi urejevalnik držav"
1099
 
1100
+ #: includes/functions.php:901
1101
  msgid "Toggle city editor"
1102
  msgstr "Preklopi urejevalnik mest"
1103
 
1104
+ #: includes/functions.php:905 includes/functions.php:2417
1105
  msgid "Comma separated country ISO Alpha-2 codes"
1106
  msgstr "Z vejico ločene ISO Alpha-2 kode držav"
1107
 
1108
+ #: includes/functions.php:909
1109
  msgid "Blacklist countries"
1110
  msgstr "Črni seznam držav"
1111
 
1112
+ #: includes/functions.php:913
1113
  msgid "Whitelist countries"
1114
  msgstr "Beli seznam držav"
1115
 
1116
+ #: includes/functions.php:1227 includes/functions.php:1450
1117
  msgid "Enter license key"
1118
  msgstr "Vnesite licenčni ključ"
1119
 
1120
  #. translators: %s: Ad Inserter Pro
1121
+ #: includes/functions.php:1233
1122
  msgid ""
1123
  "%s license key is not set. Plugin functionality is limited and updates are "
1124
  "disabled."
1126
  "%s licenčni ključ ni vnešen. Funkcionalnosti vtičnika so omejene in "
1127
  "posodobitve onemogočene."
1128
 
1129
+ #: includes/functions.php:1242 includes/functions.php:1459
1130
  msgid "Check license key"
1131
  msgstr "Preverite licenčni ključ"
1132
 
1133
  #. translators: %s: Ad Inserter Pro
1134
+ #: includes/functions.php:1248
1135
  msgid "Invalid %s license key."
1136
  msgstr "Neveljaven %s licenčni ključ."
1137
 
1138
  #. translators: %s: Ad Inserter Pro
1139
+ #: includes/functions.php:1257
1140
  msgid "%s license expired. Plugin updates are disabled."
1141
  msgstr "%s licenca je potekla. Posodobitve vtičnika so onemogočene."
1142
 
1143
+ #: includes/functions.php:1258
1144
  msgid "Renew license"
1145
  msgstr "Obnovite licenco"
1146
 
1147
  #. translators: %s: Ad Inserter Pro
1148
+ #: includes/functions.php:1266
1149
  msgid "%s license overused. Plugin updates are disabled."
1150
  msgstr ""
1151
  "%s licenca je prekomerno uporabljena. Posodobitve vtičnika so onemogočene."
1152
 
1153
+ #: includes/functions.php:1267
1154
  msgid "Upgrade license"
1155
  msgstr "Nadgradite licenco"
1156
 
1157
  #. translators: 1, 2: HTML tags, 3: Ad Inserter Pro
1158
+ #: includes/functions.php:1452
1159
  msgid ""
1160
  "%1$s Warning: %2$s %3$s license key is not set. Plugin functionality is "
1161
  "limited and updates are disabled."
1164
  "so omejene in posodobitve onemogočene."
1165
 
1166
  #. translators: 1, 2,: HTML tags, 3: Ad Inserter Pro
1167
+ #: includes/functions.php:1461
1168
  msgid "%1$s Warning: %2$s Invalid %3$s license key."
1169
  msgstr "%1$s Opozorilo: %2$s Neveljaven %3$s licenčni ključ."
1170
 
1171
  #. translators: 2, 3: HTML tags, 1: Ad Inserter Pro
1172
+ #: includes/functions.php:1477
1173
  msgid ""
1174
  "Hey, %1$s license has expired - plugin updates are now disabled. Please "
1175
  "renew the license to enable updates. Check %2$s what you are missing. %3$s"
1179
  "pogrešate. %3$s"
1180
 
1181
  #. translators: 1, 3: HTML tags, 2: percentage
1182
+ #: includes/functions.php:1484
1183
  msgid ""
1184
  "During the license period and 30 days after the license has expired we offer "
1185
  "%1$s %2$s discount on all license renewals and license upgrades. %3$s"
1187
  "V obdobju licence in 30 dni po tem, ko licenca poteče, vam ponujamo %1$s "
1188
  "%2$s popust na vse obnovitve in nadgradnje licenc. %3$s"
1189
 
1190
+ #: includes/functions.php:1511
1191
  msgid "Renew the licence"
1192
  msgstr "Obnovi licenco"
1193
 
1194
+ #: includes/functions.php:1513
1195
  msgid "Update license status"
1196
  msgstr "Posodobi status licence"
1197
 
1198
  #. translators: 1, 2, 4, 5: HTML tags, 3: Ad Inserter Pro
1199
+ #: includes/functions.php:1524
1200
  msgid ""
1201
  "%1$s Warning: %2$s %3$s license overused. Plugin updates are disabled. %4$s "
1202
  "Upgrade license %5$s"
1205
  "vtičnika so onemogočene. %4$s Nadgradite licenco %5$s"
1206
 
1207
  #. Translators: %s: HTML tag
1208
+ #: includes/functions.php:1544
1209
  msgid "Warning: %s MaxMind IP geolocation database not found."
1210
  msgstr "Opozorilo: %s MaxMind IP geolocijska podatkovna baza ni najdena."
1211
 
1212
+ #: includes/functions.php:2051
1213
  msgid "Geolocation"
1214
  msgstr "Geolokacija"
1215
 
1216
+ #: includes/functions.php:2055
1217
  msgid "Exceptions"
1218
  msgstr "Izjeme"
1219
 
1220
+ #: includes/functions.php:2060
1221
  msgid "Multisite"
1222
  msgstr "Multisite"
1223
 
1224
+ #: includes/functions.php:2065
1225
  msgid "Tracking"
1226
  msgstr "Sledenje"
1227
 
1228
  #. translators: %d: days, hours, minutes
1229
+ #: includes/functions.php:2096
1230
  msgid "Scheduled in %d days %d hours %d minutes"
1231
  msgstr "Planirano v %d dneh %d urah %d minutah"
1232
 
1233
  #. translators: %s: HTML dash separator, %d: days, hours, minutes, &mdash; is
1234
  #. HTML code for long dash separator
1235
+ #: includes/functions.php:2105
1236
  msgid "Active %s expires in %d days %d hours %d minutes"
1237
  msgstr "Aktivno %s poteče v %d dneh %d urah %d minutah"
1238
 
1239
+ #: includes/functions.php:2109
1240
  msgid "Expired"
1241
  msgstr "Poteklo"
1242
 
1243
+ #: includes/functions.php:2117 settings.php:1277 settings.php:1292
1244
  #: settings.php:1879
1245
  msgid "and"
1246
  msgstr "in"
1247
 
1248
+ #: includes/functions.php:2120
1249
  msgid "fallback"
1250
  msgstr "rezerva"
1251
 
1252
+ #: includes/functions.php:2121
1253
  msgid "Block to be used when scheduling expires"
1254
  msgstr "Blok, ki se bo uporabil, ko urnik poteče"
1255
 
1256
+ #: includes/functions.php:2146
1257
  msgid "Load in iframe"
1258
  msgstr "Naloži v iframe-u"
1259
 
1260
+ #: includes/functions.php:2150 includes/placeholders.php:382
1261
  msgid "Width"
1262
  msgstr "Širina"
1263
 
1264
+ #: includes/functions.php:2151
1265
  msgid "iframe width, empty means full width (100%)"
1266
  msgstr "širina iframe-a, prazno pomeni polna širina (100%)"
1267
 
1268
+ #: includes/functions.php:2157 includes/placeholders.php:377
1269
  msgid "Height"
1270
  msgstr "Višina"
1271
 
1272
+ #: includes/functions.php:2158
1273
  msgid "iframe height, empty means adjust it to iframe content height"
1274
  msgstr ""
1275
  "Višina iframe-a, prazno pomeni poravnavo glede na višino vsebine iframe-a"
1276
 
1277
+ #: includes/functions.php:2165
1278
  msgid "Ad label in iframe"
1279
  msgstr "Oznaka oglasa v iframe-u"
1280
 
1281
+ #: includes/functions.php:2170
1282
  msgid "Preview iframe code"
1283
  msgstr "Predpreglej kodo iframe"
1284
 
1285
+ #: includes/functions.php:2170 includes/preview.php:1964 settings.php:954
1286
+ #: settings.php:2540
1287
  msgid "Preview"
1288
  msgstr "Predogled"
1289
 
1290
+ #: includes/functions.php:2184 includes/functions.php:3826
1291
+ #: includes/functions.php:3889 settings.php:2014
1292
  msgid "Ad Blocking"
1293
  msgstr "Blokiranje Oglasov"
1294
 
1295
  #. translators: 1, 2 and 3, 4: HTML tags
1296
+ #: includes/functions.php:2193
1297
  msgid ""
1298
  "%1$s WARNING: %2$s %3$s No wrapping %4$s style has no wrapping code needed "
1299
  "for tracking!"
1303
 
1304
  #. translators: 1, 2, 4, 5: HTML tags, 3: Scroll with the content, 6: Above
1305
  #. header
1306
+ #: includes/functions.php:2202
1307
  msgid ""
1308
  "%1$s WARNING: %2$s vertical position %3$s needs %4$s Output buffering %5$s "
1309
  "enabled and automatic insertion %6$s!"
1311
  "%1$s OPOZORILO: %2$s vertikalni položaj %3$s potrebuje %4$s Predpomnjenje "
1312
  "izhoda %5$s omogočeno in samodejno vstavljanje %6$s!"
1313
 
1314
+ #: includes/functions.php:2220
1315
  msgid "When ad blocking is detected"
1316
  msgstr "Ko je blokiranje oglasov zaznano"
1317
 
1318
+ #: includes/functions.php:2229
1319
  msgid "replacement"
1320
  msgstr "nadomestek"
1321
 
1322
+ #: includes/functions.php:2230
1323
  msgid "Block to be shown when ad blocking is detected"
1324
  msgstr "Blok, ki naj bo prikazan, ko je zaznano blokiranje oglasov"
1325
 
1326
+ #: includes/functions.php:2231
1327
  msgctxt "replacement"
1328
  msgid "None"
1329
  msgstr "Noben"
1330
 
1331
+ #: includes/functions.php:2248
1332
  msgid "Close button"
1333
  msgstr "Gumb Zapri"
1334
 
1335
+ #: includes/functions.php:2295
1336
  msgid "Lazy loading"
1337
  msgstr "Leno nalaganje"
1338
 
1339
  #. Translators: %s MaxMind
1340
+ #: includes/functions.php:2349
1341
  msgid "This product includes GeoLite2 data created by %s"
1342
  msgstr "Ta izdelek vsebuje %s GeoLite2 podatke"
1343
 
1344
+ #: includes/functions.php:2360
1345
  msgid "IP geolocation database"
1346
  msgstr "Podatkovna baza za IP geolokacijo"
1347
 
1348
+ #: includes/functions.php:2363
1349
  msgid "Select IP geolocation database."
1350
  msgstr "Izberite podatkovno bazo za IP geolokacijo."
1351
 
1352
+ #: includes/functions.php:2374
1353
  msgid "Automatic database updates"
1354
  msgstr "Samodejna posodobitev podatkovne baze"
1355
 
1356
+ #: includes/functions.php:2377
1357
  msgid ""
1358
  "Automatically download and update free GeoLite2 IP geolocation database by "
1359
  "MaxMind"
1361
  "Samodejno prenesi in posodobi prostodostopno GeoLite2 IP geolokacijsko "
1362
  "podatkovno bazo MaxMind"
1363
 
1364
+ #: includes/functions.php:2385
1365
  msgid "Database"
1366
  msgstr "Podatkovna baza"
1367
 
1368
+ #: includes/functions.php:2388
1369
  msgid ""
1370
  "Aabsolute path starting with '/' or relative path to the MaxMind database "
1371
  "file"
1374
  "podatkovne baze"
1375
 
1376
  #. translators: %d: group number
1377
+ #: includes/functions.php:2406
1378
  msgid "Group %d"
1379
  msgstr "Skupina %d"
1380
 
1381
+ #: includes/functions.php:2412
1382
  msgid "countries"
1383
  msgstr "države"
1384
 
1385
+ #: includes/functions.php:2457
1386
  msgid "Enable tracking"
1387
  msgstr "Omogoči sledenje"
1388
 
1389
+ #: includes/functions.php:2472
1390
  msgid "Impression and Click Tracking"
1391
  msgstr "Sledenje Prikazov in Klikov"
1392
 
1393
+ #: includes/functions.php:2488
1394
  msgid "Internal"
1395
  msgstr "Notranje"
1396
 
1397
+ #: includes/functions.php:2492
1398
  msgid "Track impressions and clicks with internal tracking and statistics"
1399
  msgstr "Sledi prikazom in klikom z notranjim sledenjem in statistiko"
1400
 
1401
+ #: includes/functions.php:2497
1402
  msgid "External"
1403
  msgstr "Zunanje"
1404
 
1405
+ #: includes/functions.php:2501
1406
  msgid ""
1407
  "Track impressions and clicks with Google Analytics or Matomo (needs tracking "
1408
  "code installed)"
1410
  "Sledi prikazom in klikom z Google Analytics ali Matomo (potrebuje nameščeno "
1411
  "kodo za sledenje)"
1412
 
1413
+ #: includes/functions.php:2506
1414
  msgid "Track Pageviews"
1415
  msgstr "Sledi Ogledom Strani"
1416
 
1417
+ #: includes/functions.php:2512
1418
  msgid "Track Pageviews by Device (as configured for viewports)"
1419
  msgstr "Sledi Ogledom Strani po Napravah (kot so nastavljene za poglede)"
1420
 
1421
+ #: includes/functions.php:2522
1422
  msgid "Track for Logged in Users"
1423
  msgstr "Sledi za Prijavljene Upor."
1424
 
1425
+ #: includes/functions.php:2528
1426
  msgid "Track impressions and clicks from logged in users"
1427
  msgstr "Sledi prikazom in klikom neprijavljenih uporabnikov"
1428
 
1429
+ #: includes/functions.php:2538
1430
  msgid "Click Detection"
1431
  msgstr "Zaznavanje klikov"
1432
 
1433
+ #: includes/functions.php:2544
1434
  msgid ""
1435
  "Standard method detects clicks only on banners with links, Advanced method "
1436
  "can detect clicks on any kind of ads, but it is slightly less accurate"
1438
  "Standardni način zazna klike samo na pasicah s povezavami, Napredni način "
1439
  "lahko zazna klike na kateremkoli oglasu, ampak je rahlo manj zanesljiv"
1440
 
1441
+ #: includes/functions.php:2570
1442
  msgid "Report header image"
1443
  msgstr "Slika v glavi poročila"
1444
 
1445
+ #: includes/functions.php:2573
1446
  msgid ""
1447
  "Image or logo to be displayed in the header of the statistins report. "
1448
  "Aabsolute path starting with '/' or relative path to the image file."
1450
  "Slika ali logo, ki bo prikazan v glavi poročila statistike. Absolutna pot, "
1451
  "ki se začne z '/' ali relativna pot do datoteke slike."
1452
 
1453
+ #: includes/functions.php:2574 strings.php:221
1454
  msgid "Select or upload header image"
1455
  msgstr "Izberi ali naloži sliko glave"
1456
 
1457
+ #: includes/functions.php:2579
1458
  msgid "Report header title"
1459
  msgstr "Naslov v glavi poročila"
1460
 
1461
+ #: includes/functions.php:2582
1462
  msgid ""
1463
  "Title to be displayed in the header of the statistins report. Text or HTML "
1464
  "code."
1465
  msgstr ""
1466
  "Naslov, ki bo prikazan v glavi poročila statistike. Besedilo ali HTML koda."
1467
 
1468
+ #: includes/functions.php:2587
1469
  msgid "Report header description"
1470
  msgstr "Opis v glavi poročila"
1471
 
1472
+ #: includes/functions.php:2590
1473
  msgid ""
1474
  "Description to be displayed in the header of the statistins report. Text or "
1475
  "HTML code."
1476
  msgstr ""
1477
  "Opis, ki bo prikazan v glavi poročila statistike. Besedilo ali HTML koda."
1478
 
1479
+ #: includes/functions.php:2622
1480
  msgid "Are you sure you want to clear all exceptions for block"
1481
  msgstr "Ali ste prepričani, da želite pobrisati vse izjeme za blok"
1482
 
1483
+ #: includes/functions.php:2623 settings.php:1041
1484
  msgid "Clear all exceptions for block"
1485
  msgstr "Pobriši vse izjeme za blok"
1486
 
1487
+ #: includes/functions.php:2630
1488
  msgid "Are you sure you want to clear all exceptions?"
1489
  msgstr "Ali ste prepričani, da želite pobrisati vse izjeme?"
1490
 
1491
+ #: includes/functions.php:2630
1492
  msgid "Clear all exceptions for all blocks"
1493
  msgstr "Pobriši vse izjeme za vse bloke"
1494
 
1495
+ #: includes/functions.php:2635 settings.php:3378 settings.php:3716
1496
  msgid "Type"
1497
  msgstr "Vrsta"
1498
 
1499
+ #: includes/functions.php:2653
1500
  msgid "View"
1501
  msgstr "Poglej"
1502
 
1503
+ #: includes/functions.php:2654 includes/placeholders.php:346
1504
  #: includes/preview.php:2271 settings.php:1180
1505
  msgid "Edit"
1506
  msgstr "Uredi"
1507
 
1508
+ #: includes/functions.php:2684
1509
  msgid "Are you sure you want to clear all exceptions for"
1510
  msgstr "Ali ste prepričani, da želite pobrisati vse izjeme za"
1511
 
1512
+ #: includes/functions.php:2685
1513
  msgid "Clear all exceptions for"
1514
  msgstr "Pobriši vse izjeme za"
1515
 
1516
+ #: includes/functions.php:2698
1517
  msgid "No exceptions"
1518
  msgstr "Brez izjem"
1519
 
1520
  #. translators: %s: Ad Inserter Pro
1521
+ #: includes/functions.php:2709
1522
  msgid "%s options for network blogs"
1523
  msgstr "%s izbire za omrežne bloge"
1524
 
1525
  #. translators: %s: Ad Inserter Pro
1526
+ #: includes/functions.php:2714
1527
  msgid "Enable %s widgets for sub-sites"
1528
  msgstr "Omogoči %s gradnik za pod-spletišča"
1529
 
1530
+ #: includes/functions.php:2714
1531
  msgid "Widgets"
1532
  msgstr "Gradniki"
1533
 
1534
+ #: includes/functions.php:2719
1535
  msgid "Enable PHP code processing for sub-sites"
1536
  msgstr "Omogoči procesiranje PHP kode za pod-spletišča"
1537
 
1538
+ #: includes/functions.php:2719
1539
  msgid "PHP Processing"
1540
  msgstr "PHP Procesiranje"
1541
 
1542
  #. translators: %s: Ad Inserter Pro
1543
+ #: includes/functions.php:2724
1544
  msgid "Enable %s block exceptions in post/page editor for sub-sites"
1545
  msgstr ""
1546
  "Omogoči %s izjeme blokov v urejevalniku prispevkov/strani za pod-spletišča"
1547
 
1548
+ #: includes/functions.php:2724
1549
  msgid "Post/Page exceptions"
1550
  msgstr "Izjeme prispevkov/strani"
1551
 
1552
  #. translators: %s: Ad Inserter Pro
1553
+ #: includes/functions.php:2729
1554
  msgid "Enable %s settings page for sub-sites"
1555
  msgstr "Omogoči nastavitveno stran %s za pod-spletišča"
1556
 
1557
+ #: includes/functions.php:2729
1558
  msgid "Settings page"
1559
  msgstr "Stran z nastavitvami"
1560
 
1561
  #. translators: %s: Ad Inserter Pro
1562
+ #: includes/functions.php:2734
1563
  msgid "Enable %s settings of main site to be used for all blogs"
1564
  msgstr "Omogoči %s nastavitve glavnega spletišča za uporabo na vseh blogih"
1565
 
1566
+ #: includes/functions.php:2734
1567
  msgid "Main site settings used for all blogs"
1568
  msgstr "Nastavitve glavnega spletišča uporabljene na vseh blogih"
1569
 
1570
+ #: includes/functions.php:2745 settings.php:2436
1571
  msgid "Ad Blocking Detection"
1572
  msgstr "Zaznavanje Blokiranja Oglasov"
1573
 
1574
+ #: includes/functions.php:2751
1575
  msgid ""
1576
  "Standard method is reliable but should be used only if Advanced method does "
1577
  "not work. Advanced method recreates files used for detection with random "
1583
  "imeni in mogoče ne bo deloval s skriptami v upload mapi, če ta ni javno "
1584
  "dostopna"
1585
 
1586
+ #: includes/functions.php:3371 includes/functions.php:3461
1587
+ #: includes/functions.php:3481
1588
  msgid "AD BLOCKING"
1589
  msgstr "BLOKIRANJE OGLASOV"
1590
 
1591
+ #: includes/functions.php:3372 includes/functions.php:3412
1592
+ #: includes/functions.php:3455 includes/functions.php:3482
1593
  msgid "BLOCK INSERTED BUT NOT VISIBLE"
1594
  msgstr "BLOK VSTAVLJEN, VENDAR NI VIDEN"
1595
 
1596
+ #: includes/functions.php:3375 includes/functions.php:3454
1597
+ #: includes/functions.php:3488
1598
  msgid "NO AD BLOCKING"
1599
  msgstr "NI BLOKIRANJA OGLASOV"
1600
 
1601
+ #: includes/functions.php:3411 includes/functions.php:3418
1602
  msgid "AD BLOCKING REPLACEMENT"
1603
  msgstr "NADOMESTEK V PRIMERU BLOKIRANJA OGLASOV"
1604
 
1605
+ #: includes/functions.php:3679 includes/functions.php:3888
1606
  msgid "Pageviews"
1607
  msgstr "Ogledi strani"
1608
 
1609
+ #: includes/functions.php:3825
1610
  msgctxt "Version"
1611
  msgid "Unknown"
1612
  msgstr "Neznana"
1613
 
1614
+ #: includes/functions.php:3825
1615
  msgctxt "Times"
1616
  msgid "DISPLAYED"
1617
  msgstr "PRIKAZANO"
1618
 
1619
+ #: includes/functions.php:3825
1620
  msgid "No version"
1621
  msgstr "Brez različice"
1622
 
1623
+ #: includes/functions.php:3826
1624
  msgctxt "Times"
1625
  msgid "BLOCKED"
1626
  msgstr "BLOKIRANO"
1627
 
1628
+ #: includes/functions.php:3888
1629
  msgid "Impressions"
1630
  msgstr "Prikazi"
1631
 
1632
+ #: includes/functions.php:3889 includes/functions.php:3890
1633
+ #: includes/functions.php:3920
1634
  msgid "Clicks"
1635
  msgstr "Kliki"
1636
 
1637
+ #: includes/functions.php:3890
1638
  msgid "events"
1639
  msgstr "dogodki"
1640
 
1641
+ #: includes/functions.php:3891
1642
  msgid "Ad Blocking Share"
1643
  msgstr "Delež blokiranja oglasov"
1644
 
1645
  #. translators: CTR as Click Through Rate
1646
+ #: includes/functions.php:3891 includes/functions.php:3926
1647
  msgid "CTR"
1648
  msgstr "CTR"
1649
 
1650
+ #: includes/functions.php:4008
1651
  msgid "pageviews"
1652
  msgid_plural "pageviews"
1653
  msgstr[0] "ogled strani"
1655
  msgstr[2] "ogledi strani"
1656
  msgstr[3] "ogledov strani"
1657
 
1658
+ #: includes/functions.php:4008
1659
  msgid "impressions"
1660
  msgid_plural "impressions"
1661
  msgstr[0] "prikaz"
1663
  msgstr[2] "prikazi"
1664
  msgstr[3] "prikazov"
1665
 
1666
+ #: includes/functions.php:4012
1667
  msgid "event"
1668
  msgid_plural "events"
1669
  msgstr[0] "dogodek"
1671
  msgstr[2] "dogodki"
1672
  msgstr[3] "dogodkov"
1673
 
1674
+ #: includes/functions.php:4012
1675
  msgid "click"
1676
  msgid_plural "clicks"
1677
  msgstr[0] "klik"
1679
  msgstr[2] "kliki"
1680
  msgstr[3] "klikov"
1681
 
1682
+ #: includes/functions.php:4107
1683
  msgctxt "Pageviews / Impressions"
1684
  msgid "Average"
1685
  msgstr "Povprečni"
1686
 
1687
+ #: includes/functions.php:4128
1688
  msgctxt "Ad Blocking / Clicks"
1689
  msgid "Average"
1690
  msgstr "Povprečno"
1691
 
1692
+ #: includes/functions.php:4152
1693
  msgctxt "Ad Blocking Share / CTR"
1694
  msgid "Average"
1695
  msgstr "Povprečni"
1696
 
1697
  #. Translators: %s: Ad Inserter Pro
1698
+ #: includes/functions.php:4204
1699
  msgid "%s Report"
1700
  msgstr "%s Poročilo"
1701
 
1702
+ #: includes/functions.php:4282
1703
  msgid "Advanced WordPress Ad Management Plugin"
1704
  msgstr "Napredni WordPress Vtičnik za Upravljanje z Oglasi"
1705
 
1727
  msgid "Placeholder"
1728
  msgstr "Polnilo"
1729
 
1730
+ #: includes/placeholders.php:356 settings.php:808 settings.php:3717
1731
  msgid "Size"
1732
  msgstr "Velikost"
1733
 
1860
  msgid "Ad Blocking Detected Message Preview"
1861
  msgstr "Predogled Sporočila ko je Zaznano Blokiranje Oglasov"
1862
 
1863
+ #: includes/preview-adb.php:348 settings.php:2553
1864
  msgid "Message CSS"
1865
  msgstr "CSS sporočila"
1866
 
1867
+ #: includes/preview-adb.php:353 settings.php:2561
1868
  msgid "Overlay CSS"
1869
  msgstr "CSS prevleke"
1870
 
1905
  msgstr "ozadje"
1906
 
1907
  #: includes/preview.php:2075 includes/preview.php:2226 settings.php:1141
1908
+ #: settings.php:3643
1909
  msgid "Alignment"
1910
  msgstr "Poravnava"
1911
 
2181
  msgid "General Settings"
2182
  msgstr "Splošne Nastavitve"
2183
 
2184
+ #: settings.php:592 settings.php:2312 settings.php:2370 settings.php:2533
2185
  msgid "Toggle Syntax Highlighting / Simple editor for mobile devices"
2186
  msgstr ""
2187
  "Preklopi Poudarjanje Sintakse / Preprost urejevalnik za mobilne naprave"
2210
  msgid "Open visual HTML editor"
2211
  msgstr "Odpri vizualni HTML urejevalnik"
2212
 
2213
+ #: settings.php:644 settings.php:1977
2214
  msgid "Show AdSense ad units"
2215
  msgstr "Pokaži oglasne enote AdSense"
2216
 
2218
  msgid "Clear block"
2219
  msgstr "Počisti blok"
2220
 
2221
+ #: settings.php:658 settings.php:3611
2222
  msgid "Copy block"
2223
  msgstr "Kopiraj blok"
2224
 
2391
  "Posamezne izjeme za prispevke (če so omogočene tukaj) se lahko nastavijo v "
2392
  "urejevalniku prispevka. Pustite prazno za prispevke brez posameznih izjem."
2393
 
2394
+ #: settings.php:978 settings.php:3037
2395
  msgid "Posts"
2396
  msgstr "Prispevki"
2397
 
2405
  "podstraneh), statična stran ali domača stran teme (razpoložljivi položaji so "
2406
  "lahko odvisni od ročic, ki jih tema uporablja)"
2407
 
2408
+ #: settings.php:983 settings.php:3039
2409
  msgid "Homepage"
2410
  msgstr "Domača stran"
2411
 
2413
  msgid "Enable insertion on category blog pages (including sub-pages)"
2414
  msgstr "Omogoči vstavljanje na straneh kategorij (vključno s podstranmi)"
2415
 
2416
+ #: settings.php:988 settings.php:3040
2417
  msgid "Category pages"
2418
  msgstr "Strani kategorij"
2419
 
2434
  "nastavijo v urejevalniku strani. Pustite prazno za strani brez posameznih "
2435
  "izjem."
2436
 
2437
+ #: settings.php:1006 settings.php:3038
2438
  msgid "Static pages"
2439
  msgstr "Statične strani"
2440
 
2442
  msgid "Enable insertion on search blog pages"
2443
  msgstr "Omogoči vstavljanje na iskalnih straneh"
2444
 
2445
+ #: settings.php:1011 settings.php:3042
2446
  msgid "Search pages"
2447
  msgstr "Iskalne strani"
2448
 
2563
  msgid "HTML element selector or comma separated list of selectors"
2564
  msgstr "Selektor HTML elementa ali z vejicami ločen seznam selektorjev"
2565
 
2566
+ #: settings.php:1209 settings.php:2446
2567
  msgid "Action"
2568
  msgstr "Akcija"
2569
 
2851
  msgstr ""
2852
  "Omogočite kratko kodo za ročno vstavljanje tega bloka v prispevke in strani"
2853
 
2854
+ #: settings.php:1636 settings.php:3645
2855
  msgid "Shortcode"
2856
  msgstr "Kratka koda"
2857
 
2915
  msgid "Display"
2916
  msgstr "Prikaz"
2917
 
2918
+ #: settings.php:1760 settings.php:2007
2919
  msgid "General"
2920
  msgstr "Splošno"
2921
 
2983
  "Štej ta blok za omejitev Največ blokov na stran (določena na zavihku "
2984
  "&#9881; / zavihek Splošno)"
2985
 
2986
+ #: settings.php:1805 settings.php:2176
2987
  msgid "Max blocks per page"
2988
  msgstr "Največ blokov na stran"
2989
 
3068
  msgid "Not available"
3069
  msgstr "Ni na razpolago"
3070
 
3071
+ #: settings.php:1908 settings.php:2168
3072
  msgid "Ad label"
3073
  msgstr "Oznaka oglasa"
3074
 
3097
  msgid "Settings timestamp"
3098
  msgstr "Časovni žig nastavitev"
3099
 
3100
+ #: settings.php:1968
3101
  msgid "Are you sure you want to reset all settings?"
3102
  msgstr "Ali ste prepričani, da želite ponastaviti vse nastavitve?"
3103
 
3104
+ #: settings.php:1968
3105
  msgid "Reset All Settings"
3106
  msgstr "Ponastavi Vse Nastavitve"
3107
 
3108
+ #: settings.php:1984
3109
+ msgid "Edit ads.txt file"
3110
+ msgstr "Uredi datoteko ads.txt"
3111
+
3112
+ #: settings.php:2008
3113
  msgid "Viewports"
3114
  msgstr "Pogledi"
3115
 
3116
+ #: settings.php:2009
3117
  msgid "Hooks"
3118
  msgstr "Ročice"
3119
 
3120
+ #: settings.php:2010
3121
  msgid "Header"
3122
  msgstr "Glava"
3123
 
3124
+ #: settings.php:2011 strings.php:30
3125
  msgid "Footer"
3126
  msgstr "Noga"
3127
 
3128
+ #: settings.php:2016
3129
  msgid "Debugging"
3130
  msgstr "Razhroščevanje"
3131
 
3132
+ #: settings.php:2026
3133
  msgid "Plugin priority"
3134
  msgstr "Prednost vtičnika"
3135
 
3136
+ #: settings.php:2034
3137
  msgid "Output buffering"
3138
  msgstr "Predpomnjenje izhoda"
3139
 
3140
+ #: settings.php:2037
3141
  msgid "Needed for position Above header but may not work with all themes"
3142
  msgstr "Potrebno za položaj Nad glavo, ampak lahko, da ne dela z vsemi temami"
3143
 
3144
+ #: settings.php:2045
3145
  msgid "Syntax highlighting theme"
3146
  msgstr "Tema za poudarjanje sintakse"
3147
 
3148
+ #: settings.php:2052
3149
  msgctxt "no syntax highlighting themes"
3150
  msgid "None"
3151
  msgstr "Brez"
3152
 
3153
+ #: settings.php:2053
3154
  msgid "No Syntax Highlighting"
3155
  msgstr "Brez Poudarjanja Sintakse"
3156
 
3157
+ #: settings.php:2055
3158
  msgctxt "syntax highlighting themes"
3159
  msgid "Light"
3160
  msgstr "Svetle"
3161
 
3162
+ #: settings.php:2070
3163
  msgctxt "syntax highlighting themes"
3164
  msgid "Dark"
3165
  msgstr "Temne"
3166
 
3167
+ #: settings.php:2096
3168
  msgid "Min. user role for ind. exceptions editing"
3169
  msgstr "Najm. uporabniška vloga za urejanje izjem"
3170
 
3171
+ #: settings.php:2106
3172
+ msgid "Disable caching for logged in administrators"
3173
+ msgstr "Onemogoči predpomnenje za prijavljene skrbnike"
3174
+
3175
+ #: settings.php:2109
3176
+ msgid ""
3177
+ "Enabled means that logged in administrators will see non-cached (live) pages "
3178
+ "(applies to WP Super Cache, W3 Total Cache and WP Rocket plugins)"
3179
+ msgstr ""
3180
+ "Omogočeno pomeni, da bodo prijavljeni skrbniki videli ne-predpomnjene (žive) "
3181
+ "strani (velja za vtičnike WP Super Cache, W3 Total Cache in WP Rocket)"
3182
+
3183
+ #: settings.php:2117
3184
  msgid "Sticky widget mode"
3185
  msgstr "Način za lepljive gradnike"
3186
 
3187
+ #: settings.php:2120
3188
  msgid ""
3189
  "CSS mode is the best approach but may not work with all themes. JavaScript "
3190
  "mode works with most themes but may reload ads on page load."
3193
  "Način JavaScript dela z večino tem, ampak lahko ponovno naloži oglase pri "
3194
  "nalaganju strani."
3195
 
3196
+ #: settings.php:2128
3197
  msgid "Sticky widget top margin"
3198
  msgstr "Zgornji rob za lepljiv gradnik"
3199
 
3200
+ #: settings.php:2136
3201
  msgid "Dynamic blocks"
3202
  msgstr "Dinamični bloki"
3203
 
3204
+ #: settings.php:2149
3205
  msgid "Functions for paragraph counting"
3206
  msgstr "Funkcije za štetje odstavkov"
3207
 
3208
+ #: settings.php:2152
3209
  msgid ""
3210
  "Standard PHP functions are faster and work in most cases, use Multibyte "
3211
  "functions if paragraphs are not counted properly on non-english pages."
3214
  "Večznakovne funkcije, če na ne-angleških straneh odstavki niso pravilno "
3215
  "šteti."
3216
 
3217
+ #: settings.php:2160
3218
  msgid "No paragraph counting inside"
3219
  msgstr "Ni štetja odstavkov znotraj"
3220
 
3221
+ #: settings.php:2171
3222
  msgid "Label text or HTML code"
3223
  msgstr "Besedilo oznake ali HTML koda"
3224
 
3225
+ #: settings.php:2179
3226
  msgid ""
3227
  "Maximum number of inserted blocks per page. You need to enable Max page "
3228
  "insertions (button Misc / tab Insertion) to count block for this limit."
3231
  "blokov na stran (gumb Razno / zavihek Vstavljanje), da bo blok štel za to "
3232
  "omejitev."
3233
 
3234
+ #: settings.php:2193
3235
  msgid "Plugin usage tracking"
3236
  msgstr "Sledenje uporabe vtičnika"
3237
 
3238
  #. translators: %s: Ad Inserter
3239
+ #: settings.php:2196
3240
  msgid ""
3241
  "Enable tracking of %s usage and help us to make improvements to the plugin. "
3242
  "Only information regarding the WordPress environment and %s usage is "
3246
  "Beležijo se samo informacije glede okolja WordPress in uporabe %s-ja (enkrat "
3247
  "mesečno in ob dogodkih kot so aktivacija/deaktivacija)."
3248
 
3249
+ #: settings.php:2214
3250
  msgid "CSS class name for the wrapping div"
3251
  msgstr "Ime CSS razreda za div za ovijanje"
3252
 
3253
+ #: settings.php:2214
3254
  msgid "Block class name"
3255
  msgstr "Ime razreda za blok"
3256
 
3257
+ #: settings.php:2218
3258
  msgid "Include general plugin block class"
3259
  msgstr "Vključi splošni razred vtičnika za blok"
3260
 
3261
+ #: settings.php:2218
3262
  msgid "Block class"
3263
  msgstr "Razred bloka"
3264
 
3265
+ #: settings.php:2223
3266
  msgid "Include block number class"
3267
  msgstr "Vključi razred številke bloka"
3268
 
3269
+ #: settings.php:2223
3270
  msgid "Block number class"
3271
  msgstr "Razred številke bloka"
3272
 
3273
+ #: settings.php:2228
3274
  msgid ""
3275
  "Instead of alignment classes generate inline alignment styles for blocks"
3276
  msgstr ""
3277
  "Namesto razredov za poravnavo ustvari medvrstične sloge za poravnavo blokov"
3278
 
3279
+ #: settings.php:2228
3280
  msgid "Inline styles"
3281
  msgstr "Medvrstični slogi"
3282
 
3283
+ #: settings.php:2234
3284
  msgid "Preview of the block wrapping code"
3285
  msgstr "Predogled kode za ovijanje blokov"
3286
 
3287
+ #: settings.php:2235
3288
  msgid "Wrapping div"
3289
  msgstr "div za ovijanje"
3290
 
3291
+ #: settings.php:2236 settings.php:2636
3292
  msgid "BLOCK CODE"
3293
  msgstr "KODA BLOKA"
3294
 
3295
+ #: settings.php:2244
3296
  msgid "Viewport Settings used for client-side device detection"
3297
  msgstr ""
3298
  "Nastavitve Pogledov, uporabljene za zaznavanje naprav na strani klienta"
3299
 
3300
  #. Translators: %d: viewport number
3301
+ #: settings.php:2252
3302
  msgid "Viewport %d name"
3303
  msgstr "Ime pogleda %d"
3304
 
3305
+ #: settings.php:2255
3306
  msgid "min width"
3307
  msgstr "najmanjša širina"
3308
 
3309
+ #: settings.php:2266
3310
  msgid "Custom Hooks"
3311
  msgstr "Ročice Po Meri"
3312
 
3313
+ #: settings.php:2278 settings.php:2281
3314
  msgid "Enable hook"
3315
  msgstr "Omogoči ročico"
3316
 
3317
  #. translators: %d: hook number
3318
+ #: settings.php:2281
3319
  msgid "Hook %d name"
3320
  msgstr "Ime ročice %d"
3321
 
3322
+ #: settings.php:2284
3323
  msgid "Hook name for automatic insertion selection"
3324
  msgstr "Ime ročice za izbiro samodejnega vstavljanja"
3325
 
3326
+ #: settings.php:2287
3327
  msgid "action"
3328
  msgstr "akcija"
3329
 
3330
+ #: settings.php:2290
3331
  msgid "Action name as used in the do_action () function"
3332
  msgstr "Ime akcije kot je uporabljena v do_action () funkciji"
3333
 
3334
+ #: settings.php:2293
3335
  msgid "priority"
3336
  msgstr "prednost"
3337
 
3338
+ #: settings.php:2296
3339
  msgid "Priority for the hook (default is 10)"
3340
  msgstr "Prednost za ročico (privzeta je 10)"
3341
 
3342
+ #: settings.php:2317
3343
  msgid "Enable insertion of this code into HTML page header"
3344
  msgstr "Omogoči vstavljanje te kode v glavi HTML strani"
3345
 
3346
+ #: settings.php:2321 settings.php:2379 settings.php:2538
3347
  msgid "Process PHP code"
3348
  msgstr "Procesiraj PHP kodo"
3349
 
3350
+ #: settings.php:2325
3351
  msgid "HTML Page Header Code"
3352
  msgstr "Koda v Glavi HTML Strani"
3353
 
3354
+ #: settings.php:2333
3355
  msgid "Code in the %s section of the HTML page"
3356
  msgstr "Koda v %s delu HTML strani"
3357
 
3358
+ #: settings.php:2334 settings.php:2392
3359
  msgctxt "code in header or footer"
3360
  msgid "DISABLED"
3361
  msgstr "ONEMOGOČENA"
3362
 
3363
+ #: settings.php:2347 settings.php:2405
3364
  msgid "Use server-side detection to insert code only for"
3365
  msgstr "Zaznavanje na strani strežnika za vstavljanje samo za"
3366
 
3367
+ #: settings.php:2360
3368
  msgid ""
3369
  "Enable insertion of this code into HTML page header on page for Error 404: "
3370
  "Page not found"
3372
  "Omogoči vstavljanje te kode v HTML glavo na strani za napako 404: Stran ne "
3373
  "obstaja"
3374
 
3375
+ #: settings.php:2360 settings.php:2418
3376
  msgid "Insert on Error 404 page"
3377
  msgstr "Vstavi na strani Napake 404"
3378
 
3379
+ #: settings.php:2375
3380
  msgid "Enable insertion of this code into HTML page footer"
3381
  msgstr "Omogoči vstavljanje te kode v HTML nogi"
3382
 
3383
+ #: settings.php:2383
3384
  msgid "HTML Page Footer Code"
3385
  msgstr "Koda v Nogi HTML Strani"
3386
 
3387
  #. translators: %s: HTML tags
3388
+ #: settings.php:2391
3389
  msgid "Code before the %s tag of the the HTML page"
3390
  msgstr "Koda pred %s značko HTML strani"
3391
 
3392
+ #: settings.php:2418
3393
  msgid ""
3394
  "Enable insertion of this code into HTML page footer on page for Error 404: "
3395
  "Page not found"
3397
  "Omogoči vstavljanje te kode v nogo HTML strani na strani za napako 404: "
3398
  "Stran ne obstaja"
3399
 
3400
+ #: settings.php:2432
3401
  msgid "Enable detection of ad blocking"
3402
  msgstr "Omogoči zaznavanje blokiranja oglasov"
3403
 
3404
+ #: settings.php:2449
3405
  msgid "Global action when ad blocking is detected"
3406
  msgstr "Globalna akcija, ko je zaznano blokiranje oglasov"
3407
 
3408
+ #: settings.php:2458
3409
  msgid "Delay Action"
3410
  msgstr "Zakasni Akcijo"
3411
 
3412
+ #: settings.php:2461
3413
  msgid ""
3414
  "Number of page views to delay action when ad blocking is detected. Leave "
3415
  "empty for no delay (action fires on first page view). Sets cookie."
3418
  "oglasov. Prazno pomeni brez zakasnitve (akcija se sproži pri prvem ogledu "
3419
  "strani). Nastavi piškotek."
3420
 
3421
+ #: settings.php:2461
3422
  msgctxt "Delay Action for x "
3423
  msgid "page views"
3424
  msgstr "ogledov strani"
3425
 
3426
+ #: settings.php:2466
3427
  msgid "No Action Period"
3428
  msgstr "Obdobje Brez Akcije"
3429
 
3430
+ #: settings.php:2469
3431
  msgid ""
3432
  "Number of days to supress action when ad blocking is detected. Leave empty "
3433
  "for no no-action period (action fires always after defined page view delay). "
3437
  "pomeni brez zadržanja (akcija se sproži vedno po določeni zakasnitvi ogledov "
3438
  "strani). Nastavi piškotek."
3439
 
3440
+ #: settings.php:2469
3441
  msgctxt "no action period"
3442
  msgid "days"
3443
  msgstr "dni"
3444
 
3445
+ #: settings.php:2474
3446
  msgid "Custom Selectors"
3447
  msgstr "Selektorji Po Meri"
3448
 
3449
+ #: settings.php:2477
3450
  msgid ""
3451
  "Comma seprarated list of selectors (.class, #id) used for additional ad "
3452
  "blocking detection. Invisible element or element with zero height means ad "
3456
  "zaznavanje blokiranja oglasov. Neviden element ali element z ničelno višino "
3457
  "pomeni prisotnost blokiranja oglasov."
3458
 
3459
+ #: settings.php:2489
3460
  msgid "Redirection Page"
3461
  msgstr "Stran za Preusmeritev"
3462
 
3463
+ #: settings.php:2501
3464
  msgid "Custom Url"
3465
  msgstr "Url Po Meri"
3466
 
3467
+ #: settings.php:2506
3468
  msgid ""
3469
  "Static page for redirection when ad blocking is detected. For other pages "
3470
  "select Custom url and set it below."
3472
  "Statična stran za preusmeritev, ko je zaznano blokiranje oglasov. Za druge "
3473
  "strani izberite Url Po Meri in ga nastavite spodaj."
3474
 
3475
+ #: settings.php:2515
3476
  msgid "Custom Redirection Url"
3477
  msgstr "Url za Preusmeritev Po Meri"
3478
 
3479
+ #: settings.php:2527
3480
  msgid "Message HTML code"
3481
  msgstr "HTML koda sporočila"
3482
 
3483
+ #: settings.php:2540
3484
  msgid "Preview message when ad blocking is detected"
3485
  msgstr "Predogled sporočila, ko je zaznano blokiranje oglasov"
3486
 
3487
+ #: settings.php:2569
3488
  msgid "Prevent visitors from closing the warning message"
3489
  msgstr "Prepreči obiskovalcem, da zaprejo opozorilno sporočilo"
3490
 
3491
+ #: settings.php:2569
3492
  msgid "Undismissible Message"
3493
  msgstr "Neodstranljivo Sporočilo"
3494
 
3495
+ #: settings.php:2582
3496
  msgid ""
3497
  "Force showing admin toolbar for administrators when viewing site. Enable "
3498
  "this option when you are logged in as admin and you don't see admin toolbar."
3501
  "možnost, če ste prijavljeni kot skrbnik, pa ne vidite orodne vrstice za "
3502
  "skrbnike."
3503
 
3504
+ #: settings.php:2590
3505
  msgid "Disable header code (Header tab)"
3506
  msgstr "Onemogoči kodo v glavi (zavihek Glava)"
3507
 
3508
+ #: settings.php:2594
3509
  msgid "Disable footer code (Footer tab)"
3510
  msgstr "Onemogoči kodo v nogi (zavihek Noga)"
3511
 
3512
  #. translators: %s: Ad Inserter
3513
+ #: settings.php:2598
3514
  msgid "Disable %s JavaScript code"
3515
  msgstr "Onemogoči %s JavaScript kodo"
3516
 
3517
  #. translators: %s: Ad Inserter
3518
+ #: settings.php:2602
3519
  msgid "Disable %s CSS code"
3520
  msgstr "Onemogoči %s CSS kodo"
3521
 
3522
+ #: settings.php:2606
3523
  msgid ""
3524
  "Disable PHP code processing (in all blocks including header and footer code)"
3525
  msgstr ""
3526
  "Onemogoči procesiranje PHP kode (v vseh blokh vključno z glavo in nogo)"
3527
 
3528
+ #: settings.php:2610
3529
  msgid "Disable insertion of all blocks"
3530
  msgstr "Onemogoči vstavljanje vseh blokov"
3531
 
3532
+ #: settings.php:2614
3533
  msgid "Disable insertions"
3534
  msgstr "Onemogoči vstavljanja"
3535
 
3536
  #. translators: %s: Ad Inserter
3537
+ #: settings.php:2626
3538
  msgid "%s CSS CODE"
3539
  msgstr "%s CSS KODA"
3540
 
3541
+ #: settings.php:2629
3542
  msgid "HEADER CODE"
3543
  msgstr "KODA GLAVE"
3544
 
3545
  #. translators: %s: PHP tags
3546
+ #: settings.php:2635
3547
  msgid "BLOCK PHP CODE"
3548
  msgstr "PHP KODA BLOKA"
3549
 
3550
  #. translators: %s: Ad Inserter
3551
+ #: settings.php:2641
3552
  msgid "%s JS CODE"
3553
  msgstr "%s JS KODA"
3554
 
3555
+ #: settings.php:2644
3556
  msgid "FOOTER CODE"
3557
  msgstr "KODA NOGE"
3558
 
3559
+ #: settings.php:2653
3560
  msgid "Force showing admin toolbar when viewing site"
3561
  msgstr "Vsili prikaz orodne vrstice za skrbnike pri ogledu strani"
3562
 
3563
+ #: settings.php:2660
3564
  msgid "Enable debugging functions in admin toolbar"
3565
  msgstr "Omogoči funkcije za razhroščevanje v orodni vrstici za skrbnike"
3566
 
3567
+ #: settings.php:2662
3568
  msgid "Debugging functions in admin toolbar"
3569
  msgstr "Funkcije za razhroščevanje v orodni vrstici za skrbnike"
3570
 
3571
+ #: settings.php:2669
3572
  msgid "Enable debugging functions in admin toolbar on mobile screens"
3573
  msgstr ""
3574
  "Omogoči funkcije za razhroščevanje v orodni vrstici za skrbnike na mobilnih "
3575
  "zaslonih"
3576
 
3577
+ #: settings.php:2671
3578
  msgid "Debugging functions on mobile screens"
3579
  msgstr "Funkcije za razhroščevanje na mobilnih zaslonih"
3580
 
3581
+ #: settings.php:2678
3582
  msgid ""
3583
  "Enable Debugger widget and code insertion debugging (blocks, positions, "
3584
  "tags, processing) by url parameters for non-logged in users. Enable this "
3593
  "pomagali diagnosticirati težave. Za prijavljene skrbnike je razhroščevanje "
3594
  "vedno omogočeno."
3595
 
3596
+ #: settings.php:2680
3597
  msgid "Remote debugging"
3598
  msgstr "Oddaljeno razhroščevanje"
3599
 
3600
+ #: settings.php:2687
3601
  msgid ""
3602
  "Disable translation to see original texts for the settings and messages in "
3603
  "English"
3605
  "Onemogoči prevod za prikaz prvotnih besedil nastavitev in sporočil v "
3606
  "angleščini"
3607
 
3608
+ #: settings.php:2689
3609
  msgid "Disable translation"
3610
  msgstr "Onemogoči prevod"
3611
 
3612
+ #: settings.php:3025
3613
  msgid "Available positions for current theme"
3614
  msgstr "Razpoložljivi položaji za trenutno temo"
3615
 
3616
+ #: settings.php:3026
3617
  msgid "Error checking pages"
3618
  msgstr "Napaka pri preverjanju strani"
3619
 
3620
+ #: settings.php:3029
3621
  msgid "Toggle theme checker for available positions for automatic insertion"
3622
  msgstr ""
3623
  "Preklopi preverjanje teme za razpoložljive položaje za samodejno vstavljanje"
3624
 
3625
+ #: settings.php:3029
3626
  msgctxt "Button"
3627
  msgid "Check"
3628
  msgstr "Preveri"
3629
 
3630
+ #: settings.php:3036
3631
  msgid "Position"
3632
  msgstr "Položaj"
3633
 
3634
+ #: settings.php:3041
3635
  msgid "Archive pages"
3636
  msgstr "Strani arhiva"
3637
 
3638
+ #: settings.php:3100
3639
  msgid ""
3640
  "Position not available because output buffering (tab [*]) is not enabled"
3641
  msgstr ""
3642
  "Položaj ni na razpolago ker predpomnjenje izhoda (zavihek [*]) ni omogočeno"
3643
 
3644
+ #: settings.php:3103 strings.php:217
3645
  msgid "Position not checked yet"
3646
  msgstr "Položaj še ni bil preverjen"
3647
 
3648
+ #: settings.php:3134
3649
  msgid "Toggle active/all blocks"
3650
  msgstr "Preklopi aktive/vse bloke"
3651
 
3652
+ #: settings.php:3138 strings.php:204
3653
  msgid "Rearrange block order"
3654
  msgstr "Preuredi vrstni red blokov"
3655
 
3656
+ #: settings.php:3143
3657
  msgid "Save new block order"
3658
  msgstr "Shrani vrstni red blokov"
3659
 
3660
+ #: settings.php:3143
3661
  msgid "Save Changes"
3662
  msgstr "Sharani Nastavitve"
3663
 
3664
+ #: settings.php:3168
3665
  msgid "Toggle active/all ad units"
3666
  msgstr "Preklopi aktivne/vse oglasne enote"
3667
 
3668
+ #: settings.php:3172
3669
  msgid "Reload AdSense ad units"
3670
  msgstr "Ponovno naloži oglasne enote AdSense"
3671
 
3672
+ #: settings.php:3176
3673
  msgid "Clear authorization to access AdSense account"
3674
  msgstr "Odstrani avtorizacijo za dostop do računa AdSense"
3675
 
3676
+ #: settings.php:3180 settings.php:3802 settings.php:3869 strings.php:212
3677
  msgid "Google AdSense Homepage"
3678
  msgstr "Google AdSense Domača Stran"
3679
 
3680
+ #: settings.php:3203
3681
+ msgid "Reload ads.txt file"
3682
+ msgstr "Ponovno naloži datoteko ads.txt"
3683
+
3684
+ #. translators: %s: ads.txt
3685
+ #: settings.php:3207
3686
+ msgid "Open %s"
3687
+ msgstr "Odpri %s"
3688
+
3689
+ #: settings.php:3211
3690
+ msgid "Switch to table view"
3691
+ msgstr "Preklopi na tabelarični pogled"
3692
+
3693
+ #: settings.php:3215
3694
+ msgid "Switch to editor"
3695
+ msgstr "Preklopi na urejevalnik"
3696
+
3697
+ #: settings.php:3219
3698
+ msgid "Save ads.txt file"
3699
+ msgstr "Shrani datoteko ads.txt"
3700
+
3701
+ #: settings.php:3350 strings.php:197
3702
+ msgid "Warning"
3703
+ msgstr "Opozorilo"
3704
+
3705
+ #: settings.php:3350
3706
+ msgid "ads.txt file must be placed on the root domain"
3707
+ msgstr "Datoteka ads.txt mora biti nameščena na korensko domeno"
3708
+
3709
+ #. translators: %s: file path
3710
+ #: settings.php:3351
3711
+ msgid "WordPress is installed in %s"
3712
+ msgstr "WordPress je nameščen v %s"
3713
+
3714
+ #: settings.php:3352
3715
+ msgid "Showing file"
3716
+ msgstr "Prikazana datoteka"
3717
+
3718
+ #: settings.php:3359
3719
+ msgid "Account IDs found in blocks but not present in the ads.txt file"
3720
+ msgstr ""
3721
+ "IDji računov najdeni v blokih, vendar pa niso prisotni v datoteki ads.txt"
3722
+
3723
+ #: settings.php:3376
3724
+ msgid "Advertising system"
3725
+ msgstr "Oglaševalski sistem"
3726
+
3727
+ #: settings.php:3377
3728
+ msgid "Account ID"
3729
+ msgstr "ID Računa"
3730
+
3731
+ #: settings.php:3379
3732
+ msgid "Certification authority ID"
3733
+ msgstr "ID organa za potrjevanje"
3734
+
3735
+ #: settings.php:3394
3736
+ msgid "Account ID found in block and present in ads.txt"
3737
+ msgstr "ID računa najden v bloku in prisoten v datoteki ads.txt"
3738
+
3739
+ #: settings.php:3398
3740
+ msgid "Account ID found in block but not present in ads.txt"
3741
+ msgstr "ID računa najden v bloku, vendar ni prisoten v datoteki ads.txt"
3742
+
3743
+ #: settings.php:3614
3744
  msgid "Preview block"
3745
  msgstr "Predogled bloka"
3746
 
3747
+ #: settings.php:3623
3748
  msgid "Insertion disabled"
3749
  msgstr "Vstavljanje onemogočeno"
3750
 
3751
+ #: settings.php:3647
3752
  msgid "Widget positions"
3753
  msgstr "Položaji gradnikov"
3754
 
3755
+ #: settings.php:3713
3756
  msgid "Ad unit"
3757
  msgstr "Enota"
3758
 
3759
+ #: settings.php:3715
3760
  msgid "Slot ID"
3761
  msgstr "ID mesta"
3762
 
3763
+ #: settings.php:3741
3764
  msgid "Copy AdSense code"
3765
  msgstr "Kopiraj kodo AdSense"
3766
 
3767
+ #: settings.php:3744
3768
  msgid "Preview AdSense ad"
3769
  msgstr "Predogled oglasa AdSense"
3770
 
3771
+ #: settings.php:3747
3772
  msgid "Get AdSense code"
3773
  msgstr "Pridobi kodo AdSense"
3774
 
3775
  #. translators: %s: HTML tags
3776
+ #: settings.php:3779
3777
  msgid ""
3778
  "Please %s clear authorization %s with the button %s above and once again "
3779
  "authorize access to your AdSense account."
3781
  "Prosimo, %s odstranite avtorizacijo %s z gumbom %s zgoraj in še enkrat "
3782
  "avtorizirajte dostop do vašega računa AdSense."
3783
 
3784
+ #: settings.php:3798
3785
  msgid "AdSense Integration"
3786
  msgstr "Integracija AdSense"
3787
 
3788
+ #: settings.php:3800
3789
  msgid "AdSense Integration - Step 2"
3790
  msgstr "Integracija AdSense - Korak 2"
3791
 
3792
  #. translators: %s: HTML tags
3793
+ #: settings.php:3806
3794
  msgid ""
3795
  "Authorize %s to access your AdSense account. Click on the %s Get "
3796
  "Authorization Code %s button to open a new window where you can allow "
3803
  "Avtoriziraj. %s"
3804
 
3805
  #. translators: %s: HTML tags
3806
+ #: settings.php:3813
3807
  msgid ""
3808
  "If you get error, can't access ad units or would like to use own Google API "
3809
  "IDs click on the button %s Use own API IDs %s to enter Client ID and Client "
3814
  "je %s za vnos podatkov ID Klienta in Skrivnost Klienta."
3815
 
3816
  #. translators: %s: HTML tags
3817
+ #: settings.php:3815
3818
  msgid ""
3819
  "Now you can authorize %s to access your AdSense account. Click on the %s Get "
3820
  "Authorization Code %s button to open a new window where you can allow "
3827
  "gumb %s Avtoriziraj. %s"
3828
 
3829
  #. translators: %s: HTML tags
3830
+ #: settings.php:3822
3831
  msgid ""
3832
  "If you get error %s invalid client %s click on the button %s Clear and "
3833
  "return to Step 1 %s to re-enter Client ID and Client Secret."
3835
  "Če se pojavi napaka %s neveljaven klient %s, kliknite na gumb %s Odstrani in "
3836
  "se vrni na Korak 1 %s za ponoven vnos ID klienta in Skrivnost Klienta."
3837
 
3838
+ #: settings.php:3833
3839
  msgid "Get Authorization Code"
3840
  msgstr "Pridobi Avtoriazcijsko Kodo"
3841
 
3842
+ #: settings.php:3836
3843
  msgid "Enter Authorization Code"
3844
  msgstr "Vnesi Avorizacijsko Kodo"
3845
 
3846
+ #: settings.php:3846
3847
  msgid "Use own API IDs"
3848
  msgstr "Uporabi lastne API ID-je"
3849
 
3850
+ #: settings.php:3848
3851
  msgid "Clear and return to Step 1"
3852
  msgstr "Odstrani in se vrni na Korak 1"
3853
 
3854
+ #: settings.php:3852
3855
  msgid "Authorize"
3856
  msgstr "Avtoriziraj"
3857
 
3858
+ #: settings.php:3868
3859
  msgid "AdSense Integration - Step 1"
3860
  msgstr "Integracija AdSense - Korak 1"
3861
 
3862
  #. translators: %s: Ad Inserter
3863
+ #: settings.php:3872
3864
  msgid ""
3865
  "Here can %s list configured AdSense ad units and get code for AdSense ads. "
3866
  "To do this you need to authorize %s to access your AdSense account. The "
3873
  "Klienta in Skrivnost Klienta."
3874
 
3875
  #. translators: %s: HTML tags
3876
+ #: settings.php:3881
3877
  msgid "Go to %s Google APIs and Services console %s"
3878
  msgstr "Pojdite na %s konzolo Google API-ji in Storitve %s"
3879
 
3880
  #. translators: %1: Ad Inserter, 2, 3: HTML tags
3881
+ #: settings.php:3882
3882
  msgid ""
3883
  "Create %1$s project - if the project and IDs are already created click on "
3884
  "the %2$s Credentials %3$s in the sidebar and go to step 16"
3887
  "%2$s Pooblastila %3$s v stranski vrstici in pojdite na korak 16"
3888
 
3889
  #. translators: %s: HTML tags
3890
+ #: settings.php:3883
3891
  msgid ""
3892
  "Click on project selection and then click on the %s NEW PROJECT %s button to "
3893
  "create a new project"
3896
  "ustvaritev novega projekta"
3897
 
3898
  #. translators: 1: Ad Inserter, 2, 3: HTML tags
3899
+ #: settings.php:3884
3900
  msgid "Enter %1$s for project name and click on the %2$s Create %3$s button"
3901
  msgstr "Vnesite %1$s za ime projekta in kliknite na gumb %2$s Ustvari %3$s"
3902
 
3903
  #. translators: %s: HTML tags
3904
+ #: settings.php:3885
3905
  msgid ""
3906
  "Click on project selection, wait for the project to be created and then and "
3907
  "select %s as the current project"
3910
  "izberite %s kot trenutni projekt"
3911
 
3912
  #. translators: %s: HTML tags
3913
+ #: settings.php:3886
3914
  msgid "Click on %s ENABLE APIS AND SERVICES %s"
3915
  msgstr "Klinkite na %s OMOGOČI API-je IN STORITVE %s"
3916
 
3917
  #. translators: %s: HTML tags
3918
+ #: settings.php:3887
3919
  msgid "Search for adsense and enable %s"
3920
  msgstr "Poiščite adsense in omogočite %s"
3921
 
3922
  #. translators: %s: HTML tags
3923
+ #: settings.php:3888
3924
  msgid "Click on %s CREATE CREDENTIALS %s"
3925
  msgstr "Klinkite na %s USTVARI POOBLASTILA %s"
3926
 
3927
  #. translators: %s: HTML tags
3928
+ #: settings.php:3889
3929
  msgid "For %s Where will you be calling the API from? %s select %s Other UI %s"
3930
  msgstr "Za %s Od kod boste klicali API-je? %s izberite %s Drugi UI %s"
3931
 
3932
  #. translators: %s: HTML tags
3933
+ #: settings.php:3890
3934
  msgid "For %s What data will you be accessing? %s select %s User data %s"
3935
  msgstr ""
3936
  "Za %s Do katerih podatkov boste dostopali? %s izberite %s Uporabniški "
3937
  "podatki %s"
3938
 
3939
  #. translators: %s: HTML tags
3940
+ #: settings.php:3891
3941
  msgid "Click on %s What credentials do I need? %s"
3942
  msgstr "Kliknite na %s Kakšna pooblastila potrebujem? %s"
3943
 
3944
  #. translators: %s: HTML tags
3945
+ #: settings.php:3892
3946
  msgid ""
3947
  "Create an OAuth 2.0 client ID: For %s OAuth 2.0 client ID %s name enter %s "
3948
  "Ad Inserter client %s"
3951
  "%s Ad Inserter klient %s"
3952
 
3953
  #. translators: %s: HTML tags
3954
+ #: settings.php:3893
3955
  msgid ""
3956
  "Set up the OAuth 2.0 consent screen: For %s Product name shown to users %s "
3957
  "enter %s"
3960
  "uporabnikom %s vnesite %s"
3961
 
3962
  #. translators: %s: HTML tags
3963
+ #: settings.php:3894
3964
  msgid "Click on %s Continue %s"
3965
  msgstr "Kliknite na %s Nadaljuj %s"
3966
 
3967
  #. translators: %s: HTML tags
3968
+ #: settings.php:3895
3969
  msgid "Click on %s Done %s"
3970
  msgstr "Kliknite na %s Končaj %s"
3971
 
3972
  #. translators: %s: HTML tags
3973
+ #: settings.php:3896
3974
  msgid ""
3975
  "Click on %s Ad Inserter client %s to get %s Client ID %s and %s Client "
3976
  "secret %s"
3978
  "Kliknite na %s Ad Inserter klient, %s da bi dobili %s ID klienta %s in %s "
3979
  "Skrivnost klienta %s"
3980
 
3981
+ #: settings.php:3897
3982
  msgid "Copy them to the appropriate fields below"
3983
  msgstr "Skopirajte ju na ustrezni polji spodaj"
3984
 
3985
+ #: settings.php:3903
3986
  msgid "Client ID"
3987
  msgstr "ID klienta"
3988
 
3989
+ #: settings.php:3906
3990
  msgid "Enter Client ID"
3991
  msgstr "Vnesite ID klienta"
3992
 
3993
+ #: settings.php:3911
3994
  msgid "Client secret"
3995
  msgstr "Skrivnost klienta"
3996
 
3997
+ #: settings.php:3914
3998
  msgid "Enter Client secret"
3999
  msgstr "Vnesite Skrivnost klienta"
4000
 
4001
+ #: settings.php:3924
4002
  msgid "Use default API IDs"
4003
  msgstr "Uporabi privzete API ID-je"
4004
 
4005
+ #: settings.php:3929
4006
  msgid "Save"
4007
  msgstr "Shrani"
4008
 
4009
+ #: settings.php:4205 settings.php:4218 settings.php:4231 settings.php:4246
4010
  msgid "Blank ad blocks? Looking for AdSense alternative?"
4011
  msgstr "Prazni oglasni bloki? Iščete alternativo za AdSense?"
4012
 
4013
+ #: settings.php:4210 settings.php:4223 settings.php:4236 settings.php:4251
4014
+ #: settings.php:4420 settings.php:4424 settings.php:4426 settings.php:4442
4015
+ #: settings.php:4453 settings.php:4456 settings.php:4462 settings.php:4474
4016
  msgid "Looking for AdSense alternative?"
4017
  msgstr "Iščete alternativo za AdSense?"
4018
 
4019
+ #: settings.php:4262
4020
  msgid "Try Infolinks Ads with Adsense or Media.net ads"
4021
  msgstr "Poskusite oglase Infolinks z oglasi AdSense ali Media.net"
4022
 
4023
+ #: settings.php:4267 settings.php:4422 settings.php:4434 settings.php:4459
4024
+ #: settings.php:4482
4025
  msgid "Use Infolinks ads with Adsense to earn more"
4026
  msgstr "Uporabite oglase Infolinks z AdSense za večji zaslužek"
4027
 
4028
+ #: settings.php:4286 settings.php:4324
4029
  msgid "Support plugin development"
4030
  msgstr "Podprite razvoj vtičnika"
4031
 
4032
+ #: settings.php:4287 settings.php:4325
4033
  msgid ""
4034
  "If you like Ad Inserter and have a moment, please help me spread the word by "
4035
  "reviewing the plugin on WordPres"
4037
  "Če vam je Ad Inserter všeč in imate trenutek časa, mi prosim pomagajte "
4038
  "razširiti novico z oceno vtičnika na WordPress-u"
4039
 
4040
+ #: settings.php:4287
4041
  msgctxt "Review ad Inserter"
4042
  msgid "Review"
4043
  msgstr "Oceni"
4044
 
4045
+ #: settings.php:4288
4046
  msgid ""
4047
  "Support free Ad Inserter development. If you are making money with Ad "
4048
  "Inserter consider donating some small amount. Even 1 dollar counts. Thank "
4051
  "Podprite razvoj brezplačnega Ad Inserter-ja. Če služite denar z Ad Inserter-"
4052
  "jem razmislite o donaciji manjšega zneska. Tudi 1 evro šteje. Hvala!"
4053
 
4054
+ #: settings.php:4288
4055
  msgid "Donate"
4056
  msgstr "Donirajte"
4057
 
4058
+ #: settings.php:4295 settings.php:4340
4059
  msgid "Average rating of the plugin - Thank you!"
4060
  msgstr "Povprečna ocena vtičnika - Hvala!"
4061
 
4062
  #. translators: %s: Ad Inserter, HTML tags
4063
+ #: settings.php:4306
4064
  msgid ""
4065
  "You've been using %s for a while now, and I hope you're happy with it. "
4066
  "Positive %s reviews %s are a great way to show your appreciation for my "
4074
  "vzpodbuda za odpravo hroščev in dodajanje novih funkcij za boljšo "
4075
  "monetizacijo vašega spletnega mesta. %s Hvala!"
4076
 
4077
+ #: settings.php:4325
4078
  msgid "Review"
4079
  msgstr "Ocena"
4080
 
4081
+ #: settings.php:4329
4082
  msgid "Ad Inserter on Twitter"
4083
  msgstr "Ad Inserter na Twitter-ju"
4084
 
4085
+ #: settings.php:4330
4086
  msgid "Ad Inserter on Facebook"
4087
  msgstr "Ad Inserter na Facebook-u"
4088
 
4089
+ #: settings.php:4333
4090
  msgid "Follow Ad Inserter"
4091
  msgstr "Sledi Ad Inserter-ju"
4092
 
4093
  #. translators: %s: HTML tags
4094
+ #: settings.php:4360
4095
  msgid ""
4096
  "Need help with %s settings? %s Check %s Quick Start, %s %s Code Editing %s "
4097
  "and %s Common Settings %s pages"
4100
  "Urejanje Kode, %s %s Pogoste Nastavitve %s"
4101
 
4102
  #. translators: %s: HTML tags
4103
+ #: settings.php:4372
4104
  msgid ""
4105
  "%s New to %s AdSense? %s %s %s Connect your site %s - Advanced %s AdSense "
4106
  "code: %s %s In-feed ads, %s %s Auto ads, %s %s AMP ads %s"
4110
  "%s"
4111
 
4112
  #. translators: %s: HTML tags
4113
+ #: settings.php:4391
4114
  msgid ""
4115
  "Ads are not showing? Check %s troubleshooting guide %s to find out how to "
4116
  "diagnose and fix the problem."
4119
  "navodili za diagnozo in rešitvami za težave."
4120
 
4121
  #. translators: %s: HTML tags
4122
+ #: settings.php:4395
4123
  msgid ""
4124
  "If you need any kind of help or support, please do not hesitate to open a "
4125
  "thread on the %s support forum. %s"
4127
  "Če potrebujete kakršno koli pomoč ali podporo ne oklevajte in odprite novo "
4128
  "nit na %s podpornem forumu. %s"
4129
 
4130
+ #: settings.php:4438 settings.php:4478
4131
  msgid "A/B testing - Track ad impressions and clicks"
4132
  msgstr "A/B testiranje - Sledi prikazom in klikom"
4133
 
4134
+ #: settings.php:4446 settings.php:4470
4135
  msgid "Code preview with visual CSS editor"
4136
  msgstr "Predogled kode z vizualnim CSS urejevalnikom"
4137
 
4138
+ #: settings.php:4488
4139
  msgid "Looking for Pro Ad Management plugin?"
4140
  msgstr "Iščete Pro vtičnik za Upravljanje z Oglasi?"
4141
 
4142
+ #: settings.php:4489
4143
  msgid "To Optimally Monetize your WordPress website?"
4144
  msgstr "Za optimalno monetizacijo vašega WordPress spletnega mesta?"
4145
 
4146
  #. translators: %s HTML tags
4147
+ #: settings.php:4492
4148
  msgid "%s AdSense Integration %s"
4149
  msgstr "%s Integracija AdSense %s"
4150
 
4151
  #. translators: %s HTML tags
4152
+ #: settings.php:4493
4153
  msgid "Syntax highlighting %s editor %s"
4154
  msgstr "%s Urejevalnik %s s poudarjanjem sintakse"
4155
 
4156
  #. translators: %s HTML tags
4157
+ #: settings.php:4494
4158
  msgid "%s Code preview %s with visual CSS editor"
4159
  msgstr "%s Predogled kode %s z vizualnim CSS urejevalnikom"
4160
 
4161
  #. translators: %s HTML tags
4162
+ #: settings.php:4495
4163
  msgid "Simple user interface - all settings on a single page"
4164
  msgstr "Preprost uporabniški vmesnik - vse nastavitve na eni strani"
4165
 
4166
  #. translators: %s HTML tags
4167
+ #: settings.php:4496
4168
  msgid ""
4169
  "%s Automatic insertion %s before or after post / content / %s paragraph %s / "
4170
  "image / excerpt"
4173
  "%s / sliko / izvlečkom"
4174
 
4175
  #. translators: %s HTML tags
4176
+ #: settings.php:4497
4177
  msgid "%s Automatic insertion %s between posts on blog pages"
4178
  msgstr "%s Samodejno vstavljanje %s med prispevki na straneh bloga"
4179
 
4180
  #. translators: %s HTML tags
4181
+ #: settings.php:4498
4182
  msgid "%s Automatic insertion %s before, between and after comments"
4183
  msgstr "%s Samodejno vstavljanje %s pred, med in po kometarjih"
4184
 
4185
  #. translators: %s HTML tags
4186
+ #: settings.php:4499
4187
  msgid "%s Automatic insertion %s after %s or before %s tag"
4188
  msgstr "%s Samodejno vstavljanje %s za %s ali pred %s začko"
4189
 
4190
  #. translators: %s HTML tags
4191
+ #: settings.php:4500
4192
  msgid "Automatic insertion at %s custom hook positions %s"
4193
  msgstr "Samodejno vstavljanje na %s položajih ročic po meri %s"
4194
 
4195
  #. translators: %s HTML tags
4196
+ #: settings.php:4501
4197
  msgid ""
4198
  "Insertion %s before or after any HTML element on the page %s (using CSS "
4199
  "selectors)"
4202
  "selektorjev)"
4203
 
4204
  #. translators: %s HTML tags
4205
+ #: settings.php:4502
4206
  msgid "%s Insertion exceptions %s for individual posts and pages"
4207
  msgstr "%s Izjeme vstavljanja %s za individualne prispevke in strani"
4208
 
4209
  #. translators: %s HTML tags
4210
+ #: settings.php:4503
4211
  msgid "%s Manual insertion: %s widgets, shortcodes, PHP function call"
4212
  msgstr "%s Ročno vstavljanje: %s gradniki, kratke kode in klic PHP funkcije"
4213
 
4214
  #. translators: %s HTML tags
4215
+ #: settings.php:4504
4216
  msgid ""
4217
  "%s Sticky ads %s with optional close button (ads stay fixed when the page "
4218
  "scrolls)"
4221
  "se stran pomika)"
4222
 
4223
  #. translators: %s HTML tags
4224
+ #: settings.php:4505
4225
  msgid "%s Sticky sidebar ads %s (stick to the screen or to the content)"
4226
  msgstr ""
4227
  "%s Lepljivi oglasi v stranski vrstici %s (lepljivi na zaslon ali vsebino)"
4228
 
4229
  #. translators: %s HTML tags
4230
+ #: settings.php:4506
4231
  msgid "%s Sticky ad animations %s (fade, slide, turn, flip, zoom)"
4232
  msgstr ""
4233
  "%s Animacije lepljivih oglasov %s (uveni, drsaj, obrni, prekucni, približaj)"
4234
 
4235
  #. translators: %s HTML tags
4236
+ #: settings.php:4507
4237
  msgid ""
4238
  "%s Sticky ad trigger %s (page scroll in %% or px, HTML element becomes "
4239
  "visible)"
4242
  "postane viden)"
4243
 
4244
  #. translators: %s HTML tags
4245
+ #: settings.php:4508
4246
  msgid ""
4247
  "%s Sticky (fixed) widgets %s (sidebar does not move when the page scrolls)"
4248
  msgstr ""
4250
  "strani)"
4251
 
4252
  #. translators: %s HTML tags
4253
+ #: settings.php:4509
4254
  msgid "Block %s alignment and style %s customizations"
4255
  msgstr "%s Poravnave in slogi %s bloka po meri"
4256
 
4257
  #. translators: %s HTML tags
4258
+ #: settings.php:4510
4259
  msgid ""
4260
  "%s Clearance %s options to avoid insertion near images or headers (AdSense "
4261
  "TOS)"
4263
  "%s Izogibanje %s vstavljanja oglasov zraven slik ali naslovov (AdSense TOS)"
4264
 
4265
  #. translators: %s HTML tags
4266
+ #: settings.php:4511
4267
  msgid ""
4268
  "Options to %s disable insertion %s on Ajax calls, 404 error pages or in RSS "
4269
  "feeds"
4272
  "virih"
4273
 
4274
  #. translators: %s HTML tags
4275
+ #: settings.php:4512
4276
  msgid "%s Ad rotation %s (works also with caching)"
4277
  msgstr "%s Rotacija oglasov %s (deluje tudi s predpomnjenjem)"
4278
 
4279
  #. translators: %s HTML tags
4280
+ #: settings.php:4513
4281
  msgid ""
4282
  "Ad impression and click %s tracking %s (works also with Javascript ads like "
4283
  "AdSense)"
4286
  "AdSense)"
4287
 
4288
  #. translators: %s HTML tags
4289
+ #: settings.php:4514
4290
  msgid "Support for %s A/B testing %s"
4291
  msgstr "Podpora za %s A/B testiranje %s"
4292
 
4293
  #. translators: %s HTML tags
4294
+ #: settings.php:4515
4295
  msgid "Support for %s lazy loading %s"
4296
  msgstr "Podpora za %s leno nalaganje %s"
4297
 
4298
  #. translators: %s HTML tags
4299
+ #: settings.php:4516
4300
  msgid "Support for ads on %s AMP pages %s"
4301
  msgstr "Podpora za oglase na %s AMP straneh %s"
4302
 
4303
  #. translators: %s HTML tags
4304
+ #: settings.php:4517
4305
  msgid "Support for contextual %s Amazon Native Shopping Ads %s (responsive)"
4306
  msgstr "Podpora za kontekstualne %s Amazon Native Shopping Ads %s (odzivni)"
4307
 
4308
  #. translators: %s HTML tags
4309
+ #: settings.php:4518
4310
  msgid "Custom CSS class name for wrapping divs to avoid ad blockers"
4311
  msgstr ""
4312
  "Ime CSS razreda za div za ovijanje po meri za izogibanje blokiranju oglasov"
4313
 
4314
  #. translators: %s HTML tags
4315
+ #: settings.php:4519
4316
  msgid "PHP code processing"
4317
  msgstr "Procesiranje PHP kode"
4318
 
4319
  #. translators: %s HTML tags
4320
+ #: settings.php:4520
4321
  msgid "%s Banner %s code generator"
4322
  msgstr "Generator kode za %s pasice %s"
4323
 
4324
  #. translators: %s HTML tags
4325
+ #: settings.php:4521
4326
  msgid "Support for %s header and footer %s code"
4327
  msgstr "Podpora za kodo v %s glavi in nogi %s"
4328
 
4329
  #. translators: %s HTML tags
4330
+ #: settings.php:4522
4331
  msgid "Support for Google Analytics, Matomo or any other web analytics code"
4332
  msgstr ""
4333
  "Podpora za Google Analytics, Matomo ali katerokoli drugo spletno analitiko"
4334
 
4335
  #. translators: %s HTML tags
4336
+ #: settings.php:4523
4337
  msgid "Desktop, tablet and phone server-side %s device detection %s"
4338
  msgstr ""
4339
  "%s Zaznava namizne, tablične in telefonske naprave %s na strani strani "
4340
  "strežnika"
4341
 
4342
  #. translators: %s HTML tags
4343
+ #: settings.php:4524
4344
  msgid "Client-side %s mobile device detection %s (works with caching)"
4345
  msgstr "%s Zaznava mobilne naprave %s (deluje s predpomnjenjem)"
4346
 
4347
  #. translators: %s HTML tags
4348
+ #: settings.php:4525
4349
  msgid ""
4350
  "%s Ad blocking detection %s - popup message, ad replacement, content "
4351
  "protection"
4354
  "vsebine"
4355
 
4356
  #. translators: %s HTML tags
4357
+ #: settings.php:4526
4358
  msgid "%s Ad blocking statistics %s"
4359
  msgstr "%s Statistika blokiranja oglasov %s"
4360
 
4361
  #. translators: %s HTML tags
4362
+ #: settings.php:4527
4363
  msgid ""
4364
  "%s Black/White-list %s categories, tags, taxonomies, users, post IDs, urls, "
4365
  "referers"
4367
  "%s Črni/Beli seznam %s kategorij, oznak, taksonomij, uporabnikov, url-jev"
4368
 
4369
  #. translators: %s HTML tags
4370
+ #: settings.php:4528
4371
  msgid ""
4372
  "%s Black/White-list %s IP addresses or countries (works also with caching)"
4373
  msgstr ""
4374
  "%s Črni/Beli seznam %s IP naslovov ali držav (deluje tudi s predpomnjenjem)"
4375
 
4376
  #. translators: %s HTML tags
4377
+ #: settings.php:4529
4378
  msgid "%s Multisite options %s to limit settings on the sites"
4379
  msgstr "%s Multisite možnosti %s za omejitev nastavitev na spletiščih"
4380
 
4381
  #. translators: %s HTML tags
4382
+ #: settings.php:4530
4383
  msgid "%s Import/Export %s block or plugin settings"
4384
  msgstr "%s Uvoz/Izvoz %s nastavitve bloka ali vtičnika"
4385
 
4386
  #. translators: %s HTML tags
4387
+ #: settings.php:4531
4388
  msgid "%s Insertion scheduling %s with fallback option"
4389
  msgstr "%s Urnik vstavljanja %s z možnostjo rezerve"
4390
 
4391
  #. translators: %s HTML tags
4392
+ #: settings.php:4532
4393
  msgid "Country-level %s GEO targeting %s (works also with caching)"
4394
  msgstr "%s GEO ciljanje na ravni države %s (deluje tudi s predpomnjenjem)"
4395
 
4396
  #. translators: %s HTML tags
4397
+ #: settings.php:4533
4398
  msgid "Simple troubleshooting with many %s debugging functions %s"
4399
  msgstr ""
4400
  "Preprosto odpravljanje napak z veliko %s funkcijami za razhroščevanje %s"
4401
 
4402
  #. translators: %s HTML tags
4403
+ #: settings.php:4534
4404
  msgid "%s Visualization %s of inserted blocks or ads for easier placement"
4405
  msgstr ""
4406
  "%s Vizualizacija %s vstavljenih blokov ali oglasov za enostavno umeščanje"
4407
 
4408
  #. translators: %s HTML tags
4409
+ #: settings.php:4535
4410
  msgid "%s Visualization %s of available positions for automatic ad insertion"
4411
  msgstr ""
4412
  "%s Vizualizacija %s razpoložljivih položajev za samodejno vstavljanje oglasov"
4413
 
4414
  #. translators: %s HTML tags
4415
+ #: settings.php:4536
4416
  msgid ""
4417
  "%s Visualization %s of HTML tags for easier ad placement between paragraphs"
4418
  msgstr ""
4419
  "%s Vizualizacija %s HTML značk za enostavno vstavljanje oglasov med odstavki"
4420
 
4421
  #. translators: %s HTML tags
4422
+ #: settings.php:4537
4423
  msgid "%s Clipboard support %s to easily copy blocks or settings"
4424
  msgstr ""
4425
  "%s Podpora za odložišče %s za enostavno kopiranje blokov ali nastavitev"
4426
 
4427
  #. translators: %s HTML tags
4428
+ #: settings.php:4538
4429
  msgid "No ads on the settings page"
4430
  msgstr "Stran z nastavitvami brez oglasov"
4431
 
4432
  #. translators: %s HTML tags
4433
+ #: settings.php:4539
4434
  msgid "Premium support via email"
4435
  msgstr "Vrhunska podpora prek elektronske pošte"
4436
 
4437
  #. translators: %s HTML tags
4438
+ #: settings.php:4542
4439
  msgid ""
4440
  "Ad Inserter Pro is a complete all-in-one ad management plugin for WordPress "
4441
  "website with many advertising features to automatically insert adverts on "
4462
  "bodo ohranile)."
4463
 
4464
  #. translators: %s HTML tags
4465
+ #: settings.php:4555
4466
  msgid "Looking for %s Pro Ad Management plugin? %s"
4467
  msgstr "Iščete Pro vtičnik za %s Upravljanje z Oglasi? %s"
4468
 
4469
  #. translators: %s HTML tags
4470
+ #: settings.php:4560
4471
  msgid "Ads between posts"
4472
  msgstr "Oglasi med prispevki"
4473
 
4474
  #. translators: %s HTML tags
4475
+ #: settings.php:4561
4476
  msgid "Ads between comments"
4477
  msgstr "Oglasi med komentarji"
4478
 
4479
  #. translators: %s HTML tags
4480
+ #: settings.php:4562
4481
  msgid "Support via email"
4482
  msgstr "Podpora prek elektronske pošte"
4483
 
4484
  #. translators: %s HTML tags
4485
+ #: settings.php:4568
4486
  msgid "%s Sticky positions %s"
4487
  msgstr "%s Lepljivi položaji %s"
4488
 
4489
  #. translators: %s HTML tags
4490
+ #: settings.php:4569
4491
  msgid "%s Limit insertions %s"
4492
  msgstr "%s Omeji vstavljanja %s"
4493
 
4494
  #. translators: %s HTML tags
4495
+ #: settings.php:4570
4496
  msgid "%s Clearance %s options"
4497
  msgstr "Možnosti %s izogibanja %s"
4498
 
4499
  #. translators: %s HTML tags
4500
+ #: settings.php:4576
4501
  msgid "Ad rotation"
4502
  msgstr "Vrtenje oglasov"
4503
 
4504
  #. translators: %s HTML tags
4505
+ #: settings.php:4577
4506
  msgid "%s A/B testing %s"
4507
  msgstr "%s A/B testiranje %s"
4508
 
4509
  #. translators: %s HTML tags
4510
+ #: settings.php:4578
4511
  msgid "%s Ad tracking %s"
4512
  msgstr "%s Sledenje oglasom %s"
4513
 
4514
  #. translators: %s HTML tags
4515
+ #: settings.php:4584
4516
  msgid "Support for %s AMP pages %s"
4517
  msgstr "Podpora za %s AMP strani %s"
4518
 
4519
  #. translators: %s HTML tags
4520
+ #: settings.php:4585
4521
  msgid "%s Ad blocking detection %s"
4522
  msgstr "%s Zaznavanje blokiranja oglasov %s"
4523
 
4524
  #. translators: %s HTML tags
4525
+ #: settings.php:4586
4526
  msgid "%s Mobile device detection %s"
4527
  msgstr "%s Zaznavanje mobilne naprave %s"
4528
 
4529
  #. translators: %s HTML tags
4530
+ #: settings.php:4593
4531
  msgid "64 code blocks"
4532
  msgstr "64 kodnih blokov"
4533
 
4534
  #. translators: %s HTML tags
4535
+ #: settings.php:4594
4536
  msgid "%s GEO targeting %s"
4537
  msgstr "%s GEO ciljanje %s"
4538
 
4539
  #. translators: %s HTML tags
4540
+ #: settings.php:4595
4541
  msgid "%s Scheduling %s"
4542
  msgstr "%s Urnik %s"
4543
 
5191
  msgstr[2] "dni"
5192
  msgstr[3] "dni"
5193
 
 
 
 
 
5194
  #: strings.php:198
5195
  msgid "Delete"
5196
  msgstr "Pobriši"
languages/ad-inserter.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the Ad Inserter package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Ad Inserter 2.4.10\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/ad-inserter\n"
7
- "POT-Creation-Date: 2019-02-22 19:28:04+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -12,465 +12,465 @@ msgstr ""
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
15
- #: ad-inserter.php:318
16
  msgctxt "Menu item"
17
  msgid "Debugging DEMO"
18
  msgstr ""
19
 
20
- #: ad-inserter.php:334
21
  msgctxt "Menu item"
22
  msgid "Label Blocks"
23
  msgstr ""
24
 
25
- #: ad-inserter.php:341
26
  msgctxt "Menu item"
27
  msgid "Show Positions"
28
  msgstr ""
29
 
30
- #: ad-inserter.php:412
31
  msgctxt "Menu item"
32
  msgid "Show HTML Tags"
33
  msgstr ""
34
 
35
- #: ad-inserter.php:419
36
  msgctxt "Menu item"
37
  msgid "Disable Insertion"
38
  msgstr ""
39
 
40
- #: ad-inserter.php:428
41
  msgctxt "Menu item"
42
  msgid "Ad Blocking Status"
43
  msgstr ""
44
 
45
- #: ad-inserter.php:435
46
  msgctxt "Menu item"
47
  msgid "Simulate Ad Blocking"
48
  msgstr ""
49
 
50
- #: ad-inserter.php:445
51
  msgctxt "Menu item"
52
  msgid "Log Processing"
53
  msgstr ""
54
 
55
  #. translators: Debugging position name Before HTML element
56
- #: ad-inserter.php:1022
57
  msgid "Before"
58
  msgstr ""
59
 
60
  #. translators: Debugging position name After HTML element
61
- #: ad-inserter.php:1027
62
  msgid "After"
63
  msgstr ""
64
 
65
  #. translators: Debugging position name Prepend content of HTML element (before
66
  #. the content of the HTML element)
67
- #: ad-inserter.php:1032 strings.php:98
68
  msgid "Prepend content"
69
  msgstr ""
70
 
71
  #. translators: Debugging position name Append content of HTML element (after
72
  #. the content of the HTML element)
73
- #: ad-inserter.php:1037 strings.php:99
74
  msgid "Append content"
75
  msgstr ""
76
 
77
  #. translators: Debugging position name Replace content of HTML element
78
- #: ad-inserter.php:1042 strings.php:100
79
  msgid "Replace content"
80
  msgstr ""
81
 
82
  #. translators: Debugging position name Replace HTML element
83
- #: ad-inserter.php:1047 strings.php:150
84
  msgid "Replace"
85
  msgstr ""
86
 
87
  #. translators: Debugging message when output buffering is enabled
88
- #: ad-inserter.php:1094
89
  msgid "OUTPUT BUFFERING"
90
  msgstr ""
91
 
92
  #. translators: Debugging position
93
- #: ad-inserter.php:1098
94
  msgid "Above Header"
95
  msgstr ""
96
 
97
- #: ad-inserter.php:1307
98
  msgctxt "Menu item"
99
  msgid "Log In"
100
  msgstr ""
101
 
102
  #. translators: %s: Ad Inserter
103
- #: ad-inserter.php:1582 ad-inserter.php:2445
104
  msgid "%s Settings"
105
  msgstr ""
106
 
107
  #. translators: AD BLOCKING DETECTED, PAGE VIEWS: n - NO ACTION
108
- #: ad-inserter.php:2016
109
  msgid "AD BLOCKING DETECTED, PAGE VIEWS"
110
  msgstr ""
111
 
112
- #: ad-inserter.php:2016
113
  msgid "NO ACTION"
114
  msgstr ""
115
 
116
- #: ad-inserter.php:2017
117
  msgid "AD BLOCKING DETECTED, COOKIE DETECTED - NO ACTION"
118
  msgstr ""
119
 
120
- #: ad-inserter.php:2018
121
  msgid "AD BLOCKING DETECTED - ACTION"
122
  msgstr ""
123
 
124
- #: ad-inserter.php:2019
125
  msgid "AD BLOCKING NOT DETECTED"
126
  msgstr ""
127
 
128
- #: ad-inserter.php:2020
129
  msgid "AD BLOCKING DETECTION COOKIES DELETED"
130
  msgstr ""
131
 
132
- #: ad-inserter.php:2021
133
  msgid "AD BLOCKING DETECTED - NO ACTION"
134
  msgstr ""
135
 
136
  #. Translators: 1: number of blocks, 2: Ad Inserter
137
- #: ad-inserter.php:2216
138
  msgid "Hey, you are now using %1$s %2$s block."
139
  msgid_plural "Hey, you are now using %1$s %2$s blocks."
140
  msgstr[0] ""
141
  msgstr[1] ""
142
 
143
- #: ad-inserter.php:2217 includes/functions.php:1489
144
  msgid "No, thank you."
145
  msgstr ""
146
 
147
  #. Translators: %s: Ad Inserter
148
- #: ad-inserter.php:2220
149
  msgid ""
150
  "Hey, you've been using %s for a while now, and I hope you're happy with it."
151
  msgstr ""
152
 
153
- #: ad-inserter.php:2221 includes/functions.php:1492
154
  msgid "Not now, maybe later."
155
  msgstr ""
156
 
157
- #: ad-inserter.php:2231
158
  msgid ""
159
  "I would really appreciate it if you could give the plugin a 5-star rating on "
160
  "WordPres."
161
  msgstr ""
162
 
163
- #: ad-inserter.php:2233
164
  msgid ""
165
  "Positive reviews are a great incentive to fix bugs and to add new features "
166
  "for better monetization of your website. Thank you, Igor"
167
  msgstr ""
168
 
169
  #. translators: %s: Ad Inserter
170
- #: ad-inserter.php:2239
171
  msgid "Rate %s"
172
  msgstr ""
173
 
174
- #: ad-inserter.php:2244
175
  msgid "I already did."
176
  msgstr ""
177
 
178
- #: ad-inserter.php:2258
179
  msgctxt "Menu item"
180
  msgid "Settings"
181
  msgstr ""
182
 
183
  #. translators: %s: Ad Inserter
184
- #: ad-inserter.php:2332
185
  msgctxt "Meta box name"
186
  msgid "%s Individual Exceptions"
187
  msgstr ""
188
 
189
- #: ad-inserter.php:2361 ad-inserter.php:7972 class.php:1967
190
  #: includes/preview.php:1966 includes/preview.php:2010
191
- #: includes/preview.php:2047 settings.php:3352 strings.php:3
192
  msgid "Block"
193
  msgstr ""
194
 
195
- #: ad-inserter.php:2362 settings.php:3353 settings.php:3427
196
  msgid "Name"
197
  msgstr ""
198
 
199
- #: ad-inserter.php:2363 settings.php:3355
200
  msgid "Automatic insertion"
201
  msgstr ""
202
 
203
- #: ad-inserter.php:2366
204
  msgid "Default insertion for pages"
205
  msgstr ""
206
 
207
- #: ad-inserter.php:2367
208
  msgid "Default insertion for posts"
209
  msgstr ""
210
 
211
  #. translators: For this post or page
212
- #: ad-inserter.php:2370
213
  msgctxt "Page"
214
  msgid "For this"
215
  msgstr ""
216
 
217
- #: ad-inserter.php:2371
218
  msgctxt "Post"
219
  msgid "For this"
220
  msgstr ""
221
 
222
- #: ad-inserter.php:2379
223
  msgctxt "Enabled/disabled on all"
224
  msgid "pages"
225
  msgstr ""
226
 
227
- #: ad-inserter.php:2380
228
  msgctxt "Default insertion for"
229
  msgid "pages"
230
  msgstr ""
231
 
232
- #: ad-inserter.php:2384
233
  msgctxt "Enabled/disabled on all"
234
  msgid "posts"
235
  msgstr ""
236
 
237
- #: ad-inserter.php:2385
238
  msgctxt "Default insertion for"
239
  msgid "posts"
240
  msgstr ""
241
 
242
- #: ad-inserter.php:2404 ad-inserter.php:2417 strings.php:156
243
  msgid "Enabled"
244
  msgstr ""
245
 
246
  #. translators: Menu items
247
- #: ad-inserter.php:2404 ad-inserter.php:2417 includes/functions.php:2117
248
  #: strings.php:16
249
  msgid "Disabled"
250
  msgstr ""
251
 
252
  #. translators: Enabled on all pages or posts
253
- #: ad-inserter.php:2407
254
  msgid "Enabled on all"
255
  msgstr ""
256
 
257
  #. translators: Disabled on all pages or posts
258
- #: ad-inserter.php:2409
259
  msgid "Disabled on all"
260
  msgstr ""
261
 
262
  #. translators: No individual exceptions enabled for pages or posts
263
- #: ad-inserter.php:2437
264
  msgid "No individual exceptions enabled for"
265
  msgstr ""
266
 
267
  #. translators: 1: pages or posts, 2: Ad Inserter Settings (page)
268
- #: ad-inserter.php:2442
269
  msgid ""
270
  "Default insertion for %1$s can be configured for each block on %2$s page - "
271
  "selection next to <strong>Posts</strong> / <strong>Static pages</strong> "
272
  "checkbox.<br />"
273
  msgstr ""
274
 
275
- #: ad-inserter.php:2447
276
  msgid ""
277
  "Default value is <strong>blank</strong> and means no individual exceptions "
278
  "(even if previously defined here).<br />"
279
  msgstr ""
280
 
281
- #: ad-inserter.php:2450
282
  msgctxt "Pages"
283
  msgid ""
284
  "Set to <strong>Individually disabled</strong> or <strong>Individually "
285
  "enabled</strong> to enable individual exception settings on this page.<br />"
286
  msgstr ""
287
 
288
- #: ad-inserter.php:2451
289
  msgctxt "Posts"
290
  msgid ""
291
  "Set to <strong>Individually disabled</strong> or <strong>Individually "
292
  "enabled</strong> to enable individual exception settings on this page.<br />"
293
  msgstr ""
294
 
295
- #: ad-inserter.php:2453
296
  msgid "For more information check page %s"
297
  msgstr ""
298
 
299
  #. translators: Ad Inserter Exceptions documentation page
300
- #: ad-inserter.php:2455
301
  msgid "Individual Exceptions"
302
  msgstr ""
303
 
304
- #: ad-inserter.php:2500
305
  msgid "STATIC PAGE"
306
  msgstr ""
307
 
308
- #: ad-inserter.php:2503
309
  msgid "POST"
310
  msgstr ""
311
 
312
- #: ad-inserter.php:2506
313
  msgid "HOMEPAGE"
314
  msgstr ""
315
 
316
- #: ad-inserter.php:2509
317
  msgid "CATEGORY PAGE"
318
  msgstr ""
319
 
320
- #: ad-inserter.php:2512
321
  msgid "SEARCH PAGE"
322
  msgstr ""
323
 
324
- #: ad-inserter.php:2515
325
  msgid "ARCHIVE PAGE"
326
  msgstr ""
327
 
328
- #: ad-inserter.php:2518
329
  msgid "ERROR 404 PAGE"
330
  msgstr ""
331
 
332
- #: ad-inserter.php:2521
333
  msgid "AJAX CALL"
334
  msgstr ""
335
 
336
- #: ad-inserter.php:2524
337
  msgid "UNKNOWN PAGE TYPE"
338
  msgstr ""
339
 
340
- #: ad-inserter.php:2541
341
  msgid "Click to delete ad blocking detection cokies"
342
  msgstr ""
343
 
344
- #: ad-inserter.php:2542
345
  msgid "AD BLOCKING STATUS UNKNOWN"
346
  msgstr ""
347
 
348
  #. translators: %s: AdSense Auto Ads
349
- #: ad-inserter.php:2566
350
  msgid ""
351
  "Code for %s detected - Code will automatically insert AdSense ads at optimal "
352
  "positions"
353
  msgstr ""
354
 
355
- #: ad-inserter.php:2705
356
  msgid "Code for insertion"
357
  msgstr ""
358
 
359
- #: ad-inserter.php:2705
360
  msgid "character"
361
  msgid_plural "characters"
362
  msgstr[0] ""
363
  msgstr[1] ""
364
 
365
- #: ad-inserter.php:2748
366
  msgid "Header code"
367
  msgstr ""
368
 
369
- #: ad-inserter.php:2748
370
  msgctxt "Header code"
371
  msgid "DISABLED"
372
  msgstr ""
373
 
374
- #: ad-inserter.php:2748 ad-inserter.php:2966
375
  msgid "character inserted"
376
  msgid_plural "characters inserted"
377
  msgstr[0] ""
378
  msgstr[1] ""
379
 
380
- #: ad-inserter.php:2781
381
  msgid "Automatically placed by AdSense Auto ads code"
382
  msgstr ""
383
 
384
- #: ad-inserter.php:2966
385
  msgid "Footer code"
386
  msgstr ""
387
 
388
- #: ad-inserter.php:2966
389
  msgctxt "Footer code"
390
  msgid "DISABLED"
391
  msgstr ""
392
 
393
- #: ad-inserter.php:2972
394
  msgid "JAVASCRIPT NOT WORKING"
395
  msgstr ""
396
 
397
- #: ad-inserter.php:2972
398
  msgid "NO JAVASCRIPT ERRORS"
399
  msgstr ""
400
 
401
- #: ad-inserter.php:2972
402
  msgid "JAVASCRIPT ERRORS"
403
  msgstr ""
404
 
405
  #. translators: block name (block with default settings)
406
- #: ad-inserter.php:5032
407
  msgctxt "Block name"
408
  msgid "Default"
409
  msgstr ""
410
 
411
  #. translators: %s: Ad Inserter
412
- #: ad-inserter.php:5596
413
  msgid "Error importing %s settings."
414
  msgstr ""
415
 
416
- #: ad-inserter.php:5597
417
  msgid "Error importing settings for block"
418
  msgid_plural "Error importing settings for blocks:"
419
  msgstr[0] ""
420
  msgstr[1] ""
421
 
422
- #: ad-inserter.php:5646
423
  msgid "Settings saved."
424
  msgstr ""
425
 
426
- #: ad-inserter.php:5731
427
  msgid "Settings cleared."
428
  msgstr ""
429
 
430
- #: ad-inserter.php:6076 ad-inserter.php:6078 ad-inserter.php:6101
431
  msgid "word"
432
  msgid_plural "words"
433
  msgstr[0] ""
434
  msgstr[1] ""
435
 
436
- #: ad-inserter.php:6115 ad-inserter.php:6227
437
  msgid "HTML TAGS REMOVED"
438
  msgstr ""
439
 
440
- #: ad-inserter.php:6303
441
  msgid "BEFORE COMMENTS"
442
  msgstr ""
443
 
444
- #: ad-inserter.php:6411
445
  msgid "AFTER COMMENTS"
446
  msgstr ""
447
 
448
- #: ad-inserter.php:6474
449
  msgid "BETWEEN COMMENTS"
450
  msgstr ""
451
 
452
- #: ad-inserter.php:7619
453
  msgid "requires WordPress 4.0 or newer"
454
  msgstr ""
455
 
456
- #: ad-inserter.php:7619
457
  msgid "Please update!"
458
  msgstr ""
459
 
460
  #. translators: Opt-in message: Thank you for installing Ad Inserter (plugin
461
  #. name with HTML tags will be added)
462
- #: ad-inserter.php:7845
463
  msgid "Thank you for installing"
464
  msgstr ""
465
 
466
  #. translators: Opt-in message: %s: HTML tags
467
- #: ad-inserter.php:7847
468
  msgid ""
469
  "We would like to %s track its usage %s on your site. This is completely "
470
  "optional and can be disabled at any time."
471
  msgstr ""
472
 
473
- #: ad-inserter.php:7849
474
  msgid ""
475
  "We don't record any sensitive data, only information regarding the WordPress "
476
  "environment and plugin usage, which will help us to make improvements to the "
@@ -478,7 +478,7 @@ msgid ""
478
  msgstr ""
479
 
480
  #. translators: Deactivation message: %s: HTML tags
481
- #: ad-inserter.php:7886
482
  msgid ""
483
  "Looking for %s Documentation, %s %s Common Settings, %s %s Quick Start %s or "
484
  "help for %s AdSense ads? %s The plugin doesn't work with your theme? %s Let "
@@ -486,55 +486,55 @@ msgid ""
486
  msgstr ""
487
 
488
  #. translators: %s: Ad Inserter
489
- #: ad-inserter.php:7929
490
  msgid "%s block."
491
  msgstr ""
492
 
493
  #. translators: widget title
494
- #: ad-inserter.php:7945 ad-inserter.php:7981
495
  msgid "Processing log"
496
  msgstr ""
497
 
498
  #. translators: widget title
499
- #: ad-inserter.php:7947 ad-inserter.php:7982
500
  msgid "Dummy widget"
501
  msgstr ""
502
 
503
  #. translators: widget title
504
- #: ad-inserter.php:7949 ad-inserter.php:7980
505
  msgid "Debugging tools"
506
  msgstr ""
507
 
508
  #. translators: block status (widget title)
509
- #: ad-inserter.php:7956
510
  msgctxt "block"
511
  msgid "PAUSED"
512
  msgstr ""
513
 
514
- #: ad-inserter.php:7957
515
  msgid "WIDGET DISABLED"
516
  msgstr ""
517
 
518
- #: ad-inserter.php:7958
519
  msgid "Unknown block"
520
  msgstr ""
521
 
522
- #: ad-inserter.php:7967 includes/functions.php:2630 settings.php:1038
523
  msgid "Title"
524
  msgstr ""
525
 
526
- #: ad-inserter.php:7989
527
  msgctxt "Widget"
528
  msgid "Sticky"
529
  msgstr ""
530
 
531
- #: ad-inserter.php:8038
532
  msgid ""
533
  "Ad Inserter can't be used while Ad Inserter Pro is active! To activate Ad "
534
  "Inserter you need to first deactivate Ad Inserter Pro."
535
  msgstr ""
536
 
537
- #: ad-inserter.php:8039
538
  msgid ""
539
  "<strong>WARNING</strong>: Please note that saving settings in Ad Inserter "
540
  "will clear all settings that are available only in the Pro version "
@@ -566,11 +566,11 @@ msgstr ""
566
  msgid "After post"
567
  msgstr ""
568
 
569
- #: class.php:1957 settings.php:1624 settings.php:3359
570
  msgid "Widget"
571
  msgstr ""
572
 
573
- #: class.php:1962 settings.php:3357
574
  msgid "PHP function call"
575
  msgstr ""
576
 
@@ -607,69 +607,69 @@ msgctxt "block or widget"
607
  msgid "INSERTED BUT NOT VISIBLE"
608
  msgstr ""
609
 
610
- #: class.php:2408 class.php:2467
611
  msgid "ACTIVE GROUPS"
612
  msgstr ""
613
 
614
  #. translators: %s: list parameters and type
615
- #: class.php:2642
616
  msgid "parameters='%s' type='%s'"
617
  msgstr ""
618
 
619
  #. translators: %s: list parameters and type
620
- #: class.php:2644
621
  msgid "referers='%s' type='%s'"
622
  msgstr ""
623
 
624
  #. translators: %s: list parameters and type
625
- #: class.php:2705
626
  msgid "countries='%s' type='%s'"
627
  msgstr ""
628
 
629
  #. translators: %s: list parameters and type
630
- #: class.php:2707
631
  msgid "ip addresses='%s' type='%s'"
632
  msgstr ""
633
 
634
- #: class.php:2941 strings.php:228
635
  msgid "BEFORE"
636
  msgstr ""
637
 
638
- #: class.php:2949 strings.php:230
639
  msgid "PREPEND CONTENT"
640
  msgstr ""
641
 
642
- #: class.php:2953 strings.php:231
643
  msgid "APPEND CONTENT"
644
  msgstr ""
645
 
646
- #: class.php:2957 strings.php:232
647
  msgid "REPLACE CONTENT"
648
  msgstr ""
649
 
650
- #: class.php:2961 strings.php:233
651
  msgid "REPLACE ELEMENT"
652
  msgstr ""
653
 
654
- #: class.php:2972 strings.php:229
655
  msgid "AFTER"
656
  msgstr ""
657
 
658
- #: class.php:3039
659
  msgctxt "JavaScript"
660
  msgid "script"
661
  msgstr ""
662
 
663
- #: class.php:3042 settings.php:1893
664
  msgid "for"
665
  msgstr ""
666
 
667
- #: class.php:5582 class.php:5634
668
  msgctxt "category name"
669
  msgid "Uncategorized"
670
  msgstr ""
671
 
672
- #: class.php:6125
673
  msgid ""
674
  "ERROR: class DOMDocument not found. Your webhost needs to install the DOM "
675
  "extension for PHP."
@@ -771,7 +771,7 @@ msgid ""
771
  "Leave empty unless position is not properly calculated."
772
  msgstr ""
773
 
774
- #: includes/functions.php:420 settings.php:1194 settings.php:2449
775
  msgid "Open HTML element selector"
776
  msgstr ""
777
 
@@ -795,7 +795,7 @@ msgstr ""
795
  msgid " - global tracking disabled"
796
  msgstr ""
797
 
798
- #: includes/functions.php:461 includes/functions.php:2459
799
  msgid "Generate report"
800
  msgstr ""
801
 
@@ -803,7 +803,7 @@ msgstr ""
803
  msgid "Toggle Ad Blocking Statistics"
804
  msgstr ""
805
 
806
- #: includes/functions.php:479 includes/functions.php:2444
807
  msgid "Toggle Statistics"
808
  msgstr ""
809
 
@@ -892,8 +892,8 @@ msgstr ""
892
  msgid "Tracking for this block is disabled"
893
  msgstr ""
894
 
895
- #: includes/functions.php:732 settings.php:3120 settings.php:3156
896
- #: strings.php:209
897
  msgid "Loading..."
898
  msgstr ""
899
 
@@ -984,236 +984,236 @@ msgstr ""
984
  msgid "Export / Import Ad Inserter Pro Settings"
985
  msgstr ""
986
 
987
- #: includes/functions.php:832
988
  msgid "Are you sure you want to clear all statistics data for all blocks?"
989
  msgstr ""
990
 
991
- #: includes/functions.php:834
992
  msgid "Clear All Statistics Data"
993
  msgstr ""
994
 
995
- #: includes/functions.php:860
996
  msgid "Toggle country/city editor"
997
  msgstr ""
998
 
999
- #: includes/functions.php:866
1000
  msgid "IP Addresses"
1001
  msgstr ""
1002
 
1003
- #: includes/functions.php:869
1004
  msgid "Toggle IP address editor"
1005
  msgstr ""
1006
 
1007
- #: includes/functions.php:872
1008
  msgid ""
1009
  "Comma separated IP addresses, you can also use partial IP addresses with * "
1010
  "(ip-address-start*. *ip-address-pattern*, *ip-address-end)"
1011
  msgstr ""
1012
 
1013
- #: includes/functions.php:876
1014
  msgid "Blacklist IP addresses"
1015
  msgstr ""
1016
 
1017
- #: includes/functions.php:880
1018
  msgid "Whitelist IP addresses"
1019
  msgstr ""
1020
 
1021
- #: includes/functions.php:891
1022
  msgid "Countries"
1023
  msgstr ""
1024
 
1025
- #: includes/functions.php:892
1026
  msgid "Cities"
1027
  msgstr ""
1028
 
1029
- #: includes/functions.php:896 includes/functions.php:2409
1030
  msgid "Toggle country editor"
1031
  msgstr ""
1032
 
1033
- #: includes/functions.php:899
1034
  msgid "Toggle city editor"
1035
  msgstr ""
1036
 
1037
- #: includes/functions.php:903 includes/functions.php:2412
1038
  msgid "Comma separated country ISO Alpha-2 codes"
1039
  msgstr ""
1040
 
1041
- #: includes/functions.php:907
1042
  msgid "Blacklist countries"
1043
  msgstr ""
1044
 
1045
- #: includes/functions.php:911
1046
  msgid "Whitelist countries"
1047
  msgstr ""
1048
 
1049
- #: includes/functions.php:1225 includes/functions.php:1445
1050
  msgid "Enter license key"
1051
  msgstr ""
1052
 
1053
  #. translators: %s: Ad Inserter Pro
1054
- #: includes/functions.php:1231
1055
  msgid ""
1056
  "%s license key is not set. Plugin functionality is limited and updates are "
1057
  "disabled."
1058
  msgstr ""
1059
 
1060
- #: includes/functions.php:1240 includes/functions.php:1454
1061
  msgid "Check license key"
1062
  msgstr ""
1063
 
1064
  #. translators: %s: Ad Inserter Pro
1065
- #: includes/functions.php:1246
1066
  msgid "Invalid %s license key."
1067
  msgstr ""
1068
 
1069
  #. translators: %s: Ad Inserter Pro
1070
- #: includes/functions.php:1255
1071
  msgid "%s license expired. Plugin updates are disabled."
1072
  msgstr ""
1073
 
1074
- #: includes/functions.php:1256
1075
  msgid "Renew license"
1076
  msgstr ""
1077
 
1078
  #. translators: %s: Ad Inserter Pro
1079
- #: includes/functions.php:1264
1080
  msgid "%s license overused. Plugin updates are disabled."
1081
  msgstr ""
1082
 
1083
- #: includes/functions.php:1265
1084
  msgid "Upgrade license"
1085
  msgstr ""
1086
 
1087
  #. translators: 1, 2: HTML tags, 3: Ad Inserter Pro
1088
- #: includes/functions.php:1447
1089
  msgid ""
1090
  "%1$s Warning: %2$s %3$s license key is not set. Plugin functionality is "
1091
  "limited and updates are disabled."
1092
  msgstr ""
1093
 
1094
  #. translators: 1, 2,: HTML tags, 3: Ad Inserter Pro
1095
- #: includes/functions.php:1456
1096
  msgid "%1$s Warning: %2$s Invalid %3$s license key."
1097
  msgstr ""
1098
 
1099
  #. translators: 2, 3: HTML tags, 1: Ad Inserter Pro
1100
- #: includes/functions.php:1472
1101
  msgid ""
1102
  "Hey, %1$s license has expired - plugin updates are now disabled. Please "
1103
  "renew the license to enable updates. Check %2$s what you are missing. %3$s"
1104
  msgstr ""
1105
 
1106
  #. translators: 1, 3: HTML tags, 2: percentage
1107
- #: includes/functions.php:1479
1108
  msgid ""
1109
  "During the license period and 30 days after the license has expired we offer "
1110
  "%1$s %2$s discount on all license renewals and license upgrades. %3$s"
1111
  msgstr ""
1112
 
1113
- #: includes/functions.php:1506
1114
  msgid "Renew the licence"
1115
  msgstr ""
1116
 
1117
- #: includes/functions.php:1508
1118
  msgid "Update license status"
1119
  msgstr ""
1120
 
1121
  #. translators: 1, 2, 4, 5: HTML tags, 3: Ad Inserter Pro
1122
- #: includes/functions.php:1519
1123
  msgid ""
1124
  "%1$s Warning: %2$s %3$s license overused. Plugin updates are disabled. %4$s "
1125
  "Upgrade license %5$s"
1126
  msgstr ""
1127
 
1128
  #. Translators: %s: HTML tag
1129
- #: includes/functions.php:1539
1130
  msgid "Warning: %s MaxMind IP geolocation database not found."
1131
  msgstr ""
1132
 
1133
- #: includes/functions.php:2046
1134
  msgid "Geolocation"
1135
  msgstr ""
1136
 
1137
- #: includes/functions.php:2050
1138
  msgid "Exceptions"
1139
  msgstr ""
1140
 
1141
- #: includes/functions.php:2055
1142
  msgid "Multisite"
1143
  msgstr ""
1144
 
1145
- #: includes/functions.php:2060
1146
  msgid "Tracking"
1147
  msgstr ""
1148
 
1149
  #. translators: %d: days, hours, minutes
1150
- #: includes/functions.php:2091
1151
  msgid "Scheduled in %d days %d hours %d minutes"
1152
  msgstr ""
1153
 
1154
  #. translators: %s: HTML dash separator, %d: days, hours, minutes, &mdash; is
1155
  #. HTML code for long dash separator
1156
- #: includes/functions.php:2100
1157
  msgid "Active %s expires in %d days %d hours %d minutes"
1158
  msgstr ""
1159
 
1160
- #: includes/functions.php:2104
1161
  msgid "Expired"
1162
  msgstr ""
1163
 
1164
- #: includes/functions.php:2112 settings.php:1277 settings.php:1292
1165
  #: settings.php:1879
1166
  msgid "and"
1167
  msgstr ""
1168
 
1169
- #: includes/functions.php:2115
1170
  msgid "fallback"
1171
  msgstr ""
1172
 
1173
- #: includes/functions.php:2116
1174
  msgid "Block to be used when scheduling expires"
1175
  msgstr ""
1176
 
1177
- #: includes/functions.php:2141
1178
  msgid "Load in iframe"
1179
  msgstr ""
1180
 
1181
- #: includes/functions.php:2145 includes/placeholders.php:382
1182
  msgid "Width"
1183
  msgstr ""
1184
 
1185
- #: includes/functions.php:2146
1186
  msgid "iframe width, empty means full width (100%)"
1187
  msgstr ""
1188
 
1189
- #: includes/functions.php:2152 includes/placeholders.php:377
1190
  msgid "Height"
1191
  msgstr ""
1192
 
1193
- #: includes/functions.php:2153
1194
  msgid "iframe height, empty means adjust it to iframe content height"
1195
  msgstr ""
1196
 
1197
- #: includes/functions.php:2160
1198
  msgid "Ad label in iframe"
1199
  msgstr ""
1200
 
1201
- #: includes/functions.php:2165
1202
  msgid "Preview iframe code"
1203
  msgstr ""
1204
 
1205
- #: includes/functions.php:2165 includes/preview.php:1964 settings.php:954
1206
- #: settings.php:2511
1207
  msgid "Preview"
1208
  msgstr ""
1209
 
1210
- #: includes/functions.php:2179 includes/functions.php:3821
1211
- #: includes/functions.php:3884 settings.php:1996
1212
  msgid "Ad Blocking"
1213
  msgstr ""
1214
 
1215
  #. translators: 1, 2 and 3, 4: HTML tags
1216
- #: includes/functions.php:2188
1217
  msgid ""
1218
  "%1$s WARNING: %2$s %3$s No wrapping %4$s style has no wrapping code needed "
1219
  "for tracking!"
@@ -1221,260 +1221,260 @@ msgstr ""
1221
 
1222
  #. translators: 1, 2, 4, 5: HTML tags, 3: Scroll with the content, 6: Above
1223
  #. header
1224
- #: includes/functions.php:2197
1225
  msgid ""
1226
  "%1$s WARNING: %2$s vertical position %3$s needs %4$s Output buffering %5$s "
1227
  "enabled and automatic insertion %6$s!"
1228
  msgstr ""
1229
 
1230
- #: includes/functions.php:2215
1231
  msgid "When ad blocking is detected"
1232
  msgstr ""
1233
 
1234
- #: includes/functions.php:2224
1235
  msgid "replacement"
1236
  msgstr ""
1237
 
1238
- #: includes/functions.php:2225
1239
  msgid "Block to be shown when ad blocking is detected"
1240
  msgstr ""
1241
 
1242
- #: includes/functions.php:2226
1243
  msgctxt "replacement"
1244
  msgid "None"
1245
  msgstr ""
1246
 
1247
- #: includes/functions.php:2243
1248
  msgid "Close button"
1249
  msgstr ""
1250
 
1251
- #: includes/functions.php:2290
1252
  msgid "Lazy loading"
1253
  msgstr ""
1254
 
1255
  #. Translators: %s MaxMind
1256
- #: includes/functions.php:2344
1257
  msgid "This product includes GeoLite2 data created by %s"
1258
  msgstr ""
1259
 
1260
- #: includes/functions.php:2355
1261
  msgid "IP geolocation database"
1262
  msgstr ""
1263
 
1264
- #: includes/functions.php:2358
1265
  msgid "Select IP geolocation database."
1266
  msgstr ""
1267
 
1268
- #: includes/functions.php:2369
1269
  msgid "Automatic database updates"
1270
  msgstr ""
1271
 
1272
- #: includes/functions.php:2372
1273
  msgid ""
1274
  "Automatically download and update free GeoLite2 IP geolocation database by "
1275
  "MaxMind"
1276
  msgstr ""
1277
 
1278
- #: includes/functions.php:2380
1279
  msgid "Database"
1280
  msgstr ""
1281
 
1282
- #: includes/functions.php:2383
1283
  msgid ""
1284
  "Aabsolute path starting with '/' or relative path to the MaxMind database "
1285
  "file"
1286
  msgstr ""
1287
 
1288
  #. translators: %d: group number
1289
- #: includes/functions.php:2401
1290
  msgid "Group %d"
1291
  msgstr ""
1292
 
1293
- #: includes/functions.php:2407
1294
  msgid "countries"
1295
  msgstr ""
1296
 
1297
- #: includes/functions.php:2452
1298
  msgid "Enable tracking"
1299
  msgstr ""
1300
 
1301
- #: includes/functions.php:2467
1302
  msgid "Impression and Click Tracking"
1303
  msgstr ""
1304
 
1305
- #: includes/functions.php:2483
1306
  msgid "Internal"
1307
  msgstr ""
1308
 
1309
- #: includes/functions.php:2487
1310
  msgid "Track impressions and clicks with internal tracking and statistics"
1311
  msgstr ""
1312
 
1313
- #: includes/functions.php:2492
1314
  msgid "External"
1315
  msgstr ""
1316
 
1317
- #: includes/functions.php:2496
1318
  msgid ""
1319
  "Track impressions and clicks with Google Analytics or Matomo (needs tracking "
1320
  "code installed)"
1321
  msgstr ""
1322
 
1323
- #: includes/functions.php:2501
1324
  msgid "Track Pageviews"
1325
  msgstr ""
1326
 
1327
- #: includes/functions.php:2507
1328
  msgid "Track Pageviews by Device (as configured for viewports)"
1329
  msgstr ""
1330
 
1331
- #: includes/functions.php:2517
1332
  msgid "Track for Logged in Users"
1333
  msgstr ""
1334
 
1335
- #: includes/functions.php:2523
1336
  msgid "Track impressions and clicks from logged in users"
1337
  msgstr ""
1338
 
1339
- #: includes/functions.php:2533
1340
  msgid "Click Detection"
1341
  msgstr ""
1342
 
1343
- #: includes/functions.php:2539
1344
  msgid ""
1345
  "Standard method detects clicks only on banners with links, Advanced method "
1346
  "can detect clicks on any kind of ads, but it is slightly less accurate"
1347
  msgstr ""
1348
 
1349
- #: includes/functions.php:2565
1350
  msgid "Report header image"
1351
  msgstr ""
1352
 
1353
- #: includes/functions.php:2568
1354
  msgid ""
1355
  "Image or logo to be displayed in the header of the statistins report. "
1356
  "Aabsolute path starting with '/' or relative path to the image file."
1357
  msgstr ""
1358
 
1359
- #: includes/functions.php:2569 strings.php:221
1360
  msgid "Select or upload header image"
1361
  msgstr ""
1362
 
1363
- #: includes/functions.php:2574
1364
  msgid "Report header title"
1365
  msgstr ""
1366
 
1367
- #: includes/functions.php:2577
1368
  msgid ""
1369
  "Title to be displayed in the header of the statistins report. Text or HTML "
1370
  "code."
1371
  msgstr ""
1372
 
1373
- #: includes/functions.php:2582
1374
  msgid "Report header description"
1375
  msgstr ""
1376
 
1377
- #: includes/functions.php:2585
1378
  msgid ""
1379
  "Description to be displayed in the header of the statistins report. Text or "
1380
  "HTML code."
1381
  msgstr ""
1382
 
1383
- #: includes/functions.php:2617
1384
  msgid "Are you sure you want to clear all exceptions for block"
1385
  msgstr ""
1386
 
1387
- #: includes/functions.php:2618 settings.php:1041
1388
  msgid "Clear all exceptions for block"
1389
  msgstr ""
1390
 
1391
- #: includes/functions.php:2625
1392
  msgid "Are you sure you want to clear all exceptions?"
1393
  msgstr ""
1394
 
1395
- #: includes/functions.php:2625
1396
  msgid "Clear all exceptions for all blocks"
1397
  msgstr ""
1398
 
1399
- #: includes/functions.php:2630 settings.php:3429
1400
  msgid "Type"
1401
  msgstr ""
1402
 
1403
- #: includes/functions.php:2648
1404
  msgid "View"
1405
  msgstr ""
1406
 
1407
- #: includes/functions.php:2649 includes/placeholders.php:346
1408
  #: includes/preview.php:2271 settings.php:1180
1409
  msgid "Edit"
1410
  msgstr ""
1411
 
1412
- #: includes/functions.php:2679
1413
  msgid "Are you sure you want to clear all exceptions for"
1414
  msgstr ""
1415
 
1416
- #: includes/functions.php:2680
1417
  msgid "Clear all exceptions for"
1418
  msgstr ""
1419
 
1420
- #: includes/functions.php:2693
1421
  msgid "No exceptions"
1422
  msgstr ""
1423
 
1424
  #. translators: %s: Ad Inserter Pro
1425
- #: includes/functions.php:2704
1426
  msgid "%s options for network blogs"
1427
  msgstr ""
1428
 
1429
  #. translators: %s: Ad Inserter Pro
1430
- #: includes/functions.php:2709
1431
  msgid "Enable %s widgets for sub-sites"
1432
  msgstr ""
1433
 
1434
- #: includes/functions.php:2709
1435
  msgid "Widgets"
1436
  msgstr ""
1437
 
1438
- #: includes/functions.php:2714
1439
  msgid "Enable PHP code processing for sub-sites"
1440
  msgstr ""
1441
 
1442
- #: includes/functions.php:2714
1443
  msgid "PHP Processing"
1444
  msgstr ""
1445
 
1446
  #. translators: %s: Ad Inserter Pro
1447
- #: includes/functions.php:2719
1448
  msgid "Enable %s block exceptions in post/page editor for sub-sites"
1449
  msgstr ""
1450
 
1451
- #: includes/functions.php:2719
1452
  msgid "Post/Page exceptions"
1453
  msgstr ""
1454
 
1455
  #. translators: %s: Ad Inserter Pro
1456
- #: includes/functions.php:2724
1457
  msgid "Enable %s settings page for sub-sites"
1458
  msgstr ""
1459
 
1460
- #: includes/functions.php:2724
1461
  msgid "Settings page"
1462
  msgstr ""
1463
 
1464
  #. translators: %s: Ad Inserter Pro
1465
- #: includes/functions.php:2729
1466
  msgid "Enable %s settings of main site to be used for all blogs"
1467
  msgstr ""
1468
 
1469
- #: includes/functions.php:2729
1470
  msgid "Main site settings used for all blogs"
1471
  msgstr ""
1472
 
1473
- #: includes/functions.php:2740 settings.php:2407
1474
  msgid "Ad Blocking Detection"
1475
  msgstr ""
1476
 
1477
- #: includes/functions.php:2746
1478
  msgid ""
1479
  "Standard method is reliable but should be used only if Advanced method does "
1480
  "not work. Advanced method recreates files used for detection with random "
@@ -1482,115 +1482,115 @@ msgid ""
1482
  "publicly accessible"
1483
  msgstr ""
1484
 
1485
- #: includes/functions.php:3366 includes/functions.php:3456
1486
- #: includes/functions.php:3476
1487
  msgid "AD BLOCKING"
1488
  msgstr ""
1489
 
1490
- #: includes/functions.php:3367 includes/functions.php:3407
1491
- #: includes/functions.php:3450 includes/functions.php:3477
1492
  msgid "BLOCK INSERTED BUT NOT VISIBLE"
1493
  msgstr ""
1494
 
1495
- #: includes/functions.php:3370 includes/functions.php:3449
1496
- #: includes/functions.php:3483
1497
  msgid "NO AD BLOCKING"
1498
  msgstr ""
1499
 
1500
- #: includes/functions.php:3406 includes/functions.php:3413
1501
  msgid "AD BLOCKING REPLACEMENT"
1502
  msgstr ""
1503
 
1504
- #: includes/functions.php:3674 includes/functions.php:3883
1505
  msgid "Pageviews"
1506
  msgstr ""
1507
 
1508
- #: includes/functions.php:3820
1509
  msgctxt "Version"
1510
  msgid "Unknown"
1511
  msgstr ""
1512
 
1513
- #: includes/functions.php:3820
1514
  msgctxt "Times"
1515
  msgid "DISPLAYED"
1516
  msgstr ""
1517
 
1518
- #: includes/functions.php:3820
1519
  msgid "No version"
1520
  msgstr ""
1521
 
1522
- #: includes/functions.php:3821
1523
  msgctxt "Times"
1524
  msgid "BLOCKED"
1525
  msgstr ""
1526
 
1527
- #: includes/functions.php:3883
1528
  msgid "Impressions"
1529
  msgstr ""
1530
 
1531
- #: includes/functions.php:3884 includes/functions.php:3885
1532
- #: includes/functions.php:3915
1533
  msgid "Clicks"
1534
  msgstr ""
1535
 
1536
- #: includes/functions.php:3885
1537
  msgid "events"
1538
  msgstr ""
1539
 
1540
- #: includes/functions.php:3886
1541
  msgid "Ad Blocking Share"
1542
  msgstr ""
1543
 
1544
  #. translators: CTR as Click Through Rate
1545
- #: includes/functions.php:3886 includes/functions.php:3921
1546
  msgid "CTR"
1547
  msgstr ""
1548
 
1549
- #: includes/functions.php:4003
1550
  msgid "pageviews"
1551
  msgid_plural "pageviews"
1552
  msgstr[0] ""
1553
  msgstr[1] ""
1554
 
1555
- #: includes/functions.php:4003
1556
  msgid "impressions"
1557
  msgid_plural "impressions"
1558
  msgstr[0] ""
1559
  msgstr[1] ""
1560
 
1561
- #: includes/functions.php:4007
1562
  msgid "event"
1563
  msgid_plural "events"
1564
  msgstr[0] ""
1565
  msgstr[1] ""
1566
 
1567
- #: includes/functions.php:4007
1568
  msgid "click"
1569
  msgid_plural "clicks"
1570
  msgstr[0] ""
1571
  msgstr[1] ""
1572
 
1573
- #: includes/functions.php:4102
1574
  msgctxt "Pageviews / Impressions"
1575
  msgid "Average"
1576
  msgstr ""
1577
 
1578
- #: includes/functions.php:4123
1579
  msgctxt "Ad Blocking / Clicks"
1580
  msgid "Average"
1581
  msgstr ""
1582
 
1583
- #: includes/functions.php:4147
1584
  msgctxt "Ad Blocking Share / CTR"
1585
  msgid "Average"
1586
  msgstr ""
1587
 
1588
  #. Translators: %s: Ad Inserter Pro
1589
- #: includes/functions.php:4199
1590
  msgid "%s Report"
1591
  msgstr ""
1592
 
1593
- #: includes/functions.php:4277
1594
  msgid "Advanced WordPress Ad Management Plugin"
1595
  msgstr ""
1596
 
@@ -1618,7 +1618,7 @@ msgstr ""
1618
  msgid "Placeholder"
1619
  msgstr ""
1620
 
1621
- #: includes/placeholders.php:356 settings.php:808 settings.php:3430
1622
  msgid "Size"
1623
  msgstr ""
1624
 
@@ -1726,11 +1726,11 @@ msgstr ""
1726
  msgid "Ad Blocking Detected Message Preview"
1727
  msgstr ""
1728
 
1729
- #: includes/preview-adb.php:348 settings.php:2524
1730
  msgid "Message CSS"
1731
  msgstr ""
1732
 
1733
- #: includes/preview-adb.php:353 settings.php:2532
1734
  msgid "Overlay CSS"
1735
  msgstr ""
1736
 
@@ -1771,7 +1771,7 @@ msgid "background"
1771
  msgstr ""
1772
 
1773
  #: includes/preview.php:2075 includes/preview.php:2226 settings.php:1141
1774
- #: settings.php:3356
1775
  msgid "Alignment"
1776
  msgstr ""
1777
 
@@ -1977,7 +1977,7 @@ msgstr ""
1977
  msgid "General Settings"
1978
  msgstr ""
1979
 
1980
- #: settings.php:592 settings.php:2283 settings.php:2341 settings.php:2504
1981
  msgid "Toggle Syntax Highlighting / Simple editor for mobile devices"
1982
  msgstr ""
1983
 
@@ -2005,7 +2005,7 @@ msgstr ""
2005
  msgid "Open visual HTML editor"
2006
  msgstr ""
2007
 
2008
- #: settings.php:644
2009
  msgid "Show AdSense ad units"
2010
  msgstr ""
2011
 
@@ -2013,7 +2013,7 @@ msgstr ""
2013
  msgid "Clear block"
2014
  msgstr ""
2015
 
2016
- #: settings.php:658 settings.php:3324
2017
  msgid "Copy block"
2018
  msgstr ""
2019
 
@@ -2177,7 +2177,7 @@ msgid ""
2177
  "editor. Leave blank for no individual post exceptions."
2178
  msgstr ""
2179
 
2180
- #: settings.php:978 settings.php:3007
2181
  msgid "Posts"
2182
  msgstr ""
2183
 
@@ -2188,7 +2188,7 @@ msgid ""
2188
  "theme)"
2189
  msgstr ""
2190
 
2191
- #: settings.php:983 settings.php:3009
2192
  msgid "Homepage"
2193
  msgstr ""
2194
 
@@ -2196,7 +2196,7 @@ msgstr ""
2196
  msgid "Enable insertion on category blog pages (including sub-pages)"
2197
  msgstr ""
2198
 
2199
- #: settings.php:988 settings.php:3010
2200
  msgid "Category pages"
2201
  msgstr ""
2202
 
@@ -2214,7 +2214,7 @@ msgid ""
2214
  "page editor. Leave blank for no individual page exceptions."
2215
  msgstr ""
2216
 
2217
- #: settings.php:1006 settings.php:3008
2218
  msgid "Static pages"
2219
  msgstr ""
2220
 
@@ -2222,7 +2222,7 @@ msgstr ""
2222
  msgid "Enable insertion on search blog pages"
2223
  msgstr ""
2224
 
2225
- #: settings.php:1011 settings.php:3012
2226
  msgid "Search pages"
2227
  msgstr ""
2228
 
@@ -2323,7 +2323,7 @@ msgstr ""
2323
  msgid "HTML element selector or comma separated list of selectors"
2324
  msgstr ""
2325
 
2326
- #: settings.php:1209 settings.php:2417
2327
  msgid "Action"
2328
  msgstr ""
2329
 
@@ -2590,7 +2590,7 @@ msgstr ""
2590
  msgid "Enable shortcode for manual insertion of this block in posts and pages"
2591
  msgstr ""
2592
 
2593
- #: settings.php:1636 settings.php:3358
2594
  msgid "Shortcode"
2595
  msgstr ""
2596
 
@@ -2650,7 +2650,7 @@ msgstr ""
2650
  msgid "Display"
2651
  msgstr ""
2652
 
2653
- #: settings.php:1760 settings.php:1989
2654
  msgid "General"
2655
  msgstr ""
2656
 
@@ -2711,7 +2711,7 @@ msgid ""
2711
  "tab General)"
2712
  msgstr ""
2713
 
2714
- #: settings.php:1805 settings.php:2147
2715
  msgid "Max blocks per page"
2716
  msgstr ""
2717
 
@@ -2783,7 +2783,7 @@ msgstr ""
2783
  msgid "Not available"
2784
  msgstr ""
2785
 
2786
- #: settings.php:1908 settings.php:2139
2787
  msgid "Ad label"
2788
  msgstr ""
2789
 
@@ -2810,437 +2810,451 @@ msgstr ""
2810
  msgid "Settings timestamp"
2811
  msgstr ""
2812
 
2813
- #: settings.php:1967
2814
  msgid "Are you sure you want to reset all settings?"
2815
  msgstr ""
2816
 
2817
- #: settings.php:1967
2818
  msgid "Reset All Settings"
2819
  msgstr ""
2820
 
2821
- #: settings.php:1990
 
 
 
 
2822
  msgid "Viewports"
2823
  msgstr ""
2824
 
2825
- #: settings.php:1991
2826
  msgid "Hooks"
2827
  msgstr ""
2828
 
2829
- #: settings.php:1992
2830
  msgid "Header"
2831
  msgstr ""
2832
 
2833
- #: settings.php:1993 strings.php:30
2834
  msgid "Footer"
2835
  msgstr ""
2836
 
2837
- #: settings.php:1998
2838
  msgid "Debugging"
2839
  msgstr ""
2840
 
2841
- #: settings.php:2008
2842
  msgid "Plugin priority"
2843
  msgstr ""
2844
 
2845
- #: settings.php:2016
2846
  msgid "Output buffering"
2847
  msgstr ""
2848
 
2849
- #: settings.php:2019
2850
  msgid "Needed for position Above header but may not work with all themes"
2851
  msgstr ""
2852
 
2853
- #: settings.php:2027
2854
  msgid "Syntax highlighting theme"
2855
  msgstr ""
2856
 
2857
- #: settings.php:2034
2858
  msgctxt "no syntax highlighting themes"
2859
  msgid "None"
2860
  msgstr ""
2861
 
2862
- #: settings.php:2035
2863
  msgid "No Syntax Highlighting"
2864
  msgstr ""
2865
 
2866
- #: settings.php:2037
2867
  msgctxt "syntax highlighting themes"
2868
  msgid "Light"
2869
  msgstr ""
2870
 
2871
- #: settings.php:2052
2872
  msgctxt "syntax highlighting themes"
2873
  msgid "Dark"
2874
  msgstr ""
2875
 
2876
- #: settings.php:2078
2877
  msgid "Min. user role for ind. exceptions editing"
2878
  msgstr ""
2879
 
2880
- #: settings.php:2088
 
 
 
 
 
 
 
 
 
 
2881
  msgid "Sticky widget mode"
2882
  msgstr ""
2883
 
2884
- #: settings.php:2091
2885
  msgid ""
2886
  "CSS mode is the best approach but may not work with all themes. JavaScript "
2887
  "mode works with most themes but may reload ads on page load."
2888
  msgstr ""
2889
 
2890
- #: settings.php:2099
2891
  msgid "Sticky widget top margin"
2892
  msgstr ""
2893
 
2894
- #: settings.php:2107
2895
  msgid "Dynamic blocks"
2896
  msgstr ""
2897
 
2898
- #: settings.php:2120
2899
  msgid "Functions for paragraph counting"
2900
  msgstr ""
2901
 
2902
- #: settings.php:2123
2903
  msgid ""
2904
  "Standard PHP functions are faster and work in most cases, use Multibyte "
2905
  "functions if paragraphs are not counted properly on non-english pages."
2906
  msgstr ""
2907
 
2908
- #: settings.php:2131
2909
  msgid "No paragraph counting inside"
2910
  msgstr ""
2911
 
2912
- #: settings.php:2142
2913
  msgid "Label text or HTML code"
2914
  msgstr ""
2915
 
2916
- #: settings.php:2150
2917
  msgid ""
2918
  "Maximum number of inserted blocks per page. You need to enable Max page "
2919
  "insertions (button Misc / tab Insertion) to count block for this limit."
2920
  msgstr ""
2921
 
2922
- #: settings.php:2164
2923
  msgid "Plugin usage tracking"
2924
  msgstr ""
2925
 
2926
  #. translators: %s: Ad Inserter
2927
- #: settings.php:2167
2928
  msgid ""
2929
  "Enable tracking of %s usage and help us to make improvements to the plugin. "
2930
  "Only information regarding the WordPress environment and %s usage is "
2931
  "recorded (once per month and on events like plugin activation/deactivation)."
2932
  msgstr ""
2933
 
2934
- #: settings.php:2185
2935
  msgid "CSS class name for the wrapping div"
2936
  msgstr ""
2937
 
2938
- #: settings.php:2185
2939
  msgid "Block class name"
2940
  msgstr ""
2941
 
2942
- #: settings.php:2189
2943
  msgid "Include general plugin block class"
2944
  msgstr ""
2945
 
2946
- #: settings.php:2189
2947
  msgid "Block class"
2948
  msgstr ""
2949
 
2950
- #: settings.php:2194
2951
  msgid "Include block number class"
2952
  msgstr ""
2953
 
2954
- #: settings.php:2194
2955
  msgid "Block number class"
2956
  msgstr ""
2957
 
2958
- #: settings.php:2199
2959
  msgid ""
2960
  "Instead of alignment classes generate inline alignment styles for blocks"
2961
  msgstr ""
2962
 
2963
- #: settings.php:2199
2964
  msgid "Inline styles"
2965
  msgstr ""
2966
 
2967
- #: settings.php:2205
2968
  msgid "Preview of the block wrapping code"
2969
  msgstr ""
2970
 
2971
- #: settings.php:2206
2972
  msgid "Wrapping div"
2973
  msgstr ""
2974
 
2975
- #: settings.php:2207 settings.php:2607
2976
  msgid "BLOCK CODE"
2977
  msgstr ""
2978
 
2979
- #: settings.php:2215
2980
  msgid "Viewport Settings used for client-side device detection"
2981
  msgstr ""
2982
 
2983
  #. Translators: %d: viewport number
2984
- #: settings.php:2223
2985
  msgid "Viewport %d name"
2986
  msgstr ""
2987
 
2988
- #: settings.php:2226
2989
  msgid "min width"
2990
  msgstr ""
2991
 
2992
- #: settings.php:2237
2993
  msgid "Custom Hooks"
2994
  msgstr ""
2995
 
2996
- #: settings.php:2249 settings.php:2252
2997
  msgid "Enable hook"
2998
  msgstr ""
2999
 
3000
  #. translators: %d: hook number
3001
- #: settings.php:2252
3002
  msgid "Hook %d name"
3003
  msgstr ""
3004
 
3005
- #: settings.php:2255
3006
  msgid "Hook name for automatic insertion selection"
3007
  msgstr ""
3008
 
3009
- #: settings.php:2258
3010
  msgid "action"
3011
  msgstr ""
3012
 
3013
- #: settings.php:2261
3014
  msgid "Action name as used in the do_action () function"
3015
  msgstr ""
3016
 
3017
- #: settings.php:2264
3018
  msgid "priority"
3019
  msgstr ""
3020
 
3021
- #: settings.php:2267
3022
  msgid "Priority for the hook (default is 10)"
3023
  msgstr ""
3024
 
3025
- #: settings.php:2288
3026
  msgid "Enable insertion of this code into HTML page header"
3027
  msgstr ""
3028
 
3029
- #: settings.php:2292 settings.php:2350 settings.php:2509
3030
  msgid "Process PHP code"
3031
  msgstr ""
3032
 
3033
- #: settings.php:2296
3034
  msgid "HTML Page Header Code"
3035
  msgstr ""
3036
 
3037
- #: settings.php:2304
3038
  msgid "Code in the %s section of the HTML page"
3039
  msgstr ""
3040
 
3041
- #: settings.php:2305 settings.php:2363
3042
  msgctxt "code in header or footer"
3043
  msgid "DISABLED"
3044
  msgstr ""
3045
 
3046
- #: settings.php:2318 settings.php:2376
3047
  msgid "Use server-side detection to insert code only for"
3048
  msgstr ""
3049
 
3050
- #: settings.php:2331
3051
  msgid ""
3052
  "Enable insertion of this code into HTML page header on page for Error 404: "
3053
  "Page not found"
3054
  msgstr ""
3055
 
3056
- #: settings.php:2331 settings.php:2389
3057
  msgid "Insert on Error 404 page"
3058
  msgstr ""
3059
 
3060
- #: settings.php:2346
3061
  msgid "Enable insertion of this code into HTML page footer"
3062
  msgstr ""
3063
 
3064
- #: settings.php:2354
3065
  msgid "HTML Page Footer Code"
3066
  msgstr ""
3067
 
3068
  #. translators: %s: HTML tags
3069
- #: settings.php:2362
3070
  msgid "Code before the %s tag of the the HTML page"
3071
  msgstr ""
3072
 
3073
- #: settings.php:2389
3074
  msgid ""
3075
  "Enable insertion of this code into HTML page footer on page for Error 404: "
3076
  "Page not found"
3077
  msgstr ""
3078
 
3079
- #: settings.php:2403
3080
  msgid "Enable detection of ad blocking"
3081
  msgstr ""
3082
 
3083
- #: settings.php:2420
3084
  msgid "Global action when ad blocking is detected"
3085
  msgstr ""
3086
 
3087
- #: settings.php:2429
3088
  msgid "Delay Action"
3089
  msgstr ""
3090
 
3091
- #: settings.php:2432
3092
  msgid ""
3093
  "Number of page views to delay action when ad blocking is detected. Leave "
3094
  "empty for no delay (action fires on first page view). Sets cookie."
3095
  msgstr ""
3096
 
3097
- #: settings.php:2432
3098
  msgctxt "Delay Action for x "
3099
  msgid "page views"
3100
  msgstr ""
3101
 
3102
- #: settings.php:2437
3103
  msgid "No Action Period"
3104
  msgstr ""
3105
 
3106
- #: settings.php:2440
3107
  msgid ""
3108
  "Number of days to supress action when ad blocking is detected. Leave empty "
3109
  "for no no-action period (action fires always after defined page view delay). "
3110
  "Sets cookie."
3111
  msgstr ""
3112
 
3113
- #: settings.php:2440
3114
  msgctxt "no action period"
3115
  msgid "days"
3116
  msgstr ""
3117
 
3118
- #: settings.php:2445
3119
  msgid "Custom Selectors"
3120
  msgstr ""
3121
 
3122
- #: settings.php:2448
3123
  msgid ""
3124
  "Comma seprarated list of selectors (.class, #id) used for additional ad "
3125
  "blocking detection. Invisible element or element with zero height means ad "
3126
  "blocking is present."
3127
  msgstr ""
3128
 
3129
- #: settings.php:2460
3130
  msgid "Redirection Page"
3131
  msgstr ""
3132
 
3133
- #: settings.php:2472
3134
  msgid "Custom Url"
3135
  msgstr ""
3136
 
3137
- #: settings.php:2477
3138
  msgid ""
3139
  "Static page for redirection when ad blocking is detected. For other pages "
3140
  "select Custom url and set it below."
3141
  msgstr ""
3142
 
3143
- #: settings.php:2486
3144
  msgid "Custom Redirection Url"
3145
  msgstr ""
3146
 
3147
- #: settings.php:2498
3148
  msgid "Message HTML code"
3149
  msgstr ""
3150
 
3151
- #: settings.php:2511
3152
  msgid "Preview message when ad blocking is detected"
3153
  msgstr ""
3154
 
3155
- #: settings.php:2540
3156
  msgid "Prevent visitors from closing the warning message"
3157
  msgstr ""
3158
 
3159
- #: settings.php:2540
3160
  msgid "Undismissible Message"
3161
  msgstr ""
3162
 
3163
- #: settings.php:2553
3164
  msgid ""
3165
  "Force showing admin toolbar for administrators when viewing site. Enable "
3166
  "this option when you are logged in as admin and you don't see admin toolbar."
3167
  msgstr ""
3168
 
3169
- #: settings.php:2561
3170
  msgid "Disable header code (Header tab)"
3171
  msgstr ""
3172
 
3173
- #: settings.php:2565
3174
  msgid "Disable footer code (Footer tab)"
3175
  msgstr ""
3176
 
3177
  #. translators: %s: Ad Inserter
3178
- #: settings.php:2569
3179
  msgid "Disable %s JavaScript code"
3180
  msgstr ""
3181
 
3182
  #. translators: %s: Ad Inserter
3183
- #: settings.php:2573
3184
  msgid "Disable %s CSS code"
3185
  msgstr ""
3186
 
3187
- #: settings.php:2577
3188
  msgid ""
3189
  "Disable PHP code processing (in all blocks including header and footer code)"
3190
  msgstr ""
3191
 
3192
- #: settings.php:2581
3193
  msgid "Disable insertion of all blocks"
3194
  msgstr ""
3195
 
3196
- #: settings.php:2585
3197
  msgid "Disable insertions"
3198
  msgstr ""
3199
 
3200
  #. translators: %s: Ad Inserter
3201
- #: settings.php:2597
3202
  msgid "%s CSS CODE"
3203
  msgstr ""
3204
 
3205
- #: settings.php:2600
3206
  msgid "HEADER CODE"
3207
  msgstr ""
3208
 
3209
  #. translators: %s: PHP tags
3210
- #: settings.php:2606
3211
  msgid "BLOCK PHP CODE"
3212
  msgstr ""
3213
 
3214
  #. translators: %s: Ad Inserter
3215
- #: settings.php:2612
3216
  msgid "%s JS CODE"
3217
  msgstr ""
3218
 
3219
- #: settings.php:2615
3220
  msgid "FOOTER CODE"
3221
  msgstr ""
3222
 
3223
- #: settings.php:2624
3224
  msgid "Force showing admin toolbar when viewing site"
3225
  msgstr ""
3226
 
3227
- #: settings.php:2631
3228
  msgid "Enable debugging functions in admin toolbar"
3229
  msgstr ""
3230
 
3231
- #: settings.php:2633
3232
  msgid "Debugging functions in admin toolbar"
3233
  msgstr ""
3234
 
3235
- #: settings.php:2640
3236
  msgid "Enable debugging functions in admin toolbar on mobile screens"
3237
  msgstr ""
3238
 
3239
- #: settings.php:2642
3240
  msgid "Debugging functions on mobile screens"
3241
  msgstr ""
3242
 
3243
- #: settings.php:2649
3244
  msgid ""
3245
  "Enable Debugger widget and code insertion debugging (blocks, positions, "
3246
  "tags, processing) by url parameters for non-logged in users. Enable this "
@@ -3249,135 +3263,197 @@ msgid ""
3249
  "administrators debugging is always enabled."
3250
  msgstr ""
3251
 
3252
- #: settings.php:2651
3253
  msgid "Remote debugging"
3254
  msgstr ""
3255
 
3256
- #: settings.php:2658
3257
  msgid ""
3258
  "Disable translation to see original texts for the settings and messages in "
3259
  "English"
3260
  msgstr ""
3261
 
3262
- #: settings.php:2660
3263
  msgid "Disable translation"
3264
  msgstr ""
3265
 
3266
- #: settings.php:2995
3267
  msgid "Available positions for current theme"
3268
  msgstr ""
3269
 
3270
- #: settings.php:2996
3271
  msgid "Error checking pages"
3272
  msgstr ""
3273
 
3274
- #: settings.php:2999
3275
  msgid "Toggle theme checker for available positions for automatic insertion"
3276
  msgstr ""
3277
 
3278
- #: settings.php:2999
3279
  msgctxt "Button"
3280
  msgid "Check"
3281
  msgstr ""
3282
 
3283
- #: settings.php:3006
3284
  msgid "Position"
3285
  msgstr ""
3286
 
3287
- #: settings.php:3011
3288
  msgid "Archive pages"
3289
  msgstr ""
3290
 
3291
- #: settings.php:3070
3292
  msgid ""
3293
  "Position not available because output buffering (tab [*]) is not enabled"
3294
  msgstr ""
3295
 
3296
- #: settings.php:3073 strings.php:217
3297
  msgid "Position not checked yet"
3298
  msgstr ""
3299
 
3300
- #: settings.php:3104
3301
  msgid "Toggle active/all blocks"
3302
  msgstr ""
3303
 
3304
- #: settings.php:3108 strings.php:204
3305
  msgid "Rearrange block order"
3306
  msgstr ""
3307
 
3308
- #: settings.php:3113
3309
  msgid "Save new block order"
3310
  msgstr ""
3311
 
3312
- #: settings.php:3113
3313
  msgid "Save Changes"
3314
  msgstr ""
3315
 
3316
- #: settings.php:3138
3317
  msgid "Toggle active/all ad units"
3318
  msgstr ""
3319
 
3320
- #: settings.php:3142
3321
  msgid "Reload AdSense ad units"
3322
  msgstr ""
3323
 
3324
- #: settings.php:3146
3325
  msgid "Clear authorization to access AdSense account"
3326
  msgstr ""
3327
 
3328
- #: settings.php:3150 settings.php:3515 settings.php:3582 strings.php:212
3329
  msgid "Google AdSense Homepage"
3330
  msgstr ""
3331
 
3332
- #: settings.php:3327
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3333
  msgid "Preview block"
3334
  msgstr ""
3335
 
3336
- #: settings.php:3336
3337
  msgid "Insertion disabled"
3338
  msgstr ""
3339
 
3340
- #: settings.php:3360
3341
  msgid "Widget positions"
3342
  msgstr ""
3343
 
3344
- #: settings.php:3426
3345
  msgid "Ad unit"
3346
  msgstr ""
3347
 
3348
- #: settings.php:3428
3349
  msgid "Slot ID"
3350
  msgstr ""
3351
 
3352
- #: settings.php:3454
3353
  msgid "Copy AdSense code"
3354
  msgstr ""
3355
 
3356
- #: settings.php:3457
3357
  msgid "Preview AdSense ad"
3358
  msgstr ""
3359
 
3360
- #: settings.php:3460
3361
  msgid "Get AdSense code"
3362
  msgstr ""
3363
 
3364
  #. translators: %s: HTML tags
3365
- #: settings.php:3492
3366
  msgid ""
3367
  "Please %s clear authorization %s with the button %s above and once again "
3368
  "authorize access to your AdSense account."
3369
  msgstr ""
3370
 
3371
- #: settings.php:3511
3372
  msgid "AdSense Integration"
3373
  msgstr ""
3374
 
3375
- #: settings.php:3513
3376
  msgid "AdSense Integration - Step 2"
3377
  msgstr ""
3378
 
3379
  #. translators: %s: HTML tags
3380
- #: settings.php:3519
3381
  msgid ""
3382
  "Authorize %s to access your AdSense account. Click on the %s Get "
3383
  "Authorization Code %s button to open a new window where you can allow "
@@ -3386,7 +3462,7 @@ msgid ""
3386
  msgstr ""
3387
 
3388
  #. translators: %s: HTML tags
3389
- #: settings.php:3526
3390
  msgid ""
3391
  "If you get error, can't access ad units or would like to use own Google API "
3392
  "IDs click on the button %s Use own API IDs %s to enter Client ID and Client "
@@ -3394,7 +3470,7 @@ msgid ""
3394
  msgstr ""
3395
 
3396
  #. translators: %s: HTML tags
3397
- #: settings.php:3528
3398
  msgid ""
3399
  "Now you can authorize %s to access your AdSense account. Click on the %s Get "
3400
  "Authorization Code %s button to open a new window where you can allow "
@@ -3403,38 +3479,38 @@ msgid ""
3403
  msgstr ""
3404
 
3405
  #. translators: %s: HTML tags
3406
- #: settings.php:3535
3407
  msgid ""
3408
  "If you get error %s invalid client %s click on the button %s Clear and "
3409
  "return to Step 1 %s to re-enter Client ID and Client Secret."
3410
  msgstr ""
3411
 
3412
- #: settings.php:3546
3413
  msgid "Get Authorization Code"
3414
  msgstr ""
3415
 
3416
- #: settings.php:3549
3417
  msgid "Enter Authorization Code"
3418
  msgstr ""
3419
 
3420
- #: settings.php:3559
3421
  msgid "Use own API IDs"
3422
  msgstr ""
3423
 
3424
- #: settings.php:3561
3425
  msgid "Clear and return to Step 1"
3426
  msgstr ""
3427
 
3428
- #: settings.php:3565
3429
  msgid "Authorize"
3430
  msgstr ""
3431
 
3432
- #: settings.php:3581
3433
  msgid "AdSense Integration - Step 1"
3434
  msgstr ""
3435
 
3436
  #. translators: %s: Ad Inserter
3437
- #: settings.php:3585
3438
  msgid ""
3439
  "Here can %s list configured AdSense ad units and get code for AdSense ads. "
3440
  "To do this you need to authorize %s to access your AdSense account. The "
@@ -3443,176 +3519,176 @@ msgid ""
3443
  msgstr ""
3444
 
3445
  #. translators: %s: HTML tags
3446
- #: settings.php:3594
3447
  msgid "Go to %s Google APIs and Services console %s"
3448
  msgstr ""
3449
 
3450
  #. translators: %1: Ad Inserter, 2, 3: HTML tags
3451
- #: settings.php:3595
3452
  msgid ""
3453
  "Create %1$s project - if the project and IDs are already created click on "
3454
  "the %2$s Credentials %3$s in the sidebar and go to step 16"
3455
  msgstr ""
3456
 
3457
  #. translators: %s: HTML tags
3458
- #: settings.php:3596
3459
  msgid ""
3460
  "Click on project selection and then click on the %s NEW PROJECT %s button to "
3461
  "create a new project"
3462
  msgstr ""
3463
 
3464
  #. translators: 1: Ad Inserter, 2, 3: HTML tags
3465
- #: settings.php:3597
3466
  msgid "Enter %1$s for project name and click on the %2$s Create %3$s button"
3467
  msgstr ""
3468
 
3469
  #. translators: %s: HTML tags
3470
- #: settings.php:3598
3471
  msgid ""
3472
  "Click on project selection, wait for the project to be created and then and "
3473
  "select %s as the current project"
3474
  msgstr ""
3475
 
3476
  #. translators: %s: HTML tags
3477
- #: settings.php:3599
3478
  msgid "Click on %s ENABLE APIS AND SERVICES %s"
3479
  msgstr ""
3480
 
3481
  #. translators: %s: HTML tags
3482
- #: settings.php:3600
3483
  msgid "Search for adsense and enable %s"
3484
  msgstr ""
3485
 
3486
  #. translators: %s: HTML tags
3487
- #: settings.php:3601
3488
  msgid "Click on %s CREATE CREDENTIALS %s"
3489
  msgstr ""
3490
 
3491
  #. translators: %s: HTML tags
3492
- #: settings.php:3602
3493
  msgid "For %s Where will you be calling the API from? %s select %s Other UI %s"
3494
  msgstr ""
3495
 
3496
  #. translators: %s: HTML tags
3497
- #: settings.php:3603
3498
  msgid "For %s What data will you be accessing? %s select %s User data %s"
3499
  msgstr ""
3500
 
3501
  #. translators: %s: HTML tags
3502
- #: settings.php:3604
3503
  msgid "Click on %s What credentials do I need? %s"
3504
  msgstr ""
3505
 
3506
  #. translators: %s: HTML tags
3507
- #: settings.php:3605
3508
  msgid ""
3509
  "Create an OAuth 2.0 client ID: For %s OAuth 2.0 client ID %s name enter %s "
3510
  "Ad Inserter client %s"
3511
  msgstr ""
3512
 
3513
  #. translators: %s: HTML tags
3514
- #: settings.php:3606
3515
  msgid ""
3516
  "Set up the OAuth 2.0 consent screen: For %s Product name shown to users %s "
3517
  "enter %s"
3518
  msgstr ""
3519
 
3520
  #. translators: %s: HTML tags
3521
- #: settings.php:3607
3522
  msgid "Click on %s Continue %s"
3523
  msgstr ""
3524
 
3525
  #. translators: %s: HTML tags
3526
- #: settings.php:3608
3527
  msgid "Click on %s Done %s"
3528
  msgstr ""
3529
 
3530
  #. translators: %s: HTML tags
3531
- #: settings.php:3609
3532
  msgid ""
3533
  "Click on %s Ad Inserter client %s to get %s Client ID %s and %s Client "
3534
  "secret %s"
3535
  msgstr ""
3536
 
3537
- #: settings.php:3610
3538
  msgid "Copy them to the appropriate fields below"
3539
  msgstr ""
3540
 
3541
- #: settings.php:3616
3542
  msgid "Client ID"
3543
  msgstr ""
3544
 
3545
- #: settings.php:3619
3546
  msgid "Enter Client ID"
3547
  msgstr ""
3548
 
3549
- #: settings.php:3624
3550
  msgid "Client secret"
3551
  msgstr ""
3552
 
3553
- #: settings.php:3627
3554
  msgid "Enter Client secret"
3555
  msgstr ""
3556
 
3557
- #: settings.php:3637
3558
  msgid "Use default API IDs"
3559
  msgstr ""
3560
 
3561
- #: settings.php:3642
3562
  msgid "Save"
3563
  msgstr ""
3564
 
3565
- #: settings.php:3918 settings.php:3931 settings.php:3944 settings.php:3959
3566
  msgid "Blank ad blocks? Looking for AdSense alternative?"
3567
  msgstr ""
3568
 
3569
- #: settings.php:3923 settings.php:3936 settings.php:3949 settings.php:3964
3570
- #: settings.php:4133 settings.php:4137 settings.php:4139 settings.php:4155
3571
- #: settings.php:4166 settings.php:4169 settings.php:4175 settings.php:4187
3572
  msgid "Looking for AdSense alternative?"
3573
  msgstr ""
3574
 
3575
- #: settings.php:3975
3576
  msgid "Try Infolinks Ads with Adsense or Media.net ads"
3577
  msgstr ""
3578
 
3579
- #: settings.php:3980 settings.php:4135 settings.php:4147 settings.php:4172
3580
- #: settings.php:4195
3581
  msgid "Use Infolinks ads with Adsense to earn more"
3582
  msgstr ""
3583
 
3584
- #: settings.php:3999 settings.php:4037
3585
  msgid "Support plugin development"
3586
  msgstr ""
3587
 
3588
- #: settings.php:4000 settings.php:4038
3589
  msgid ""
3590
  "If you like Ad Inserter and have a moment, please help me spread the word by "
3591
  "reviewing the plugin on WordPres"
3592
  msgstr ""
3593
 
3594
- #: settings.php:4000
3595
  msgctxt "Review ad Inserter"
3596
  msgid "Review"
3597
  msgstr ""
3598
 
3599
- #: settings.php:4001
3600
  msgid ""
3601
  "Support free Ad Inserter development. If you are making money with Ad "
3602
  "Inserter consider donating some small amount. Even 1 dollar counts. Thank "
3603
  "you!"
3604
  msgstr ""
3605
 
3606
- #: settings.php:4001
3607
  msgid "Donate"
3608
  msgstr ""
3609
 
3610
- #: settings.php:4008 settings.php:4053
3611
  msgid "Average rating of the plugin - Thank you!"
3612
  msgstr ""
3613
 
3614
  #. translators: %s: Ad Inserter, HTML tags
3615
- #: settings.php:4019
3616
  msgid ""
3617
  "You've been using %s for a while now, and I hope you're happy with it. "
3618
  "Positive %s reviews %s are a great way to show your appreciation for my "
@@ -3621,329 +3697,329 @@ msgid ""
3621
  "your website. %s Thank you!"
3622
  msgstr ""
3623
 
3624
- #: settings.php:4038
3625
  msgid "Review"
3626
  msgstr ""
3627
 
3628
- #: settings.php:4042
3629
  msgid "Ad Inserter on Twitter"
3630
  msgstr ""
3631
 
3632
- #: settings.php:4043
3633
  msgid "Ad Inserter on Facebook"
3634
  msgstr ""
3635
 
3636
- #: settings.php:4046
3637
  msgid "Follow Ad Inserter"
3638
  msgstr ""
3639
 
3640
  #. translators: %s: HTML tags
3641
- #: settings.php:4073
3642
  msgid ""
3643
  "Need help with %s settings? %s Check %s Quick Start, %s %s Code Editing %s "
3644
  "and %s Common Settings %s pages"
3645
  msgstr ""
3646
 
3647
  #. translators: %s: HTML tags
3648
- #: settings.php:4085
3649
  msgid ""
3650
  "%s New to %s AdSense? %s %s %s Connect your site %s - Advanced %s AdSense "
3651
  "code: %s %s In-feed ads, %s %s Auto ads, %s %s AMP ads %s"
3652
  msgstr ""
3653
 
3654
  #. translators: %s: HTML tags
3655
- #: settings.php:4104
3656
  msgid ""
3657
  "Ads are not showing? Check %s troubleshooting guide %s to find out how to "
3658
  "diagnose and fix the problem."
3659
  msgstr ""
3660
 
3661
  #. translators: %s: HTML tags
3662
- #: settings.php:4108
3663
  msgid ""
3664
  "If you need any kind of help or support, please do not hesitate to open a "
3665
  "thread on the %s support forum. %s"
3666
  msgstr ""
3667
 
3668
- #: settings.php:4151 settings.php:4191
3669
  msgid "A/B testing - Track ad impressions and clicks"
3670
  msgstr ""
3671
 
3672
- #: settings.php:4159 settings.php:4183
3673
  msgid "Code preview with visual CSS editor"
3674
  msgstr ""
3675
 
3676
- #: settings.php:4201
3677
  msgid "Looking for Pro Ad Management plugin?"
3678
  msgstr ""
3679
 
3680
- #: settings.php:4202
3681
  msgid "To Optimally Monetize your WordPress website?"
3682
  msgstr ""
3683
 
3684
  #. translators: %s HTML tags
3685
- #: settings.php:4205
3686
  msgid "%s AdSense Integration %s"
3687
  msgstr ""
3688
 
3689
  #. translators: %s HTML tags
3690
- #: settings.php:4206
3691
  msgid "Syntax highlighting %s editor %s"
3692
  msgstr ""
3693
 
3694
  #. translators: %s HTML tags
3695
- #: settings.php:4207
3696
  msgid "%s Code preview %s with visual CSS editor"
3697
  msgstr ""
3698
 
3699
  #. translators: %s HTML tags
3700
- #: settings.php:4208
3701
  msgid "Simple user interface - all settings on a single page"
3702
  msgstr ""
3703
 
3704
  #. translators: %s HTML tags
3705
- #: settings.php:4209
3706
  msgid ""
3707
  "%s Automatic insertion %s before or after post / content / %s paragraph %s / "
3708
  "image / excerpt"
3709
  msgstr ""
3710
 
3711
  #. translators: %s HTML tags
3712
- #: settings.php:4210
3713
  msgid "%s Automatic insertion %s between posts on blog pages"
3714
  msgstr ""
3715
 
3716
  #. translators: %s HTML tags
3717
- #: settings.php:4211
3718
  msgid "%s Automatic insertion %s before, between and after comments"
3719
  msgstr ""
3720
 
3721
  #. translators: %s HTML tags
3722
- #: settings.php:4212
3723
  msgid "%s Automatic insertion %s after %s or before %s tag"
3724
  msgstr ""
3725
 
3726
  #. translators: %s HTML tags
3727
- #: settings.php:4213
3728
  msgid "Automatic insertion at %s custom hook positions %s"
3729
  msgstr ""
3730
 
3731
  #. translators: %s HTML tags
3732
- #: settings.php:4214
3733
  msgid ""
3734
  "Insertion %s before or after any HTML element on the page %s (using CSS "
3735
  "selectors)"
3736
  msgstr ""
3737
 
3738
  #. translators: %s HTML tags
3739
- #: settings.php:4215
3740
  msgid "%s Insertion exceptions %s for individual posts and pages"
3741
  msgstr ""
3742
 
3743
  #. translators: %s HTML tags
3744
- #: settings.php:4216
3745
  msgid "%s Manual insertion: %s widgets, shortcodes, PHP function call"
3746
  msgstr ""
3747
 
3748
  #. translators: %s HTML tags
3749
- #: settings.php:4217
3750
  msgid ""
3751
  "%s Sticky ads %s with optional close button (ads stay fixed when the page "
3752
  "scrolls)"
3753
  msgstr ""
3754
 
3755
  #. translators: %s HTML tags
3756
- #: settings.php:4218
3757
  msgid "%s Sticky sidebar ads %s (stick to the screen or to the content)"
3758
  msgstr ""
3759
 
3760
  #. translators: %s HTML tags
3761
- #: settings.php:4219
3762
  msgid "%s Sticky ad animations %s (fade, slide, turn, flip, zoom)"
3763
  msgstr ""
3764
 
3765
  #. translators: %s HTML tags
3766
- #: settings.php:4220
3767
  msgid ""
3768
  "%s Sticky ad trigger %s (page scroll in %% or px, HTML element becomes "
3769
  "visible)"
3770
  msgstr ""
3771
 
3772
  #. translators: %s HTML tags
3773
- #: settings.php:4221
3774
  msgid ""
3775
  "%s Sticky (fixed) widgets %s (sidebar does not move when the page scrolls)"
3776
  msgstr ""
3777
 
3778
  #. translators: %s HTML tags
3779
- #: settings.php:4222
3780
  msgid "Block %s alignment and style %s customizations"
3781
  msgstr ""
3782
 
3783
  #. translators: %s HTML tags
3784
- #: settings.php:4223
3785
  msgid ""
3786
  "%s Clearance %s options to avoid insertion near images or headers (AdSense "
3787
  "TOS)"
3788
  msgstr ""
3789
 
3790
  #. translators: %s HTML tags
3791
- #: settings.php:4224
3792
  msgid ""
3793
  "Options to %s disable insertion %s on Ajax calls, 404 error pages or in RSS "
3794
  "feeds"
3795
  msgstr ""
3796
 
3797
  #. translators: %s HTML tags
3798
- #: settings.php:4225
3799
  msgid "%s Ad rotation %s (works also with caching)"
3800
  msgstr ""
3801
 
3802
  #. translators: %s HTML tags
3803
- #: settings.php:4226
3804
  msgid ""
3805
  "Ad impression and click %s tracking %s (works also with Javascript ads like "
3806
  "AdSense)"
3807
  msgstr ""
3808
 
3809
  #. translators: %s HTML tags
3810
- #: settings.php:4227
3811
  msgid "Support for %s A/B testing %s"
3812
  msgstr ""
3813
 
3814
  #. translators: %s HTML tags
3815
- #: settings.php:4228
3816
  msgid "Support for %s lazy loading %s"
3817
  msgstr ""
3818
 
3819
  #. translators: %s HTML tags
3820
- #: settings.php:4229
3821
  msgid "Support for ads on %s AMP pages %s"
3822
  msgstr ""
3823
 
3824
  #. translators: %s HTML tags
3825
- #: settings.php:4230
3826
  msgid "Support for contextual %s Amazon Native Shopping Ads %s (responsive)"
3827
  msgstr ""
3828
 
3829
  #. translators: %s HTML tags
3830
- #: settings.php:4231
3831
  msgid "Custom CSS class name for wrapping divs to avoid ad blockers"
3832
  msgstr ""
3833
 
3834
  #. translators: %s HTML tags
3835
- #: settings.php:4232
3836
  msgid "PHP code processing"
3837
  msgstr ""
3838
 
3839
  #. translators: %s HTML tags
3840
- #: settings.php:4233
3841
  msgid "%s Banner %s code generator"
3842
  msgstr ""
3843
 
3844
  #. translators: %s HTML tags
3845
- #: settings.php:4234
3846
  msgid "Support for %s header and footer %s code"
3847
  msgstr ""
3848
 
3849
  #. translators: %s HTML tags
3850
- #: settings.php:4235
3851
  msgid "Support for Google Analytics, Matomo or any other web analytics code"
3852
  msgstr ""
3853
 
3854
  #. translators: %s HTML tags
3855
- #: settings.php:4236
3856
  msgid "Desktop, tablet and phone server-side %s device detection %s"
3857
  msgstr ""
3858
 
3859
  #. translators: %s HTML tags
3860
- #: settings.php:4237
3861
  msgid "Client-side %s mobile device detection %s (works with caching)"
3862
  msgstr ""
3863
 
3864
  #. translators: %s HTML tags
3865
- #: settings.php:4238
3866
  msgid ""
3867
  "%s Ad blocking detection %s - popup message, ad replacement, content "
3868
  "protection"
3869
  msgstr ""
3870
 
3871
  #. translators: %s HTML tags
3872
- #: settings.php:4239
3873
  msgid "%s Ad blocking statistics %s"
3874
  msgstr ""
3875
 
3876
  #. translators: %s HTML tags
3877
- #: settings.php:4240
3878
  msgid ""
3879
  "%s Black/White-list %s categories, tags, taxonomies, users, post IDs, urls, "
3880
  "referers"
3881
  msgstr ""
3882
 
3883
  #. translators: %s HTML tags
3884
- #: settings.php:4241
3885
  msgid ""
3886
  "%s Black/White-list %s IP addresses or countries (works also with caching)"
3887
  msgstr ""
3888
 
3889
  #. translators: %s HTML tags
3890
- #: settings.php:4242
3891
  msgid "%s Multisite options %s to limit settings on the sites"
3892
  msgstr ""
3893
 
3894
  #. translators: %s HTML tags
3895
- #: settings.php:4243
3896
  msgid "%s Import/Export %s block or plugin settings"
3897
  msgstr ""
3898
 
3899
  #. translators: %s HTML tags
3900
- #: settings.php:4244
3901
  msgid "%s Insertion scheduling %s with fallback option"
3902
  msgstr ""
3903
 
3904
  #. translators: %s HTML tags
3905
- #: settings.php:4245
3906
  msgid "Country-level %s GEO targeting %s (works also with caching)"
3907
  msgstr ""
3908
 
3909
  #. translators: %s HTML tags
3910
- #: settings.php:4246
3911
  msgid "Simple troubleshooting with many %s debugging functions %s"
3912
  msgstr ""
3913
 
3914
  #. translators: %s HTML tags
3915
- #: settings.php:4247
3916
  msgid "%s Visualization %s of inserted blocks or ads for easier placement"
3917
  msgstr ""
3918
 
3919
  #. translators: %s HTML tags
3920
- #: settings.php:4248
3921
  msgid "%s Visualization %s of available positions for automatic ad insertion"
3922
  msgstr ""
3923
 
3924
  #. translators: %s HTML tags
3925
- #: settings.php:4249
3926
  msgid ""
3927
  "%s Visualization %s of HTML tags for easier ad placement between paragraphs"
3928
  msgstr ""
3929
 
3930
  #. translators: %s HTML tags
3931
- #: settings.php:4250
3932
  msgid "%s Clipboard support %s to easily copy blocks or settings"
3933
  msgstr ""
3934
 
3935
  #. translators: %s HTML tags
3936
- #: settings.php:4251
3937
  msgid "No ads on the settings page"
3938
  msgstr ""
3939
 
3940
  #. translators: %s HTML tags
3941
- #: settings.php:4252
3942
  msgid "Premium support via email"
3943
  msgstr ""
3944
 
3945
  #. translators: %s HTML tags
3946
- #: settings.php:4255
3947
  msgid ""
3948
  "Ad Inserter Pro is a complete all-in-one ad management plugin for WordPress "
3949
  "website with many advertising features to automatically insert adverts on "
@@ -3958,82 +4034,82 @@ msgid ""
3958
  msgstr ""
3959
 
3960
  #. translators: %s HTML tags
3961
- #: settings.php:4268
3962
  msgid "Looking for %s Pro Ad Management plugin? %s"
3963
  msgstr ""
3964
 
3965
  #. translators: %s HTML tags
3966
- #: settings.php:4273
3967
  msgid "Ads between posts"
3968
  msgstr ""
3969
 
3970
  #. translators: %s HTML tags
3971
- #: settings.php:4274
3972
  msgid "Ads between comments"
3973
  msgstr ""
3974
 
3975
  #. translators: %s HTML tags
3976
- #: settings.php:4275
3977
  msgid "Support via email"
3978
  msgstr ""
3979
 
3980
  #. translators: %s HTML tags
3981
- #: settings.php:4281
3982
  msgid "%s Sticky positions %s"
3983
  msgstr ""
3984
 
3985
  #. translators: %s HTML tags
3986
- #: settings.php:4282
3987
  msgid "%s Limit insertions %s"
3988
  msgstr ""
3989
 
3990
  #. translators: %s HTML tags
3991
- #: settings.php:4283
3992
  msgid "%s Clearance %s options"
3993
  msgstr ""
3994
 
3995
  #. translators: %s HTML tags
3996
- #: settings.php:4289
3997
  msgid "Ad rotation"
3998
  msgstr ""
3999
 
4000
  #. translators: %s HTML tags
4001
- #: settings.php:4290
4002
  msgid "%s A/B testing %s"
4003
  msgstr ""
4004
 
4005
  #. translators: %s HTML tags
4006
- #: settings.php:4291
4007
  msgid "%s Ad tracking %s"
4008
  msgstr ""
4009
 
4010
  #. translators: %s HTML tags
4011
- #: settings.php:4297
4012
  msgid "Support for %s AMP pages %s"
4013
  msgstr ""
4014
 
4015
  #. translators: %s HTML tags
4016
- #: settings.php:4298
4017
  msgid "%s Ad blocking detection %s"
4018
  msgstr ""
4019
 
4020
  #. translators: %s HTML tags
4021
- #: settings.php:4299
4022
  msgid "%s Mobile device detection %s"
4023
  msgstr ""
4024
 
4025
  #. translators: %s HTML tags
4026
- #: settings.php:4306
4027
  msgid "64 code blocks"
4028
  msgstr ""
4029
 
4030
  #. translators: %s HTML tags
4031
- #: settings.php:4307
4032
  msgid "%s GEO targeting %s"
4033
  msgstr ""
4034
 
4035
  #. translators: %s HTML tags
4036
- #: settings.php:4308
4037
  msgid "%s Scheduling %s"
4038
  msgstr ""
4039
 
@@ -4680,10 +4756,6 @@ msgid_plural "days"
4680
  msgstr[0] ""
4681
  msgstr[1] ""
4682
 
4683
- #: strings.php:197
4684
- msgid "Warning"
4685
- msgstr ""
4686
-
4687
  #: strings.php:198
4688
  msgid "Delete"
4689
  msgstr ""
2
  # This file is distributed under the same license as the Ad Inserter package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Ad Inserter 2.4.11\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/ad-inserter\n"
7
+ "POT-Creation-Date: 2019-03-19 21:11:59+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
15
+ #: ad-inserter.php:324
16
  msgctxt "Menu item"
17
  msgid "Debugging DEMO"
18
  msgstr ""
19
 
20
+ #: ad-inserter.php:340
21
  msgctxt "Menu item"
22
  msgid "Label Blocks"
23
  msgstr ""
24
 
25
+ #: ad-inserter.php:347
26
  msgctxt "Menu item"
27
  msgid "Show Positions"
28
  msgstr ""
29
 
30
+ #: ad-inserter.php:418
31
  msgctxt "Menu item"
32
  msgid "Show HTML Tags"
33
  msgstr ""
34
 
35
+ #: ad-inserter.php:425
36
  msgctxt "Menu item"
37
  msgid "Disable Insertion"
38
  msgstr ""
39
 
40
+ #: ad-inserter.php:434
41
  msgctxt "Menu item"
42
  msgid "Ad Blocking Status"
43
  msgstr ""
44
 
45
+ #: ad-inserter.php:441
46
  msgctxt "Menu item"
47
  msgid "Simulate Ad Blocking"
48
  msgstr ""
49
 
50
+ #: ad-inserter.php:451
51
  msgctxt "Menu item"
52
  msgid "Log Processing"
53
  msgstr ""
54
 
55
  #. translators: Debugging position name Before HTML element
56
+ #: ad-inserter.php:1030
57
  msgid "Before"
58
  msgstr ""
59
 
60
  #. translators: Debugging position name After HTML element
61
+ #: ad-inserter.php:1035
62
  msgid "After"
63
  msgstr ""
64
 
65
  #. translators: Debugging position name Prepend content of HTML element (before
66
  #. the content of the HTML element)
67
+ #: ad-inserter.php:1040 strings.php:98
68
  msgid "Prepend content"
69
  msgstr ""
70
 
71
  #. translators: Debugging position name Append content of HTML element (after
72
  #. the content of the HTML element)
73
+ #: ad-inserter.php:1045 strings.php:99
74
  msgid "Append content"
75
  msgstr ""
76
 
77
  #. translators: Debugging position name Replace content of HTML element
78
+ #: ad-inserter.php:1050 strings.php:100
79
  msgid "Replace content"
80
  msgstr ""
81
 
82
  #. translators: Debugging position name Replace HTML element
83
+ #: ad-inserter.php:1055 strings.php:150
84
  msgid "Replace"
85
  msgstr ""
86
 
87
  #. translators: Debugging message when output buffering is enabled
88
+ #: ad-inserter.php:1102
89
  msgid "OUTPUT BUFFERING"
90
  msgstr ""
91
 
92
  #. translators: Debugging position
93
+ #: ad-inserter.php:1106
94
  msgid "Above Header"
95
  msgstr ""
96
 
97
+ #: ad-inserter.php:1315
98
  msgctxt "Menu item"
99
  msgid "Log In"
100
  msgstr ""
101
 
102
  #. translators: %s: Ad Inserter
103
+ #: ad-inserter.php:1590 ad-inserter.php:2453
104
  msgid "%s Settings"
105
  msgstr ""
106
 
107
  #. translators: AD BLOCKING DETECTED, PAGE VIEWS: n - NO ACTION
108
+ #: ad-inserter.php:2024
109
  msgid "AD BLOCKING DETECTED, PAGE VIEWS"
110
  msgstr ""
111
 
112
+ #: ad-inserter.php:2024
113
  msgid "NO ACTION"
114
  msgstr ""
115
 
116
+ #: ad-inserter.php:2025
117
  msgid "AD BLOCKING DETECTED, COOKIE DETECTED - NO ACTION"
118
  msgstr ""
119
 
120
+ #: ad-inserter.php:2026
121
  msgid "AD BLOCKING DETECTED - ACTION"
122
  msgstr ""
123
 
124
+ #: ad-inserter.php:2027
125
  msgid "AD BLOCKING NOT DETECTED"
126
  msgstr ""
127
 
128
+ #: ad-inserter.php:2028
129
  msgid "AD BLOCKING DETECTION COOKIES DELETED"
130
  msgstr ""
131
 
132
+ #: ad-inserter.php:2029
133
  msgid "AD BLOCKING DETECTED - NO ACTION"
134
  msgstr ""
135
 
136
  #. Translators: 1: number of blocks, 2: Ad Inserter
137
+ #: ad-inserter.php:2224
138
  msgid "Hey, you are now using %1$s %2$s block."
139
  msgid_plural "Hey, you are now using %1$s %2$s blocks."
140
  msgstr[0] ""
141
  msgstr[1] ""
142
 
143
+ #: ad-inserter.php:2225 includes/functions.php:1494
144
  msgid "No, thank you."
145
  msgstr ""
146
 
147
  #. Translators: %s: Ad Inserter
148
+ #: ad-inserter.php:2228
149
  msgid ""
150
  "Hey, you've been using %s for a while now, and I hope you're happy with it."
151
  msgstr ""
152
 
153
+ #: ad-inserter.php:2229 includes/functions.php:1497
154
  msgid "Not now, maybe later."
155
  msgstr ""
156
 
157
+ #: ad-inserter.php:2239
158
  msgid ""
159
  "I would really appreciate it if you could give the plugin a 5-star rating on "
160
  "WordPres."
161
  msgstr ""
162
 
163
+ #: ad-inserter.php:2241
164
  msgid ""
165
  "Positive reviews are a great incentive to fix bugs and to add new features "
166
  "for better monetization of your website. Thank you, Igor"
167
  msgstr ""
168
 
169
  #. translators: %s: Ad Inserter
170
+ #: ad-inserter.php:2247
171
  msgid "Rate %s"
172
  msgstr ""
173
 
174
+ #: ad-inserter.php:2252
175
  msgid "I already did."
176
  msgstr ""
177
 
178
+ #: ad-inserter.php:2266
179
  msgctxt "Menu item"
180
  msgid "Settings"
181
  msgstr ""
182
 
183
  #. translators: %s: Ad Inserter
184
+ #: ad-inserter.php:2340
185
  msgctxt "Meta box name"
186
  msgid "%s Individual Exceptions"
187
  msgstr ""
188
 
189
+ #: ad-inserter.php:2369 ad-inserter.php:8000 class.php:1967
190
  #: includes/preview.php:1966 includes/preview.php:2010
191
+ #: includes/preview.php:2047 settings.php:3639 strings.php:3
192
  msgid "Block"
193
  msgstr ""
194
 
195
+ #: ad-inserter.php:2370 settings.php:3640 settings.php:3714
196
  msgid "Name"
197
  msgstr ""
198
 
199
+ #: ad-inserter.php:2371 settings.php:3642
200
  msgid "Automatic insertion"
201
  msgstr ""
202
 
203
+ #: ad-inserter.php:2374
204
  msgid "Default insertion for pages"
205
  msgstr ""
206
 
207
+ #: ad-inserter.php:2375
208
  msgid "Default insertion for posts"
209
  msgstr ""
210
 
211
  #. translators: For this post or page
212
+ #: ad-inserter.php:2378
213
  msgctxt "Page"
214
  msgid "For this"
215
  msgstr ""
216
 
217
+ #: ad-inserter.php:2379
218
  msgctxt "Post"
219
  msgid "For this"
220
  msgstr ""
221
 
222
+ #: ad-inserter.php:2387
223
  msgctxt "Enabled/disabled on all"
224
  msgid "pages"
225
  msgstr ""
226
 
227
+ #: ad-inserter.php:2388
228
  msgctxt "Default insertion for"
229
  msgid "pages"
230
  msgstr ""
231
 
232
+ #: ad-inserter.php:2392
233
  msgctxt "Enabled/disabled on all"
234
  msgid "posts"
235
  msgstr ""
236
 
237
+ #: ad-inserter.php:2393
238
  msgctxt "Default insertion for"
239
  msgid "posts"
240
  msgstr ""
241
 
242
+ #: ad-inserter.php:2412 ad-inserter.php:2425 strings.php:156
243
  msgid "Enabled"
244
  msgstr ""
245
 
246
  #. translators: Menu items
247
+ #: ad-inserter.php:2412 ad-inserter.php:2425 includes/functions.php:2122
248
  #: strings.php:16
249
  msgid "Disabled"
250
  msgstr ""
251
 
252
  #. translators: Enabled on all pages or posts
253
+ #: ad-inserter.php:2415
254
  msgid "Enabled on all"
255
  msgstr ""
256
 
257
  #. translators: Disabled on all pages or posts
258
+ #: ad-inserter.php:2417
259
  msgid "Disabled on all"
260
  msgstr ""
261
 
262
  #. translators: No individual exceptions enabled for pages or posts
263
+ #: ad-inserter.php:2445
264
  msgid "No individual exceptions enabled for"
265
  msgstr ""
266
 
267
  #. translators: 1: pages or posts, 2: Ad Inserter Settings (page)
268
+ #: ad-inserter.php:2450
269
  msgid ""
270
  "Default insertion for %1$s can be configured for each block on %2$s page - "
271
  "selection next to <strong>Posts</strong> / <strong>Static pages</strong> "
272
  "checkbox.<br />"
273
  msgstr ""
274
 
275
+ #: ad-inserter.php:2455
276
  msgid ""
277
  "Default value is <strong>blank</strong> and means no individual exceptions "
278
  "(even if previously defined here).<br />"
279
  msgstr ""
280
 
281
+ #: ad-inserter.php:2458
282
  msgctxt "Pages"
283
  msgid ""
284
  "Set to <strong>Individually disabled</strong> or <strong>Individually "
285
  "enabled</strong> to enable individual exception settings on this page.<br />"
286
  msgstr ""
287
 
288
+ #: ad-inserter.php:2459
289
  msgctxt "Posts"
290
  msgid ""
291
  "Set to <strong>Individually disabled</strong> or <strong>Individually "
292
  "enabled</strong> to enable individual exception settings on this page.<br />"
293
  msgstr ""
294
 
295
+ #: ad-inserter.php:2461
296
  msgid "For more information check page %s"
297
  msgstr ""
298
 
299
  #. translators: Ad Inserter Exceptions documentation page
300
+ #: ad-inserter.php:2463
301
  msgid "Individual Exceptions"
302
  msgstr ""
303
 
304
+ #: ad-inserter.php:2508
305
  msgid "STATIC PAGE"
306
  msgstr ""
307
 
308
+ #: ad-inserter.php:2511
309
  msgid "POST"
310
  msgstr ""
311
 
312
+ #: ad-inserter.php:2514
313
  msgid "HOMEPAGE"
314
  msgstr ""
315
 
316
+ #: ad-inserter.php:2517
317
  msgid "CATEGORY PAGE"
318
  msgstr ""
319
 
320
+ #: ad-inserter.php:2520
321
  msgid "SEARCH PAGE"
322
  msgstr ""
323
 
324
+ #: ad-inserter.php:2523
325
  msgid "ARCHIVE PAGE"
326
  msgstr ""
327
 
328
+ #: ad-inserter.php:2526
329
  msgid "ERROR 404 PAGE"
330
  msgstr ""
331
 
332
+ #: ad-inserter.php:2529
333
  msgid "AJAX CALL"
334
  msgstr ""
335
 
336
+ #: ad-inserter.php:2532
337
  msgid "UNKNOWN PAGE TYPE"
338
  msgstr ""
339
 
340
+ #: ad-inserter.php:2549
341
  msgid "Click to delete ad blocking detection cokies"
342
  msgstr ""
343
 
344
+ #: ad-inserter.php:2550
345
  msgid "AD BLOCKING STATUS UNKNOWN"
346
  msgstr ""
347
 
348
  #. translators: %s: AdSense Auto Ads
349
+ #: ad-inserter.php:2574
350
  msgid ""
351
  "Code for %s detected - Code will automatically insert AdSense ads at optimal "
352
  "positions"
353
  msgstr ""
354
 
355
+ #: ad-inserter.php:2713
356
  msgid "Code for insertion"
357
  msgstr ""
358
 
359
+ #: ad-inserter.php:2713
360
  msgid "character"
361
  msgid_plural "characters"
362
  msgstr[0] ""
363
  msgstr[1] ""
364
 
365
+ #: ad-inserter.php:2756
366
  msgid "Header code"
367
  msgstr ""
368
 
369
+ #: ad-inserter.php:2756
370
  msgctxt "Header code"
371
  msgid "DISABLED"
372
  msgstr ""
373
 
374
+ #: ad-inserter.php:2756 ad-inserter.php:2978
375
  msgid "character inserted"
376
  msgid_plural "characters inserted"
377
  msgstr[0] ""
378
  msgstr[1] ""
379
 
380
+ #: ad-inserter.php:2789
381
  msgid "Automatically placed by AdSense Auto ads code"
382
  msgstr ""
383
 
384
+ #: ad-inserter.php:2978
385
  msgid "Footer code"
386
  msgstr ""
387
 
388
+ #: ad-inserter.php:2978
389
  msgctxt "Footer code"
390
  msgid "DISABLED"
391
  msgstr ""
392
 
393
+ #: ad-inserter.php:2984
394
  msgid "JAVASCRIPT NOT WORKING"
395
  msgstr ""
396
 
397
+ #: ad-inserter.php:2984
398
  msgid "NO JAVASCRIPT ERRORS"
399
  msgstr ""
400
 
401
+ #: ad-inserter.php:2984
402
  msgid "JAVASCRIPT ERRORS"
403
  msgstr ""
404
 
405
  #. translators: block name (block with default settings)
406
+ #: ad-inserter.php:5059
407
  msgctxt "Block name"
408
  msgid "Default"
409
  msgstr ""
410
 
411
  #. translators: %s: Ad Inserter
412
+ #: ad-inserter.php:5624
413
  msgid "Error importing %s settings."
414
  msgstr ""
415
 
416
+ #: ad-inserter.php:5625
417
  msgid "Error importing settings for block"
418
  msgid_plural "Error importing settings for blocks:"
419
  msgstr[0] ""
420
  msgstr[1] ""
421
 
422
+ #: ad-inserter.php:5674
423
  msgid "Settings saved."
424
  msgstr ""
425
 
426
+ #: ad-inserter.php:5759
427
  msgid "Settings cleared."
428
  msgstr ""
429
 
430
+ #: ad-inserter.php:6104 ad-inserter.php:6106 ad-inserter.php:6129
431
  msgid "word"
432
  msgid_plural "words"
433
  msgstr[0] ""
434
  msgstr[1] ""
435
 
436
+ #: ad-inserter.php:6143 ad-inserter.php:6255
437
  msgid "HTML TAGS REMOVED"
438
  msgstr ""
439
 
440
+ #: ad-inserter.php:6331
441
  msgid "BEFORE COMMENTS"
442
  msgstr ""
443
 
444
+ #: ad-inserter.php:6439
445
  msgid "AFTER COMMENTS"
446
  msgstr ""
447
 
448
+ #: ad-inserter.php:6502
449
  msgid "BETWEEN COMMENTS"
450
  msgstr ""
451
 
452
+ #: ad-inserter.php:7647
453
  msgid "requires WordPress 4.0 or newer"
454
  msgstr ""
455
 
456
+ #: ad-inserter.php:7647
457
  msgid "Please update!"
458
  msgstr ""
459
 
460
  #. translators: Opt-in message: Thank you for installing Ad Inserter (plugin
461
  #. name with HTML tags will be added)
462
+ #: ad-inserter.php:7873
463
  msgid "Thank you for installing"
464
  msgstr ""
465
 
466
  #. translators: Opt-in message: %s: HTML tags
467
+ #: ad-inserter.php:7875
468
  msgid ""
469
  "We would like to %s track its usage %s on your site. This is completely "
470
  "optional and can be disabled at any time."
471
  msgstr ""
472
 
473
+ #: ad-inserter.php:7877
474
  msgid ""
475
  "We don't record any sensitive data, only information regarding the WordPress "
476
  "environment and plugin usage, which will help us to make improvements to the "
478
  msgstr ""
479
 
480
  #. translators: Deactivation message: %s: HTML tags
481
+ #: ad-inserter.php:7914
482
  msgid ""
483
  "Looking for %s Documentation, %s %s Common Settings, %s %s Quick Start %s or "
484
  "help for %s AdSense ads? %s The plugin doesn't work with your theme? %s Let "
486
  msgstr ""
487
 
488
  #. translators: %s: Ad Inserter
489
+ #: ad-inserter.php:7957
490
  msgid "%s block."
491
  msgstr ""
492
 
493
  #. translators: widget title
494
+ #: ad-inserter.php:7973 ad-inserter.php:8009
495
  msgid "Processing log"
496
  msgstr ""
497
 
498
  #. translators: widget title
499
+ #: ad-inserter.php:7975 ad-inserter.php:8010
500
  msgid "Dummy widget"
501
  msgstr ""
502
 
503
  #. translators: widget title
504
+ #: ad-inserter.php:7977 ad-inserter.php:8008
505
  msgid "Debugging tools"
506
  msgstr ""
507
 
508
  #. translators: block status (widget title)
509
+ #: ad-inserter.php:7984
510
  msgctxt "block"
511
  msgid "PAUSED"
512
  msgstr ""
513
 
514
+ #: ad-inserter.php:7985
515
  msgid "WIDGET DISABLED"
516
  msgstr ""
517
 
518
+ #: ad-inserter.php:7986
519
  msgid "Unknown block"
520
  msgstr ""
521
 
522
+ #: ad-inserter.php:7995 includes/functions.php:2635 settings.php:1038
523
  msgid "Title"
524
  msgstr ""
525
 
526
+ #: ad-inserter.php:8017
527
  msgctxt "Widget"
528
  msgid "Sticky"
529
  msgstr ""
530
 
531
+ #: ad-inserter.php:8066
532
  msgid ""
533
  "Ad Inserter can't be used while Ad Inserter Pro is active! To activate Ad "
534
  "Inserter you need to first deactivate Ad Inserter Pro."
535
  msgstr ""
536
 
537
+ #: ad-inserter.php:8067
538
  msgid ""
539
  "<strong>WARNING</strong>: Please note that saving settings in Ad Inserter "
540
  "will clear all settings that are available only in the Pro version "
566
  msgid "After post"
567
  msgstr ""
568
 
569
+ #: class.php:1957 settings.php:1624 settings.php:3646
570
  msgid "Widget"
571
  msgstr ""
572
 
573
+ #: class.php:1962 settings.php:3644
574
  msgid "PHP function call"
575
  msgstr ""
576
 
607
  msgid "INSERTED BUT NOT VISIBLE"
608
  msgstr ""
609
 
610
+ #: class.php:2410 class.php:2469
611
  msgid "ACTIVE GROUPS"
612
  msgstr ""
613
 
614
  #. translators: %s: list parameters and type
615
+ #: class.php:2644
616
  msgid "parameters='%s' type='%s'"
617
  msgstr ""
618
 
619
  #. translators: %s: list parameters and type
620
+ #: class.php:2646
621
  msgid "referers='%s' type='%s'"
622
  msgstr ""
623
 
624
  #. translators: %s: list parameters and type
625
+ #: class.php:2707
626
  msgid "countries='%s' type='%s'"
627
  msgstr ""
628
 
629
  #. translators: %s: list parameters and type
630
+ #: class.php:2709
631
  msgid "ip addresses='%s' type='%s'"
632
  msgstr ""
633
 
634
+ #: class.php:2943 strings.php:228
635
  msgid "BEFORE"
636
  msgstr ""
637
 
638
+ #: class.php:2951 strings.php:230
639
  msgid "PREPEND CONTENT"
640
  msgstr ""
641
 
642
+ #: class.php:2955 strings.php:231
643
  msgid "APPEND CONTENT"
644
  msgstr ""
645
 
646
+ #: class.php:2959 strings.php:232
647
  msgid "REPLACE CONTENT"
648
  msgstr ""
649
 
650
+ #: class.php:2963 strings.php:233
651
  msgid "REPLACE ELEMENT"
652
  msgstr ""
653
 
654
+ #: class.php:2974 strings.php:229
655
  msgid "AFTER"
656
  msgstr ""
657
 
658
+ #: class.php:3041
659
  msgctxt "JavaScript"
660
  msgid "script"
661
  msgstr ""
662
 
663
+ #: class.php:3044 settings.php:1893
664
  msgid "for"
665
  msgstr ""
666
 
667
+ #: class.php:5584 class.php:5636
668
  msgctxt "category name"
669
  msgid "Uncategorized"
670
  msgstr ""
671
 
672
+ #: class.php:6127
673
  msgid ""
674
  "ERROR: class DOMDocument not found. Your webhost needs to install the DOM "
675
  "extension for PHP."
771
  "Leave empty unless position is not properly calculated."
772
  msgstr ""
773
 
774
+ #: includes/functions.php:420 settings.php:1194 settings.php:2478
775
  msgid "Open HTML element selector"
776
  msgstr ""
777
 
795
  msgid " - global tracking disabled"
796
  msgstr ""
797
 
798
+ #: includes/functions.php:461 includes/functions.php:2464
799
  msgid "Generate report"
800
  msgstr ""
801
 
803
  msgid "Toggle Ad Blocking Statistics"
804
  msgstr ""
805
 
806
+ #: includes/functions.php:479 includes/functions.php:2449
807
  msgid "Toggle Statistics"
808
  msgstr ""
809
 
892
  msgid "Tracking for this block is disabled"
893
  msgstr ""
894
 
895
+ #: includes/functions.php:732 settings.php:3150 settings.php:3186
896
+ #: settings.php:3229 strings.php:209
897
  msgid "Loading..."
898
  msgstr ""
899
 
984
  msgid "Export / Import Ad Inserter Pro Settings"
985
  msgstr ""
986
 
987
+ #: includes/functions.php:833
988
  msgid "Are you sure you want to clear all statistics data for all blocks?"
989
  msgstr ""
990
 
991
+ #: includes/functions.php:835
992
  msgid "Clear All Statistics Data"
993
  msgstr ""
994
 
995
+ #: includes/functions.php:862
996
  msgid "Toggle country/city editor"
997
  msgstr ""
998
 
999
+ #: includes/functions.php:868
1000
  msgid "IP Addresses"
1001
  msgstr ""
1002
 
1003
+ #: includes/functions.php:871
1004
  msgid "Toggle IP address editor"
1005
  msgstr ""
1006
 
1007
+ #: includes/functions.php:874
1008
  msgid ""
1009
  "Comma separated IP addresses, you can also use partial IP addresses with * "
1010
  "(ip-address-start*. *ip-address-pattern*, *ip-address-end)"
1011
  msgstr ""
1012
 
1013
+ #: includes/functions.php:878
1014
  msgid "Blacklist IP addresses"
1015
  msgstr ""
1016
 
1017
+ #: includes/functions.php:882
1018
  msgid "Whitelist IP addresses"
1019
  msgstr ""
1020
 
1021
+ #: includes/functions.php:893
1022
  msgid "Countries"
1023
  msgstr ""
1024
 
1025
+ #: includes/functions.php:894
1026
  msgid "Cities"
1027
  msgstr ""
1028
 
1029
+ #: includes/functions.php:898 includes/functions.php:2414
1030
  msgid "Toggle country editor"
1031
  msgstr ""
1032
 
1033
+ #: includes/functions.php:901
1034
  msgid "Toggle city editor"
1035
  msgstr ""
1036
 
1037
+ #: includes/functions.php:905 includes/functions.php:2417
1038
  msgid "Comma separated country ISO Alpha-2 codes"
1039
  msgstr ""
1040
 
1041
+ #: includes/functions.php:909
1042
  msgid "Blacklist countries"
1043
  msgstr ""
1044
 
1045
+ #: includes/functions.php:913
1046
  msgid "Whitelist countries"
1047
  msgstr ""
1048
 
1049
+ #: includes/functions.php:1227 includes/functions.php:1450
1050
  msgid "Enter license key"
1051
  msgstr ""
1052
 
1053
  #. translators: %s: Ad Inserter Pro
1054
+ #: includes/functions.php:1233
1055
  msgid ""
1056
  "%s license key is not set. Plugin functionality is limited and updates are "
1057
  "disabled."
1058
  msgstr ""
1059
 
1060
+ #: includes/functions.php:1242 includes/functions.php:1459
1061
  msgid "Check license key"
1062
  msgstr ""
1063
 
1064
  #. translators: %s: Ad Inserter Pro
1065
+ #: includes/functions.php:1248
1066
  msgid "Invalid %s license key."
1067
  msgstr ""
1068
 
1069
  #. translators: %s: Ad Inserter Pro
1070
+ #: includes/functions.php:1257
1071
  msgid "%s license expired. Plugin updates are disabled."
1072
  msgstr ""
1073
 
1074
+ #: includes/functions.php:1258
1075
  msgid "Renew license"
1076
  msgstr ""
1077
 
1078
  #. translators: %s: Ad Inserter Pro
1079
+ #: includes/functions.php:1266
1080
  msgid "%s license overused. Plugin updates are disabled."
1081
  msgstr ""
1082
 
1083
+ #: includes/functions.php:1267
1084
  msgid "Upgrade license"
1085
  msgstr ""
1086
 
1087
  #. translators: 1, 2: HTML tags, 3: Ad Inserter Pro
1088
+ #: includes/functions.php:1452
1089
  msgid ""
1090
  "%1$s Warning: %2$s %3$s license key is not set. Plugin functionality is "
1091
  "limited and updates are disabled."
1092
  msgstr ""
1093
 
1094
  #. translators: 1, 2,: HTML tags, 3: Ad Inserter Pro
1095
+ #: includes/functions.php:1461
1096
  msgid "%1$s Warning: %2$s Invalid %3$s license key."
1097
  msgstr ""
1098
 
1099
  #. translators: 2, 3: HTML tags, 1: Ad Inserter Pro
1100
+ #: includes/functions.php:1477
1101
  msgid ""
1102
  "Hey, %1$s license has expired - plugin updates are now disabled. Please "
1103
  "renew the license to enable updates. Check %2$s what you are missing. %3$s"
1104
  msgstr ""
1105
 
1106
  #. translators: 1, 3: HTML tags, 2: percentage
1107
+ #: includes/functions.php:1484
1108
  msgid ""
1109
  "During the license period and 30 days after the license has expired we offer "
1110
  "%1$s %2$s discount on all license renewals and license upgrades. %3$s"
1111
  msgstr ""
1112
 
1113
+ #: includes/functions.php:1511
1114
  msgid "Renew the licence"
1115
  msgstr ""
1116
 
1117
+ #: includes/functions.php:1513
1118
  msgid "Update license status"
1119
  msgstr ""
1120
 
1121
  #. translators: 1, 2, 4, 5: HTML tags, 3: Ad Inserter Pro
1122
+ #: includes/functions.php:1524
1123
  msgid ""
1124
  "%1$s Warning: %2$s %3$s license overused. Plugin updates are disabled. %4$s "
1125
  "Upgrade license %5$s"
1126
  msgstr ""
1127
 
1128
  #. Translators: %s: HTML tag
1129
+ #: includes/functions.php:1544
1130
  msgid "Warning: %s MaxMind IP geolocation database not found."
1131
  msgstr ""
1132
 
1133
+ #: includes/functions.php:2051
1134
  msgid "Geolocation"
1135
  msgstr ""
1136
 
1137
+ #: includes/functions.php:2055
1138
  msgid "Exceptions"
1139
  msgstr ""
1140
 
1141
+ #: includes/functions.php:2060
1142
  msgid "Multisite"
1143
  msgstr ""
1144
 
1145
+ #: includes/functions.php:2065
1146
  msgid "Tracking"
1147
  msgstr ""
1148
 
1149
  #. translators: %d: days, hours, minutes
1150
+ #: includes/functions.php:2096
1151
  msgid "Scheduled in %d days %d hours %d minutes"
1152
  msgstr ""
1153
 
1154
  #. translators: %s: HTML dash separator, %d: days, hours, minutes, &mdash; is
1155
  #. HTML code for long dash separator
1156
+ #: includes/functions.php:2105
1157
  msgid "Active %s expires in %d days %d hours %d minutes"
1158
  msgstr ""
1159
 
1160
+ #: includes/functions.php:2109
1161
  msgid "Expired"
1162
  msgstr ""
1163
 
1164
+ #: includes/functions.php:2117 settings.php:1277 settings.php:1292
1165
  #: settings.php:1879
1166
  msgid "and"
1167
  msgstr ""
1168
 
1169
+ #: includes/functions.php:2120
1170
  msgid "fallback"
1171
  msgstr ""
1172
 
1173
+ #: includes/functions.php:2121
1174
  msgid "Block to be used when scheduling expires"
1175
  msgstr ""
1176
 
1177
+ #: includes/functions.php:2146
1178
  msgid "Load in iframe"
1179
  msgstr ""
1180
 
1181
+ #: includes/functions.php:2150 includes/placeholders.php:382
1182
  msgid "Width"
1183
  msgstr ""
1184
 
1185
+ #: includes/functions.php:2151
1186
  msgid "iframe width, empty means full width (100%)"
1187
  msgstr ""
1188
 
1189
+ #: includes/functions.php:2157 includes/placeholders.php:377
1190
  msgid "Height"
1191
  msgstr ""
1192
 
1193
+ #: includes/functions.php:2158
1194
  msgid "iframe height, empty means adjust it to iframe content height"
1195
  msgstr ""
1196
 
1197
+ #: includes/functions.php:2165
1198
  msgid "Ad label in iframe"
1199
  msgstr ""
1200
 
1201
+ #: includes/functions.php:2170
1202
  msgid "Preview iframe code"
1203
  msgstr ""
1204
 
1205
+ #: includes/functions.php:2170 includes/preview.php:1964 settings.php:954
1206
+ #: settings.php:2540
1207
  msgid "Preview"
1208
  msgstr ""
1209
 
1210
+ #: includes/functions.php:2184 includes/functions.php:3826
1211
+ #: includes/functions.php:3889 settings.php:2014
1212
  msgid "Ad Blocking"
1213
  msgstr ""
1214
 
1215
  #. translators: 1, 2 and 3, 4: HTML tags
1216
+ #: includes/functions.php:2193
1217
  msgid ""
1218
  "%1$s WARNING: %2$s %3$s No wrapping %4$s style has no wrapping code needed "
1219
  "for tracking!"
1221
 
1222
  #. translators: 1, 2, 4, 5: HTML tags, 3: Scroll with the content, 6: Above
1223
  #. header
1224
+ #: includes/functions.php:2202
1225
  msgid ""
1226
  "%1$s WARNING: %2$s vertical position %3$s needs %4$s Output buffering %5$s "
1227
  "enabled and automatic insertion %6$s!"
1228
  msgstr ""
1229
 
1230
+ #: includes/functions.php:2220
1231
  msgid "When ad blocking is detected"
1232
  msgstr ""
1233
 
1234
+ #: includes/functions.php:2229
1235
  msgid "replacement"
1236
  msgstr ""
1237
 
1238
+ #: includes/functions.php:2230
1239
  msgid "Block to be shown when ad blocking is detected"
1240
  msgstr ""
1241
 
1242
+ #: includes/functions.php:2231
1243
  msgctxt "replacement"
1244
  msgid "None"
1245
  msgstr ""
1246
 
1247
+ #: includes/functions.php:2248
1248
  msgid "Close button"
1249
  msgstr ""
1250
 
1251
+ #: includes/functions.php:2295
1252
  msgid "Lazy loading"
1253
  msgstr ""
1254
 
1255
  #. Translators: %s MaxMind
1256
+ #: includes/functions.php:2349
1257
  msgid "This product includes GeoLite2 data created by %s"
1258
  msgstr ""
1259
 
1260
+ #: includes/functions.php:2360
1261
  msgid "IP geolocation database"
1262
  msgstr ""
1263
 
1264
+ #: includes/functions.php:2363
1265
  msgid "Select IP geolocation database."
1266
  msgstr ""
1267
 
1268
+ #: includes/functions.php:2374
1269
  msgid "Automatic database updates"
1270
  msgstr ""
1271
 
1272
+ #: includes/functions.php:2377
1273
  msgid ""
1274
  "Automatically download and update free GeoLite2 IP geolocation database by "
1275
  "MaxMind"
1276
  msgstr ""
1277
 
1278
+ #: includes/functions.php:2385
1279
  msgid "Database"
1280
  msgstr ""
1281
 
1282
+ #: includes/functions.php:2388
1283
  msgid ""
1284
  "Aabsolute path starting with '/' or relative path to the MaxMind database "
1285
  "file"
1286
  msgstr ""
1287
 
1288
  #. translators: %d: group number
1289
+ #: includes/functions.php:2406
1290
  msgid "Group %d"
1291
  msgstr ""
1292
 
1293
+ #: includes/functions.php:2412
1294
  msgid "countries"
1295
  msgstr ""
1296
 
1297
+ #: includes/functions.php:2457
1298
  msgid "Enable tracking"
1299
  msgstr ""
1300
 
1301
+ #: includes/functions.php:2472
1302
  msgid "Impression and Click Tracking"
1303
  msgstr ""
1304
 
1305
+ #: includes/functions.php:2488
1306
  msgid "Internal"
1307
  msgstr ""
1308
 
1309
+ #: includes/functions.php:2492
1310
  msgid "Track impressions and clicks with internal tracking and statistics"
1311
  msgstr ""
1312
 
1313
+ #: includes/functions.php:2497
1314
  msgid "External"
1315
  msgstr ""
1316
 
1317
+ #: includes/functions.php:2501
1318
  msgid ""
1319
  "Track impressions and clicks with Google Analytics or Matomo (needs tracking "
1320
  "code installed)"
1321
  msgstr ""
1322
 
1323
+ #: includes/functions.php:2506
1324
  msgid "Track Pageviews"
1325
  msgstr ""
1326
 
1327
+ #: includes/functions.php:2512
1328
  msgid "Track Pageviews by Device (as configured for viewports)"
1329
  msgstr ""
1330
 
1331
+ #: includes/functions.php:2522
1332
  msgid "Track for Logged in Users"
1333
  msgstr ""
1334
 
1335
+ #: includes/functions.php:2528
1336
  msgid "Track impressions and clicks from logged in users"
1337
  msgstr ""
1338
 
1339
+ #: includes/functions.php:2538
1340
  msgid "Click Detection"
1341
  msgstr ""
1342
 
1343
+ #: includes/functions.php:2544
1344
  msgid ""
1345
  "Standard method detects clicks only on banners with links, Advanced method "
1346
  "can detect clicks on any kind of ads, but it is slightly less accurate"
1347
  msgstr ""
1348
 
1349
+ #: includes/functions.php:2570
1350
  msgid "Report header image"
1351
  msgstr ""
1352
 
1353
+ #: includes/functions.php:2573
1354
  msgid ""
1355
  "Image or logo to be displayed in the header of the statistins report. "
1356
  "Aabsolute path starting with '/' or relative path to the image file."
1357
  msgstr ""
1358
 
1359
+ #: includes/functions.php:2574 strings.php:221
1360
  msgid "Select or upload header image"
1361
  msgstr ""
1362
 
1363
+ #: includes/functions.php:2579
1364
  msgid "Report header title"
1365
  msgstr ""
1366
 
1367
+ #: includes/functions.php:2582
1368
  msgid ""
1369
  "Title to be displayed in the header of the statistins report. Text or HTML "
1370
  "code."
1371
  msgstr ""
1372
 
1373
+ #: includes/functions.php:2587
1374
  msgid "Report header description"
1375
  msgstr ""
1376
 
1377
+ #: includes/functions.php:2590
1378
  msgid ""
1379
  "Description to be displayed in the header of the statistins report. Text or "
1380
  "HTML code."
1381
  msgstr ""
1382
 
1383
+ #: includes/functions.php:2622
1384
  msgid "Are you sure you want to clear all exceptions for block"
1385
  msgstr ""
1386
 
1387
+ #: includes/functions.php:2623 settings.php:1041
1388
  msgid "Clear all exceptions for block"
1389
  msgstr ""
1390
 
1391
+ #: includes/functions.php:2630
1392
  msgid "Are you sure you want to clear all exceptions?"
1393
  msgstr ""
1394
 
1395
+ #: includes/functions.php:2630
1396
  msgid "Clear all exceptions for all blocks"
1397
  msgstr ""
1398
 
1399
+ #: includes/functions.php:2635 settings.php:3378 settings.php:3716
1400
  msgid "Type"
1401
  msgstr ""
1402
 
1403
+ #: includes/functions.php:2653
1404
  msgid "View"
1405
  msgstr ""
1406
 
1407
+ #: includes/functions.php:2654 includes/placeholders.php:346
1408
  #: includes/preview.php:2271 settings.php:1180
1409
  msgid "Edit"
1410
  msgstr ""
1411
 
1412
+ #: includes/functions.php:2684
1413
  msgid "Are you sure you want to clear all exceptions for"
1414
  msgstr ""
1415
 
1416
+ #: includes/functions.php:2685
1417
  msgid "Clear all exceptions for"
1418
  msgstr ""
1419
 
1420
+ #: includes/functions.php:2698
1421
  msgid "No exceptions"
1422
  msgstr ""
1423
 
1424
  #. translators: %s: Ad Inserter Pro
1425
+ #: includes/functions.php:2709
1426
  msgid "%s options for network blogs"
1427
  msgstr ""
1428
 
1429
  #. translators: %s: Ad Inserter Pro
1430
+ #: includes/functions.php:2714
1431
  msgid "Enable %s widgets for sub-sites"
1432
  msgstr ""
1433
 
1434
+ #: includes/functions.php:2714
1435
  msgid "Widgets"
1436
  msgstr ""
1437
 
1438
+ #: includes/functions.php:2719
1439
  msgid "Enable PHP code processing for sub-sites"
1440
  msgstr ""
1441
 
1442
+ #: includes/functions.php:2719
1443
  msgid "PHP Processing"
1444
  msgstr ""
1445
 
1446
  #. translators: %s: Ad Inserter Pro
1447
+ #: includes/functions.php:2724
1448
  msgid "Enable %s block exceptions in post/page editor for sub-sites"
1449
  msgstr ""
1450
 
1451
+ #: includes/functions.php:2724
1452
  msgid "Post/Page exceptions"
1453
  msgstr ""
1454
 
1455
  #. translators: %s: Ad Inserter Pro
1456
+ #: includes/functions.php:2729
1457
  msgid "Enable %s settings page for sub-sites"
1458
  msgstr ""
1459
 
1460
+ #: includes/functions.php:2729
1461
  msgid "Settings page"
1462
  msgstr ""
1463
 
1464
  #. translators: %s: Ad Inserter Pro
1465
+ #: includes/functions.php:2734
1466
  msgid "Enable %s settings of main site to be used for all blogs"
1467
  msgstr ""
1468
 
1469
+ #: includes/functions.php:2734
1470
  msgid "Main site settings used for all blogs"
1471
  msgstr ""
1472
 
1473
+ #: includes/functions.php:2745 settings.php:2436
1474
  msgid "Ad Blocking Detection"
1475
  msgstr ""
1476
 
1477
+ #: includes/functions.php:2751
1478
  msgid ""
1479
  "Standard method is reliable but should be used only if Advanced method does "
1480
  "not work. Advanced method recreates files used for detection with random "
1482
  "publicly accessible"
1483
  msgstr ""
1484
 
1485
+ #: includes/functions.php:3371 includes/functions.php:3461
1486
+ #: includes/functions.php:3481
1487
  msgid "AD BLOCKING"
1488
  msgstr ""
1489
 
1490
+ #: includes/functions.php:3372 includes/functions.php:3412
1491
+ #: includes/functions.php:3455 includes/functions.php:3482
1492
  msgid "BLOCK INSERTED BUT NOT VISIBLE"
1493
  msgstr ""
1494
 
1495
+ #: includes/functions.php:3375 includes/functions.php:3454
1496
+ #: includes/functions.php:3488
1497
  msgid "NO AD BLOCKING"
1498
  msgstr ""
1499
 
1500
+ #: includes/functions.php:3411 includes/functions.php:3418
1501
  msgid "AD BLOCKING REPLACEMENT"
1502
  msgstr ""
1503
 
1504
+ #: includes/functions.php:3679 includes/functions.php:3888
1505
  msgid "Pageviews"
1506
  msgstr ""
1507
 
1508
+ #: includes/functions.php:3825
1509
  msgctxt "Version"
1510
  msgid "Unknown"
1511
  msgstr ""
1512
 
1513
+ #: includes/functions.php:3825
1514
  msgctxt "Times"
1515
  msgid "DISPLAYED"
1516
  msgstr ""
1517
 
1518
+ #: includes/functions.php:3825
1519
  msgid "No version"
1520
  msgstr ""
1521
 
1522
+ #: includes/functions.php:3826
1523
  msgctxt "Times"
1524
  msgid "BLOCKED"
1525
  msgstr ""
1526
 
1527
+ #: includes/functions.php:3888
1528
  msgid "Impressions"
1529
  msgstr ""
1530
 
1531
+ #: includes/functions.php:3889 includes/functions.php:3890
1532
+ #: includes/functions.php:3920
1533
  msgid "Clicks"
1534
  msgstr ""
1535
 
1536
+ #: includes/functions.php:3890
1537
  msgid "events"
1538
  msgstr ""
1539
 
1540
+ #: includes/functions.php:3891
1541
  msgid "Ad Blocking Share"
1542
  msgstr ""
1543
 
1544
  #. translators: CTR as Click Through Rate
1545
+ #: includes/functions.php:3891 includes/functions.php:3926
1546
  msgid "CTR"
1547
  msgstr ""
1548
 
1549
+ #: includes/functions.php:4008
1550
  msgid "pageviews"
1551
  msgid_plural "pageviews"
1552
  msgstr[0] ""
1553
  msgstr[1] ""
1554
 
1555
+ #: includes/functions.php:4008
1556
  msgid "impressions"
1557
  msgid_plural "impressions"
1558
  msgstr[0] ""
1559
  msgstr[1] ""
1560
 
1561
+ #: includes/functions.php:4012
1562
  msgid "event"
1563
  msgid_plural "events"
1564
  msgstr[0] ""
1565
  msgstr[1] ""
1566
 
1567
+ #: includes/functions.php:4012
1568
  msgid "click"
1569
  msgid_plural "clicks"
1570
  msgstr[0] ""
1571
  msgstr[1] ""
1572
 
1573
+ #: includes/functions.php:4107
1574
  msgctxt "Pageviews / Impressions"
1575
  msgid "Average"
1576
  msgstr ""
1577
 
1578
+ #: includes/functions.php:4128
1579
  msgctxt "Ad Blocking / Clicks"
1580
  msgid "Average"
1581
  msgstr ""
1582
 
1583
+ #: includes/functions.php:4152
1584
  msgctxt "Ad Blocking Share / CTR"
1585
  msgid "Average"
1586
  msgstr ""
1587
 
1588
  #. Translators: %s: Ad Inserter Pro
1589
+ #: includes/functions.php:4204
1590
  msgid "%s Report"
1591
  msgstr ""
1592
 
1593
+ #: includes/functions.php:4282
1594
  msgid "Advanced WordPress Ad Management Plugin"
1595
  msgstr ""
1596
 
1618
  msgid "Placeholder"
1619
  msgstr ""
1620
 
1621
+ #: includes/placeholders.php:356 settings.php:808 settings.php:3717
1622
  msgid "Size"
1623
  msgstr ""
1624
 
1726
  msgid "Ad Blocking Detected Message Preview"
1727
  msgstr ""
1728
 
1729
+ #: includes/preview-adb.php:348 settings.php:2553
1730
  msgid "Message CSS"
1731
  msgstr ""
1732
 
1733
+ #: includes/preview-adb.php:353 settings.php:2561
1734
  msgid "Overlay CSS"
1735
  msgstr ""
1736
 
1771
  msgstr ""
1772
 
1773
  #: includes/preview.php:2075 includes/preview.php:2226 settings.php:1141
1774
+ #: settings.php:3643
1775
  msgid "Alignment"
1776
  msgstr ""
1777
 
1977
  msgid "General Settings"
1978
  msgstr ""
1979
 
1980
+ #: settings.php:592 settings.php:2312 settings.php:2370 settings.php:2533
1981
  msgid "Toggle Syntax Highlighting / Simple editor for mobile devices"
1982
  msgstr ""
1983
 
2005
  msgid "Open visual HTML editor"
2006
  msgstr ""
2007
 
2008
+ #: settings.php:644 settings.php:1977
2009
  msgid "Show AdSense ad units"
2010
  msgstr ""
2011
 
2013
  msgid "Clear block"
2014
  msgstr ""
2015
 
2016
+ #: settings.php:658 settings.php:3611
2017
  msgid "Copy block"
2018
  msgstr ""
2019
 
2177
  "editor. Leave blank for no individual post exceptions."
2178
  msgstr ""
2179
 
2180
+ #: settings.php:978 settings.php:3037
2181
  msgid "Posts"
2182
  msgstr ""
2183
 
2188
  "theme)"
2189
  msgstr ""
2190
 
2191
+ #: settings.php:983 settings.php:3039
2192
  msgid "Homepage"
2193
  msgstr ""
2194
 
2196
  msgid "Enable insertion on category blog pages (including sub-pages)"
2197
  msgstr ""
2198
 
2199
+ #: settings.php:988 settings.php:3040
2200
  msgid "Category pages"
2201
  msgstr ""
2202
 
2214
  "page editor. Leave blank for no individual page exceptions."
2215
  msgstr ""
2216
 
2217
+ #: settings.php:1006 settings.php:3038
2218
  msgid "Static pages"
2219
  msgstr ""
2220
 
2222
  msgid "Enable insertion on search blog pages"
2223
  msgstr ""
2224
 
2225
+ #: settings.php:1011 settings.php:3042
2226
  msgid "Search pages"
2227
  msgstr ""
2228
 
2323
  msgid "HTML element selector or comma separated list of selectors"
2324
  msgstr ""
2325
 
2326
+ #: settings.php:1209 settings.php:2446
2327
  msgid "Action"
2328
  msgstr ""
2329
 
2590
  msgid "Enable shortcode for manual insertion of this block in posts and pages"
2591
  msgstr ""
2592
 
2593
+ #: settings.php:1636 settings.php:3645
2594
  msgid "Shortcode"
2595
  msgstr ""
2596
 
2650
  msgid "Display"
2651
  msgstr ""
2652
 
2653
+ #: settings.php:1760 settings.php:2007
2654
  msgid "General"
2655
  msgstr ""
2656
 
2711
  "tab General)"
2712
  msgstr ""
2713
 
2714
+ #: settings.php:1805 settings.php:2176
2715
  msgid "Max blocks per page"
2716
  msgstr ""
2717
 
2783
  msgid "Not available"
2784
  msgstr ""
2785
 
2786
+ #: settings.php:1908 settings.php:2168
2787
  msgid "Ad label"
2788
  msgstr ""
2789
 
2810
  msgid "Settings timestamp"
2811
  msgstr ""
2812
 
2813
+ #: settings.php:1968
2814
  msgid "Are you sure you want to reset all settings?"
2815
  msgstr ""
2816
 
2817
+ #: settings.php:1968
2818
  msgid "Reset All Settings"
2819
  msgstr ""
2820
 
2821
+ #: settings.php:1984
2822
+ msgid "Edit ads.txt file"
2823
+ msgstr ""
2824
+
2825
+ #: settings.php:2008
2826
  msgid "Viewports"
2827
  msgstr ""
2828
 
2829
+ #: settings.php:2009
2830
  msgid "Hooks"
2831
  msgstr ""
2832
 
2833
+ #: settings.php:2010
2834
  msgid "Header"
2835
  msgstr ""
2836
 
2837
+ #: settings.php:2011 strings.php:30
2838
  msgid "Footer"
2839
  msgstr ""
2840
 
2841
+ #: settings.php:2016
2842
  msgid "Debugging"
2843
  msgstr ""
2844
 
2845
+ #: settings.php:2026
2846
  msgid "Plugin priority"
2847
  msgstr ""
2848
 
2849
+ #: settings.php:2034
2850
  msgid "Output buffering"
2851
  msgstr ""
2852
 
2853
+ #: settings.php:2037
2854
  msgid "Needed for position Above header but may not work with all themes"
2855
  msgstr ""
2856
 
2857
+ #: settings.php:2045
2858
  msgid "Syntax highlighting theme"
2859
  msgstr ""
2860
 
2861
+ #: settings.php:2052
2862
  msgctxt "no syntax highlighting themes"
2863
  msgid "None"
2864
  msgstr ""
2865
 
2866
+ #: settings.php:2053
2867
  msgid "No Syntax Highlighting"
2868
  msgstr ""
2869
 
2870
+ #: settings.php:2055
2871
  msgctxt "syntax highlighting themes"
2872
  msgid "Light"
2873
  msgstr ""
2874
 
2875
+ #: settings.php:2070
2876
  msgctxt "syntax highlighting themes"
2877
  msgid "Dark"
2878
  msgstr ""
2879
 
2880
+ #: settings.php:2096
2881
  msgid "Min. user role for ind. exceptions editing"
2882
  msgstr ""
2883
 
2884
+ #: settings.php:2106
2885
+ msgid "Disable caching for logged in administrators"
2886
+ msgstr ""
2887
+
2888
+ #: settings.php:2109
2889
+ msgid ""
2890
+ "Enabled means that logged in administrators will see non-cached (live) pages "
2891
+ "(applies to WP Super Cache, W3 Total Cache and WP Rocket plugins)"
2892
+ msgstr ""
2893
+
2894
+ #: settings.php:2117
2895
  msgid "Sticky widget mode"
2896
  msgstr ""
2897
 
2898
+ #: settings.php:2120
2899
  msgid ""
2900
  "CSS mode is the best approach but may not work with all themes. JavaScript "
2901
  "mode works with most themes but may reload ads on page load."
2902
  msgstr ""
2903
 
2904
+ #: settings.php:2128
2905
  msgid "Sticky widget top margin"
2906
  msgstr ""
2907
 
2908
+ #: settings.php:2136
2909
  msgid "Dynamic blocks"
2910
  msgstr ""
2911
 
2912
+ #: settings.php:2149
2913
  msgid "Functions for paragraph counting"
2914
  msgstr ""
2915
 
2916
+ #: settings.php:2152
2917
  msgid ""
2918
  "Standard PHP functions are faster and work in most cases, use Multibyte "
2919
  "functions if paragraphs are not counted properly on non-english pages."
2920
  msgstr ""
2921
 
2922
+ #: settings.php:2160
2923
  msgid "No paragraph counting inside"
2924
  msgstr ""
2925
 
2926
+ #: settings.php:2171
2927
  msgid "Label text or HTML code"
2928
  msgstr ""
2929
 
2930
+ #: settings.php:2179
2931
  msgid ""
2932
  "Maximum number of inserted blocks per page. You need to enable Max page "
2933
  "insertions (button Misc / tab Insertion) to count block for this limit."
2934
  msgstr ""
2935
 
2936
+ #: settings.php:2193
2937
  msgid "Plugin usage tracking"
2938
  msgstr ""
2939
 
2940
  #. translators: %s: Ad Inserter
2941
+ #: settings.php:2196
2942
  msgid ""
2943
  "Enable tracking of %s usage and help us to make improvements to the plugin. "
2944
  "Only information regarding the WordPress environment and %s usage is "
2945
  "recorded (once per month and on events like plugin activation/deactivation)."
2946
  msgstr ""
2947
 
2948
+ #: settings.php:2214
2949
  msgid "CSS class name for the wrapping div"
2950
  msgstr ""
2951
 
2952
+ #: settings.php:2214
2953
  msgid "Block class name"
2954
  msgstr ""
2955
 
2956
+ #: settings.php:2218
2957
  msgid "Include general plugin block class"
2958
  msgstr ""
2959
 
2960
+ #: settings.php:2218
2961
  msgid "Block class"
2962
  msgstr ""
2963
 
2964
+ #: settings.php:2223
2965
  msgid "Include block number class"
2966
  msgstr ""
2967
 
2968
+ #: settings.php:2223
2969
  msgid "Block number class"
2970
  msgstr ""
2971
 
2972
+ #: settings.php:2228
2973
  msgid ""
2974
  "Instead of alignment classes generate inline alignment styles for blocks"
2975
  msgstr ""
2976
 
2977
+ #: settings.php:2228
2978
  msgid "Inline styles"
2979
  msgstr ""
2980
 
2981
+ #: settings.php:2234
2982
  msgid "Preview of the block wrapping code"
2983
  msgstr ""
2984
 
2985
+ #: settings.php:2235
2986
  msgid "Wrapping div"
2987
  msgstr ""
2988
 
2989
+ #: settings.php:2236 settings.php:2636
2990
  msgid "BLOCK CODE"
2991
  msgstr ""
2992
 
2993
+ #: settings.php:2244
2994
  msgid "Viewport Settings used for client-side device detection"
2995
  msgstr ""
2996
 
2997
  #. Translators: %d: viewport number
2998
+ #: settings.php:2252
2999
  msgid "Viewport %d name"
3000
  msgstr ""
3001
 
3002
+ #: settings.php:2255
3003
  msgid "min width"
3004
  msgstr ""
3005
 
3006
+ #: settings.php:2266
3007
  msgid "Custom Hooks"
3008
  msgstr ""
3009
 
3010
+ #: settings.php:2278 settings.php:2281
3011
  msgid "Enable hook"
3012
  msgstr ""
3013
 
3014
  #. translators: %d: hook number
3015
+ #: settings.php:2281
3016
  msgid "Hook %d name"
3017
  msgstr ""
3018
 
3019
+ #: settings.php:2284
3020
  msgid "Hook name for automatic insertion selection"
3021
  msgstr ""
3022
 
3023
+ #: settings.php:2287
3024
  msgid "action"
3025
  msgstr ""
3026
 
3027
+ #: settings.php:2290
3028
  msgid "Action name as used in the do_action () function"
3029
  msgstr ""
3030
 
3031
+ #: settings.php:2293
3032
  msgid "priority"
3033
  msgstr ""
3034
 
3035
+ #: settings.php:2296
3036
  msgid "Priority for the hook (default is 10)"
3037
  msgstr ""
3038
 
3039
+ #: settings.php:2317
3040
  msgid "Enable insertion of this code into HTML page header"
3041
  msgstr ""
3042
 
3043
+ #: settings.php:2321 settings.php:2379 settings.php:2538
3044
  msgid "Process PHP code"
3045
  msgstr ""
3046
 
3047
+ #: settings.php:2325
3048
  msgid "HTML Page Header Code"
3049
  msgstr ""
3050
 
3051
+ #: settings.php:2333
3052
  msgid "Code in the %s section of the HTML page"
3053
  msgstr ""
3054
 
3055
+ #: settings.php:2334 settings.php:2392
3056
  msgctxt "code in header or footer"
3057
  msgid "DISABLED"
3058
  msgstr ""
3059
 
3060
+ #: settings.php:2347 settings.php:2405
3061
  msgid "Use server-side detection to insert code only for"
3062
  msgstr ""
3063
 
3064
+ #: settings.php:2360
3065
  msgid ""
3066
  "Enable insertion of this code into HTML page header on page for Error 404: "
3067
  "Page not found"
3068
  msgstr ""
3069
 
3070
+ #: settings.php:2360 settings.php:2418
3071
  msgid "Insert on Error 404 page"
3072
  msgstr ""
3073
 
3074
+ #: settings.php:2375
3075
  msgid "Enable insertion of this code into HTML page footer"
3076
  msgstr ""
3077
 
3078
+ #: settings.php:2383
3079
  msgid "HTML Page Footer Code"
3080
  msgstr ""
3081
 
3082
  #. translators: %s: HTML tags
3083
+ #: settings.php:2391
3084
  msgid "Code before the %s tag of the the HTML page"
3085
  msgstr ""
3086
 
3087
+ #: settings.php:2418
3088
  msgid ""
3089
  "Enable insertion of this code into HTML page footer on page for Error 404: "
3090
  "Page not found"
3091
  msgstr ""
3092
 
3093
+ #: settings.php:2432
3094
  msgid "Enable detection of ad blocking"
3095
  msgstr ""
3096
 
3097
+ #: settings.php:2449
3098
  msgid "Global action when ad blocking is detected"
3099
  msgstr ""
3100
 
3101
+ #: settings.php:2458
3102
  msgid "Delay Action"
3103
  msgstr ""
3104
 
3105
+ #: settings.php:2461
3106
  msgid ""
3107
  "Number of page views to delay action when ad blocking is detected. Leave "
3108
  "empty for no delay (action fires on first page view). Sets cookie."
3109
  msgstr ""
3110
 
3111
+ #: settings.php:2461
3112
  msgctxt "Delay Action for x "
3113
  msgid "page views"
3114
  msgstr ""
3115
 
3116
+ #: settings.php:2466
3117
  msgid "No Action Period"
3118
  msgstr ""
3119
 
3120
+ #: settings.php:2469
3121
  msgid ""
3122
  "Number of days to supress action when ad blocking is detected. Leave empty "
3123
  "for no no-action period (action fires always after defined page view delay). "
3124
  "Sets cookie."
3125
  msgstr ""
3126
 
3127
+ #: settings.php:2469
3128
  msgctxt "no action period"
3129
  msgid "days"
3130
  msgstr ""
3131
 
3132
+ #: settings.php:2474
3133
  msgid "Custom Selectors"
3134
  msgstr ""
3135
 
3136
+ #: settings.php:2477
3137
  msgid ""
3138
  "Comma seprarated list of selectors (.class, #id) used for additional ad "
3139
  "blocking detection. Invisible element or element with zero height means ad "
3140
  "blocking is present."
3141
  msgstr ""
3142
 
3143
+ #: settings.php:2489
3144
  msgid "Redirection Page"
3145
  msgstr ""
3146
 
3147
+ #: settings.php:2501
3148
  msgid "Custom Url"
3149
  msgstr ""
3150
 
3151
+ #: settings.php:2506
3152
  msgid ""
3153
  "Static page for redirection when ad blocking is detected. For other pages "
3154
  "select Custom url and set it below."
3155
  msgstr ""
3156
 
3157
+ #: settings.php:2515
3158
  msgid "Custom Redirection Url"
3159
  msgstr ""
3160
 
3161
+ #: settings.php:2527
3162
  msgid "Message HTML code"
3163
  msgstr ""
3164
 
3165
+ #: settings.php:2540
3166
  msgid "Preview message when ad blocking is detected"
3167
  msgstr ""
3168
 
3169
+ #: settings.php:2569
3170
  msgid "Prevent visitors from closing the warning message"
3171
  msgstr ""
3172
 
3173
+ #: settings.php:2569
3174
  msgid "Undismissible Message"
3175
  msgstr ""
3176
 
3177
+ #: settings.php:2582
3178
  msgid ""
3179
  "Force showing admin toolbar for administrators when viewing site. Enable "
3180
  "this option when you are logged in as admin and you don't see admin toolbar."
3181
  msgstr ""
3182
 
3183
+ #: settings.php:2590
3184
  msgid "Disable header code (Header tab)"
3185
  msgstr ""
3186
 
3187
+ #: settings.php:2594
3188
  msgid "Disable footer code (Footer tab)"
3189
  msgstr ""
3190
 
3191
  #. translators: %s: Ad Inserter
3192
+ #: settings.php:2598
3193
  msgid "Disable %s JavaScript code"
3194
  msgstr ""
3195
 
3196
  #. translators: %s: Ad Inserter
3197
+ #: settings.php:2602
3198
  msgid "Disable %s CSS code"
3199
  msgstr ""
3200
 
3201
+ #: settings.php:2606
3202
  msgid ""
3203
  "Disable PHP code processing (in all blocks including header and footer code)"
3204
  msgstr ""
3205
 
3206
+ #: settings.php:2610
3207
  msgid "Disable insertion of all blocks"
3208
  msgstr ""
3209
 
3210
+ #: settings.php:2614
3211
  msgid "Disable insertions"
3212
  msgstr ""
3213
 
3214
  #. translators: %s: Ad Inserter
3215
+ #: settings.php:2626
3216
  msgid "%s CSS CODE"
3217
  msgstr ""
3218
 
3219
+ #: settings.php:2629
3220
  msgid "HEADER CODE"
3221
  msgstr ""
3222
 
3223
  #. translators: %s: PHP tags
3224
+ #: settings.php:2635
3225
  msgid "BLOCK PHP CODE"
3226
  msgstr ""
3227
 
3228
  #. translators: %s: Ad Inserter
3229
+ #: settings.php:2641
3230
  msgid "%s JS CODE"
3231
  msgstr ""
3232
 
3233
+ #: settings.php:2644
3234
  msgid "FOOTER CODE"
3235
  msgstr ""
3236
 
3237
+ #: settings.php:2653
3238
  msgid "Force showing admin toolbar when viewing site"
3239
  msgstr ""
3240
 
3241
+ #: settings.php:2660
3242
  msgid "Enable debugging functions in admin toolbar"
3243
  msgstr ""
3244
 
3245
+ #: settings.php:2662
3246
  msgid "Debugging functions in admin toolbar"
3247
  msgstr ""
3248
 
3249
+ #: settings.php:2669
3250
  msgid "Enable debugging functions in admin toolbar on mobile screens"
3251
  msgstr ""
3252
 
3253
+ #: settings.php:2671
3254
  msgid "Debugging functions on mobile screens"
3255
  msgstr ""
3256
 
3257
+ #: settings.php:2678
3258
  msgid ""
3259
  "Enable Debugger widget and code insertion debugging (blocks, positions, "
3260
  "tags, processing) by url parameters for non-logged in users. Enable this "
3263
  "administrators debugging is always enabled."
3264
  msgstr ""
3265
 
3266
+ #: settings.php:2680
3267
  msgid "Remote debugging"
3268
  msgstr ""
3269
 
3270
+ #: settings.php:2687
3271
  msgid ""
3272
  "Disable translation to see original texts for the settings and messages in "
3273
  "English"
3274
  msgstr ""
3275
 
3276
+ #: settings.php:2689
3277
  msgid "Disable translation"
3278
  msgstr ""
3279
 
3280
+ #: settings.php:3025
3281
  msgid "Available positions for current theme"
3282
  msgstr ""
3283
 
3284
+ #: settings.php:3026
3285
  msgid "Error checking pages"
3286
  msgstr ""
3287
 
3288
+ #: settings.php:3029
3289
  msgid "Toggle theme checker for available positions for automatic insertion"
3290
  msgstr ""
3291
 
3292
+ #: settings.php:3029
3293
  msgctxt "Button"
3294
  msgid "Check"
3295
  msgstr ""
3296
 
3297
+ #: settings.php:3036
3298
  msgid "Position"
3299
  msgstr ""
3300
 
3301
+ #: settings.php:3041
3302
  msgid "Archive pages"
3303
  msgstr ""
3304
 
3305
+ #: settings.php:3100
3306
  msgid ""
3307
  "Position not available because output buffering (tab [*]) is not enabled"
3308
  msgstr ""
3309
 
3310
+ #: settings.php:3103 strings.php:217
3311
  msgid "Position not checked yet"
3312
  msgstr ""
3313
 
3314
+ #: settings.php:3134
3315
  msgid "Toggle active/all blocks"
3316
  msgstr ""
3317
 
3318
+ #: settings.php:3138 strings.php:204
3319
  msgid "Rearrange block order"
3320
  msgstr ""
3321
 
3322
+ #: settings.php:3143
3323
  msgid "Save new block order"
3324
  msgstr ""
3325
 
3326
+ #: settings.php:3143
3327
  msgid "Save Changes"
3328
  msgstr ""
3329
 
3330
+ #: settings.php:3168
3331
  msgid "Toggle active/all ad units"
3332
  msgstr ""
3333
 
3334
+ #: settings.php:3172
3335
  msgid "Reload AdSense ad units"
3336
  msgstr ""
3337
 
3338
+ #: settings.php:3176
3339
  msgid "Clear authorization to access AdSense account"
3340
  msgstr ""
3341
 
3342
+ #: settings.php:3180 settings.php:3802 settings.php:3869 strings.php:212
3343
  msgid "Google AdSense Homepage"
3344
  msgstr ""
3345
 
3346
+ #: settings.php:3203
3347
+ msgid "Reload ads.txt file"
3348
+ msgstr ""
3349
+
3350
+ #. translators: %s: ads.txt
3351
+ #: settings.php:3207
3352
+ msgid "Open %s"
3353
+ msgstr ""
3354
+
3355
+ #: settings.php:3211
3356
+ msgid "Switch to table view"
3357
+ msgstr ""
3358
+
3359
+ #: settings.php:3215
3360
+ msgid "Switch to editor"
3361
+ msgstr ""
3362
+
3363
+ #: settings.php:3219
3364
+ msgid "Save ads.txt file"
3365
+ msgstr ""
3366
+
3367
+ #: settings.php:3350 strings.php:197
3368
+ msgid "Warning"
3369
+ msgstr ""
3370
+
3371
+ #: settings.php:3350
3372
+ msgid "ads.txt file must be placed on the root domain"
3373
+ msgstr ""
3374
+
3375
+ #. translators: %s: file path
3376
+ #: settings.php:3351
3377
+ msgid "WordPress is installed in %s"
3378
+ msgstr ""
3379
+
3380
+ #: settings.php:3352
3381
+ msgid "Showing file"
3382
+ msgstr ""
3383
+
3384
+ #: settings.php:3359
3385
+ msgid "Account IDs found in blocks but not present in the ads.txt file"
3386
+ msgstr ""
3387
+
3388
+ #: settings.php:3376
3389
+ msgid "Advertising system"
3390
+ msgstr ""
3391
+
3392
+ #: settings.php:3377
3393
+ msgid "Account ID"
3394
+ msgstr ""
3395
+
3396
+ #: settings.php:3379
3397
+ msgid "Certification authority ID"
3398
+ msgstr ""
3399
+
3400
+ #: settings.php:3394
3401
+ msgid "Account ID found in block and present in ads.txt"
3402
+ msgstr ""
3403
+
3404
+ #: settings.php:3398
3405
+ msgid "Account ID found in block but not present in ads.txt"
3406
+ msgstr ""
3407
+
3408
+ #: settings.php:3614
3409
  msgid "Preview block"
3410
  msgstr ""
3411
 
3412
+ #: settings.php:3623
3413
  msgid "Insertion disabled"
3414
  msgstr ""
3415
 
3416
+ #: settings.php:3647
3417
  msgid "Widget positions"
3418
  msgstr ""
3419
 
3420
+ #: settings.php:3713
3421
  msgid "Ad unit"
3422
  msgstr ""
3423
 
3424
+ #: settings.php:3715
3425
  msgid "Slot ID"
3426
  msgstr ""
3427
 
3428
+ #: settings.php:3741
3429
  msgid "Copy AdSense code"
3430
  msgstr ""
3431
 
3432
+ #: settings.php:3744
3433
  msgid "Preview AdSense ad"
3434
  msgstr ""
3435
 
3436
+ #: settings.php:3747
3437
  msgid "Get AdSense code"
3438
  msgstr ""
3439
 
3440
  #. translators: %s: HTML tags
3441
+ #: settings.php:3779
3442
  msgid ""
3443
  "Please %s clear authorization %s with the button %s above and once again "
3444
  "authorize access to your AdSense account."
3445
  msgstr ""
3446
 
3447
+ #: settings.php:3798
3448
  msgid "AdSense Integration"
3449
  msgstr ""
3450
 
3451
+ #: settings.php:3800
3452
  msgid "AdSense Integration - Step 2"
3453
  msgstr ""
3454
 
3455
  #. translators: %s: HTML tags
3456
+ #: settings.php:3806
3457
  msgid ""
3458
  "Authorize %s to access your AdSense account. Click on the %s Get "
3459
  "Authorization Code %s button to open a new window where you can allow "
3462
  msgstr ""
3463
 
3464
  #. translators: %s: HTML tags
3465
+ #: settings.php:3813
3466
  msgid ""
3467
  "If you get error, can't access ad units or would like to use own Google API "
3468
  "IDs click on the button %s Use own API IDs %s to enter Client ID and Client "
3470
  msgstr ""
3471
 
3472
  #. translators: %s: HTML tags
3473
+ #: settings.php:3815
3474
  msgid ""
3475
  "Now you can authorize %s to access your AdSense account. Click on the %s Get "
3476
  "Authorization Code %s button to open a new window where you can allow "
3479
  msgstr ""
3480
 
3481
  #. translators: %s: HTML tags
3482
+ #: settings.php:3822
3483
  msgid ""
3484
  "If you get error %s invalid client %s click on the button %s Clear and "
3485
  "return to Step 1 %s to re-enter Client ID and Client Secret."
3486
  msgstr ""
3487
 
3488
+ #: settings.php:3833
3489
  msgid "Get Authorization Code"
3490
  msgstr ""
3491
 
3492
+ #: settings.php:3836
3493
  msgid "Enter Authorization Code"
3494
  msgstr ""
3495
 
3496
+ #: settings.php:3846
3497
  msgid "Use own API IDs"
3498
  msgstr ""
3499
 
3500
+ #: settings.php:3848
3501
  msgid "Clear and return to Step 1"
3502
  msgstr ""
3503
 
3504
+ #: settings.php:3852
3505
  msgid "Authorize"
3506
  msgstr ""
3507
 
3508
+ #: settings.php:3868
3509
  msgid "AdSense Integration - Step 1"
3510
  msgstr ""
3511
 
3512
  #. translators: %s: Ad Inserter
3513
+ #: settings.php:3872
3514
  msgid ""
3515
  "Here can %s list configured AdSense ad units and get code for AdSense ads. "
3516
  "To do this you need to authorize %s to access your AdSense account. The "
3519
  msgstr ""
3520
 
3521
  #. translators: %s: HTML tags
3522
+ #: settings.php:3881
3523
  msgid "Go to %s Google APIs and Services console %s"
3524
  msgstr ""
3525
 
3526
  #. translators: %1: Ad Inserter, 2, 3: HTML tags
3527
+ #: settings.php:3882
3528
  msgid ""
3529
  "Create %1$s project - if the project and IDs are already created click on "
3530
  "the %2$s Credentials %3$s in the sidebar and go to step 16"
3531
  msgstr ""
3532
 
3533
  #. translators: %s: HTML tags
3534
+ #: settings.php:3883
3535
  msgid ""
3536
  "Click on project selection and then click on the %s NEW PROJECT %s button to "
3537
  "create a new project"
3538
  msgstr ""
3539
 
3540
  #. translators: 1: Ad Inserter, 2, 3: HTML tags
3541
+ #: settings.php:3884
3542
  msgid "Enter %1$s for project name and click on the %2$s Create %3$s button"
3543
  msgstr ""
3544
 
3545
  #. translators: %s: HTML tags
3546
+ #: settings.php:3885
3547
  msgid ""
3548
  "Click on project selection, wait for the project to be created and then and "
3549
  "select %s as the current project"
3550
  msgstr ""
3551
 
3552
  #. translators: %s: HTML tags
3553
+ #: settings.php:3886
3554
  msgid "Click on %s ENABLE APIS AND SERVICES %s"
3555
  msgstr ""
3556
 
3557
  #. translators: %s: HTML tags
3558
+ #: settings.php:3887
3559
  msgid "Search for adsense and enable %s"
3560
  msgstr ""
3561
 
3562
  #. translators: %s: HTML tags
3563
+ #: settings.php:3888
3564
  msgid "Click on %s CREATE CREDENTIALS %s"
3565
  msgstr ""
3566
 
3567
  #. translators: %s: HTML tags
3568
+ #: settings.php:3889
3569
  msgid "For %s Where will you be calling the API from? %s select %s Other UI %s"
3570
  msgstr ""
3571
 
3572
  #. translators: %s: HTML tags
3573
+ #: settings.php:3890
3574
  msgid "For %s What data will you be accessing? %s select %s User data %s"
3575
  msgstr ""
3576
 
3577
  #. translators: %s: HTML tags
3578
+ #: settings.php:3891
3579
  msgid "Click on %s What credentials do I need? %s"
3580
  msgstr ""
3581
 
3582
  #. translators: %s: HTML tags
3583
+ #: settings.php:3892
3584
  msgid ""
3585
  "Create an OAuth 2.0 client ID: For %s OAuth 2.0 client ID %s name enter %s "
3586
  "Ad Inserter client %s"
3587
  msgstr ""
3588
 
3589
  #. translators: %s: HTML tags
3590
+ #: settings.php:3893
3591
  msgid ""
3592
  "Set up the OAuth 2.0 consent screen: For %s Product name shown to users %s "
3593
  "enter %s"
3594
  msgstr ""
3595
 
3596
  #. translators: %s: HTML tags
3597
+ #: settings.php:3894
3598
  msgid "Click on %s Continue %s"
3599
  msgstr ""
3600
 
3601
  #. translators: %s: HTML tags
3602
+ #: settings.php:3895
3603
  msgid "Click on %s Done %s"
3604
  msgstr ""
3605
 
3606
  #. translators: %s: HTML tags
3607
+ #: settings.php:3896
3608
  msgid ""
3609
  "Click on %s Ad Inserter client %s to get %s Client ID %s and %s Client "
3610
  "secret %s"
3611
  msgstr ""
3612
 
3613
+ #: settings.php:3897
3614
  msgid "Copy them to the appropriate fields below"
3615
  msgstr ""
3616
 
3617
+ #: settings.php:3903
3618
  msgid "Client ID"
3619
  msgstr ""
3620
 
3621
+ #: settings.php:3906
3622
  msgid "Enter Client ID"
3623
  msgstr ""
3624
 
3625
+ #: settings.php:3911
3626
  msgid "Client secret"
3627
  msgstr ""
3628
 
3629
+ #: settings.php:3914
3630
  msgid "Enter Client secret"
3631
  msgstr ""
3632
 
3633
+ #: settings.php:3924
3634
  msgid "Use default API IDs"
3635
  msgstr ""
3636
 
3637
+ #: settings.php:3929
3638
  msgid "Save"
3639
  msgstr ""
3640
 
3641
+ #: settings.php:4205 settings.php:4218 settings.php:4231 settings.php:4246
3642
  msgid "Blank ad blocks? Looking for AdSense alternative?"
3643
  msgstr ""
3644
 
3645
+ #: settings.php:4210 settings.php:4223 settings.php:4236 settings.php:4251
3646
+ #: settings.php:4420 settings.php:4424 settings.php:4426 settings.php:4442
3647
+ #: settings.php:4453 settings.php:4456 settings.php:4462 settings.php:4474
3648
  msgid "Looking for AdSense alternative?"
3649
  msgstr ""
3650
 
3651
+ #: settings.php:4262
3652
  msgid "Try Infolinks Ads with Adsense or Media.net ads"
3653
  msgstr ""
3654
 
3655
+ #: settings.php:4267 settings.php:4422 settings.php:4434 settings.php:4459
3656
+ #: settings.php:4482
3657
  msgid "Use Infolinks ads with Adsense to earn more"
3658
  msgstr ""
3659
 
3660
+ #: settings.php:4286 settings.php:4324
3661
  msgid "Support plugin development"
3662
  msgstr ""
3663
 
3664
+ #: settings.php:4287 settings.php:4325
3665
  msgid ""
3666
  "If you like Ad Inserter and have a moment, please help me spread the word by "
3667
  "reviewing the plugin on WordPres"
3668
  msgstr ""
3669
 
3670
+ #: settings.php:4287
3671
  msgctxt "Review ad Inserter"
3672
  msgid "Review"
3673
  msgstr ""
3674
 
3675
+ #: settings.php:4288
3676
  msgid ""
3677
  "Support free Ad Inserter development. If you are making money with Ad "
3678
  "Inserter consider donating some small amount. Even 1 dollar counts. Thank "
3679
  "you!"
3680
  msgstr ""
3681
 
3682
+ #: settings.php:4288
3683
  msgid "Donate"
3684
  msgstr ""
3685
 
3686
+ #: settings.php:4295 settings.php:4340
3687
  msgid "Average rating of the plugin - Thank you!"
3688
  msgstr ""
3689
 
3690
  #. translators: %s: Ad Inserter, HTML tags
3691
+ #: settings.php:4306
3692
  msgid ""
3693
  "You've been using %s for a while now, and I hope you're happy with it. "
3694
  "Positive %s reviews %s are a great way to show your appreciation for my "
3697
  "your website. %s Thank you!"
3698
  msgstr ""
3699
 
3700
+ #: settings.php:4325
3701
  msgid "Review"
3702
  msgstr ""
3703
 
3704
+ #: settings.php:4329
3705
  msgid "Ad Inserter on Twitter"
3706
  msgstr ""
3707
 
3708
+ #: settings.php:4330
3709
  msgid "Ad Inserter on Facebook"
3710
  msgstr ""
3711
 
3712
+ #: settings.php:4333
3713
  msgid "Follow Ad Inserter"
3714
  msgstr ""
3715
 
3716
  #. translators: %s: HTML tags
3717
+ #: settings.php:4360
3718
  msgid ""
3719
  "Need help with %s settings? %s Check %s Quick Start, %s %s Code Editing %s "
3720
  "and %s Common Settings %s pages"
3721
  msgstr ""
3722
 
3723
  #. translators: %s: HTML tags
3724
+ #: settings.php:4372
3725
  msgid ""
3726
  "%s New to %s AdSense? %s %s %s Connect your site %s - Advanced %s AdSense "
3727
  "code: %s %s In-feed ads, %s %s Auto ads, %s %s AMP ads %s"
3728
  msgstr ""
3729
 
3730
  #. translators: %s: HTML tags
3731
+ #: settings.php:4391
3732
  msgid ""
3733
  "Ads are not showing? Check %s troubleshooting guide %s to find out how to "
3734
  "diagnose and fix the problem."
3735
  msgstr ""
3736
 
3737
  #. translators: %s: HTML tags
3738
+ #: settings.php:4395
3739
  msgid ""
3740
  "If you need any kind of help or support, please do not hesitate to open a "
3741
  "thread on the %s support forum. %s"
3742
  msgstr ""
3743
 
3744
+ #: settings.php:4438 settings.php:4478
3745
  msgid "A/B testing - Track ad impressions and clicks"
3746
  msgstr ""
3747
 
3748
+ #: settings.php:4446 settings.php:4470
3749
  msgid "Code preview with visual CSS editor"
3750
  msgstr ""
3751
 
3752
+ #: settings.php:4488
3753
  msgid "Looking for Pro Ad Management plugin?"
3754
  msgstr ""
3755
 
3756
+ #: settings.php:4489
3757
  msgid "To Optimally Monetize your WordPress website?"
3758
  msgstr ""
3759
 
3760
  #. translators: %s HTML tags
3761
+ #: settings.php:4492
3762
  msgid "%s AdSense Integration %s"
3763
  msgstr ""
3764
 
3765
  #. translators: %s HTML tags
3766
+ #: settings.php:4493
3767
  msgid "Syntax highlighting %s editor %s"
3768
  msgstr ""
3769
 
3770
  #. translators: %s HTML tags
3771
+ #: settings.php:4494
3772
  msgid "%s Code preview %s with visual CSS editor"
3773
  msgstr ""
3774
 
3775
  #. translators: %s HTML tags
3776
+ #: settings.php:4495
3777
  msgid "Simple user interface - all settings on a single page"
3778
  msgstr ""
3779
 
3780
  #. translators: %s HTML tags
3781
+ #: settings.php:4496
3782
  msgid ""
3783
  "%s Automatic insertion %s before or after post / content / %s paragraph %s / "
3784
  "image / excerpt"
3785
  msgstr ""
3786
 
3787
  #. translators: %s HTML tags
3788
+ #: settings.php:4497
3789
  msgid "%s Automatic insertion %s between posts on blog pages"
3790
  msgstr ""
3791
 
3792
  #. translators: %s HTML tags
3793
+ #: settings.php:4498
3794
  msgid "%s Automatic insertion %s before, between and after comments"
3795
  msgstr ""
3796
 
3797
  #. translators: %s HTML tags
3798
+ #: settings.php:4499
3799
  msgid "%s Automatic insertion %s after %s or before %s tag"
3800
  msgstr ""
3801
 
3802
  #. translators: %s HTML tags
3803
+ #: settings.php:4500
3804
  msgid "Automatic insertion at %s custom hook positions %s"
3805
  msgstr ""
3806
 
3807
  #. translators: %s HTML tags
3808
+ #: settings.php:4501
3809
  msgid ""
3810
  "Insertion %s before or after any HTML element on the page %s (using CSS "
3811
  "selectors)"
3812
  msgstr ""
3813
 
3814
  #. translators: %s HTML tags
3815
+ #: settings.php:4502
3816
  msgid "%s Insertion exceptions %s for individual posts and pages"
3817
  msgstr ""
3818
 
3819
  #. translators: %s HTML tags
3820
+ #: settings.php:4503
3821
  msgid "%s Manual insertion: %s widgets, shortcodes, PHP function call"
3822
  msgstr ""
3823
 
3824
  #. translators: %s HTML tags
3825
+ #: settings.php:4504
3826
  msgid ""
3827
  "%s Sticky ads %s with optional close button (ads stay fixed when the page "
3828
  "scrolls)"
3829
  msgstr ""
3830
 
3831
  #. translators: %s HTML tags
3832
+ #: settings.php:4505
3833
  msgid "%s Sticky sidebar ads %s (stick to the screen or to the content)"
3834
  msgstr ""
3835
 
3836
  #. translators: %s HTML tags
3837
+ #: settings.php:4506
3838
  msgid "%s Sticky ad animations %s (fade, slide, turn, flip, zoom)"
3839
  msgstr ""
3840
 
3841
  #. translators: %s HTML tags
3842
+ #: settings.php:4507
3843
  msgid ""
3844
  "%s Sticky ad trigger %s (page scroll in %% or px, HTML element becomes "
3845
  "visible)"
3846
  msgstr ""
3847
 
3848
  #. translators: %s HTML tags
3849
+ #: settings.php:4508
3850
  msgid ""
3851
  "%s Sticky (fixed) widgets %s (sidebar does not move when the page scrolls)"
3852
  msgstr ""
3853
 
3854
  #. translators: %s HTML tags
3855
+ #: settings.php:4509
3856
  msgid "Block %s alignment and style %s customizations"
3857
  msgstr ""
3858
 
3859
  #. translators: %s HTML tags
3860
+ #: settings.php:4510
3861
  msgid ""
3862
  "%s Clearance %s options to avoid insertion near images or headers (AdSense "
3863
  "TOS)"
3864
  msgstr ""
3865
 
3866
  #. translators: %s HTML tags
3867
+ #: settings.php:4511
3868
  msgid ""
3869
  "Options to %s disable insertion %s on Ajax calls, 404 error pages or in RSS "
3870
  "feeds"
3871
  msgstr ""
3872
 
3873
  #. translators: %s HTML tags
3874
+ #: settings.php:4512
3875
  msgid "%s Ad rotation %s (works also with caching)"
3876
  msgstr ""
3877
 
3878
  #. translators: %s HTML tags
3879
+ #: settings.php:4513
3880
  msgid ""
3881
  "Ad impression and click %s tracking %s (works also with Javascript ads like "
3882
  "AdSense)"
3883
  msgstr ""
3884
 
3885
  #. translators: %s HTML tags
3886
+ #: settings.php:4514
3887
  msgid "Support for %s A/B testing %s"
3888
  msgstr ""
3889
 
3890
  #. translators: %s HTML tags
3891
+ #: settings.php:4515
3892
  msgid "Support for %s lazy loading %s"
3893
  msgstr ""
3894
 
3895
  #. translators: %s HTML tags
3896
+ #: settings.php:4516
3897
  msgid "Support for ads on %s AMP pages %s"
3898
  msgstr ""
3899
 
3900
  #. translators: %s HTML tags
3901
+ #: settings.php:4517
3902
  msgid "Support for contextual %s Amazon Native Shopping Ads %s (responsive)"
3903
  msgstr ""
3904
 
3905
  #. translators: %s HTML tags
3906
+ #: settings.php:4518
3907
  msgid "Custom CSS class name for wrapping divs to avoid ad blockers"
3908
  msgstr ""
3909
 
3910
  #. translators: %s HTML tags
3911
+ #: settings.php:4519
3912
  msgid "PHP code processing"
3913
  msgstr ""
3914
 
3915
  #. translators: %s HTML tags
3916
+ #: settings.php:4520
3917
  msgid "%s Banner %s code generator"
3918
  msgstr ""
3919
 
3920
  #. translators: %s HTML tags
3921
+ #: settings.php:4521
3922
  msgid "Support for %s header and footer %s code"
3923
  msgstr ""
3924
 
3925
  #. translators: %s HTML tags
3926
+ #: settings.php:4522
3927
  msgid "Support for Google Analytics, Matomo or any other web analytics code"
3928
  msgstr ""
3929
 
3930
  #. translators: %s HTML tags
3931
+ #: settings.php:4523
3932
  msgid "Desktop, tablet and phone server-side %s device detection %s"
3933
  msgstr ""
3934
 
3935
  #. translators: %s HTML tags
3936
+ #: settings.php:4524
3937
  msgid "Client-side %s mobile device detection %s (works with caching)"
3938
  msgstr ""
3939
 
3940
  #. translators: %s HTML tags
3941
+ #: settings.php:4525
3942
  msgid ""
3943
  "%s Ad blocking detection %s - popup message, ad replacement, content "
3944
  "protection"
3945
  msgstr ""
3946
 
3947
  #. translators: %s HTML tags
3948
+ #: settings.php:4526
3949
  msgid "%s Ad blocking statistics %s"
3950
  msgstr ""
3951
 
3952
  #. translators: %s HTML tags
3953
+ #: settings.php:4527
3954
  msgid ""
3955
  "%s Black/White-list %s categories, tags, taxonomies, users, post IDs, urls, "
3956
  "referers"
3957
  msgstr ""
3958
 
3959
  #. translators: %s HTML tags
3960
+ #: settings.php:4528
3961
  msgid ""
3962
  "%s Black/White-list %s IP addresses or countries (works also with caching)"
3963
  msgstr ""
3964
 
3965
  #. translators: %s HTML tags
3966
+ #: settings.php:4529
3967
  msgid "%s Multisite options %s to limit settings on the sites"
3968
  msgstr ""
3969
 
3970
  #. translators: %s HTML tags
3971
+ #: settings.php:4530
3972
  msgid "%s Import/Export %s block or plugin settings"
3973
  msgstr ""
3974
 
3975
  #. translators: %s HTML tags
3976
+ #: settings.php:4531
3977
  msgid "%s Insertion scheduling %s with fallback option"
3978
  msgstr ""
3979
 
3980
  #. translators: %s HTML tags
3981
+ #: settings.php:4532
3982
  msgid "Country-level %s GEO targeting %s (works also with caching)"
3983
  msgstr ""
3984
 
3985
  #. translators: %s HTML tags
3986
+ #: settings.php:4533
3987
  msgid "Simple troubleshooting with many %s debugging functions %s"
3988
  msgstr ""
3989
 
3990
  #. translators: %s HTML tags
3991
+ #: settings.php:4534
3992
  msgid "%s Visualization %s of inserted blocks or ads for easier placement"
3993
  msgstr ""
3994
 
3995
  #. translators: %s HTML tags
3996
+ #: settings.php:4535
3997
  msgid "%s Visualization %s of available positions for automatic ad insertion"
3998
  msgstr ""
3999
 
4000
  #. translators: %s HTML tags
4001
+ #: settings.php:4536
4002
  msgid ""
4003
  "%s Visualization %s of HTML tags for easier ad placement between paragraphs"
4004
  msgstr ""
4005
 
4006
  #. translators: %s HTML tags
4007
+ #: settings.php:4537
4008
  msgid "%s Clipboard support %s to easily copy blocks or settings"
4009
  msgstr ""
4010
 
4011
  #. translators: %s HTML tags
4012
+ #: settings.php:4538
4013
  msgid "No ads on the settings page"
4014
  msgstr ""
4015
 
4016
  #. translators: %s HTML tags
4017
+ #: settings.php:4539
4018
  msgid "Premium support via email"
4019
  msgstr ""
4020
 
4021
  #. translators: %s HTML tags
4022
+ #: settings.php:4542
4023
  msgid ""
4024
  "Ad Inserter Pro is a complete all-in-one ad management plugin for WordPress "
4025
  "website with many advertising features to automatically insert adverts on "
4034
  msgstr ""
4035
 
4036
  #. translators: %s HTML tags
4037
+ #: settings.php:4555
4038
  msgid "Looking for %s Pro Ad Management plugin? %s"
4039
  msgstr ""
4040
 
4041
  #. translators: %s HTML tags
4042
+ #: settings.php:4560
4043
  msgid "Ads between posts"
4044
  msgstr ""
4045
 
4046
  #. translators: %s HTML tags
4047
+ #: settings.php:4561
4048
  msgid "Ads between comments"
4049
  msgstr ""
4050
 
4051
  #. translators: %s HTML tags
4052
+ #: settings.php:4562
4053
  msgid "Support via email"
4054
  msgstr ""
4055
 
4056
  #. translators: %s HTML tags
4057
+ #: settings.php:4568
4058
  msgid "%s Sticky positions %s"
4059
  msgstr ""
4060
 
4061
  #. translators: %s HTML tags
4062
+ #: settings.php:4569
4063
  msgid "%s Limit insertions %s"
4064
  msgstr ""
4065
 
4066
  #. translators: %s HTML tags
4067
+ #: settings.php:4570
4068
  msgid "%s Clearance %s options"
4069
  msgstr ""
4070
 
4071
  #. translators: %s HTML tags
4072
+ #: settings.php:4576
4073
  msgid "Ad rotation"
4074
  msgstr ""
4075
 
4076
  #. translators: %s HTML tags
4077
+ #: settings.php:4577
4078
  msgid "%s A/B testing %s"
4079
  msgstr ""
4080
 
4081
  #. translators: %s HTML tags
4082
+ #: settings.php:4578
4083
  msgid "%s Ad tracking %s"
4084
  msgstr ""
4085
 
4086
  #. translators: %s HTML tags
4087
+ #: settings.php:4584
4088
  msgid "Support for %s AMP pages %s"
4089
  msgstr ""
4090
 
4091
  #. translators: %s HTML tags
4092
+ #: settings.php:4585
4093
  msgid "%s Ad blocking detection %s"
4094
  msgstr ""
4095
 
4096
  #. translators: %s HTML tags
4097
+ #: settings.php:4586
4098
  msgid "%s Mobile device detection %s"
4099
  msgstr ""
4100
 
4101
  #. translators: %s HTML tags
4102
+ #: settings.php:4593
4103
  msgid "64 code blocks"
4104
  msgstr ""
4105
 
4106
  #. translators: %s HTML tags
4107
+ #: settings.php:4594
4108
  msgid "%s GEO targeting %s"
4109
  msgstr ""
4110
 
4111
  #. translators: %s HTML tags
4112
+ #: settings.php:4595
4113
  msgid "%s Scheduling %s"
4114
  msgstr ""
4115
 
4756
  msgstr[0] ""
4757
  msgstr[1] ""
4758
 
 
 
 
 
4759
  #: strings.php:198
4760
  msgid "Delete"
4761
  msgstr ""
readme.txt CHANGED
@@ -6,7 +6,7 @@ Tags: ads, adsense, ad rotation, ad manager, amp, amazon, ad blocking detection,
6
  Requires at least: 4.0
7
  Tested up to: 5.1
8
  Requires PHP: 5.6
9
- Stable tag: 2.4.11
10
  License: GPLv3
11
 
12
  Manage ads: Google AdSense ads, Amazon banners, ad rotation, sticky widget ads, AMP ads, DFP ads, PHP, tracking, AdSense header and footer code
@@ -91,6 +91,7 @@ Looking for AdSense plugin with simple setup for ads at best positions? A plugin
91
  * Use post title, tags or category names to create contextual ads
92
  * PHP code processing
93
  * Ad labels - show customized label above ads
 
94
  * Ad rotation (server-side and client-side - works with caching)
95
  * Timed ad rotation - define times to rotate ads in a single ad block
96
  * Create rich media ads with standard WordPress TinyMCE editor
@@ -157,7 +158,7 @@ If you need statistics for ads and metrics for impressions and clicks, A/B testi
157
  * No ads on the settings page
158
  * Support via email
159
 
160
- Run a WordPress related blog? Have experience with AdSense ads? Interested in reviewing Ad Inserter Pro? [Introduce yourself](https://adinserter.pro/contact).
161
 
162
  Have experience with WordPress theme or plugin translation? We are looking for translators! [Contact us](https://adinserter.pro/contact).
163
 
@@ -191,6 +192,7 @@ Ad Inserter is not just another plugin for WordPress ads. Do you enjoy finding t
191
  * to insert AMP ads on AMP pages
192
  * to insert different ads for mobile devices
193
  * to insert ads at custom action hooks (e.g. using <a href="https://genesistutorials.com/visual-hook-guide/" target="_blank">Genesis Theme Framework Hook Guide</a>)
 
194
  * to hide ads on specific pages
195
  * for ad rotation - to rotate different ads in a single ad position
196
  * for PHP code widgets and PHP ads
@@ -266,7 +268,7 @@ Ad Inserter is also a powerful AdSense plugin. However, AdSense ads require some
266
  **Insert Any Code Anywhere on the Page - Automate Insertion of Ads**
267
 
268
  * Automatic insertion of ads using standard (the_content, the_excerpt, loop_start, loop_end, the_post,...) or custom WP hooks
269
- * Server-side or client-side (javascript) insertion before or after **any HTML element on page** (using CSS selectors #id, .class)
270
  * Manual insertion of ads with shortcodes
271
  * Insertion of ads with widgets or PHP function calls from child theme
272
 
@@ -486,6 +488,12 @@ Please note that responsive AdSense ads can not work with floating alignments (a
486
 
487
  == Changelog ==
488
 
 
 
 
 
 
 
489
  = 2.4.11 =
490
  - Fix for saving code with slashes
491
  - Fix for rotation editor code import
@@ -571,6 +579,12 @@ For the changelog of earlier versions, please refer to the separate changelog.tx
571
 
572
  == Upgrade Notice ==
573
 
 
 
 
 
 
 
574
  = 2.4.11 =
575
  Fix for saving code with slashes;
576
  Fix for rotation editor code import;
6
  Requires at least: 4.0
7
  Tested up to: 5.1
8
  Requires PHP: 5.6
9
+ Stable tag: 2.4.12
10
  License: GPLv3
11
 
12
  Manage ads: Google AdSense ads, Amazon banners, ad rotation, sticky widget ads, AMP ads, DFP ads, PHP, tracking, AdSense header and footer code
91
  * Use post title, tags or category names to create contextual ads
92
  * PHP code processing
93
  * Ad labels - show customized label above ads
94
+ * ads.txt editor
95
  * Ad rotation (server-side and client-side - works with caching)
96
  * Timed ad rotation - define times to rotate ads in a single ad block
97
  * Create rich media ads with standard WordPress TinyMCE editor
158
  * No ads on the settings page
159
  * Support via email
160
 
161
+ Run a WordPress related blog? Have experience with AdSense ads? Interested in reviewing Ad Inserter Pro or would like to become Ad Inserter Pro affiliate? [Introduce yourself](https://adinserter.pro/contact).
162
 
163
  Have experience with WordPress theme or plugin translation? We are looking for translators! [Contact us](https://adinserter.pro/contact).
164
 
192
  * to insert AMP ads on AMP pages
193
  * to insert different ads for mobile devices
194
  * to insert ads at custom action hooks (e.g. using <a href="https://genesistutorials.com/visual-hook-guide/" target="_blank">Genesis Theme Framework Hook Guide</a>)
195
+ * to edit ads.txt file
196
  * to hide ads on specific pages
197
  * for ad rotation - to rotate different ads in a single ad position
198
  * for PHP code widgets and PHP ads
268
  **Insert Any Code Anywhere on the Page - Automate Insertion of Ads**
269
 
270
  * Automatic insertion of ads using standard (the_content, the_excerpt, loop_start, loop_end, the_post,...) or custom WP hooks
271
+ * Server-side or client-side (javascript) insertion before, after or inside **any HTML element on page** (using CSS selectors #id, .class)
272
  * Manual insertion of ads with shortcodes
273
  * Insertion of ads with widgets or PHP function calls from child theme
274
 
488
 
489
  == Changelog ==
490
 
491
+ = 2.4.12 =
492
+ - Added ads.txt editor
493
+ - Added option to prevent disabling caching for logged in administrators
494
+ - Improved compatibility with PHP 7.2
495
+ - Few minor bug fixes, cosmetic changes and code improvements
496
+
497
  = 2.4.11 =
498
  - Fix for saving code with slashes
499
  - Fix for rotation editor code import
579
 
580
  == Upgrade Notice ==
581
 
582
+ = 2.4.12 =
583
+ Added ads.txt editor;
584
+ Added Added option to prevent disabling caching for logged in administrators;
585
+ Improved compatibility with PHP 7.2;
586
+ Few minor bug fixes, cosmetic changes and code improvements
587
+
588
  = 2.4.11 =
589
  Fix for saving code with slashes;
590
  Fix for rotation editor code import;
settings.php CHANGED
@@ -641,7 +641,7 @@ function generate_settings_form (){
641
 
642
  <span class="ai-toolbar-button ai-button-left">
643
  <input type="checkbox" id="ga-<?php echo $block; ?>" style="display: none;" />
644
- <label class="checkbox-button adsense-list" for="ga-<?php echo $block; ?>" title="<?php _e ('Show AdSense ad units', 'ad-inserter'); ?>" ><span class="checkbox-icon icon-adsense ai-bw"></span></label>
645
  </span>
646
  <?php endif; ?>
647
  <?php endif; ?>
@@ -942,7 +942,7 @@ function generate_settings_form (){
942
  <?php endif; ?>
943
 
944
  <div style="margin: 8px 0;">
945
- <textarea id="block-<?php echo $block; ?>" class="simple-editor" style="background-color:#F9F9F9; font-family: Courier, 'Courier New', monospace; font-weight: bold;" name="<?php echo AI_OPTION_CODE, WP_FORM_FIELD_POSTFIX, $block; ?>" default=""><?php echo esc_textarea ($obj->get_ad_data()); ?></textarea>
946
  </div>
947
 
948
  <div style="padding: 0; min-height: 28px;">
@@ -1166,8 +1166,8 @@ function generate_settings_form (){
1166
 
1167
  <div class="max-input">
1168
  <span id="css-label-<?php echo $block; ?>" style="display: table-cell; width: 36px; padding: 0; height: 26px; vertical-align: middle; margin: 4px 0 0 0; font-size: 14px; font-weight: bold;">CSS</span>
1169
- <input id="custom-css-<?php echo $block; ?>" style="width: 100%; display: none; font-family: Courier, 'Courier New', monospace; font-weight: bold;" type="text" name="<?php echo AI_OPTION_CUSTOM_CSS, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_custom_css(); ?>" value="<?php echo $obj->get_custom_css(); ?>" maxlength="500" title="<?php _e ('Custom CSS code for the wrapping div', 'ad-inserter'); ?>" />
1170
- <span style="display: table-cell; vertical-align: middle; font-family: Courier, 'Courier New', monospace; font-size: 12px; font-weight: bold; cursor: pointer;">
1171
  <span id="css-no-wrapping-<?php echo $block; ?>" class='css-code' style="height: 26px; padding-left: 7px; display: none;"></span>
1172
  <span id="css-none-<?php echo $block; ?>" class='css-code-<?php echo $block; ?>' style="height: 18px; padding-left: 7px; display: none;" title="<?php _e ('CSS code for the wrapping div, click to edit', 'ad-inserter'); ?>"><?php echo $obj->alignment_style (AI_ALIGNMENT_DEFAULT); ?></span>
1173
  <span id="css-left-<?php echo $block; ?>" class='css-code-<?php echo $block; ?>' style="height: 18px; padding-left: 7px; display: none;" title="<?php _e ('CSS code for the wrapping div, click to edit', 'ad-inserter'); ?>"><?php echo $obj->alignment_style (AI_ALIGNMENT_LEFT); ?></span>
@@ -1554,7 +1554,7 @@ function generate_settings_form (){
1554
  </tr>
1555
  <tr>
1556
  <td colspan="5">
1557
- <textarea id="url-editor-<?php echo $block; ?>" style="width: 100%; height: 220px; font-family: Courier, 'Courier New', monospace; font-weight: bold; display: none;"></textarea>
1558
  </td>
1559
  </tr>
1560
 
@@ -1580,7 +1580,7 @@ function generate_settings_form (){
1580
  </tr>
1581
  <tr>
1582
  <td colspan="5">
1583
- <textarea id="url-parameter-editor-<?php echo $block; ?>" style="width: 100%; height: 220px; font-family: Courier, 'Courier New', monospace; font-weight: bold; display: none;"></textarea>
1584
  </td>
1585
  </tr>
1586
 
@@ -1605,7 +1605,7 @@ function generate_settings_form (){
1605
  </tr>
1606
  <tr>
1607
  <td colspan="5">
1608
- <textarea id="referer-editor-<?php echo $block; ?>" style="width: 100%; height: 220px; font-family: Courier, 'Courier New', monospace; font-weight: bold; display: none;"></textarea>
1609
  </td>
1610
  </tr>
1611
 
@@ -1959,13 +1959,29 @@ function generate_settings_form (){
1959
  <div style="margin: 16px 0;">
1960
  <div style="float: right;">
1961
  <div title='<?php _e ('Rotation editor active - rotation code not generated! Make sure no rotation editor is active before saving settings.', 'ad-inserter'); ?>' class="ai-rotation-warning" style='float: left; font-size: 18px; font-weight: bold; margin: 5px 5px 0 0; display: none;'>&#x26A0;</div>
1962
- <?php if (function_exists ('ai_settings_global_buttons')) ai_settings_global_buttons (); ?>
1963
- <input style="display: none; font-weight: bold;" name="<?php echo AI_FORM_SAVE; ?>" value="<?php _e ('Save Settings', 'ad-inserter'); ?>" type="submit" style="width:120px; font-weight: bold;" />
1964
  </div>
1965
 
1966
  <div style="float: left;">
 
1967
  <input onclick="if (confirm('<?php _e ('Are you sure you want to reset all settings?', 'ad-inserter'); ?>')) return true; return false;" name="<?php echo AI_FORM_CLEAR; ?>" value="<?php _e ('Reset All Settings', 'ad-inserter'); ?>" type="submit" style="display: none; min-width:125px; font-weight: bold; color: #e44;" />
 
1968
  <?php if (function_exists ('ai_settings_global_actions')) ai_settings_global_actions (); ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1969
  </div>
1970
 
1971
  <div style="clear: both;"></div>
@@ -2083,6 +2099,17 @@ function generate_settings_form (){
2083
  </select>
2084
  </td>
2085
  </tr>
 
 
 
 
 
 
 
 
 
 
 
2086
  <tr>
2087
  <td>
2088
  <?php _e ('Sticky widget mode', 'ad-inserter'); ?>
@@ -2309,7 +2336,7 @@ function generate_settings_form (){
2309
  </div>
2310
 
2311
  <div style="margin: 8px 0;">
2312
- <textarea id="block-h" name="<?php echo AI_OPTION_CODE, '_block_h'; ?>" class="simple-editor" style="background-color:#F9F9F9; font-family: Courier, 'Courier New', monospace; font-weight: bold;" default=""><?php echo esc_textarea ($adH->get_ad_data()); ?></textarea>
2313
  </div>
2314
 
2315
  <div id="device-detection-settings-h" class="rounded">
@@ -2367,7 +2394,7 @@ function generate_settings_form (){
2367
  </div>
2368
 
2369
  <div style="margin: 8px 0;">
2370
- <textarea id="block-f" name="<?php echo AI_OPTION_CODE, '_block_f'; ?>" class="simple-editor" style="background-color:#F9F9F9; font-family: Courier, 'Courier New', monospace; font-weight: bold;" default=""><?php echo esc_textarea ($adF->get_ad_data()); ?></textarea>
2371
  </div>
2372
 
2373
  <div id="device-detection-settings-f" class="rounded">
@@ -2514,7 +2541,7 @@ function generate_settings_form (){
2514
  </div>
2515
 
2516
  <div style="margin: 8px 0;">
2517
- <textarea id="block-a" name="<?php echo AI_OPTION_CODE, '_block_a'; ?>" class="simple-editor small" style="background-color:#F9F9F9; font-family: Courier, 'Courier New', monospace; font-weight: bold;" default="<?php echo esc_textarea (AI_DEFAULT_ADB_MESSAGE); ?>"><?php echo esc_textarea ($adA->get_ad_data()); ?></textarea>
2518
  </div>
2519
 
2520
  <div class="rounded">
@@ -2812,6 +2839,7 @@ function generate_settings_form (){
2812
  if (defined ('AI_ADSENSE_API')) {
2813
  adsense_list_container ();
2814
  }
 
2815
 
2816
  if (function_exists ('ai_settings_side')) {
2817
  ai_settings_side ();
@@ -3161,6 +3189,224 @@ function adsense_list_container () {
3161
 
3162
  }
3163
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3164
 
3165
  function code_block_list () {
3166
  global $block_object, $wpdb, $ai_db_options_extract;
@@ -4069,7 +4315,7 @@ function sidebar_help () { ?>
4069
 
4070
  <div class="ai-form header rounded ai-help">
4071
  <div style="float: left;">
4072
- <h2 style="display: inline-block; margin: 5px 0;">
4073
  <?php /* translators: %s: HTML tags */ printf (__('Need help with %s settings? %s Check %s Quick Start, %s %s Code Editing %s and %s Common Settings %s pages', 'ad-inserter'),
4074
  '<a href="https://adinserter.pro/documentation" style="text-decoration: none; box-shadow: 0 0 0;" target="_blank">',
4075
  '</a>',
@@ -4080,7 +4326,7 @@ function sidebar_help () { ?>
4080
  '<a href="https://adinserter.pro/documentation/common-settings" style="text-decoration: none; box-shadow: 0 0 0;" target="_blank">',
4081
  '</a>'
4082
  ); ?>
4083
- </h2>
4084
  <div>
4085
  <?php /* translators: %s: HTML tags */ printf (__('%s New to %s AdSense? %s %s %s Connect your site %s - Advanced %s AdSense code: %s %s In-feed ads, %s %s Auto ads, %s %s AMP ads %s', 'ad-inserter'),
4086
  '<strong>',
@@ -4125,83 +4371,88 @@ function sidebar_pro () {
4125
  ?>
4126
 
4127
  <div class="ai-form rounded no-select feature-list" style="background: #fff;">
4128
- <div style="float: right;" >
4129
- <div>
 
 
4130
  <?php switch ($version) {
4131
  case 0: ?>
4132
- <!-- <a href="https://adinserter.pro/" class="clear-link" title="Automate ad placement on posts and pages" target="_blank"><img id="ai-pro-1" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>icon-256x256.jpg" style="margin-top: 10px;" /></a>-->
4133
- <a href="http://bit.ly/ezoic-ads" class="clear-link" title="<?php _e ('Looking for AdSense alternative?', 'ad-inserter'); ?>" target="_blank"><img id="ai-ez-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ez-2.jpg" style="margin-top: 10px;" /></a>
4134
  <?php break; case 1: ?>
4135
- <a href='http://bit.ly/info_links' class="clear-link" title="<?php _e ('Use Infolinks ads with Adsense to earn more', 'ad-inserter'); ?>" target="_blank"><img id="ai-info-3" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>info-3.jpg" style="margin-top: 10px;" /></a>
4136
  <?php break; case 2: ?>
4137
- <a href='http://bit.ly/media_NET' class="clear-link" title="<?php _e ('Looking for AdSense alternative?', 'ad-inserter'); ?>" target="_blank"><img id="ai-media-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>contextual-2.jpg" style="margin-top: 10px;" /></a>
4138
  <?php break; case 3: ?>
4139
- <a href='http://bit.ly/media_NET' class="clear-link" title="<?php _e ('Looking for AdSense alternative?', 'ad-inserter'); ?>" target="_blank"><img id="ai-media-3" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>contextual-3.png" style="margin-top: 10px;" /></a>
4140
  <?php break;
4141
  } ?>
4142
  </div>
4143
- <div>
4144
  <?php switch ($version) {
4145
  case 0:
4146
  ?>
4147
- <a href='http://bit.ly/info_links' class="clear-link" title="<?php _e ('Use Infolinks ads with Adsense to earn more', 'ad-inserter'); ?>" target="_blank"><img id="ai-info-3" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>info-3.jpg" style="margin-top: 10px;" /></a>
4148
  <?php break;
4149
  case 1:
4150
  ?>
4151
- <a href="https://adinserter.pro/documentation/ad-impression-and-click-tracking" class="clear-link" title="<?php _e ('A/B testing - Track ad impressions and clicks', 'ad-inserter'); ?>" target="_blank"><img id="ai-pro-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ai-charts-250.png" style="margin-top: 10px;" /></a>
4152
  <?php break;
4153
  case 2:
4154
  ?>
4155
- <a href="http://bit.ly/ezoic-ads" class="clear-link" title="<?php _e ('Looking for AdSense alternative?', 'ad-inserter'); ?>" target="_blank"><img id="ai-ez-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ez-2.jpg" style="margin-top: 10px;" /></a>
4156
  <?php break;
4157
  case 3:
4158
  ?>
4159
- <a href='https://adinserter.pro/documentation/code-preview' class="clear-link" title="<?php _e ('Code preview with visual CSS editor', 'ad-inserter'); ?>" target="_blank"><img id="ai-preview" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ai-preview-250.png" style="margin-top: 10px;" /></a>
4160
  <?php break;
4161
  } ?>
4162
  </div>
4163
- <div>
 
4164
  <?php switch ($version) {
4165
  case 0: ?>
4166
- <a href='http://bit.ly/media_NET' class="clear-link" title="<?php _e ('Looking for AdSense alternative?', 'ad-inserter'); ?>" target="_blank"><img id="ai-media-3" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>contextual-3.png" style="margin-top: 10px;" /></a>
4167
  <?php break; case 1: ?>
4168
- <!-- <a href="https://adinserter.pro/documentation/black-and-white-lists#geo-targeting" class="clear-link" title="Geotargeting - black/white-list countries" target="_blank"><img id="ai-pro-3" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ai-countries-250.png" style="margin-top: 10px;" /></a>-->
4169
- <a href='http://bit.ly/media_NET' class="clear-link" title="<?php _e ('Looking for AdSense alternative?', 'ad-inserter'); ?>" target="_blank"><img id="ai-media-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>contextual-2.jpg" style="margin-top: 10px;" /></a>
4170
  <?php break; case 2: ?>
4171
- <!-- <a href="https://adinserter.pro/documentation/black-and-white-lists#geo-targeting" class="clear-link" title="Geotargeting - black/white-list countries" target="_blank"><img id="ai-pro-3" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ai-countries-250.png" style="margin-top: 10px;" /></a>-->
4172
- <a href='http://bit.ly/info_links' class="clear-link" title="<?php _e ('Use Infolinks ads with Adsense to earn more', 'ad-inserter'); ?>" target="_blank"><img id="ai-info-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>info-2.jpg" style="margin-top: 10px;" /></a>
4173
  <?php break; case 3: ?>
4174
- <!-- <a href="https://adinserter.pro/documentation/black-and-white-lists#geo-targeting" class="clear-link" title="Geotargeting - black/white-list countries" target="_blank"><img id="ai-pro-3" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ai-countries-250.png" style="margin-top: 10px;" /></a>-->
4175
- <a href="http://bit.ly/ezoic-ads" class="clear-link" title="<?php _e ('Looking for AdSense alternative?', 'ad-inserter'); ?>" target="_blank"><img id="ai-ez-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ez-2.jpg" style="margin-top: 10px;" /></a>
4176
  <?php break;
4177
  } ?>
4178
  </div>
4179
- <div>
4180
  <?php switch ($version) {
4181
  case 0:
4182
  ?>
4183
- <a href='https://adinserter.pro/documentation/code-preview' class="clear-link" title="<?php _e ('Code preview with visual CSS editor', 'ad-inserter'); ?>" target="_blank"><img id="ai-preview" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ai-preview-250.png" style="margin-top: 10px;" /></a>
4184
  <?php break;
4185
  case 1:
4186
  ?>
4187
- <a href="http://bit.ly/ezoic-ads" class="clear-link" title="<?php _e ('Looking for AdSense alternative?', 'ad-inserter'); ?>" target="_blank"><img id="ai-ez-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ez-2.jpg" style="margin-top: 10px;" /></a>
4188
  <?php break;
4189
  case 2:
4190
  ?>
4191
- <a href="https://adinserter.pro/documentation/ad-impression-and-click-tracking" class="clear-link" title="<?php _e ('A/B testing - Track ad impressions and clicks', 'ad-inserter'); ?>" target="_blank"><img id="ai-pro-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ai-charts-250.png" style="margin-top: 10px;" /></a>
4192
  <?php break;
4193
  case 3:
4194
  ?>
4195
- <a href='http://bit.ly/info_links' class="clear-link" title="<?php _e ('Use Infolinks ads with Adsense to earn more', 'ad-inserter'); ?>" target="_blank"><img id="ai-info-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>info-2.jpg" style="margin-top: 10px;" /></a>
4196
  <?php break;
4197
  } ?>
4198
  </div>
 
4199
  </div>
 
4200
 
4201
  <h3 style="text-align: justify;"><?php _e ('Looking for Pro Ad Management plugin?', 'ad-inserter'); ?></h3>
4202
  <h4 style="text-align: justify;"><?php _e ('To Optimally Monetize your WordPress website?', 'ad-inserter'); ?></h4>
4203
 
4204
- <ul>
4205
  <li><?php /* translators: %s HTML tags */ printf (__('%s AdSense Integration %s', 'ad-inserter'), '<a href="https://adinserter.pro/documentation/adsense-ads#integration" class="simple-link" target="_blank">', '</a>'); ?></li>
4206
  <li><?php /* translators: %s HTML tags */ printf (__('Syntax highlighting %s editor %s', 'ad-inserter'), '<a href="https://adinserter.pro/documentation/code-editing" class="simple-link" target="_blank">', '</a>'); ?></li>
4207
  <li><?php /* translators: %s HTML tags */ printf (__('%s Code preview %s with visual CSS editor', 'ad-inserter'), '<a href="https://adinserter.pro/documentation/code-preview" class="simple-link" target="_blank">', '</a>'); ?></li>
641
 
642
  <span class="ai-toolbar-button ai-button-left">
643
  <input type="checkbox" id="ga-<?php echo $block; ?>" style="display: none;" />
644
+ <label class="checkbox-button adsense-list" for="ga-<?php echo $block; ?>" title="<?php _e ('Show AdSense ad units', 'ad-inserter'); ?>" ><span class="checkbox-icon icon-adsense"></span></label>
645
  </span>
646
  <?php endif; ?>
647
  <?php endif; ?>
942
  <?php endif; ?>
943
 
944
  <div style="margin: 8px 0;">
945
+ <textarea id="block-<?php echo $block; ?>" class="simple-editor" style="background-color:#F9F9F9; font-family: monospace, Courier, 'Courier New'; font-weight: bold;" name="<?php echo AI_OPTION_CODE, WP_FORM_FIELD_POSTFIX, $block; ?>" default=""><?php echo esc_textarea ($obj->get_ad_data()); ?></textarea>
946
  </div>
947
 
948
  <div style="padding: 0; min-height: 28px;">
1166
 
1167
  <div class="max-input">
1168
  <span id="css-label-<?php echo $block; ?>" style="display: table-cell; width: 36px; padding: 0; height: 26px; vertical-align: middle; margin: 4px 0 0 0; font-size: 14px; font-weight: bold;">CSS</span>
1169
+ <input id="custom-css-<?php echo $block; ?>" style="width: 100%; display: none; font-family: monospace, Courier, 'Courier New'; font-weight: bold;" type="text" name="<?php echo AI_OPTION_CUSTOM_CSS, WP_FORM_FIELD_POSTFIX, $block; ?>" default="<?php echo $default->get_custom_css(); ?>" value="<?php echo $obj->get_custom_css(); ?>" maxlength="500" title="<?php _e ('Custom CSS code for the wrapping div', 'ad-inserter'); ?>" />
1170
+ <span style="display: table-cell; vertical-align: middle; font-family: monospace, Courier, 'Courier New'; font-size: 12px; font-weight: bold; cursor: pointer;">
1171
  <span id="css-no-wrapping-<?php echo $block; ?>" class='css-code' style="height: 26px; padding-left: 7px; display: none;"></span>
1172
  <span id="css-none-<?php echo $block; ?>" class='css-code-<?php echo $block; ?>' style="height: 18px; padding-left: 7px; display: none;" title="<?php _e ('CSS code for the wrapping div, click to edit', 'ad-inserter'); ?>"><?php echo $obj->alignment_style (AI_ALIGNMENT_DEFAULT); ?></span>
1173
  <span id="css-left-<?php echo $block; ?>" class='css-code-<?php echo $block; ?>' style="height: 18px; padding-left: 7px; display: none;" title="<?php _e ('CSS code for the wrapping div, click to edit', 'ad-inserter'); ?>"><?php echo $obj->alignment_style (AI_ALIGNMENT_LEFT); ?></span>
1554
  </tr>
1555
  <tr>
1556
  <td colspan="5">
1557
+ <textarea id="url-editor-<?php echo $block; ?>" style="width: 100%; height: 220px; font-family: monospace, Courier, 'Courier New'; font-weight: bold; display: none;"></textarea>
1558
  </td>
1559
  </tr>
1560
 
1580
  </tr>
1581
  <tr>
1582
  <td colspan="5">
1583
+ <textarea id="url-parameter-editor-<?php echo $block; ?>" style="width: 100%; height: 220px; font-family: monospace, Courier, 'Courier New'; font-weight: bold; display: none;"></textarea>
1584
  </td>
1585
  </tr>
1586
 
1605
  </tr>
1606
  <tr>
1607
  <td colspan="5">
1608
+ <textarea id="referer-editor-<?php echo $block; ?>" style="width: 100%; height: 220px; font-family: monospace, Courier, 'Courier New'; font-weight: bold; display: none;"></textarea>
1609
  </td>
1610
  </tr>
1611
 
1959
  <div style="margin: 16px 0;">
1960
  <div style="float: right;">
1961
  <div title='<?php _e ('Rotation editor active - rotation code not generated! Make sure no rotation editor is active before saving settings.', 'ad-inserter'); ?>' class="ai-rotation-warning" style='float: left; font-size: 18px; font-weight: bold; margin: 5px 5px 0 0; display: none;'>&#x26A0;</div>
1962
+
1963
+ <input style="display: none; font-weight: bold; margin-left: 5px;" name="<?php echo AI_FORM_SAVE; ?>" value="<?php _e ('Save Settings', 'ad-inserter'); ?>" type="submit" style="width:120px; font-weight: bold;" />
1964
  </div>
1965
 
1966
  <div style="float: left;">
1967
+ <div style="min-width: 130px; display: inline-block;">
1968
  <input onclick="if (confirm('<?php _e ('Are you sure you want to reset all settings?', 'ad-inserter'); ?>')) return true; return false;" name="<?php echo AI_FORM_CLEAR; ?>" value="<?php _e ('Reset All Settings', 'ad-inserter'); ?>" type="submit" style="display: none; min-width:125px; font-weight: bold; color: #e44;" />
1969
+ </div>
1970
  <?php if (function_exists ('ai_settings_global_actions')) ai_settings_global_actions (); ?>
1971
+
1972
+ <?php if (function_exists ('ai_settings_global_buttons')) ai_settings_global_buttons (); ?>
1973
+ <?php if (defined ('AI_ADSENSE_API')) : ?>
1974
+ <?php if (defined ('AI_ADSENSE_AUTHORIZATION_CODE')) : ?>
1975
+ <span style="vertical-align: top; margin-left: 5px;">
1976
+ <label id="ga-0" class="checkbox-button adsense-list" title="<?php _e ('Show AdSense ad units', 'ad-inserter'); ?>" ><span class="checkbox-icon image icon-adsense"></span></label>
1977
+ </span>
1978
+ <?php endif; ?>
1979
+ <?php endif; ?>
1980
+ <?php if (!is_multisite() || is_main_site () ) : ?>
1981
+ <span style="vertical-align: top; margin-left: 5px;">
1982
+ <label id="ai-ads-txt" class="checkbox-button iab-ads-txt" title="<?php _e ('Edit ads.txt file', 'ad-inserter'); ?>" ><span class="checkbox-icon icon-ads-txt"></span></label>
1983
+ </span>
1984
+ <?php endif; ?>
1985
  </div>
1986
 
1987
  <div style="clear: both;"></div>
2099
  </select>
2100
  </td>
2101
  </tr>
2102
+ <tr>
2103
+ <td>
2104
+ <?php _e ('Disable caching for logged in administrators', 'ad-inserter'); ?>
2105
+ </td>
2106
+ <td>
2107
+ <select id="disable-caching-admin" name="disable-caching-admin" default="<?php echo DEFAULT_DISABLE_CACHING; ?>" title="<?php _e ('Enabled means that logged in administrators will see non-cached (live) pages (applies to WP Super Cache, W3 Total Cache and WP Rocket plugins)', 'ad-inserter'); ?>">
2108
+ <option value="<?php echo AI_DISABLE_CACHING_DISABLED; ?>" <?php echo get_disable_caching () == AI_DISABLE_CACHING_DISABLED ? AD_SELECT_SELECTED : AD_EMPTY_VALUE; ?>><?php echo AI_TEXT_DISABLED; ?></option>
2109
+ <option value="<?php echo AI_DISABLE_CACHING_ENABLED; ?>" <?php echo get_disable_caching () == AI_DISABLE_CACHING_ENABLED ? AD_SELECT_SELECTED : AD_EMPTY_VALUE; ?>><?php echo AI_TEXT_ENABLED; ?></option>
2110
+ </select>
2111
+ </td>
2112
+ </tr>
2113
  <tr>
2114
  <td>
2115
  <?php _e ('Sticky widget mode', 'ad-inserter'); ?>
2336
  </div>
2337
 
2338
  <div style="margin: 8px 0;">
2339
+ <textarea id="block-h" name="<?php echo AI_OPTION_CODE, '_block_h'; ?>" class="simple-editor" style="background-color:#F9F9F9; font-family: monospace, Courier, 'Courier New'; font-weight: bold;" default=""><?php echo esc_textarea ($adH->get_ad_data()); ?></textarea>
2340
  </div>
2341
 
2342
  <div id="device-detection-settings-h" class="rounded">
2394
  </div>
2395
 
2396
  <div style="margin: 8px 0;">
2397
+ <textarea id="block-f" name="<?php echo AI_OPTION_CODE, '_block_f'; ?>" class="simple-editor" style="background-color:#F9F9F9; font-family: monospace, Courier, 'Courier New'; font-weight: bold;" default=""><?php echo esc_textarea ($adF->get_ad_data()); ?></textarea>
2398
  </div>
2399
 
2400
  <div id="device-detection-settings-f" class="rounded">
2541
  </div>
2542
 
2543
  <div style="margin: 8px 0;">
2544
+ <textarea id="block-a" name="<?php echo AI_OPTION_CODE, '_block_a'; ?>" class="simple-editor small" style="background-color:#F9F9F9; font-family: monospace, Courier, 'Courier New'; font-weight: bold;" default="<?php echo esc_textarea (AI_DEFAULT_ADB_MESSAGE); ?>"><?php echo esc_textarea ($adA->get_ad_data()); ?></textarea>
2545
  </div>
2546
 
2547
  <div class="rounded">
2839
  if (defined ('AI_ADSENSE_API')) {
2840
  adsense_list_container ();
2841
  }
2842
+ ads_txt_container ();
2843
 
2844
  if (function_exists ('ai_settings_side')) {
2845
  ai_settings_side ();
3189
 
3190
  }
3191
 
3192
+ function ads_txt_container () {
3193
+ ?>
3194
+ <div id="ads-txt-container" class="ai-form rounded" style="background: #fff; display: none;">
3195
+ <div id='ads-txt-controls' class='ui-widget' style='margin: 0 auto 8px; display: none;'>
3196
+ <span style="vertical-align: middle; float: left;">
3197
+ <input id="ads-txt-search" type="text" value="" size="40" maxlength="40" />
3198
+ </span>
3199
+ <span style="float: right;">
3200
+ <span id="ads-txt-reload" class="checkbox-button dashicons dashicons-download" title="<?php _e ('Reload ads.txt file', 'ad-inserter'); ?>"></span>
3201
+ </span>
3202
+ <span style="margin-right: 10px; float: right;">
3203
+ <label class="checkbox-button iab-ads-txt" title="<?php /* translators: %s: ads.txt */ echo sprintf (__('Open %s', 'ad-inserter'), home_url ('/') . 'ads.txt'); ?>" onclick="window.open('<?php echo home_url ('/'); ?>ads.txt')"><span class="checkbox-icon icon-ads-txt"></span></label>
3204
+ </span>
3205
+ <span style="margin-right: 10px; float: right;">
3206
+ <span id="ads-txt-table" class="checkbox-button dashicons dashicons-editor-justify on" title="<?php _e ('Switch to table view', 'ad-inserter'); ?>"></span>
3207
+ </span>
3208
+ <span style="margin-right: 10px; float: right;">
3209
+ <span id="ads-txt-editor" class="checkbox-button dashicons dashicons-edit" title="<?php _e ('Switch to editor', 'ad-inserter'); ?>"></span>
3210
+ </span>
3211
+ <span style="margin-right: 10px; float: right;">
3212
+ <span id="ads-txt-save" class="checkbox-button dashicons dashicons-external" style="display: none;" title="<?php _e ('Save ads.txt file', 'ad-inserter'); ?>"></span>
3213
+ </span>
3214
+ <div style="clear: both;"></div>
3215
+ </div>
3216
+ <div id="ads-txt-error" style="margin: 0 0 8px; color: red;"></div>
3217
+ <div id="ads-txt-data">
3218
+ <?php _e ('Loading...', 'ad-inserter'); ?>
3219
+ </div>
3220
+ </div>
3221
+ <?php
3222
+ }
3223
+ function ads_txt ($action) {
3224
+ global $block_object;
3225
+ $block_ads = array ();
3226
+ for ($block = 1; $block <= 96 + 3; $block ++) {
3227
+ switch ($block) {
3228
+ case 96 + 1:
3229
+ $obj = $block_object [AI_HEADER_OPTION_NAME];
3230
+ break;
3231
+ case 96 + 2:
3232
+ $obj = $block_object [AI_FOOTER_OPTION_NAME];
3233
+ break;
3234
+ case 96 + 3:
3235
+ $obj = $block_object [AI_ADB_MESSAGE_OPTION_NAME];
3236
+ break;
3237
+ default:
3238
+ $obj = $block_object [$block];
3239
+ break;
3240
+ }
3241
+ $block_code = $obj->get_ad_data ();
3242
+ // data-ad-client="ca-pub-3118622027477755"
3243
+ if (preg_match_all ('#data-ad-client\s*=\s*"(.+?)"#', $block_code, $adsense_matches)) {
3244
+ foreach ($adsense_matches [1] as $adsense_match) {
3245
+ if (preg_match ('#(pub-[0-9]+)#', $adsense_match, $adsense_pub_id)) {
3246
+ $found = false;
3247
+ foreach ($block_ads as $block_ad) {
3248
+ if ($block_ad ['ads_data'][1] == $adsense_pub_id [1]) {
3249
+ $found = true;
3250
+ break;
3251
+ }
3252
+ }
3253
+ if (!$found) {
3254
+ $block_ads [] = array ('ads_data' => array ('google.com', $adsense_pub_id [1], 'DIRECT', 'f08c47fec0942fa0'), 'found' => false);
3255
+ }
3256
+ }
3257
+ }
3258
+ }
3259
+ // google_ad_client = "ca-pub-3118622027477755";
3260
+ if (preg_match_all ('#google_ad_client\s*=\s*"(.+?)"#', $block_code, $adsense_matches)) {
3261
+ foreach ($adsense_matches [1] as $adsense_match) {
3262
+ if (preg_match ('#(pub-[0-9]+)#', $adsense_match, $adsense_pub_id)) {
3263
+ $found = false;
3264
+ foreach ($block_ads as $block_ad) {
3265
+ if ($block_ad ['ads_data'][1] == $adsense_pub_id [1]) {
3266
+ $found = true;
3267
+ break;
3268
+ }
3269
+ }
3270
+ if (!$found) {
3271
+ $block_ads [] = array ('ads_data' => array ('google.com', $adsense_pub_id [1], 'DIRECT', 'f08c47fec0942fa0'), 'found' => false);
3272
+ }
3273
+ }
3274
+ }
3275
+ }
3276
+ }
3277
+ $ads_txt_file = ABSPATH . 'ads.txt';
3278
+ if (file_exists ($ads_txt_file)) {
3279
+ $ads = file_get_contents ($ads_txt_file);
3280
+ } else $ads = '';
3281
+ $ads_lines = explode ("\n", $ads);
3282
+ $rows = array ();
3283
+ foreach ($ads_lines as $ads_line) {
3284
+ if (trim ($ads_line) == '') continue;
3285
+ $ads_data = explode ('#', str_replace (array ("\r", ' '), '', $ads_line));
3286
+ $ads_elements = explode (',', $ads_data [0]);
3287
+ if (count ($ads_elements) == 0) continue;
3288
+ $found = false;
3289
+ foreach ($block_ads as $index => $block_ad) {
3290
+ if (!isset ($ads_elements [1])) continue;
3291
+ if ($block_ad ['ads_data'][1] == $ads_elements [1]) {
3292
+ $found = true;
3293
+ $block_ads [$index]['found'] = true;
3294
+ break;
3295
+ }
3296
+ }
3297
+ $rows []= array ('ads_elements' => $ads_elements, 'status' => $found ? 'F' : '');
3298
+ }
3299
+ $missing_lines = array ();
3300
+ foreach ($block_ads as $block_ad) {
3301
+ if (!$block_ad ['found']) {
3302
+ array_unshift ($rows, array ('ads_elements' => $block_ad ['ads_data'], 'status' => 'M'));
3303
+ $missing_lines []= implode (', ', $block_ad ['ads_data']);
3304
+ }
3305
+ }
3306
+ $search_text = isset ($_GET ["search"]) ? trim ($_GET ["search"]) : '';
3307
+ if ($search_text != '') $search_array = explode (' ', $search_text); else $search_array = array ();
3308
+ foreach ($rows as $index => $row) {
3309
+ $ads_line = implode (' ', $row ['ads_elements']);
3310
+ foreach ($search_array as $search_item) {
3311
+ if (stripos ($ads_line, trim ($search_item)) === false) {
3312
+ unset ($rows [$index]);
3313
+ continue 2;
3314
+ }
3315
+ }
3316
+ }
3317
+ if (site_url ('', 'relative') != '') {
3318
+ $right_ads_txt_url = str_replace (site_url ('', 'relative'), '', home_url ('/')) . 'ads.txt';
3319
+ echo '<div class="rounded">';
3320
+ echo '<div><strong><span style="color: red;">', __('Warning', 'ad-inserter'), '</span>: ', __('ads.txt file must be placed on the root domain', 'ad-inserter'), ' <a href="', $right_ads_txt_url, '" target="_blank" class="simple-link">', $right_ads_txt_url, '</a></strong></div>';
3321
+ echo '<div>', /* translators: %s: file path */ sprintf (__('WordPress is installed in %s', 'ad-inserter'), '<strong>' . ABSPATH . '</strong>'), '</div>';
3322
+ echo '<div>', __('Showing file', 'ad-inserter'), ' ', $ads_txt_file, '</div>';
3323
+ echo '</div>';
3324
+ }
3325
+ switch ($action) {
3326
+ case 'text':
3327
+ if (count ($missing_lines)) {
3328
+ echo '<div>', __('Account IDs found in blocks but not present in the ads.txt file', 'ad-inserter'), '</div>';
3329
+ echo '<textarea disabled style="width: 100%; font-family: monospace, Courier, \'Courier New\'; font-size: 12px;" rows="', count ($missing_lines), '">';
3330
+ echo implode ("\n", $missing_lines);
3331
+ echo '</textarea>';
3332
+ echo '<div style="margin-top: 8px;">', $ads_txt_file, '</div>';
3333
+ }
3334
+ echo '<textarea id="ads-txt-text" style="width: 100%; height: 700px; font-family: monospace, Courier, \'Courier New\'; font-size: 12px;">';
3335
+ echo $ads;
3336
+ echo '</textarea>';
3337
+ break;
3338
+ case 'table':
3339
+ ?>
3340
+ <table id="ads-txt-table" class="exceptions" cellspacing=0 cellpadding=0 style="width: 100%;">
3341
+ <thead>
3342
+ <tr>
3343
+ <th style="text-align: left;"><?php _e ('Advertising system', 'ad-inserter'); ?></th>
3344
+ <th style="text-align: left;"><?php _e ('Account ID', 'ad-inserter'); ?></th>
3345
+ <th style="text-align: left;"><?php _e ('Type', 'ad-inserter'); ?></th>
3346
+ <th style="text-align: left;"><?php _e ('Certification authority ID', 'ad-inserter'); ?></th>
3347
+ </tr>
3348
+ </thead>
3349
+ <tbody>
3350
+ <?php
3351
+ $row_counter = 0;
3352
+ foreach ($rows as $row) {
3353
+ $row_counter ++;
3354
+ $ads_elements = $row ['ads_elements'];
3355
+ switch ($row ['status']) {
3356
+ case 'F':
3357
+ $row_color = $row_counter % 2 == 0 ? '#D4FFD8' : '#CDF7D1';
3358
+ $title = __('Account ID found in block and present in ads.txt', 'ad-inserter');
3359
+ break;
3360
+ case 'M':
3361
+ $row_color = $row_counter % 2 == 0 ? '#FFC9C9' : '#F7C2C2';
3362
+ $title = __('Account ID found in block but not present in ads.txt', 'ad-inserter');
3363
+ break;
3364
+ default:
3365
+ $row_color = $row_counter % 2 == 0 ? '#eee' : '#fff';
3366
+ $title = '';
3367
+ break;
3368
+ }
3369
+ $variable = count ($ads_elements) == 1 && strpos ($ads_elements [0], '=') !== false;
3370
+ if (isset ($ads_elements [3])) {
3371
+ if (strlen ($ads_elements [3]) == 16) {
3372
+ $element3 = '<a href="https://tag-members-prod.herokuapp.com/registry/lookup?q='.$ads_elements [3].'" class="simple-link" style="color: #021b79;" target="_blank">'.$ads_elements [3] .'</a>';
3373
+ } else $element3 = $ads_elements [3];
3374
+ } else $element3 = '';
3375
+ ?>
3376
+ <tr style="background: <?php echo $row_color; ?>" title="<?php echo $title; ?>">
3377
+ <td style="padding-right: 10px;<?php echo $variable ? ' color: #3959ff;' : ''; ?>" <?php echo $variable ? ' colspan="4"' : ''; ?>>
3378
+ <?php echo isset ($ads_elements [0]) ? $ads_elements [0] : ''; ?>
3379
+ </td>
3380
+ <?php
3381
+ if (!$variable):
3382
+ ?>
3383
+ <td style="padding-right: 10px;">
3384
+ <?php echo isset ($ads_elements [1]) ? $ads_elements [1] : ''; ?>
3385
+ </td>
3386
+ <td style="padding-right: 10px;">
3387
+ <?php echo isset ($ads_elements [2]) ? $ads_elements [2] : ''; ?>
3388
+ </td>
3389
+ <td>
3390
+ <?php echo $element3; ?>
3391
+ </td>
3392
+ <?php
3393
+ endif;
3394
+ ?>
3395
+ </tr>
3396
+ <?php
3397
+ }
3398
+ ?>
3399
+ </tbody>
3400
+ </table>
3401
+ <?php
3402
+ break;
3403
+ case 'save':
3404
+ if (isset ($_POST ['text'])) {
3405
+ @file_put_contents ($ads_txt_file, @base64_decode ($_POST ['text']));
3406
+ }
3407
+ break;
3408
+ }
3409
+ }
3410
 
3411
  function code_block_list () {
3412
  global $block_object, $wpdb, $ai_db_options_extract;
4315
 
4316
  <div class="ai-form header rounded ai-help">
4317
  <div style="float: left;">
4318
+ <div>
4319
  <?php /* translators: %s: HTML tags */ printf (__('Need help with %s settings? %s Check %s Quick Start, %s %s Code Editing %s and %s Common Settings %s pages', 'ad-inserter'),
4320
  '<a href="https://adinserter.pro/documentation" style="text-decoration: none; box-shadow: 0 0 0;" target="_blank">',
4321
  '</a>',
4326
  '<a href="https://adinserter.pro/documentation/common-settings" style="text-decoration: none; box-shadow: 0 0 0;" target="_blank">',
4327
  '</a>'
4328
  ); ?>
4329
+ </div>
4330
  <div>
4331
  <?php /* translators: %s: HTML tags */ printf (__('%s New to %s AdSense? %s %s %s Connect your site %s - Advanced %s AdSense code: %s %s In-feed ads, %s %s Auto ads, %s %s AMP ads %s', 'ad-inserter'),
4332
  '<strong>',
4371
  ?>
4372
 
4373
  <div class="ai-form rounded no-select feature-list" style="background: #fff;">
4374
+
4375
+ <?php if (!wp_is_mobile()): ?>
4376
+ <div id="ai-sidebar-right">
4377
+ <div class="ai-image-left">
4378
  <?php switch ($version) {
4379
  case 0: ?>
4380
+ <!-- <a href="https://adinserter.pro/" class="clear-link" title="Automate ad placement on posts and pages" target="_blank"><img id="ai-pro-1" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>icon-256x256.jpg" /></a>-->
4381
+ <a href="http://bit.ly/ezoic-ads" class="clear-link" title="<?php _e ('Looking for AdSense alternative?', 'ad-inserter'); ?>" target="_blank"><img id="ai-ez-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ez-2.jpg" /></a>
4382
  <?php break; case 1: ?>
4383
+ <a href='http://bit.ly/info_links' class="clear-link" title="<?php _e ('Use Infolinks ads with Adsense to earn more', 'ad-inserter'); ?>" target="_blank"><img id="ai-info-3" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>info-3.jpg" /></a>
4384
  <?php break; case 2: ?>
4385
+ <a href='http://bit.ly/media_NET' class="clear-link" title="<?php _e ('Looking for AdSense alternative?', 'ad-inserter'); ?>" target="_blank"><img id="ai-media-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>contextual-2.jpg" /></a>
4386
  <?php break; case 3: ?>
4387
+ <a href='http://bit.ly/media_NET' class="clear-link" title="<?php _e ('Looking for AdSense alternative?', 'ad-inserter'); ?>" target="_blank"><img id="ai-media-3" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>contextual-3.png" /></a>
4388
  <?php break;
4389
  } ?>
4390
  </div>
4391
+ <div class="ai-image-right">
4392
  <?php switch ($version) {
4393
  case 0:
4394
  ?>
4395
+ <a href='http://bit.ly/info_links' class="clear-link" title="<?php _e ('Use Infolinks ads with Adsense to earn more', 'ad-inserter'); ?>" target="_blank"><img id="ai-info-3" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>info-3.jpg" /></a>
4396
  <?php break;
4397
  case 1:
4398
  ?>
4399
+ <a href="https://adinserter.pro/documentation/ad-impression-and-click-tracking" class="clear-link" title="<?php _e ('A/B testing - Track ad impressions and clicks', 'ad-inserter'); ?>" target="_blank"><img id="ai-pro-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ai-charts-250.png" /></a>
4400
  <?php break;
4401
  case 2:
4402
  ?>
4403
+ <a href="http://bit.ly/ezoic-ads" class="clear-link" title="<?php _e ('Looking for AdSense alternative?', 'ad-inserter'); ?>" target="_blank"><img id="ai-ez-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ez-2.jpg" /></a>
4404
  <?php break;
4405
  case 3:
4406
  ?>
4407
+ <a href='https://adinserter.pro/documentation/code-preview' class="clear-link" title="<?php _e ('Code preview with visual CSS editor', 'ad-inserter'); ?>" target="_blank"><img id="ai-preview" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ai-preview-250.png" /></a>
4408
  <?php break;
4409
  } ?>
4410
  </div>
4411
+ <div style="clear: both;"></div>
4412
+ <div class="ai-image-left">
4413
  <?php switch ($version) {
4414
  case 0: ?>
4415
+ <a href='http://bit.ly/media_NET' class="clear-link" title="<?php _e ('Looking for AdSense alternative?', 'ad-inserter'); ?>" target="_blank"><img id="ai-media-3" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>contextual-3.png" /></a>
4416
  <?php break; case 1: ?>
4417
+ <!-- <a href="https://adinserter.pro/documentation/black-and-white-lists#geo-targeting" class="clear-link" title="Geotargeting - black/white-list countries" target="_blank"><img id="ai-pro-3" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ai-countries-250.png" /></a>-->
4418
+ <a href='http://bit.ly/media_NET' class="clear-link" title="<?php _e ('Looking for AdSense alternative?', 'ad-inserter'); ?>" target="_blank"><img id="ai-media-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>contextual-2.jpg" /></a>
4419
  <?php break; case 2: ?>
4420
+ <!-- <a href="https://adinserter.pro/documentation/black-and-white-lists#geo-targeting" class="clear-link" title="Geotargeting - black/white-list countries" target="_blank"><img id="ai-pro-3" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ai-countries-250.png" /></a>-->
4421
+ <a href='http://bit.ly/info_links' class="clear-link" title="<?php _e ('Use Infolinks ads with Adsense to earn more', 'ad-inserter'); ?>" target="_blank"><img id="ai-info-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>info-2.jpg" /></a>
4422
  <?php break; case 3: ?>
4423
+ <!-- <a href="https://adinserter.pro/documentation/black-and-white-lists#geo-targeting" class="clear-link" title="Geotargeting - black/white-list countries" target="_blank"><img id="ai-pro-3" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ai-countries-250.png" /></a>-->
4424
+ <a href="http://bit.ly/ezoic-ads" class="clear-link" title="<?php _e ('Looking for AdSense alternative?', 'ad-inserter'); ?>" target="_blank"><img id="ai-ez-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ez-2.jpg" /></a>
4425
  <?php break;
4426
  } ?>
4427
  </div>
4428
+ <div class="ai-image-right">
4429
  <?php switch ($version) {
4430
  case 0:
4431
  ?>
4432
+ <a href='https://adinserter.pro/documentation/code-preview' class="clear-link" title="<?php _e ('Code preview with visual CSS editor', 'ad-inserter'); ?>" target="_blank"><img id="ai-preview" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ai-preview-250.png" /></a>
4433
  <?php break;
4434
  case 1:
4435
  ?>
4436
+ <a href="http://bit.ly/ezoic-ads" class="clear-link" title="<?php _e ('Looking for AdSense alternative?', 'ad-inserter'); ?>" target="_blank"><img id="ai-ez-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ez-2.jpg" /></a>
4437
  <?php break;
4438
  case 2:
4439
  ?>
4440
+ <a href="https://adinserter.pro/documentation/ad-impression-and-click-tracking" class="clear-link" title="<?php _e ('A/B testing - Track ad impressions and clicks', 'ad-inserter'); ?>" target="_blank"><img id="ai-pro-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>ai-charts-250.png" /></a>
4441
  <?php break;
4442
  case 3:
4443
  ?>
4444
+ <a href='http://bit.ly/info_links' class="clear-link" title="<?php _e ('Use Infolinks ads with Adsense to earn more', 'ad-inserter'); ?>" target="_blank"><img id="ai-info-2" src="<?php echo AD_INSERTER_PLUGIN_IMAGES_URL; ?>info-2.jpg" /></a>
4445
  <?php break;
4446
  } ?>
4447
  </div>
4448
+ <div style="clear: both;"></div>
4449
  </div>
4450
+ <?php endif; ?>
4451
 
4452
  <h3 style="text-align: justify;"><?php _e ('Looking for Pro Ad Management plugin?', 'ad-inserter'); ?></h3>
4453
  <h4 style="text-align: justify;"><?php _e ('To Optimally Monetize your WordPress website?', 'ad-inserter'); ?></h4>
4454
 
4455
+ <ul class="ai-help">
4456
  <li><?php /* translators: %s HTML tags */ printf (__('%s AdSense Integration %s', 'ad-inserter'), '<a href="https://adinserter.pro/documentation/adsense-ads#integration" class="simple-link" target="_blank">', '</a>'); ?></li>
4457
  <li><?php /* translators: %s HTML tags */ printf (__('Syntax highlighting %s editor %s', 'ad-inserter'), '<a href="https://adinserter.pro/documentation/code-editing" class="simple-link" target="_blank">', '</a>'); ?></li>
4458
  <li><?php /* translators: %s HTML tags */ printf (__('%s Code preview %s with visual CSS editor', 'ad-inserter'), '<a href="https://adinserter.pro/documentation/code-preview" class="simple-link" target="_blank">', '</a>'); ?></li>