CTX Feed – WooCommerce Product Feed Manager Plugin - Version 4.5.2

Version Description

(2022-09-15) = * Fixed: Both Product Query Type class missing. * Fixed: Pinterest RSS Board Feed changed from atom to RSS version 2.0. * Fixed: Feed Import & Export issue fixed. * Added: Download file module added.

Download this release

Release Info

Developer wahid0003
Plugin Icon 128x128 CTX Feed – WooCommerce Product Feed Manager Plugin
Version 4.5.2
Comparing to
See all releases

Code changes from version 4.5.1 to 4.5.2

Files changed (136) hide show
  1. README.txt +9 -3
  2. V5/Common/DownloadFiles.php +10 -10
  3. V5/Common/DropDownOptions.php +131 -43
  4. V5/Feed/GoogleFeed.php +12 -12
  5. V5/Filter/AdvanceFilter.php +2 -2
  6. V5/Filter/Filter.php +2 -2
  7. V5/Filter/ValidateProduct.php +10 -10
  8. V5/Merchant/MerchantAttributesFactory.php +2 -0
  9. V5/Override/Advance.php +12 -12
  10. V5/Product/ProductFactory.php +16 -16
  11. V5/Utility/CTX_WC_Log_Handler.php +63 -61
  12. V5/Utility/Config.php +111 -103
  13. V5/Utility/DropDown.php +85 -65
  14. V5/Utility/Logs.php +31 -44
  15. admin/js/localization/messages_ar.js +0 -33
  16. admin/js/localization/messages_ar.min.js +0 -4
  17. admin/js/localization/messages_bg.js +0 -33
  18. admin/js/localization/messages_bg.min.js +0 -4
  19. admin/js/localization/messages_bn_BD.js +0 -33
  20. admin/js/localization/messages_bn_BD.min.js +0 -4
  21. admin/js/localization/messages_ca.js +0 -33
  22. admin/js/localization/messages_ca.min.js +0 -4
  23. admin/js/localization/messages_cs.js +0 -33
  24. admin/js/localization/messages_cs.min.js +0 -4
  25. admin/js/localization/messages_da.js +0 -30
  26. admin/js/localization/messages_da.min.js +0 -4
  27. admin/js/localization/messages_de.js +0 -30
  28. admin/js/localization/messages_de.min.js +0 -4
  29. admin/js/localization/messages_el.js +0 -33
  30. admin/js/localization/messages_el.min.js +0 -4
  31. admin/js/localization/messages_es.js +0 -36
  32. admin/js/localization/messages_es.min.js +0 -4
  33. admin/js/localization/messages_es_AR.js +0 -37
  34. admin/js/localization/messages_es_AR.min.js +0 -4
  35. admin/js/localization/messages_es_PE.js +0 -37
  36. admin/js/localization/messages_es_PE.min.js +0 -4
  37. admin/js/localization/messages_et.js +0 -31
  38. admin/js/localization/messages_et.min.js +0 -4
  39. admin/js/localization/messages_eu.js +0 -33
  40. admin/js/localization/messages_eu.min.js +0 -4
  41. admin/js/localization/messages_fa.js +0 -36
  42. admin/js/localization/messages_fa.min.js +0 -4
  43. admin/js/localization/messages_fi.js +0 -31
  44. admin/js/localization/messages_fi.min.js +0 -4
  45. admin/js/localization/messages_fr.js +0 -59
  46. admin/js/localization/messages_fr.min.js +0 -4
  47. admin/js/localization/messages_ge.js +0 -33
  48. admin/js/localization/messages_ge.min.js +0 -4
  49. admin/js/localization/messages_gl.js +0 -38
  50. admin/js/localization/messages_gl.min.js +0 -4
  51. admin/js/localization/messages_he.js +0 -33
  52. admin/js/localization/messages_he.min.js +0 -4
  53. admin/js/localization/messages_hr.js +0 -33
  54. admin/js/localization/messages_hr.min.js +0 -4
  55. admin/js/localization/messages_hu.js +0 -32
  56. admin/js/localization/messages_hu.min.js +0 -4
  57. admin/js/localization/messages_hy_AM.js +0 -33
  58. admin/js/localization/messages_hy_AM.min.js +0 -4
  59. admin/js/localization/messages_id.js +0 -32
  60. admin/js/localization/messages_id.min.js +0 -4
  61. admin/js/localization/messages_is.js +0 -31
  62. admin/js/localization/messages_is.min.js +0 -4
  63. admin/js/localization/messages_it.js +0 -37
  64. admin/js/localization/messages_it.min.js +0 -4
  65. admin/js/localization/messages_ja.js +0 -33
  66. admin/js/localization/messages_ja.min.js +0 -4
  67. admin/js/localization/messages_ka.js +0 -33
  68. admin/js/localization/messages_ka.min.js +0 -4
  69. admin/js/localization/messages_kk.js +0 -33
  70. admin/js/localization/messages_kk.min.js +0 -4
  71. admin/js/localization/messages_ko.js +0 -33
  72. admin/js/localization/messages_ko.min.js +0 -4
  73. admin/js/localization/messages_lt.js +0 -33
  74. admin/js/localization/messages_lt.min.js +0 -4
  75. admin/js/localization/messages_lv.js +0 -33
  76. admin/js/localization/messages_lv.min.js +0 -4
  77. admin/js/localization/messages_my.js +0 -33
  78. admin/js/localization/messages_my.min.js +0 -4
  79. admin/js/localization/messages_nl.js +0 -43
  80. admin/js/localization/messages_nl.min.js +0 -4
  81. admin/js/localization/messages_no.js +0 -33
  82. admin/js/localization/messages_no.min.js +0 -4
  83. admin/js/localization/messages_pl.js +0 -33
  84. admin/js/localization/messages_pl.min.js +0 -4
  85. admin/js/localization/messages_pt_BR.js +0 -39
  86. admin/js/localization/messages_pt_BR.min.js +0 -4
  87. admin/js/localization/messages_pt_PT.js +0 -37
  88. admin/js/localization/messages_pt_PT.min.js +0 -4
  89. admin/js/localization/messages_ro.js +0 -33
  90. admin/js/localization/messages_ro.min.js +0 -4
  91. admin/js/localization/messages_ru.js +0 -33
  92. admin/js/localization/messages_ru.min.js +0 -4
  93. admin/js/localization/messages_si.js +0 -33
  94. admin/js/localization/messages_si.min.js +0 -4
  95. admin/js/localization/messages_sk.js +0 -30
  96. admin/js/localization/messages_sk.min.js +0 -4
  97. admin/js/localization/messages_sl.js +0 -33
  98. admin/js/localization/messages_sl.min.js +0 -4
  99. admin/js/localization/messages_sr.js +0 -33
  100. admin/js/localization/messages_sr.min.js +0 -4
  101. admin/js/localization/messages_sr_lat.js +0 -33
  102. admin/js/localization/messages_sr_lat.min.js +0 -4
  103. admin/js/localization/messages_sv.js +0 -31
  104. admin/js/localization/messages_sv.min.js +0 -4
  105. admin/js/localization/messages_th.js +0 -33
  106. admin/js/localization/messages_th.min.js +0 -4
  107. admin/js/localization/messages_tj.js +0 -33
  108. admin/js/localization/messages_tj.min.js +0 -4
  109. admin/js/localization/messages_tr.js +0 -34
  110. admin/js/localization/messages_tr.min.js +0 -4
  111. admin/js/localization/messages_uk.js +0 -33
  112. admin/js/localization/messages_uk.min.js +0 -4
  113. admin/js/localization/messages_vi.js +0 -33
  114. admin/js/localization/messages_vi.min.js +0 -4
  115. admin/js/localization/messages_zh.js +0 -33
  116. admin/js/localization/messages_zh.min.js +0 -4
  117. admin/js/localization/messages_zh_TW.js +0 -34
  118. admin/js/localization/messages_zh_TW.min.js +0 -4
  119. admin/js/localization/methods_de.js +0 -22
  120. admin/js/localization/methods_de.min.js +0 -4
  121. admin/js/localization/methods_es_CL.js +0 -22
  122. admin/js/localization/methods_es_CL.min.js +0 -4
  123. admin/js/localization/methods_fi.js +0 -22
  124. admin/js/localization/methods_fi.min.js +0 -4
  125. admin/js/localization/methods_nl.js +0 -19
  126. admin/js/localization/methods_nl.min.js +0 -4
  127. admin/js/localization/methods_pt.js +0 -19
  128. admin/js/localization/methods_pt.min.js +0 -4
  129. admin/js/woo-feed-admin-pro.js +173 -20
  130. admin/partials/woo-feed-add-option.php +5 -2
  131. admin/partials/woo-feed-pro-vs-free.php +1 -1
  132. includes/action-handler.php +17 -18
  133. includes/classes/class-woo-feed-constants.php +4 -2
  134. includes/classes/class-woo-feed-merchant.php +1 -1
  135. includes/helper.php +3 -3
  136. woo-feed.php +163 -153
README.txt CHANGED
@@ -1,11 +1,11 @@
1
  === CTX Feed – WooCommerce Product Feed Manager Plugin ===
2
- Contributors: wahid0003, webappick, mhamudul_hk, shuvo586, nayanchamp7, mrinal013, anwarwebappick
3
  Donate link: https://webappick.com
4
  Tags: WooCommerce Product Feed, WooCommerce, Google Shopping, Google Merchant, Facebook Catalog, Bing Shopping, Instagram Shop, Skroutz Data Feed, XML Feed, CSV Feed, TXT Feed, Product Feed
5
  Requires at least: 4.4
6
  Tested Up To: 6.0
7
  Requires PHP: 5.6
8
- Stable tag: 4.5.1
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -590,6 +590,12 @@ Using pro version:
590
 
591
  == Changelog ==
592
 
 
 
 
 
 
 
593
  = 4.5.1 (2022-08-24) =
594
  * autoload file not found issue fixed.
595
 
@@ -2073,7 +2079,7 @@ Using pro version:
2073
  * URL encoding issue with suffix fixed
2074
 
2075
  = 2.2.21(2018-09-19) =
2076
- * Cron schedule added to update feed individually
2077
 
2078
  = 2.2.19(2018-07-31) =
2079
  * Product description default limit set to 5000 for Google Merchant and Facebook template
1
  === CTX Feed – WooCommerce Product Feed Manager Plugin ===
2
+ Contributors: wahid0003, webappick, shuvo586, nayanchamp7, mrinal013
3
  Donate link: https://webappick.com
4
  Tags: WooCommerce Product Feed, WooCommerce, Google Shopping, Google Merchant, Facebook Catalog, Bing Shopping, Instagram Shop, Skroutz Data Feed, XML Feed, CSV Feed, TXT Feed, Product Feed
5
  Requires at least: 4.4
6
  Tested Up To: 6.0
7
  Requires PHP: 5.6
8
+ Stable tag: 4.5.2
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
590
 
591
  == Changelog ==
592
 
593
+ = 4.5.2 (2022-09-15) =
594
+ * Fixed: Both Product Query Type class missing.
595
+ * Fixed: Pinterest RSS Board Feed changed from atom to RSS version 2.0.
596
+ * Fixed: Feed Import & Export issue fixed.
597
+ * Added: Download file module added.
598
+
599
  = 4.5.1 (2022-08-24) =
600
  * autoload file not found issue fixed.
601
 
2079
  * URL encoding issue with suffix fixed
2080
 
2081
  = 2.2.21(2018-09-19) =
2082
+ * Cron schedule added to update feed individually
2083
 
2084
  = 2.2.19(2018-07-31) =
2085
  * Product description default limit set to 5000 for Google Merchant and Facebook template
V5/Common/DownloadFiles.php CHANGED
@@ -13,12 +13,12 @@ use CTXFeed\V5\Utility\CTX_WC_Log_Handler;
13
  * @subpackage CTXFeed\V5\Common
14
  */
15
  class DownloadFiles {
16
-
17
  public function __construct() {
18
  add_action( 'admin_post_wf_download_feed_log', [ $this, 'download_log' ], 10 );
19
  add_action( 'admin_post_wf_download_feed', [ $this, 'download_feed' ], 10 );
20
  }
21
-
22
  /**
23
  * Download Feed Log.
24
  *
@@ -34,25 +34,25 @@ class DownloadFiles {
34
  $feed_name = sanitize_text_field( wp_unslash( $_REQUEST['feed'] ) );
35
  $feed_name = str_replace( 'wf_feed_', '', $feed_name );
36
  $log_file_path = CTX_WC_Log_Handler::get_log_file_path( $feed_name );
37
-
38
  $file_name = sprintf(
39
  '%s-%s-%s.log',
40
  sanitize_title( $feed_name ),
41
  gmdate( 'Y-m-d', time() ),
42
  time()
43
  );
44
-
45
  if ( ! file_exists( $log_file_path ) ) {
46
  exit( wp_redirect( add_query_arg( 'wpf_notice_code', 'log_file_not_found', admin_url( 'admin.php?page=webappick-manage-feeds' ) ) ) );
47
  }
48
-
49
  $fileDownload = new FileDownload( fopen( $log_file_path, 'rb' ) );
50
  $fileDownload->sendDownload( $file_name );
51
  } else {
52
  exit( wp_redirect( add_query_arg( 'wpf_notice_code', 'log_file_not_found', admin_url( 'admin.php?page=webappick-manage-feeds' ) ) ) );
53
  }
54
  }
55
-
56
  /**
57
  * Download feed.
58
  *
@@ -66,11 +66,11 @@ class DownloadFiles {
66
  $feed_name = sanitize_text_field( wp_unslash( $_REQUEST['feed'] ) );
67
  /* your file, somewhere opened with fopen() or tmpfile(), etc.. */
68
  $config = Factory::get_feed_info( $feed_name );
69
-
70
  if ( ! file_exists( $config->get_feed_path() ) ) {
71
  exit( wp_redirect( add_query_arg( 'wpf_notice_code', 'feed_download_failed', admin_url( 'admin.php?page=webappick-manage-feeds' ) ) ) );
72
  }
73
-
74
  $fileData = fopen( $config->get_feed_path(), 'rb' );
75
  $fileDownload = new FileDownload( $fileData );
76
  $fileDownload->sendDownload( $config->get_feed_file_name() );
@@ -78,5 +78,5 @@ class DownloadFiles {
78
  exit( wp_redirect( add_query_arg( 'wpf_notice_code', 'feed_download_failed', admin_url( 'admin.php?page=webappick-manage-feeds' ) ) ) );
79
  }
80
  }
81
-
82
- }
13
  * @subpackage CTXFeed\V5\Common
14
  */
15
  class DownloadFiles {
16
+
17
  public function __construct() {
18
  add_action( 'admin_post_wf_download_feed_log', [ $this, 'download_log' ], 10 );
19
  add_action( 'admin_post_wf_download_feed', [ $this, 'download_feed' ], 10 );
20
  }
21
+
22
  /**
23
  * Download Feed Log.
24
  *
34
  $feed_name = sanitize_text_field( wp_unslash( $_REQUEST['feed'] ) );
35
  $feed_name = str_replace( 'wf_feed_', '', $feed_name );
36
  $log_file_path = CTX_WC_Log_Handler::get_log_file_path( $feed_name );
37
+
38
  $file_name = sprintf(
39
  '%s-%s-%s.log',
40
  sanitize_title( $feed_name ),
41
  gmdate( 'Y-m-d', time() ),
42
  time()
43
  );
44
+
45
  if ( ! file_exists( $log_file_path ) ) {
46
  exit( wp_redirect( add_query_arg( 'wpf_notice_code', 'log_file_not_found', admin_url( 'admin.php?page=webappick-manage-feeds' ) ) ) );
47
  }
48
+
49
  $fileDownload = new FileDownload( fopen( $log_file_path, 'rb' ) );
50
  $fileDownload->sendDownload( $file_name );
51
  } else {
52
  exit( wp_redirect( add_query_arg( 'wpf_notice_code', 'log_file_not_found', admin_url( 'admin.php?page=webappick-manage-feeds' ) ) ) );
53
  }
54
  }
55
+
56
  /**
57
  * Download feed.
58
  *
66
  $feed_name = sanitize_text_field( wp_unslash( $_REQUEST['feed'] ) );
67
  /* your file, somewhere opened with fopen() or tmpfile(), etc.. */
68
  $config = Factory::get_feed_info( $feed_name );
69
+
70
  if ( ! file_exists( $config->get_feed_path() ) ) {
71
  exit( wp_redirect( add_query_arg( 'wpf_notice_code', 'feed_download_failed', admin_url( 'admin.php?page=webappick-manage-feeds' ) ) ) );
72
  }
73
+
74
  $fileData = fopen( $config->get_feed_path(), 'rb' );
75
  $fileDownload = new FileDownload( $fileData );
76
  $fileDownload->sendDownload( $config->get_feed_file_name() );
78
  exit( wp_redirect( add_query_arg( 'wpf_notice_code', 'feed_download_failed', admin_url( 'admin.php?page=webappick-manage-feeds' ) ) ) );
79
  }
80
  }
81
+
82
+ }
V5/Common/DropDownOptions.php CHANGED
@@ -1,14 +1,21 @@
1
  <?php
2
 
3
  namespace CTXFeed\V5\Common;
 
4
  use CTXFeed\V5\Product\ProductAttributeFactory;
5
  use CTXFeed\V5\Utility\DropDown;
6
 
7
  /**
8
- * @package CTXFeed
9
  * @subpackage CTXFeed\V5\Common\DropDownOptions
10
  */
11
  class DropDownOptions {
 
 
 
 
 
 
12
  /**
13
  * Country List
14
  *
@@ -20,7 +27,7 @@ class DropDownOptions {
20
  * @author Nazrul Islam Nayan
21
  * @updated 15-07-2022
22
  */
23
- public static function feed_country( $dropdown = false, $selected = '' ) {
24
  $countries = array(
25
  'AF' => 'Afghanistan',
26
  'AX' => 'Aland Islands',
@@ -269,10 +276,10 @@ class DropDownOptions {
269
  'ZM' => 'Zambia',
270
  'ZW' => 'Zimbabwe',
271
  );
272
-
273
  return self::Create_DropDown_IF_Needed( $countries, $dropdown, $selected );
274
  }
275
-
276
  /**
277
  * Feed Template List.
278
  *
@@ -281,7 +288,7 @@ class DropDownOptions {
281
  *
282
  * @return array|false|mixed|string|string[]
283
  */
284
- public static function provider( $dropdown = false, $selected = '' ) {
285
  $merchant = [
286
  1 => [
287
  'optionGroup' => 'Custom Templates',
@@ -417,10 +424,10 @@ class DropDownOptions {
417
  ]
418
  ],
419
  ];
420
-
421
  return self::Create_DropDown_IF_Needed( $merchant, $dropdown, $selected );
422
  }
423
-
424
  /**
425
  * Feed File Type List.
426
  *
@@ -429,7 +436,7 @@ class DropDownOptions {
429
  *
430
  * @return array|false|mixed|string|string[]
431
  */
432
- public static function file_types( $dropdown = false, $selected = '' ) {
433
  $types = array(
434
  'xml' => 'XML',
435
  'csv' => 'CSV',
@@ -438,10 +445,10 @@ class DropDownOptions {
438
  'txt' => 'TXT',
439
  'json' => 'JSON',
440
  );
441
-
442
  return self::Create_DropDown_IF_Needed( $types, $dropdown, $selected );
443
  }
444
-
445
  /**
446
  * Variation Options.
447
  *
@@ -450,7 +457,7 @@ class DropDownOptions {
450
  *
451
  * @return array|false|mixed|string|string[]
452
  */
453
- public static function include_variation( $dropdown = false, $selected = '' ) {
454
  $variation_options = array(
455
  'n' => esc_html__( 'Variable Products (Parent)', 'woo-feed' ),
456
  'y' => esc_html__( 'All Variations', 'woo-feed' ),
@@ -460,10 +467,10 @@ class DropDownOptions {
460
  'last' => esc_html__( 'Last Variation', 'woo-feed' ),
461
  'both' => esc_html__( 'Variable + Variations', 'woo-feed' ),
462
  );
463
-
464
  return self::Create_DropDown_IF_Needed( $variation_options, $dropdown, $selected );
465
  }
466
-
467
  /**
468
  * Variation Price Options.
469
  *
@@ -472,16 +479,16 @@ class DropDownOptions {
472
  *
473
  * @return array|false|mixed|string|string[]
474
  */
475
- public static function variation_price( $dropdown = false, $selected = '' ) {
476
  $variation_price = array(
477
  'first' => esc_html__( 'First Variation Price', 'woo-feed' ),
478
  'max' => esc_html__( 'Max Variation Price', 'woo-feed' ),
479
  'min' => esc_html__( 'Min Variation Price', 'woo-feed' ),
480
  );
481
-
482
  return self::Create_DropDown_IF_Needed( $variation_price, $dropdown, $selected );
483
  }
484
-
485
  /**
486
  * Variation Quantity Options.
487
  *
@@ -490,16 +497,16 @@ class DropDownOptions {
490
  *
491
  * @return array|false|mixed|string|string[]
492
  */
493
- public static function variation_quantity( $dropdown = false, $selected = '' ) {
494
  $variation_quantity = array(
495
  'first' => esc_html__( 'First Variation Price', 'woo-feed' ),
496
  'max' => esc_html__( 'Max Variation Price', 'woo-feed' ),
497
  'min' => esc_html__( 'Min Variation Price', 'woo-feed' ),
498
  );
499
-
500
  return self::Create_DropDown_IF_Needed( $variation_quantity, $dropdown, $selected );
501
  }
502
-
503
  /**
504
  * CSV Feed Delimiters.
505
  *
@@ -508,7 +515,7 @@ class DropDownOptions {
508
  *
509
  * @return array|false|mixed|string|string[]
510
  */
511
- public static function delimiters( $dropdown = false, $selected = '' ) {
512
  $delimiters = [
513
  ',' => 'Comma',
514
  ':' => 'Colon',
@@ -517,10 +524,10 @@ class DropDownOptions {
517
  ';' => 'Semi Colon',
518
  "\t" => 'TAB',
519
  ];
520
-
521
  return self::Create_DropDown_IF_Needed( $delimiters, $dropdown, $selected );
522
  }
523
-
524
  /**
525
  * CSV Feed Enclosure.
526
  *
@@ -529,16 +536,31 @@ class DropDownOptions {
529
  *
530
  * @return array|false|mixed|string|string[]
531
  */
532
- public static function enclosure( $dropdown = false, $selected = '' ) {
533
  $enclosure = [
534
  'double' => '"',
535
  'single' => '\'',
536
  ' ' => 'None',
537
  ];
538
-
539
  return self::Create_DropDown_IF_Needed( $enclosure, $dropdown, $selected );
540
  }
541
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
542
  /**
543
  * Product Attributes.
544
  *
@@ -547,13 +569,13 @@ class DropDownOptions {
547
  *
548
  * @return array|false|mixed|string|string[]
549
  */
550
- public static function product_attributes( $dropdown = false, $selected = '' ) {
551
  $attributes = ProductAttributeFactory::getAttributes();
552
  $cache_key = 'woo_feed_product_attribute_dropdown';
553
-
554
  return self::Create_DropDown_IF_Needed( $attributes, $dropdown, $selected, $cache_key, true );
555
  }
556
-
557
  /**
558
  * Comparing Condition. Used on Dynamic Attributes and
559
  *
@@ -562,8 +584,9 @@ class DropDownOptions {
562
  *
563
  * @return array|false|mixed|string|string[]
564
  */
565
- public static function conditions( $dropdown = false, $selected = '' ) {
566
  $conditions = array(
 
567
  '==' => __( 'is / equal', 'woo-feed' ),
568
  '!=' => __( 'is not / not equal', 'woo-feed' ),
569
  '>=' => __( 'equals or greater than', 'woo-feed' ),
@@ -574,10 +597,10 @@ class DropDownOptions {
574
  'nContains' => __( 'does not contain', 'woo-feed' ),
575
  'between' => __( 'between', 'woo-feed' ),
576
  );
577
-
578
  return self::Create_DropDown_IF_Needed( $conditions, $dropdown, $selected );
579
  }
580
-
581
  /**
582
  * Variation Query Type at Settings.
583
  *
@@ -586,15 +609,15 @@ class DropDownOptions {
586
  *
587
  * @return array|false|mixed|string|string[]
588
  */
589
- public static function variation_query_type( $dropdown = false, $selected = '' ) {
590
  $variation_query_type = [
591
  'individual' => __( 'Individual', 'woo-feed' ),
592
  'variable' => __( 'Variable Dependable', 'woo-feed' ),
593
  ];
594
-
595
  return self::Create_DropDown_IF_Needed( $variation_query_type, $dropdown, $selected );
596
  }
597
-
598
  /**
599
  * Product Query Type at Settings.
600
  *
@@ -603,34 +626,99 @@ class DropDownOptions {
603
  *
604
  * @return array|false|mixed|string|string[]
605
  */
606
- public static function product_query_type( $dropdown = false, $selected = '' ) {
607
  $product_query_type = [
608
  'wc' => __( 'WC_Product_Query', 'woo-feed' ),
609
  'wp' => __( 'WP_Query', 'woo-feed' ),
610
  'both' => __( 'Both', 'woo-feed' ),
611
  ];
612
-
613
  return self::Create_DropDown_IF_Needed( $product_query_type, $dropdown, $selected );
614
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
615
 
616
-
 
 
 
 
617
  /**
618
  * Make DropDown Option from array if needed else return the array.
619
  *
620
- * @param $array
621
- * @param $DropDownStatus
622
- * @param $selected
623
  * @param string $cache_key
624
- * @param bool $cache
625
  *
626
  * @return array|false|mixed|string|string[]
627
  */
628
  public static function Create_DropDown_IF_Needed( $array, $DropDownStatus, $selected, $cache_key = '', $cache = false ) {
 
629
  if ( $DropDownStatus ) {
630
  return Dropdown::Create( $array, $selected, $cache_key, $cache );
631
  }
632
-
633
  return $array;
634
  }
635
-
636
  }
1
  <?php
2
 
3
  namespace CTXFeed\V5\Common;
4
+
5
  use CTXFeed\V5\Product\ProductAttributeFactory;
6
  use CTXFeed\V5\Utility\DropDown;
7
 
8
  /**
9
+ * @package CTXFeed
10
  * @subpackage CTXFeed\V5\Common\DropDownOptions
11
  */
12
  class DropDownOptions {
13
+
14
+ /**
15
+ * Product Category
16
+ */
17
+ private static $cats;
18
+
19
  /**
20
  * Country List
21
  *
27
  * @author Nazrul Islam Nayan
28
  * @updated 15-07-2022
29
  */
30
+ public static function feed_country( $selected = '', $dropdown = true ) {
31
  $countries = array(
32
  'AF' => 'Afghanistan',
33
  'AX' => 'Aland Islands',
276
  'ZM' => 'Zambia',
277
  'ZW' => 'Zimbabwe',
278
  );
279
+
280
  return self::Create_DropDown_IF_Needed( $countries, $dropdown, $selected );
281
  }
282
+
283
  /**
284
  * Feed Template List.
285
  *
288
  *
289
  * @return array|false|mixed|string|string[]
290
  */
291
+ public static function provider( $selected = '', $dropdown = true ) {
292
  $merchant = [
293
  1 => [
294
  'optionGroup' => 'Custom Templates',
424
  ]
425
  ],
426
  ];
427
+
428
  return self::Create_DropDown_IF_Needed( $merchant, $dropdown, $selected );
429
  }
430
+
431
  /**
432
  * Feed File Type List.
433
  *
436
  *
437
  * @return array|false|mixed|string|string[]
438
  */
439
+ public static function file_types( $selected = '', $dropdown = true ) {
440
  $types = array(
441
  'xml' => 'XML',
442
  'csv' => 'CSV',
445
  'txt' => 'TXT',
446
  'json' => 'JSON',
447
  );
448
+
449
  return self::Create_DropDown_IF_Needed( $types, $dropdown, $selected );
450
  }
451
+
452
  /**
453
  * Variation Options.
454
  *
457
  *
458
  * @return array|false|mixed|string|string[]
459
  */
460
+ public static function include_variation( $selected = '', $dropdown = true ) {
461
  $variation_options = array(
462
  'n' => esc_html__( 'Variable Products (Parent)', 'woo-feed' ),
463
  'y' => esc_html__( 'All Variations', 'woo-feed' ),
467
  'last' => esc_html__( 'Last Variation', 'woo-feed' ),
468
  'both' => esc_html__( 'Variable + Variations', 'woo-feed' ),
469
  );
470
+
471
  return self::Create_DropDown_IF_Needed( $variation_options, $dropdown, $selected );
472
  }
473
+
474
  /**
475
  * Variation Price Options.
476
  *
479
  *
480
  * @return array|false|mixed|string|string[]
481
  */
482
+ public static function variation_price( $selected = '', $dropdown = true ) {
483
  $variation_price = array(
484
  'first' => esc_html__( 'First Variation Price', 'woo-feed' ),
485
  'max' => esc_html__( 'Max Variation Price', 'woo-feed' ),
486
  'min' => esc_html__( 'Min Variation Price', 'woo-feed' ),
487
  );
488
+
489
  return self::Create_DropDown_IF_Needed( $variation_price, $dropdown, $selected );
490
  }
491
+
492
  /**
493
  * Variation Quantity Options.
494
  *
497
  *
498
  * @return array|false|mixed|string|string[]
499
  */
500
+ public static function variation_quantity( $selected = '', $dropdown = true ) {
501
  $variation_quantity = array(
502
  'first' => esc_html__( 'First Variation Price', 'woo-feed' ),
503
  'max' => esc_html__( 'Max Variation Price', 'woo-feed' ),
504
  'min' => esc_html__( 'Min Variation Price', 'woo-feed' ),
505
  );
506
+
507
  return self::Create_DropDown_IF_Needed( $variation_quantity, $dropdown, $selected );
508
  }
509
+
510
  /**
511
  * CSV Feed Delimiters.
512
  *
515
  *
516
  * @return array|false|mixed|string|string[]
517
  */
518
+ public static function delimiters( $selected = '', $dropdown = true ) {
519
  $delimiters = [
520
  ',' => 'Comma',
521
  ':' => 'Colon',
524
  ';' => 'Semi Colon',
525
  "\t" => 'TAB',
526
  ];
527
+
528
  return self::Create_DropDown_IF_Needed( $delimiters, $dropdown, $selected );
529
  }
530
+
531
  /**
532
  * CSV Feed Enclosure.
533
  *
536
  *
537
  * @return array|false|mixed|string|string[]
538
  */
539
+ public static function enclosure( $selected = '', $dropdown = true ) {
540
  $enclosure = [
541
  'double' => '"',
542
  'single' => '\'',
543
  ' ' => 'None',
544
  ];
545
+
546
  return self::Create_DropDown_IF_Needed( $enclosure, $dropdown, $selected );
547
  }
548
+
549
+ /**
550
+ * Get Merchant attribute dropdown.
551
+ *
552
+ * @param $attributes
553
+ * @param string $selected
554
+ * @param bool $dropdown
555
+ *
556
+ * @return string|false
557
+ */
558
+ public static function merchant_attributes( $attributes, $selected = '', $dropdown = true ) {
559
+ $cache_key = 'ctx_merchant_attribute_dropdown_' . $selected;
560
+
561
+ return self::Create_DropDown_IF_Needed( $attributes, $dropdown, $selected, $cache_key, true );
562
+ }
563
+
564
  /**
565
  * Product Attributes.
566
  *
569
  *
570
  * @return array|false|mixed|string|string[]
571
  */
572
+ public static function product_attributes( $selected = '', $dropdown = true ) {
573
  $attributes = ProductAttributeFactory::getAttributes();
574
  $cache_key = 'woo_feed_product_attribute_dropdown';
575
+
576
  return self::Create_DropDown_IF_Needed( $attributes, $dropdown, $selected, $cache_key, true );
577
  }
578
+
579
  /**
580
  * Comparing Condition. Used on Dynamic Attributes and
581
  *
584
  *
585
  * @return array|false|mixed|string|string[]
586
  */
587
+ public static function conditions( $selected = '', $dropdown = true ) {
588
  $conditions = array(
589
+ '' => __( 'Select Condition' ),
590
  '==' => __( 'is / equal', 'woo-feed' ),
591
  '!=' => __( 'is not / not equal', 'woo-feed' ),
592
  '>=' => __( 'equals or greater than', 'woo-feed' ),
597
  'nContains' => __( 'does not contain', 'woo-feed' ),
598
  'between' => __( 'between', 'woo-feed' ),
599
  );
600
+
601
  return self::Create_DropDown_IF_Needed( $conditions, $dropdown, $selected );
602
  }
603
+
604
  /**
605
  * Variation Query Type at Settings.
606
  *
609
  *
610
  * @return array|false|mixed|string|string[]
611
  */
612
+ public static function variation_query_type( $selected = '', $dropdown = false ) {
613
  $variation_query_type = [
614
  'individual' => __( 'Individual', 'woo-feed' ),
615
  'variable' => __( 'Variable Dependable', 'woo-feed' ),
616
  ];
617
+
618
  return self::Create_DropDown_IF_Needed( $variation_query_type, $dropdown, $selected );
619
  }
620
+
621
  /**
622
  * Product Query Type at Settings.
623
  *
626
  *
627
  * @return array|false|mixed|string|string[]
628
  */
629
+ public static function product_query_type( $selected = '', $dropdown = false ) {
630
  $product_query_type = [
631
  'wc' => __( 'WC_Product_Query', 'woo-feed' ),
632
  'wp' => __( 'WP_Query', 'woo-feed' ),
633
  'both' => __( 'Both', 'woo-feed' ),
634
  ];
635
+
636
  return self::Create_DropDown_IF_Needed( $product_query_type, $dropdown, $selected );
637
  }
638
+
639
+ /**
640
+ * Get all WP Options list.
641
+ *
642
+ * @param $dropdown
643
+ * @param $selected
644
+ *
645
+ * @return array|false|mixed|string|string[]
646
+ */
647
+ public static function get_options( $selected = '', $dropdown = false ) {
648
+ $options = [];
649
+ $getOptions = wp_load_alloptions();
650
+
651
+ if ( ! empty( $getOptions ) ) {
652
+ $options[''] = "Select an Option";
653
+ foreach ( $getOptions as $key => $option ) {
654
+ $options[ $key ] = $key;
655
+ }
656
+ }
657
+
658
+ return self::Create_DropDown_IF_Needed( $options, $dropdown, $selected );
659
+ }
660
+
661
+ /**
662
+ * Get Product Categories
663
+ *
664
+ * @param $dropdown
665
+ * @param $selected
666
+ *
667
+ * @return void
668
+ */
669
+ /**
670
+ * Get All Product Categories
671
+ *
672
+ * @param int $parent Category Parent ID.
673
+ * @param $dropdown
674
+ * @param $selected
675
+ *
676
+ * @return array
677
+ */
678
+ public static function get_categories( $parent = 0, $dropdown = true, $selected = [] ) {
679
+
680
+ $args = [
681
+ 'taxonomy' => 'product_cat',
682
+ 'parent' => $parent,
683
+ 'orderby' => 'term_group',
684
+ 'show_count' => 1,
685
+ 'pad_counts' => 1,
686
+ 'hierarchical' => 1,
687
+ 'title_li' => '',
688
+ 'hide_empty' => 0,
689
+ ];
690
+
691
+ $categories = get_categories( $args );
692
+ if ( ! empty( $categories ) ) {
693
+ foreach ( $categories as $cat ) {
694
+ self::$cats[ $cat->slug ] = $cat->name;
695
+ self::get_categories( $cat->term_id );
696
+ }
697
+ }
698
 
699
+ // return self::$cats;
700
+ return self::Create_DropDown_IF_Needed( self::$cats, $dropdown, $selected );
701
+ }
702
+
703
+
704
  /**
705
  * Make DropDown Option from array if needed else return the array.
706
  *
707
+ * @param $array
708
+ * @param $DropDownStatus
709
+ * @param $selected
710
  * @param string $cache_key
711
+ * @param bool $cache
712
  *
713
  * @return array|false|mixed|string|string[]
714
  */
715
  public static function Create_DropDown_IF_Needed( $array, $DropDownStatus, $selected, $cache_key = '', $cache = false ) {
716
+
717
  if ( $DropDownStatus ) {
718
  return Dropdown::Create( $array, $selected, $cache_key, $cache );
719
  }
720
+
721
  return $array;
722
  }
723
+
724
  }
V5/Feed/GoogleFeed.php CHANGED
@@ -22,13 +22,13 @@ class GoogleFeed implements FeedInterface {
22
  * @var array $structure Contain Feed Structure.
23
  */
24
  private $structure;
25
-
26
  public function __construct( $ids, $config ) {
27
  $this->ids = $ids;
28
  $this->config = $config;
29
  $this->structure = FeedFactory::get_structure( $config );
30
  }
31
-
32
  /**
33
  * Get Feed Body.
34
  *
@@ -36,10 +36,10 @@ class GoogleFeed implements FeedInterface {
36
  */
37
  public function get_feed() {
38
  $feed = ProductFactory::get_content( $this->ids, $this->config, $this->structure );
39
-
40
  return $feed->make_body();
41
  }
42
-
43
  /**
44
  * Get Feed Header.
45
  *
@@ -48,10 +48,10 @@ class GoogleFeed implements FeedInterface {
48
  public function get_header() {
49
  $feed = FileFactory::GetData( $this->structure, $this->config );
50
  $feed = $feed->make_header_footer();
51
-
52
  return $feed['header'];
53
  }
54
-
55
  /**
56
  * Get Feed Footer.
57
  *
@@ -60,10 +60,10 @@ class GoogleFeed implements FeedInterface {
60
  public function get_footer() {
61
  $feed = FileFactory::GetData( $this->ids, $this->config );
62
  $feed = $feed->make_header_footer();
63
-
64
  return $feed['footer'];
65
  }
66
-
67
  /**
68
  * @param $ids
69
  * @param $config
@@ -73,8 +73,8 @@ class GoogleFeed implements FeedInterface {
73
  */
74
  // private function get_content( $ids, $config, $structure ) {
75
  // $info = [];
76
- // Logs::log_feed_process( $config->filename, 'Getting Products Information.' );
77
- // Logs::log_feed_process( $config->filename, 'Validating Product' );
78
  //
79
  // foreach ( $ids as $id ) {
80
  // $product = wc_get_product( $id );
@@ -88,7 +88,7 @@ class GoogleFeed implements FeedInterface {
88
  //
89
  // return FileFactory::GetData( $info, $config );
90
  // }
91
-
92
  /**
93
  * @param $product
94
  * @param $structure
@@ -118,4 +118,4 @@ class GoogleFeed implements FeedInterface {
118
  //
119
  // return $value;
120
  // }
121
- }
22
  * @var array $structure Contain Feed Structure.
23
  */
24
  private $structure;
25
+
26
  public function __construct( $ids, $config ) {
27
  $this->ids = $ids;
28
  $this->config = $config;
29
  $this->structure = FeedFactory::get_structure( $config );
30
  }
31
+
32
  /**
33
  * Get Feed Body.
34
  *
36
  */
37
  public function get_feed() {
38
  $feed = ProductFactory::get_content( $this->ids, $this->config, $this->structure );
39
+
40
  return $feed->make_body();
41
  }
42
+
43
  /**
44
  * Get Feed Header.
45
  *
48
  public function get_header() {
49
  $feed = FileFactory::GetData( $this->structure, $this->config );
50
  $feed = $feed->make_header_footer();
51
+
52
  return $feed['header'];
53
  }
54
+
55
  /**
56
  * Get Feed Footer.
57
  *
60
  public function get_footer() {
61
  $feed = FileFactory::GetData( $this->ids, $this->config );
62
  $feed = $feed->make_header_footer();
63
+
64
  return $feed['footer'];
65
  }
66
+
67
  /**
68
  * @param $ids
69
  * @param $config
73
  */
74
  // private function get_content( $ids, $config, $structure ) {
75
  // $info = [];
76
+ // Logs::write_log( $config->filename, 'Getting Products Information.' );
77
+ // Logs::write_log( $config->filename, 'Validating Product' );
78
  //
79
  // foreach ( $ids as $id ) {
80
  // $product = wc_get_product( $id );
88
  //
89
  // return FileFactory::GetData( $info, $config );
90
  // }
91
+
92
  /**
93
  * @param $product
94
  * @param $structure
118
  //
119
  // return $value;
120
  // }
121
+ }
V5/Filter/AdvanceFilter.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  namespace CTXFeed\V5\Filter;
3
- use CTXFeed\V5\Common\Config;
4
  use CTXFeed\V5\Helper\ProductHelper;
5
  use WC_Product;
6
 
@@ -131,4 +131,4 @@ class AdvanceFilter {
131
  }
132
 
133
 
134
- }
1
  <?php
2
  namespace CTXFeed\V5\Filter;
3
+ use CTXFeed\V5\Utility\Config;
4
  use CTXFeed\V5\Helper\ProductHelper;
5
  use WC_Product;
6
 
131
  }
132
 
133
 
134
+ }
V5/Filter/Filter.php CHANGED
@@ -59,7 +59,7 @@ class Filter {
59
  return apply_filters( 'ctx_filter_product_before_include', $exclude, $this->product, $this->config );
60
  }
61
 
62
- public function exclude_variation( $exclude ) {
63
  $id = $this->product->get_id();
64
  if ( $this->product->is_type( 'variation' ) ) {
65
  $id = $this->product->get_parent_id();
@@ -91,4 +91,4 @@ class Filter {
91
 
92
  return $exclude;
93
  }
94
- }
59
  return apply_filters( 'ctx_filter_product_before_include', $exclude, $this->product, $this->config );
60
  }
61
 
62
+ private function exclude_variation( $exclude ) {
63
  $id = $this->product->get_id();
64
  if ( $this->product->is_type( 'variation' ) ) {
65
  $id = $this->product->get_parent_id();
91
 
92
  return $exclude;
93
  }
94
+ }
V5/Filter/ValidateProduct.php CHANGED
@@ -25,31 +25,31 @@ class ValidateProduct {
25
  // Skip for invalid products
26
  if ( ! is_object( $product ) ) {
27
  $valid = false;
28
- Logs::log_feed_process( $config->filename, sprintf( 'Product with id: %s is not a valid object', $id ) );
29
  }
30
-
31
  // Skip orphaned variation.
32
  if ( $product->is_type( 'variation' ) && ! $product->get_parent_id() ) {
33
  $valid = false;
34
- Logs::log_feed_process( $config->filename, sprintf( 'Orphaned Variation %s is skipped', $id ) );
35
  }
36
-
37
  // Skip for invisible products.
38
  if ( ! $product->is_visible() ) {
39
  $valid = false;
40
- Logs::log_feed_process( $config->filename, sprintf( 'Product with id: %s is not visible on catalog.', $id ) );
41
  }
42
-
43
  // Remove unsupported product types.
44
  if ( ! in_array( $product->get_type(), CommonHelper::supported_product_types(), true ) ) {
45
  $valid = false;
46
- Logs::log_feed_process( $config->filename, sprintf( 'Product with id: %s is a %s product. Product Type %s is not supported.', $id, $product->get_type(), $product->get_type() ) );
47
  }
48
-
49
  /**
50
  * This filter hook should return false to exclude the product from feed.
51
  */
52
-
53
  return apply_filters( 'ctx_validate_product_before_include', $valid, $product, $config );
54
  }
55
- }
25
  // Skip for invalid products
26
  if ( ! is_object( $product ) ) {
27
  $valid = false;
28
+ Logs::write_log( $config->filename, sprintf( 'Product with id: %s is not a valid object', $id ) );
29
  }
30
+
31
  // Skip orphaned variation.
32
  if ( $product->is_type( 'variation' ) && ! $product->get_parent_id() ) {
33
  $valid = false;
34
+ Logs::write_log( $config->filename, sprintf( 'Orphaned Variation %s is skipped', $id ) );
35
  }
36
+
37
  // Skip for invisible products.
38
  if ( ! $product->is_visible() ) {
39
  $valid = false;
40
+ Logs::write_log( $config->filename, sprintf( 'Product with id: %s is not visible on catalog.', $id ) );
41
  }
42
+
43
  // Remove unsupported product types.
44
  if ( ! in_array( $product->get_type(), CommonHelper::supported_product_types(), true ) ) {
45
  $valid = false;
46
+ Logs::write_log( $config->filename, sprintf( 'Product with id: %s is a %s product. Product Type %s is not supported.', $id, $product->get_type(), $product->get_type() ) );
47
  }
48
+
49
  /**
50
  * This filter hook should return false to exclude the product from feed.
51
  */
52
+
53
  return apply_filters( 'ctx_validate_product_before_include', $valid, $product, $config );
54
  }
55
+ }
V5/Merchant/MerchantAttributesFactory.php CHANGED
@@ -10,6 +10,8 @@ class MerchantAttributesFactory {
10
  return $data;
11
  }
12
 
 
 
13
  if ( in_array( $template, [ 'pinterest', 'adroll', 'smartly.io' ] ) ) {
14
  $template = 'google';
15
  } elseif ( in_array( $template, [ 'connexity', 'shopzilla' ] ) ) {
10
  return $data;
11
  }
12
 
13
+ // Override Merchant Template.
14
+
15
  if ( in_array( $template, [ 'pinterest', 'adroll', 'smartly.io' ] ) ) {
16
  $template = 'google';
17
  } elseif ( in_array( $template, [ 'connexity', 'shopzilla' ] ) ) {
V5/Override/Advance.php CHANGED
@@ -14,48 +14,48 @@ class Advance {
14
  public function __construct() {
15
  add_filter( 'woo_feed_filter_product_attribute', [ $this, 'get_product_variation_attribute' ], 10, 4 );
16
  }
17
-
18
  /**
19
  * Get Variation attribute values for only in stock variations.
20
  *
21
- * @param $value
22
- * @param $attr
23
- * @param \WC_Product $product
24
- * @param \CTXFeed\V5\Utility\Config $config
25
  *
26
  * @return mixed|string
27
  */
28
  public function get_product_variation_attribute( $value, $attr, $product, $config ) {
29
  //TODO: Make an Option on Filter tab and apply the logic here.
30
  // Also add the option to settings class
31
-
32
  if ( $config instanceof Config ) {
33
  $outOfStockEnabled = $config->remove_outofstock_product();
34
  } else {
35
  $outOfStockEnabled = $config['is_outOfStock'];
36
  }
37
-
38
  if ( $outOfStockEnabled && $product->is_type( 'variable' ) && $product->has_child() ) {
39
  $attr = "pa_" . $attr;
40
  $child_ids = $product->get_children();
41
  $variationAttributes = array_keys( $product->get_variation_attributes() );
42
-
43
  if ( ! in_array( $attr, $variationAttributes, true ) ) {
44
  return $value;
45
  }
46
-
47
  $newValue = []; //reset the value to concat by child values
48
  foreach ( $child_ids as $id ) {
49
  $child_product = wc_get_product( $id );
50
  $attr_value = $child_product->get_attribute( $attr );
51
-
52
  if ( ! empty( $attr_value ) && ( $child_product->is_in_stock() || ( $child_product->managing_stock() && 0 < $child_product->get_stock_quantity() ) ) ) {
53
  $newValue [] = $attr_value;
54
  }
55
  }
56
  $value = ! empty( $newValue ) ? implode( ', ', $newValue ) : $value;
57
  }
58
-
59
  return $value;
60
  }
61
- }
14
  public function __construct() {
15
  add_filter( 'woo_feed_filter_product_attribute', [ $this, 'get_product_variation_attribute' ], 10, 4 );
16
  }
17
+
18
  /**
19
  * Get Variation attribute values for only in stock variations.
20
  *
21
+ * @param $value
22
+ * @param $attr
23
+ * @param \WC_Product|\WC_Product_Variable $product
24
+ * @param \CTXFeed\V5\Utility\Config $config
25
  *
26
  * @return mixed|string
27
  */
28
  public function get_product_variation_attribute( $value, $attr, $product, $config ) {
29
  //TODO: Make an Option on Filter tab and apply the logic here.
30
  // Also add the option to settings class
31
+
32
  if ( $config instanceof Config ) {
33
  $outOfStockEnabled = $config->remove_outofstock_product();
34
  } else {
35
  $outOfStockEnabled = $config['is_outOfStock'];
36
  }
37
+
38
  if ( $outOfStockEnabled && $product->is_type( 'variable' ) && $product->has_child() ) {
39
  $attr = "pa_" . $attr;
40
  $child_ids = $product->get_children();
41
  $variationAttributes = array_keys( $product->get_variation_attributes() );
42
+
43
  if ( ! in_array( $attr, $variationAttributes, true ) ) {
44
  return $value;
45
  }
46
+
47
  $newValue = []; //reset the value to concat by child values
48
  foreach ( $child_ids as $id ) {
49
  $child_product = wc_get_product( $id );
50
  $attr_value = $child_product->get_attribute( $attr );
51
+
52
  if ( ! empty( $attr_value ) && ( $child_product->is_in_stock() || ( $child_product->managing_stock() && 0 < $child_product->get_stock_quantity() ) ) ) {
53
  $newValue [] = $attr_value;
54
  }
55
  }
56
  $value = ! empty( $newValue ) ? implode( ', ', $newValue ) : $value;
57
  }
58
+
59
  return $value;
60
  }
61
+ }
V5/Product/ProductFactory.php CHANGED
@@ -11,7 +11,7 @@ use CTXFeed\V5\Utility\Logs;
11
  *
12
  */
13
  class ProductFactory {
14
-
15
  /**
16
  * @param $ids
17
  * @param $config
@@ -21,22 +21,22 @@ class ProductFactory {
21
  */
22
  public static function get_content( $ids, $config, $structure ) {
23
  $info = [];
24
- Logs::log_feed_process( $config->filename, 'Getting Products Information.' );
25
- Logs::log_feed_process( $config->filename, 'Validating Product' );
26
-
27
  foreach ( $ids as $id ) {
28
  $product = wc_get_product( $id );
29
-
30
  // Validate Product and add for feed.
31
  if ( ValidateProduct::is_valid( $product, $config, $id ) ) {
32
  $info1 = [];
33
  $info [] = self::get_product_info( $product, $structure, $config, $info1 );
34
  }
35
  }
36
-
37
  return FileFactory::GetData( $info, $config );
38
  }
39
-
40
  /**
41
  * @param $product
42
  * @param $structure
@@ -59,10 +59,10 @@ class ProductFactory {
59
  } else {
60
  return $info;
61
  }
62
-
63
  return $value;
64
  }
65
-
66
  /**
67
  * @param $attribute
68
  * @param $product
@@ -72,7 +72,7 @@ class ProductFactory {
72
  * @return mixed|void
73
  */
74
  public static function get_csv_attribute_value( $attribute, $product, $config, $merchant_attribute ) {
75
-
76
  $value = [];
77
  if ( strpos( $attribute, ',' ) ) {
78
  $separator = ',';
@@ -84,21 +84,21 @@ class ProductFactory {
84
  $value[] = ProductHelper::getAttributeValueByType( $data2, $product, $config, $merchant_attribute );
85
  }
86
  }
87
-
88
  return implode( $separator, array_filter( $value ) );
89
  }
90
-
91
  if ( strpos( $attribute, ':' ) ) {
92
  $separator = ':';
93
  $attribute = explode( ':', $attribute );
94
  foreach ( $attribute as $data ) {
95
  $value [] = ProductHelper::getAttributeValueByType( $data, $product, $config );
96
  }
97
-
98
  return implode( $separator, array_filter( $value ) );
99
  }
100
-
101
  return ProductHelper::getAttributeValueByType( $attribute, $product, $config );
102
  }
103
-
104
- }
11
  *
12
  */
13
  class ProductFactory {
14
+
15
  /**
16
  * @param $ids
17
  * @param $config
21
  */
22
  public static function get_content( $ids, $config, $structure ) {
23
  $info = [];
24
+ Logs::write_log( $config->filename, 'Getting Products Information.' );
25
+ Logs::write_log( $config->filename, 'Validating Product' );
26
+
27
  foreach ( $ids as $id ) {
28
  $product = wc_get_product( $id );
29
+
30
  // Validate Product and add for feed.
31
  if ( ValidateProduct::is_valid( $product, $config, $id ) ) {
32
  $info1 = [];
33
  $info [] = self::get_product_info( $product, $structure, $config, $info1 );
34
  }
35
  }
36
+
37
  return FileFactory::GetData( $info, $config );
38
  }
39
+
40
  /**
41
  * @param $product
42
  * @param $structure
59
  } else {
60
  return $info;
61
  }
62
+
63
  return $value;
64
  }
65
+
66
  /**
67
  * @param $attribute
68
  * @param $product
72
  * @return mixed|void
73
  */
74
  public static function get_csv_attribute_value( $attribute, $product, $config, $merchant_attribute ) {
75
+
76
  $value = [];
77
  if ( strpos( $attribute, ',' ) ) {
78
  $separator = ',';
84
  $value[] = ProductHelper::getAttributeValueByType( $data2, $product, $config, $merchant_attribute );
85
  }
86
  }
87
+
88
  return implode( $separator, array_filter( $value ) );
89
  }
90
+
91
  if ( strpos( $attribute, ':' ) ) {
92
  $separator = ':';
93
  $attribute = explode( ':', $attribute );
94
  foreach ( $attribute as $data ) {
95
  $value [] = ProductHelper::getAttributeValueByType( $data, $product, $config );
96
  }
97
+
98
  return implode( $separator, array_filter( $value ) );
99
  }
100
+
101
  return ProductHelper::getAttributeValueByType( $attribute, $product, $config );
102
  }
103
+
104
+ }
V5/Utility/CTX_WC_Log_Handler.php CHANGED
@@ -18,21 +18,21 @@ if ( ! defined( 'ABSPATH' ) ) {
18
  }
19
 
20
  class CTX_WC_Log_Handler extends WC_Log_Handler {
21
-
22
  /**
23
  * Stores open file handles.
24
  *
25
  * @var array
26
  */
27
  protected $handles = array();
28
-
29
  /**
30
  * File size limit for log files in bytes.
31
  *
32
  * @var int
33
  */
34
  protected $log_size_limit;
35
-
36
  /**
37
  * Cache logs that could not be written.
38
  *
@@ -42,7 +42,7 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
42
  * @var array
43
  */
44
  protected $cached_logs = array();
45
-
46
  /**
47
  * Constructor for the logger.
48
  *
@@ -52,12 +52,12 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
52
  if ( null === $log_size_limit ) {
53
  $log_size_limit = 5 * 1024 * 1024;
54
  }
55
-
56
  $this->log_size_limit = apply_filters( 'woo_feed_log_file_size_limit', $log_size_limit );
57
-
58
  add_action( 'plugins_loaded', array( $this, 'write_cached_logs' ) );
59
  }
60
-
61
  /**
62
  * Destructor.
63
  *
@@ -70,7 +70,7 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
70
  }
71
  }
72
  }
73
-
74
  /**
75
  * Handle a log entry.
76
  *
@@ -88,18 +88,18 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
88
  * @return bool False if value was not handled and true if value was handled.
89
  */
90
  public function handle( $timestamp, $level, $message, $context ) {
91
-
92
  if ( isset( $context['source'] ) && $context['source'] ) {
93
  $handle = $context['source'];
94
  } else {
95
  $handle = 'log';
96
  }
97
-
98
  $entry = self::format_entry( $timestamp, $level, $message, $context );
99
-
100
  return $this->add( $entry, $handle );
101
  }
102
-
103
  /**
104
  * Builds a log entry text from timestamp, level and message.
105
  *
@@ -111,7 +111,7 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
111
  * @return string Formatted log entry.
112
  */
113
  protected static function format_entry( $timestamp, $level, $message, $context ) {
114
-
115
  if ( isset( $context['_legacy'] ) && true === $context['_legacy'] ) {
116
  if ( isset( $context['source'] ) && $context['source'] ) {
117
  $handle = $context['source'];
@@ -124,10 +124,10 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
124
  } else {
125
  $entry = parent::format_entry( $timestamp, $level, $message, $context );
126
  }
127
-
128
  return $entry;
129
  }
130
-
131
  /**
132
  * Open log file for writing.
133
  *
@@ -139,30 +139,30 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
139
  if ( $this->is_open( $handle ) ) {
140
  return true;
141
  }
142
-
143
  $file = self::get_log_file_path( $handle );
144
-
145
  if ( $file ) {
146
  if ( ! file_exists( $file ) ) {
147
  $temp_handle = fopen( $file, 'w+' ); // phpcs:ignore
148
  fclose( $temp_handle ); // phpcs:ignore
149
-
150
  if ( defined( 'FS_CHMOD_FILE' ) ) {
151
  chmod( $file, FS_CHMOD_FILE ); // phpcs:ignore
152
  }
153
  }
154
-
155
  $resource = fopen( $file, $mode ); // phpcs:ignore
156
-
157
  if ( $resource ) {
158
  $this->handles[ $handle ] = $resource;
159
  return true;
160
  }
161
  }
162
-
163
  return false;
164
  }
165
-
166
  /**
167
  * Check if a handle is open.
168
  *
@@ -172,7 +172,7 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
172
  protected function is_open( $handle ) {
173
  return array_key_exists( $handle, $this->handles ) && is_resource( $this->handles[ $handle ] );
174
  }
175
-
176
  /**
177
  * Close a handle.
178
  *
@@ -181,15 +181,15 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
181
  */
182
  protected function close( $handle ) {
183
  $result = false;
184
-
185
  if ( $this->is_open( $handle ) ) {
186
  $result = fclose( $this->handles[ $handle ] ); // phpcs:ignore
187
  unset( $this->handles[ $handle ] );
188
  }
189
-
190
  return $result;
191
  }
192
-
193
  /**
194
  * Add a log entry to chosen file.
195
  *
@@ -199,9 +199,9 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
199
  * @return bool True if write was successful.
200
  */
201
  protected function add( $entry, $handle ) {
202
-
203
  $result = false;
204
-
205
  if ( $this->should_rotate( $handle ) ) {
206
  $this->log_rotate( $handle );
207
  }
@@ -211,10 +211,10 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
211
  } else {
212
  $this->cache_log( $entry, $handle );
213
  }
214
-
215
  return false !== $result;
216
  }
217
-
218
  /**
219
  * Clear entries from chosen file.
220
  *
@@ -224,10 +224,10 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
224
  */
225
  public function clear( $handle ) {
226
  $result = false;
227
-
228
  // Close the file if it's already open.
229
  $this->close( $handle );
230
-
231
  /**
232
  * $this->open( $handle, 'w' ) == Open the file for writing only. Place the file pointer at
233
  * the beginning of the file, and truncate the file to zero length.
@@ -235,12 +235,12 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
235
  if ( $this->open( $handle, 'w' ) && is_resource( $this->handles[ $handle ] ) ) {
236
  $result = true;
237
  }
238
-
239
  do_action( 'woo_feed_log_clear', $handle );
240
-
241
  return $result;
242
  }
243
-
244
  /**
245
  * Remove/delete the chosen file.
246
  *
@@ -262,7 +262,7 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
262
  }
263
  return $removed;
264
  }
265
-
266
  /**
267
  * Check if log file should be rotated.
268
  *
@@ -286,7 +286,7 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
286
  return false;
287
  }
288
  }
289
-
290
  /**
291
  * Rotate log files.
292
  *
@@ -307,7 +307,7 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
307
  }
308
  $this->increment_log_infix( $handle );
309
  }
310
-
311
  /**
312
  * Increment a log file suffix.
313
  *
@@ -323,22 +323,22 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
323
  $suffix = '.' . $number;
324
  $next_suffix = '.' . ( $number + 1 );
325
  }
326
-
327
  $rename_from = self::get_log_file_path( "{$handle}{$suffix}" );
328
  $rename_to = self::get_log_file_path( "{$handle}{$next_suffix}" );
329
-
330
  if ( $this->is_open( $rename_from ) ) {
331
  $this->close( $rename_from );
332
  }
333
-
334
  if ( is_writable( $rename_from ) ) { // phpcs:ignore
335
  return rename( $rename_from, $rename_to ); // phpcs:ignore
336
  } else {
337
  return false;
338
  }
339
-
340
  }
341
-
342
  /**
343
  * Get a log file path.
344
  *
@@ -348,12 +348,13 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
348
  public static function get_log_file_path( $handle ) {
349
  if ( function_exists( 'wp_hash' ) ) {
350
  return trailingslashit( WOO_FEED_LOG_DIR ) . self::get_log_file_name( $handle );
351
- } else {
352
- woo_feed_doing_it_wrong( __METHOD__, __( 'This method should not be called before plugins_loaded.', 'woo-feed' ), '3.0' );
353
- return false;
354
  }
 
 
 
 
355
  }
356
-
357
  /**
358
  * Get a log file name.
359
  *
@@ -373,7 +374,7 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
373
  return false;
374
  }
375
  }
376
-
377
  /**
378
  * Cache log to write later.
379
  *
@@ -386,7 +387,7 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
386
  'handle' => $handle,
387
  );
388
  }
389
-
390
  /**
391
  * Write cached logs.
392
  */
@@ -395,7 +396,7 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
395
  $this->add( $log['entry'], $log['handle'] );
396
  }
397
  }
398
-
399
  /**
400
  * Delete all logs older than a defined timestamp.
401
  *
@@ -406,18 +407,18 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
406
  if ( ! $timestamp ) {
407
  return;
408
  }
409
-
410
  $log_files = self::get_log_files();
411
-
412
  foreach ( $log_files as $log_file ) {
413
  $last_modified = filemtime( trailingslashit( WOO_FEED_LOG_DIR ) . $log_file );
414
-
415
  if ( $last_modified < $timestamp ) {
416
  unlink( trailingslashit( WOO_FEED_LOG_DIR ) . $log_file ); // phpcs:ignore
417
  }
418
  }
419
  }
420
-
421
  /**
422
  * Get all log files in the log directory.
423
  *
@@ -427,17 +428,18 @@ class CTX_WC_Log_Handler extends WC_Log_Handler {
427
  public static function get_log_files() {
428
  $files = scandir( WOO_FEED_LOG_DIR );
429
  $result = array();
430
-
431
  if ( ! empty( $files ) && is_array( $files ) ) {
432
- foreach ( $files as $key => $value ) {
433
- if ( ! in_array( $value, array( '.', '..' ), true ) ) {
434
- if ( ! is_dir( $value ) && strstr( $value, '.log' ) ) {
435
- $result[ sanitize_title( $value ) ] = $value;
 
 
436
  }
437
- }
438
  }
439
  }
440
-
441
  return $result;
442
  }
443
  }
18
  }
19
 
20
  class CTX_WC_Log_Handler extends WC_Log_Handler {
21
+
22
  /**
23
  * Stores open file handles.
24
  *
25
  * @var array
26
  */
27
  protected $handles = array();
28
+
29
  /**
30
  * File size limit for log files in bytes.
31
  *
32
  * @var int
33
  */
34
  protected $log_size_limit;
35
+
36
  /**
37
  * Cache logs that could not be written.
38
  *
42
  * @var array
43
  */
44
  protected $cached_logs = array();
45
+
46
  /**
47
  * Constructor for the logger.
48
  *
52
  if ( null === $log_size_limit ) {
53
  $log_size_limit = 5 * 1024 * 1024;
54
  }
55
+
56
  $this->log_size_limit = apply_filters( 'woo_feed_log_file_size_limit', $log_size_limit );
57
+
58
  add_action( 'plugins_loaded', array( $this, 'write_cached_logs' ) );
59
  }
60
+
61
  /**
62
  * Destructor.
63
  *
70
  }
71
  }
72
  }
73
+
74
  /**
75
  * Handle a log entry.
76
  *
88
  * @return bool False if value was not handled and true if value was handled.
89
  */
90
  public function handle( $timestamp, $level, $message, $context ) {
91
+
92
  if ( isset( $context['source'] ) && $context['source'] ) {
93
  $handle = $context['source'];
94
  } else {
95
  $handle = 'log';
96
  }
97
+
98
  $entry = self::format_entry( $timestamp, $level, $message, $context );
99
+
100
  return $this->add( $entry, $handle );
101
  }
102
+
103
  /**
104
  * Builds a log entry text from timestamp, level and message.
105
  *
111
  * @return string Formatted log entry.
112
  */
113
  protected static function format_entry( $timestamp, $level, $message, $context ) {
114
+
115
  if ( isset( $context['_legacy'] ) && true === $context['_legacy'] ) {
116
  if ( isset( $context['source'] ) && $context['source'] ) {
117
  $handle = $context['source'];
124
  } else {
125
  $entry = parent::format_entry( $timestamp, $level, $message, $context );
126
  }
127
+
128
  return $entry;
129
  }
130
+
131
  /**
132
  * Open log file for writing.
133
  *
139
  if ( $this->is_open( $handle ) ) {
140
  return true;
141
  }
142
+
143
  $file = self::get_log_file_path( $handle );
144
+
145
  if ( $file ) {
146
  if ( ! file_exists( $file ) ) {
147
  $temp_handle = fopen( $file, 'w+' ); // phpcs:ignore
148
  fclose( $temp_handle ); // phpcs:ignore
149
+
150
  if ( defined( 'FS_CHMOD_FILE' ) ) {
151
  chmod( $file, FS_CHMOD_FILE ); // phpcs:ignore
152
  }
153
  }
154
+
155
  $resource = fopen( $file, $mode ); // phpcs:ignore
156
+
157
  if ( $resource ) {
158
  $this->handles[ $handle ] = $resource;
159
  return true;
160
  }
161
  }
162
+
163
  return false;
164
  }
165
+
166
  /**
167
  * Check if a handle is open.
168
  *
172
  protected function is_open( $handle ) {
173
  return array_key_exists( $handle, $this->handles ) && is_resource( $this->handles[ $handle ] );
174
  }
175
+
176
  /**
177
  * Close a handle.
178
  *
181
  */
182
  protected function close( $handle ) {
183
  $result = false;
184
+
185
  if ( $this->is_open( $handle ) ) {
186
  $result = fclose( $this->handles[ $handle ] ); // phpcs:ignore
187
  unset( $this->handles[ $handle ] );
188
  }
189
+
190
  return $result;
191
  }
192
+
193
  /**
194
  * Add a log entry to chosen file.
195
  *
199
  * @return bool True if write was successful.
200
  */
201
  protected function add( $entry, $handle ) {
202
+
203
  $result = false;
204
+
205
  if ( $this->should_rotate( $handle ) ) {
206
  $this->log_rotate( $handle );
207
  }
211
  } else {
212
  $this->cache_log( $entry, $handle );
213
  }
214
+
215
  return false !== $result;
216
  }
217
+
218
  /**
219
  * Clear entries from chosen file.
220
  *
224
  */
225
  public function clear( $handle ) {
226
  $result = false;
227
+
228
  // Close the file if it's already open.
229
  $this->close( $handle );
230
+
231
  /**
232
  * $this->open( $handle, 'w' ) == Open the file for writing only. Place the file pointer at
233
  * the beginning of the file, and truncate the file to zero length.
235
  if ( $this->open( $handle, 'w' ) && is_resource( $this->handles[ $handle ] ) ) {
236
  $result = true;
237
  }
238
+
239
  do_action( 'woo_feed_log_clear', $handle );
240
+
241
  return $result;
242
  }
243
+
244
  /**
245
  * Remove/delete the chosen file.
246
  *
262
  }
263
  return $removed;
264
  }
265
+
266
  /**
267
  * Check if log file should be rotated.
268
  *
286
  return false;
287
  }
288
  }
289
+
290
  /**
291
  * Rotate log files.
292
  *
307
  }
308
  $this->increment_log_infix( $handle );
309
  }
310
+
311
  /**
312
  * Increment a log file suffix.
313
  *
323
  $suffix = '.' . $number;
324
  $next_suffix = '.' . ( $number + 1 );
325
  }
326
+
327
  $rename_from = self::get_log_file_path( "{$handle}{$suffix}" );
328
  $rename_to = self::get_log_file_path( "{$handle}{$next_suffix}" );
329
+
330
  if ( $this->is_open( $rename_from ) ) {
331
  $this->close( $rename_from );
332
  }
333
+
334
  if ( is_writable( $rename_from ) ) { // phpcs:ignore
335
  return rename( $rename_from, $rename_to ); // phpcs:ignore
336
  } else {
337
  return false;
338
  }
339
+
340
  }
341
+
342
  /**
343
  * Get a log file path.
344
  *
348
  public static function get_log_file_path( $handle ) {
349
  if ( function_exists( 'wp_hash' ) ) {
350
  return trailingslashit( WOO_FEED_LOG_DIR ) . self::get_log_file_name( $handle );
 
 
 
351
  }
352
+
353
+ woo_feed_doing_it_wrong( __METHOD__, __( 'This method should not be called before plugins_loaded.', 'woo-feed' ), '3.0' );
354
+
355
+ return false;
356
  }
357
+
358
  /**
359
  * Get a log file name.
360
  *
374
  return false;
375
  }
376
  }
377
+
378
  /**
379
  * Cache log to write later.
380
  *
387
  'handle' => $handle,
388
  );
389
  }
390
+
391
  /**
392
  * Write cached logs.
393
  */
396
  $this->add( $log['entry'], $log['handle'] );
397
  }
398
  }
399
+
400
  /**
401
  * Delete all logs older than a defined timestamp.
402
  *
407
  if ( ! $timestamp ) {
408
  return;
409
  }
410
+
411
  $log_files = self::get_log_files();
412
+
413
  foreach ( $log_files as $log_file ) {
414
  $last_modified = filemtime( trailingslashit( WOO_FEED_LOG_DIR ) . $log_file );
415
+
416
  if ( $last_modified < $timestamp ) {
417
  unlink( trailingslashit( WOO_FEED_LOG_DIR ) . $log_file ); // phpcs:ignore
418
  }
419
  }
420
  }
421
+
422
  /**
423
  * Get all log files in the log directory.
424
  *
428
  public static function get_log_files() {
429
  $files = scandir( WOO_FEED_LOG_DIR );
430
  $result = array();
431
+
432
  if ( ! empty( $files ) && is_array( $files ) ) {
433
+ foreach ( $files as $file ) {
434
+ if ( ! in_array( $file, array(
435
+ '.',
436
+ '..'
437
+ ), true ) && ! is_dir( $file ) && strpos( $file, '.log' ) !== false ) {
438
+ $result[ sanitize_title( $file ) ] = $file;
439
  }
 
440
  }
441
  }
442
+
443
  return $result;
444
  }
445
  }
V5/Utility/Config.php CHANGED
@@ -9,7 +9,7 @@ class Config {
9
  * @var array|bool
10
  */
11
  private $feedInfo;
12
-
13
  /**
14
  * @var array|bool
15
  */
@@ -18,34 +18,34 @@ class Config {
18
  * @var mixed
19
  */
20
  private $context;
21
-
22
  /**
23
  * @param array $feedInfo
24
  * @param string $context
25
  */
26
  public function __construct( $feedInfo, $context = 'view' ) {
27
-
28
  $this->feedInfo = $feedInfo;
29
  $this->context = $context;
30
  $this->config = isset( $this->feedInfo['feedrules'] ) ? $this->feedInfo['feedrules'] : $this->feedInfo;
31
  }
32
-
33
  public function __isset( $name ) {
34
  if ( isset( $this->config[ $name ] ) ) {
35
  return true;
36
  }
37
-
38
  return false;
39
  }
40
-
41
  public function __get( $name ) {
42
  return $this->config[ $name ];
43
  }
44
-
45
  public function __set( $name, $value ) {
46
  return $this->config[ $name ] = $value;
47
  }
48
-
49
  /**
50
  *
51
  * @return array
@@ -53,7 +53,7 @@ class Config {
53
  public function get_feed_rules() {
54
  return isset( $this->feedInfo['feedrules'] ) ? $this->feedInfo['feedrules'] : $this->feedInfo;
55
  }
56
-
57
  /**
58
  * Get Feed name.
59
  *
@@ -62,7 +62,7 @@ class Config {
62
  public function get_feed_id() {
63
  return $this->config['feed_id'];
64
  }
65
-
66
  /**
67
  * Get Feed name.
68
  *
@@ -71,8 +71,25 @@ class Config {
71
  public function get_feed_name() {
72
  return $this->config['filename'];
73
  }
74
-
75
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  /**
77
  * Get Feed Template.
78
  *
@@ -81,7 +98,7 @@ class Config {
81
  public function get_feed_template() {
82
  return $this->config['provider'];
83
  }
84
-
85
  /**
86
  * Get Feed Language.
87
  *
@@ -90,7 +107,7 @@ class Config {
90
  public function get_feed_language() {
91
  return $this->config['feedLanguage'];
92
  }
93
-
94
  /**
95
  * Get Feed Currency.
96
  *
@@ -100,7 +117,7 @@ class Config {
100
  if ( $this->config['feedCurrency'] ) {
101
  return $this->config['feedCurrency'];
102
  }
103
-
104
  $attributes = $this->config['attributes'];
105
  $priceAttrs = [ 'price', 'current_price', 'price_with_tax', 'current_price_with_tax' ];
106
  foreach ( $priceAttrs as $price_attr ) {
@@ -109,10 +126,10 @@ class Config {
109
  break;
110
  }
111
  }
112
-
113
  return isset( $this->config['suffix'][ $key ] ) ? $this->config['suffix'][ $key ] : get_woocommerce_currency();
114
  }
115
-
116
  /**
117
  * Get Feed Country.
118
  *
@@ -121,7 +138,7 @@ class Config {
121
  public function get_feed_country() {
122
  return $this->config['feed_country'];
123
  }
124
-
125
  /**
126
  * Get Feed File Type.
127
  *
@@ -130,27 +147,27 @@ class Config {
130
  public function get_feed_file_type() {
131
  return $this->config['feedType'];
132
  }
133
-
134
  /**
135
  * Get Feed File Type.
136
  *
137
  * @return string
138
  */
139
  public function get_delimiter() {
140
-
141
  if ( 'tsv' === $this->config['feedType'] ) {
142
  $this->config['delimiter'] = "\t";
143
-
144
  return $this->config['delimiter'];
145
  }
146
-
147
  if ( ' ' === $this->config['delimiter'] ) {
148
  $this->config['delimiter'] = "\s";
149
  }
150
-
151
  return $this->config['delimiter'];
152
  }
153
-
154
  /**
155
  * Get Feed File Type.
156
  *
@@ -160,10 +177,10 @@ class Config {
160
  if ( in_array( $this->config['enclosure'], [ 'double', 'single' ] ) ) {
161
  return ( 'double' === $this->config['enclosure'] ) ? '"' : "'";
162
  }
163
-
164
  return '';
165
  }
166
-
167
  /**
168
  * Get Feed items wrapper.
169
  *
@@ -172,7 +189,7 @@ class Config {
172
  public function get_feed_items_wrapper() {
173
  return $this->config['itemsWrapper'];
174
  }
175
-
176
  /**
177
  * Get Feed item wrapper.
178
  *
@@ -181,7 +198,7 @@ class Config {
181
  public function get_feed_item_wrapper() {
182
  return $this->config['itemWrapper'];
183
  }
184
-
185
  /**
186
  * Get Feed Extra Header.
187
  *
@@ -190,16 +207,16 @@ class Config {
190
  public function get_feed_extra_header() {
191
  return $this->config['extraHeader'];
192
  }
193
-
194
  /**
195
  * Get Feed Shipping Country.
196
  *
197
  * @return string
198
  */
199
  public function get_shipping_country() {
200
- return $this->config['feed_country'];
201
  }
202
-
203
  /**
204
  * Get Feed Tax Country.
205
  *
@@ -208,7 +225,7 @@ class Config {
208
  public function get_tax_country() {
209
  return $this->config['tax_country'];
210
  }
211
-
212
  /**
213
  * Get String Replace config
214
  *
@@ -218,10 +235,10 @@ class Config {
218
  if ( ! empty( $this->config['str_replace'] ) ) {
219
  return $this->config['str_replace'];
220
  }
221
-
222
  return false;
223
  }
224
-
225
  /**
226
  * Get URL campaign parameter.
227
  *
@@ -230,7 +247,7 @@ class Config {
230
  public function get_campaign_parameters() {
231
  return $this->config['campaign_parameters'];
232
  }
233
-
234
  /**
235
  * Status to remove backorder products.
236
  *
@@ -239,7 +256,7 @@ class Config {
239
  public function remove_backorder_product() {
240
  return 'y' === $this->config['is_backorder'];
241
  }
242
-
243
  /**
244
  * Status to remove outofstock products.
245
  *
@@ -248,7 +265,7 @@ class Config {
248
  public function remove_outofstock_product() {
249
  return 'y' === $this->config['is_outOfStock'];
250
  }
251
-
252
  /**
253
  * Status to remove empty description products.
254
  *
@@ -257,7 +274,7 @@ class Config {
257
  public function remove_empty_description() {
258
  return 'y' === $this->config['is_outOfStock'];
259
  }
260
-
261
  /**
262
  * Status to remove empty image products.
263
  *
@@ -266,7 +283,7 @@ class Config {
266
  public function remove_empty_image() {
267
  return 'y' === $this->config['is_emptyImage'];
268
  }
269
-
270
  /**
271
  * Status to remove empty price products.
272
  *
@@ -275,7 +292,7 @@ class Config {
275
  public function remove_empty_price() {
276
  return 'y' === $this->config['is_emptyPrice'];
277
  }
278
-
279
  /**
280
  * Get Price Number Format.
281
  *
@@ -288,82 +305,82 @@ class Config {
288
  'thousand_separator' => apply_filters( 'ctx_feed_number_format_thousand_separator', $this->config['thousand_separator'], $this->config ),
289
  'decimals' => apply_filters( 'ctx_feed_number_format_decimals', $this->config['decimals'], $this->config ),
290
  ];
291
-
292
  return apply_filters( 'ctx_feed_number_format', $number_format, $this->config );
293
  }
294
-
295
  return false;
296
  }
297
-
298
  /**
299
  * Get product Ids to exclude.
300
  *
301
  * @return array|bool
302
  */
303
  public function get_products_to_exclude() {
304
-
305
  if ( isset( $this->config['filter_mode'] ) ) {
306
  $mode = $this->config['filter_mode'];
307
  if ( 'exclude' === $mode['product_ids'] && ! empty( $this->config['product_ids'] ) ) {
308
  return explode( ',', $this->config['product_ids'] );
309
  }
310
  }
311
-
312
  return false;
313
  }
314
-
315
  /**
316
  * Get product Ids to include.
317
  *
318
  * @return array|bool
319
  */
320
  public function get_products_to_include() {
321
-
322
  if ( isset( $this->config['filter_mode'] ) ) {
323
  $mode = $this->config['filter_mode'];
324
  if ( 'include' === $mode['product_ids'] && ! empty( $this->config['product_ids'] ) ) {
325
  return explode( ',', $this->config['product_ids'] );
326
  }
327
  }
328
-
329
  return false;
330
  }
331
-
332
  /**
333
  * Get categories to exclude.
334
  *
335
  * @return mixed
336
  */
337
  public function get_categories_to_exclude() {
338
-
339
  if ( isset( $this->config['filter_mode'] ) ) {
340
  $mode = $this->config['filter_mode'];
341
  if ( 'exclude' === $mode['categories'] && ! empty( $this->config['categories'] ) ) {
342
  return $this->config['categories'];
343
  }
344
  }
345
-
346
  return false;
347
  }
348
-
349
  /**
350
  * Get categories to include.
351
  *
352
  * @return mixed
353
  */
354
  public function get_categories_to_include() {
355
-
356
  if ( isset( $this->config['filter_mode'] ) ) {
357
  $mode = $this->config['filter_mode'];
358
  if ( 'include' === $mode['categories'] && ! empty( $this->config['categories'] ) ) {
359
  return $this->config['categories'];
360
  }
361
  }
362
-
363
  return false;
364
  }
365
-
366
-
367
  /**
368
  * Get post statuses to include.
369
  *
@@ -376,39 +393,39 @@ class Config {
376
  if ( 'include' === $mode['post_status'] ) {
377
  return $this->config['post_status'];
378
  }
379
-
380
  if ( 'exclude' === $mode['post_status'] ) {
381
  return array_merge( array_diff( $status, $this->config['post_status'] ), array_diff( $status, $this->config['post_status'] ) );
382
  }
383
  }
384
-
385
  return false;
386
  }
387
-
388
  /**
389
  * Get post statuses to include.
390
  *
391
  * @return string|bool
392
  */
393
  public function get_vendors_to_include() {
394
-
395
  if ( isset( $this->config['vendors'] ) && ! empty( $this->config['vendors'] ) ) {
396
  return implode( ',', $this->config['vendors'] );
397
  }
398
-
399
  return false;
400
  }
401
-
402
  /**
403
  * Get post statuses to include.
404
  *
405
  * @return bool
406
  */
407
  public function get_variations_to_include() {
408
-
409
  return isset( $this->config['is_variations'] ) && in_array( $this->config['is_variations'], [ 'y', 'both' ] );
410
  }
411
-
412
  /**
413
  * Get Advance Filter Config.
414
  *
@@ -423,10 +440,10 @@ class Config {
423
  "concatType" => $this->config['concatType'],
424
  ];
425
  }
426
-
427
  return false;
428
  }
429
-
430
  /**
431
  * Get FTP Config.
432
  *
@@ -437,7 +454,7 @@ class Config {
437
  if ( '0' === $this->config['ftpenabled'] ) {
438
  return false;
439
  }
440
-
441
  return [
442
  "type" => $this->config['ftporsftp'],
443
  "host" => $this->config['ftphost'],
@@ -448,10 +465,10 @@ class Config {
448
  "mode" => $this->config['ftpmode'],
449
  ];
450
  }
451
-
452
  return false;
453
  }
454
-
455
  /**
456
  * Get variable product config.
457
  *
@@ -465,10 +482,10 @@ class Config {
465
  "variable_quantity" => $this->config['variable_quantity'],
466
  ];
467
  }
468
-
469
  return false;
470
  }
471
-
472
  /**
473
  * Get composite product price settings.
474
  *
@@ -477,7 +494,7 @@ class Config {
477
  public function get_composite_price_type() {
478
  return $this->config['composite_price'];
479
  }
480
-
481
  /**
482
  * Get Feed Info
483
  *
@@ -486,7 +503,7 @@ class Config {
486
  public function get_feed() {
487
  return $this->feedInfo;
488
  }
489
-
490
  /**
491
  * Get Feed Info
492
  *
@@ -497,7 +514,7 @@ class Config {
497
  public function set_feed( $feedInfo ) {
498
  return $this->feedInfo = $feedInfo;
499
  }
500
-
501
  /**
502
  * Get Feed Configuration.
503
  *
@@ -507,10 +524,10 @@ class Config {
507
  if ( $this->feedInfo ) {
508
  return ( new Config( $this->feedInfo['feedrules'] ) );
509
  }
510
-
511
  return false;
512
  }
513
-
514
  /**
515
  * Get Feed Configuration.
516
  *
@@ -519,7 +536,7 @@ class Config {
519
  public function get_config() {
520
  return $this->config;
521
  }
522
-
523
  /**
524
  * Set Feed Configuration.
525
  *
@@ -530,7 +547,7 @@ class Config {
530
  // if ( empty( $this->config ) ) {
531
  // $this->config = array();
532
  // }
533
-
534
  $defaults = array(
535
  'provider' => '',
536
  'feed_country' => '',
@@ -577,6 +594,8 @@ class Config {
577
  'is_emptyImage' => 'n',
578
  'is_emptyPrice' => 'n',
579
  'product_visibility' => 0,
 
 
580
  // include hidden ? 1 yes 0 no
581
  'outofstock_visibility' => 0,
582
  // override wc global option for out-of-stock product hidden from catalog? 1 yes 0 no
@@ -585,7 +604,7 @@ class Config {
585
  'thousand_separator' => stripslashes( apply_filters( 'wc_get_price_thousand_separator', get_option( 'woocommerce_price_thousand_sep' ) ) ),
586
  'decimals' => absint( apply_filters( 'wc_get_price_decimals', get_option( 'woocommerce_price_num_decimals', 2 ) ) ),
587
  );
588
-
589
  $this->config = wp_parse_args( $config, $defaults );
590
  $this->config['filter_mode'] = wp_parse_args(
591
  $this->config['filter_mode'],
@@ -595,7 +614,7 @@ class Config {
595
  'post_status' => 'include',
596
  )
597
  );
598
-
599
  $this->config['campaign_parameters'] = wp_parse_args(
600
  $this->config['campaign_parameters'],
601
  array(
@@ -606,7 +625,7 @@ class Config {
606
  'utm_content' => '',
607
  )
608
  );
609
-
610
  if ( ! empty( $this->config['provider'] ) && is_string( $this->config['provider'] ) ) {
611
  /**
612
  * filter parsed rules for provider
@@ -618,7 +637,7 @@ class Config {
618
  */
619
  $this->config = apply_filters( "woo_feed_{$this->config['provider']}_parsed_rules", $this->config, $this->context );
620
  }
621
-
622
  /**
623
  * filter parsed rules
624
  *
@@ -628,10 +647,10 @@ class Config {
628
  * @since 3.3.7 $provider parameter removed
629
  */
630
  $this->config = apply_filters( 'woo_feed_parsed_rules', $this->config, $this->context );
631
-
632
  return $this->config;
633
  }
634
-
635
  /**
636
  * Get Feed URL.
637
  *
@@ -641,10 +660,10 @@ class Config {
641
  if ( isset( $this->feedInfo['url'] ) ) {
642
  return $this->feedInfo['url'];
643
  }
644
-
645
  return false;
646
  }
647
-
648
  /**
649
  * Get Feed File Path.
650
  *
@@ -654,26 +673,15 @@ class Config {
654
  $upload_dir = wp_get_upload_dir();
655
  $url = $this->get_feed_url();
656
  $file_name = basename( $url );
657
-
658
  if ( ! isset( $this->config['provider'] ) && ! isset( $this->config['feedType'] ) ) {
659
  return false;
660
  }
661
-
662
  return sprintf( '%s/woo-feed/%s/%s/%s', $upload_dir['basedir'], $this->config['provider'], $this->config['feedType'], $file_name );
663
  }
664
-
665
- /**
666
- * Get Feed name.
667
- *
668
- * @return string
669
- */
670
- public function get_feed_file_name() {
671
- $path = $this->get_feed_path();
672
-
673
- return basename( $path );
674
- }
675
-
676
-
677
  /**
678
  * Get Feed Status.
679
  *
@@ -683,7 +691,7 @@ class Config {
683
  if ( isset( $this->feedInfo['status'] ) ) {
684
  return $this->feedInfo['status'];
685
  }
686
-
687
  return false;
688
  }
689
- }
9
  * @var array|bool
10
  */
11
  private $feedInfo;
12
+
13
  /**
14
  * @var array|bool
15
  */
18
  * @var mixed
19
  */
20
  private $context;
21
+
22
  /**
23
  * @param array $feedInfo
24
  * @param string $context
25
  */
26
  public function __construct( $feedInfo, $context = 'view' ) {
27
+
28
  $this->feedInfo = $feedInfo;
29
  $this->context = $context;
30
  $this->config = isset( $this->feedInfo['feedrules'] ) ? $this->feedInfo['feedrules'] : $this->feedInfo;
31
  }
32
+
33
  public function __isset( $name ) {
34
  if ( isset( $this->config[ $name ] ) ) {
35
  return true;
36
  }
37
+
38
  return false;
39
  }
40
+
41
  public function __get( $name ) {
42
  return $this->config[ $name ];
43
  }
44
+
45
  public function __set( $name, $value ) {
46
  return $this->config[ $name ] = $value;
47
  }
48
+
49
  /**
50
  *
51
  * @return array
53
  public function get_feed_rules() {
54
  return isset( $this->feedInfo['feedrules'] ) ? $this->feedInfo['feedrules'] : $this->feedInfo;
55
  }
56
+
57
  /**
58
  * Get Feed name.
59
  *
62
  public function get_feed_id() {
63
  return $this->config['feed_id'];
64
  }
65
+
66
  /**
67
  * Get Feed name.
68
  *
71
  public function get_feed_name() {
72
  return $this->config['filename'];
73
  }
74
+
75
+ /**
76
+ * Get Feed file name.
77
+ *
78
+ * @return string
79
+ */
80
+ public function get_feed_file_name( $array = false ) {
81
+ if ( isset( $this->feedInfo['url'] ) ) {
82
+ $fileInfo = pathinfo( $this->feedInfo['url'] );
83
+ if ( $array ) {
84
+ return $fileInfo;
85
+ }
86
+
87
+ return $fileInfo['basename'];
88
+ }
89
+
90
+ return false;
91
+ }
92
+
93
  /**
94
  * Get Feed Template.
95
  *
98
  public function get_feed_template() {
99
  return $this->config['provider'];
100
  }
101
+
102
  /**
103
  * Get Feed Language.
104
  *
107
  public function get_feed_language() {
108
  return $this->config['feedLanguage'];
109
  }
110
+
111
  /**
112
  * Get Feed Currency.
113
  *
117
  if ( $this->config['feedCurrency'] ) {
118
  return $this->config['feedCurrency'];
119
  }
120
+
121
  $attributes = $this->config['attributes'];
122
  $priceAttrs = [ 'price', 'current_price', 'price_with_tax', 'current_price_with_tax' ];
123
  foreach ( $priceAttrs as $price_attr ) {
126
  break;
127
  }
128
  }
129
+
130
  return isset( $this->config['suffix'][ $key ] ) ? $this->config['suffix'][ $key ] : get_woocommerce_currency();
131
  }
132
+
133
  /**
134
  * Get Feed Country.
135
  *
138
  public function get_feed_country() {
139
  return $this->config['feed_country'];
140
  }
141
+
142
  /**
143
  * Get Feed File Type.
144
  *
147
  public function get_feed_file_type() {
148
  return $this->config['feedType'];
149
  }
150
+
151
  /**
152
  * Get Feed File Type.
153
  *
154
  * @return string
155
  */
156
  public function get_delimiter() {
157
+
158
  if ( 'tsv' === $this->config['feedType'] ) {
159
  $this->config['delimiter'] = "\t";
160
+
161
  return $this->config['delimiter'];
162
  }
163
+
164
  if ( ' ' === $this->config['delimiter'] ) {
165
  $this->config['delimiter'] = "\s";
166
  }
167
+
168
  return $this->config['delimiter'];
169
  }
170
+
171
  /**
172
  * Get Feed File Type.
173
  *
177
  if ( in_array( $this->config['enclosure'], [ 'double', 'single' ] ) ) {
178
  return ( 'double' === $this->config['enclosure'] ) ? '"' : "'";
179
  }
180
+
181
  return '';
182
  }
183
+
184
  /**
185
  * Get Feed items wrapper.
186
  *
189
  public function get_feed_items_wrapper() {
190
  return $this->config['itemsWrapper'];
191
  }
192
+
193
  /**
194
  * Get Feed item wrapper.
195
  *
198
  public function get_feed_item_wrapper() {
199
  return $this->config['itemWrapper'];
200
  }
201
+
202
  /**
203
  * Get Feed Extra Header.
204
  *
207
  public function get_feed_extra_header() {
208
  return $this->config['extraHeader'];
209
  }
210
+
211
  /**
212
  * Get Feed Shipping Country.
213
  *
214
  * @return string
215
  */
216
  public function get_shipping_country() {
217
+ return $this->config['shipping_country'];
218
  }
219
+
220
  /**
221
  * Get Feed Tax Country.
222
  *
225
  public function get_tax_country() {
226
  return $this->config['tax_country'];
227
  }
228
+
229
  /**
230
  * Get String Replace config
231
  *
235
  if ( ! empty( $this->config['str_replace'] ) ) {
236
  return $this->config['str_replace'];
237
  }
238
+
239
  return false;
240
  }
241
+
242
  /**
243
  * Get URL campaign parameter.
244
  *
247
  public function get_campaign_parameters() {
248
  return $this->config['campaign_parameters'];
249
  }
250
+
251
  /**
252
  * Status to remove backorder products.
253
  *
256
  public function remove_backorder_product() {
257
  return 'y' === $this->config['is_backorder'];
258
  }
259
+
260
  /**
261
  * Status to remove outofstock products.
262
  *
265
  public function remove_outofstock_product() {
266
  return 'y' === $this->config['is_outOfStock'];
267
  }
268
+
269
  /**
270
  * Status to remove empty description products.
271
  *
274
  public function remove_empty_description() {
275
  return 'y' === $this->config['is_outOfStock'];
276
  }
277
+
278
  /**
279
  * Status to remove empty image products.
280
  *
283
  public function remove_empty_image() {
284
  return 'y' === $this->config['is_emptyImage'];
285
  }
286
+
287
  /**
288
  * Status to remove empty price products.
289
  *
292
  public function remove_empty_price() {
293
  return 'y' === $this->config['is_emptyPrice'];
294
  }
295
+
296
  /**
297
  * Get Price Number Format.
298
  *
305
  'thousand_separator' => apply_filters( 'ctx_feed_number_format_thousand_separator', $this->config['thousand_separator'], $this->config ),
306
  'decimals' => apply_filters( 'ctx_feed_number_format_decimals', $this->config['decimals'], $this->config ),
307
  ];
308
+
309
  return apply_filters( 'ctx_feed_number_format', $number_format, $this->config );
310
  }
311
+
312
  return false;
313
  }
314
+
315
  /**
316
  * Get product Ids to exclude.
317
  *
318
  * @return array|bool
319
  */
320
  public function get_products_to_exclude() {
321
+
322
  if ( isset( $this->config['filter_mode'] ) ) {
323
  $mode = $this->config['filter_mode'];
324
  if ( 'exclude' === $mode['product_ids'] && ! empty( $this->config['product_ids'] ) ) {
325
  return explode( ',', $this->config['product_ids'] );
326
  }
327
  }
328
+
329
  return false;
330
  }
331
+
332
  /**
333
  * Get product Ids to include.
334
  *
335
  * @return array|bool
336
  */
337
  public function get_products_to_include() {
338
+
339
  if ( isset( $this->config['filter_mode'] ) ) {
340
  $mode = $this->config['filter_mode'];
341
  if ( 'include' === $mode['product_ids'] && ! empty( $this->config['product_ids'] ) ) {
342
  return explode( ',', $this->config['product_ids'] );
343
  }
344
  }
345
+
346
  return false;
347
  }
348
+
349
  /**
350
  * Get categories to exclude.
351
  *
352
  * @return mixed
353
  */
354
  public function get_categories_to_exclude() {
355
+
356
  if ( isset( $this->config['filter_mode'] ) ) {
357
  $mode = $this->config['filter_mode'];
358
  if ( 'exclude' === $mode['categories'] && ! empty( $this->config['categories'] ) ) {
359
  return $this->config['categories'];
360
  }
361
  }
362
+
363
  return false;
364
  }
365
+
366
  /**
367
  * Get categories to include.
368
  *
369
  * @return mixed
370
  */
371
  public function get_categories_to_include() {
372
+
373
  if ( isset( $this->config['filter_mode'] ) ) {
374
  $mode = $this->config['filter_mode'];
375
  if ( 'include' === $mode['categories'] && ! empty( $this->config['categories'] ) ) {
376
  return $this->config['categories'];
377
  }
378
  }
379
+
380
  return false;
381
  }
382
+
383
+
384
  /**
385
  * Get post statuses to include.
386
  *
393
  if ( 'include' === $mode['post_status'] ) {
394
  return $this->config['post_status'];
395
  }
396
+
397
  if ( 'exclude' === $mode['post_status'] ) {
398
  return array_merge( array_diff( $status, $this->config['post_status'] ), array_diff( $status, $this->config['post_status'] ) );
399
  }
400
  }
401
+
402
  return false;
403
  }
404
+
405
  /**
406
  * Get post statuses to include.
407
  *
408
  * @return string|bool
409
  */
410
  public function get_vendors_to_include() {
411
+
412
  if ( isset( $this->config['vendors'] ) && ! empty( $this->config['vendors'] ) ) {
413
  return implode( ',', $this->config['vendors'] );
414
  }
415
+
416
  return false;
417
  }
418
+
419
  /**
420
  * Get post statuses to include.
421
  *
422
  * @return bool
423
  */
424
  public function get_variations_to_include() {
425
+
426
  return isset( $this->config['is_variations'] ) && in_array( $this->config['is_variations'], [ 'y', 'both' ] );
427
  }
428
+
429
  /**
430
  * Get Advance Filter Config.
431
  *
440
  "concatType" => $this->config['concatType'],
441
  ];
442
  }
443
+
444
  return false;
445
  }
446
+
447
  /**
448
  * Get FTP Config.
449
  *
454
  if ( '0' === $this->config['ftpenabled'] ) {
455
  return false;
456
  }
457
+
458
  return [
459
  "type" => $this->config['ftporsftp'],
460
  "host" => $this->config['ftphost'],
465
  "mode" => $this->config['ftpmode'],
466
  ];
467
  }
468
+
469
  return false;
470
  }
471
+
472
  /**
473
  * Get variable product config.
474
  *
482
  "variable_quantity" => $this->config['variable_quantity'],
483
  ];
484
  }
485
+
486
  return false;
487
  }
488
+
489
  /**
490
  * Get composite product price settings.
491
  *
494
  public function get_composite_price_type() {
495
  return $this->config['composite_price'];
496
  }
497
+
498
  /**
499
  * Get Feed Info
500
  *
503
  public function get_feed() {
504
  return $this->feedInfo;
505
  }
506
+
507
  /**
508
  * Get Feed Info
509
  *
514
  public function set_feed( $feedInfo ) {
515
  return $this->feedInfo = $feedInfo;
516
  }
517
+
518
  /**
519
  * Get Feed Configuration.
520
  *
524
  if ( $this->feedInfo ) {
525
  return ( new Config( $this->feedInfo['feedrules'] ) );
526
  }
527
+
528
  return false;
529
  }
530
+
531
  /**
532
  * Get Feed Configuration.
533
  *
536
  public function get_config() {
537
  return $this->config;
538
  }
539
+
540
  /**
541
  * Set Feed Configuration.
542
  *
547
  // if ( empty( $this->config ) ) {
548
  // $this->config = array();
549
  // }
550
+
551
  $defaults = array(
552
  'provider' => '',
553
  'feed_country' => '',
594
  'is_emptyImage' => 'n',
595
  'is_emptyPrice' => 'n',
596
  'product_visibility' => 0,
597
+ 'shipping_country' => '',
598
+ 'tax_country' => '',
599
  // include hidden ? 1 yes 0 no
600
  'outofstock_visibility' => 0,
601
  // override wc global option for out-of-stock product hidden from catalog? 1 yes 0 no
604
  'thousand_separator' => stripslashes( apply_filters( 'wc_get_price_thousand_separator', get_option( 'woocommerce_price_thousand_sep' ) ) ),
605
  'decimals' => absint( apply_filters( 'wc_get_price_decimals', get_option( 'woocommerce_price_num_decimals', 2 ) ) ),
606
  );
607
+
608
  $this->config = wp_parse_args( $config, $defaults );
609
  $this->config['filter_mode'] = wp_parse_args(
610
  $this->config['filter_mode'],
614
  'post_status' => 'include',
615
  )
616
  );
617
+
618
  $this->config['campaign_parameters'] = wp_parse_args(
619
  $this->config['campaign_parameters'],
620
  array(
625
  'utm_content' => '',
626
  )
627
  );
628
+
629
  if ( ! empty( $this->config['provider'] ) && is_string( $this->config['provider'] ) ) {
630
  /**
631
  * filter parsed rules for provider
637
  */
638
  $this->config = apply_filters( "woo_feed_{$this->config['provider']}_parsed_rules", $this->config, $this->context );
639
  }
640
+
641
  /**
642
  * filter parsed rules
643
  *
647
  * @since 3.3.7 $provider parameter removed
648
  */
649
  $this->config = apply_filters( 'woo_feed_parsed_rules', $this->config, $this->context );
650
+
651
  return $this->config;
652
  }
653
+
654
  /**
655
  * Get Feed URL.
656
  *
660
  if ( isset( $this->feedInfo['url'] ) ) {
661
  return $this->feedInfo['url'];
662
  }
663
+
664
  return false;
665
  }
666
+
667
  /**
668
  * Get Feed File Path.
669
  *
673
  $upload_dir = wp_get_upload_dir();
674
  $url = $this->get_feed_url();
675
  $file_name = basename( $url );
676
+
677
  if ( ! isset( $this->config['provider'] ) && ! isset( $this->config['feedType'] ) ) {
678
  return false;
679
  }
680
+
681
  return sprintf( '%s/woo-feed/%s/%s/%s', $upload_dir['basedir'], $this->config['provider'], $this->config['feedType'], $file_name );
682
  }
683
+
684
+
 
 
 
 
 
 
 
 
 
 
 
685
  /**
686
  * Get Feed Status.
687
  *
691
  if ( isset( $this->feedInfo['status'] ) ) {
692
  return $this->feedInfo['status'];
693
  }
694
+
695
  return false;
696
  }
697
+ }
V5/Utility/DropDown.php CHANGED
@@ -1,69 +1,89 @@
1
  <?php
2
- namespace CTXFeed\V5\Utility;
3
- class DropDown
4
- {
5
- /**
6
- * Create Dropdown from array.
7
- *
8
- * @param array $data Array to Create Dropdown.
9
- * @param string $cache_key Cache Key if dropdown need to be cached or get the dropdown from cache.
10
- * @param string $selected Option value that need to be selected.
11
- * @param bool $cache Cache Status.
12
- *
13
- * @return array|false|mixed|string|string[]
14
- */
15
- public static function Create($data, $selected = null, $cache_key = null, $cache = false)
16
- {
17
- //TODO: Option to set disabled options.
18
-
19
- $options = "";
20
- if (empty($data) || !is_array($data)) {
21
- return "<option class='disabled' selected>No data available.</option>";
22
- }
23
-
24
- // If $cache true then return cached data.
25
- if ($cache) {
26
- $options = Cache::get($cache_key);
27
- if ($options) {
28
- if ($selected !== '') {
29
- $selected = esc_attr($selected);
30
- $options = str_replace("value=\"{$selected}\"", "value=\"{$selected}\" selected", $options);
31
- }
32
- return $options;
33
- }
34
- }
35
-
36
- // Create Cache.
37
- if (array_key_exists('optionGroup', $data) && array_key_exists('option', $data)) {
38
- foreach ($data as $value) {
39
- if (isset($value['optionGroup'])) {
40
- $options .= "<optgroup label=\"{$value['optionGroup']}\">";
41
- }
42
 
43
- if (isset($value['options']) && !empty($value['options'])) {
44
- foreach ($value['options'] as $optionKey => $option) {
45
- $options .= sprintf('<option value="%s">%s</option>', $optionKey, $option);
46
- }
47
-
48
- $options .= isset($value['optionGroup']) ? '</optgroup>' : '';
49
- }
50
- }
51
- } else {
52
- foreach ($data as $optionKey => $option) {
53
- $options .= sprintf('<option value="%s">%s</option>', $optionKey, $option);
54
- }
55
- }
56
-
57
- // If $cache true then set cache.
58
- if ($cache) {
59
- Cache::set($cache_key, $options);
60
- }
61
-
62
- if ($selected !== '') {
63
- $selected = esc_attr($selected);
64
- $options = str_replace("value=\"{$selected}\"", "value=\"{$selected}\" selected", $options);
65
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
 
67
- return $options;
68
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  }
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
+ namespace CTXFeed\V5\Utility;
4
+ class DropDown {
5
+ /**
6
+ * @var string $options Hold Options
7
+ */
8
+ private static $options;
9
+
10
+ public function __construct() {
11
+ self::$options = '';
12
+ }
13
+
14
+ /**
15
+ * Create Dropdown from array.
16
+ *
17
+ * @param array $data Array to Create Dropdown.
18
+ * @param string $cache_key Cache Key if dropdown need to be cached or get the dropdown from cache.
19
+ * @param string|array $selected Option value that need to be selected.
20
+ * @param bool $cache Cache Status.
21
+ *
22
+ * @return array|false|mixed|string|string[]
23
+ */
24
+ public static function Create( $data, $selected, $cache_key = null, $cache = false ) {
25
+ //TODO: Option to set disabled options.
26
+
27
+ self::$options = "";
28
+
29
+ if ( empty( $data ) || ! is_array( $data ) ) {
30
+ return "<option class='disabled' selected>No data available.</option>";
31
+ }
32
+
33
+ // If $cache true then return cached data.
34
+ if ( $cache ) {
35
+ self::$options = Cache::get( $cache_key );
36
+ if ( self::$options ) {
37
+ if ( $selected !== '' && is_string( $selected ) ) {
38
+ $selected = esc_attr( $selected );
39
+ self::$options = str_replace( "value=\"$selected\"", "value=\"$selected\" selected", self::$options );
40
+ } elseif ( $selected !== '' && is_array( $selected ) ) {
41
+ foreach ( $selected as $selectedValue ) {
42
+ $selectedValue = esc_attr( $selectedValue );
43
+ self::$options = str_replace( "value=\"$selectedValue\"", "value=\"$selectedValue\" selected", self::$options );
44
+ }
45
+ }
46
+
47
+ return self::$options;
48
+ }
49
+ }
50
 
51
+ if ( count($data) !== count($data, COUNT_RECURSIVE) ) {
52
+
53
+ foreach ( $data as $value ) {
54
+ if ( isset( $value['optionGroup'] ) ) {
55
+ self::$options .= "<optgroup label=\"{$value['optionGroup']}\">";
56
+ }
57
+
58
+ if ( isset( $value['options'] ) && ! empty( $value['options'] ) ) {
59
+ foreach ( $value['options'] as $optionKey => $option ) {
60
+ self::$options .= sprintf( '<option value="%s">%s</option>', $optionKey, $option );
61
+ }
62
+
63
+ self::$options .= isset( $value['optionGroup'] ) ? '</optgroup>' : '';
64
+ }
65
+ }
66
+ } else {
67
+ foreach ( $data as $optionKey => $option ) {
68
+ self::$options .= sprintf( '<option value="%s">%s</option>', $optionKey, $option );
69
+ }
70
+ }
71
+
72
+ // If $cache true then set cache.
73
+ if ( $cache ) {
74
+ Cache::set( $cache_key, self::$options );
75
+ }
76
+
77
+ if ( $selected !== '' && is_string( $selected ) ) {
78
+ $selected = esc_attr( $selected );
79
+ self::$options = str_replace( "value=\"$selected\"", "value=\"$selected\" selected", self::$options );
80
+ } elseif ( $selected !== '' && is_array( $selected ) ) {
81
+ foreach ( $selected as $selectedValue ) {
82
+ $selectedValue = esc_attr( $selectedValue );
83
+ self::$options = str_replace( "value=\"$selectedValue\"", "value=\"$selectedValue\" selected", self::$options );
84
+ }
85
+ }
86
+
87
+ return self::$options;
88
+ }
89
  }
V5/Utility/Logs.php CHANGED
@@ -4,6 +4,7 @@ namespace CTXFeed\V5\Utility;
4
 
5
  use Exception;
6
  use WC_Logger;
 
7
 
8
  /**
9
  * Log Helper Functions
@@ -12,37 +13,37 @@ use WC_Logger;
12
  * @subpackage CTX_WC_Log_Handler
13
  * @since WooFeed 3.3.0
14
  * @version 1.0.0
15
- * @author KD <mhamudul.hk@gmail.com>
16
  * @copyright WebAppick
17
  */
18
  class Logs {
19
-
20
  private static $is_debug_enabled;
21
-
22
  public function __construct() {
23
  self::$is_debug_enabled = woo_feed_get_options( 'enable_error_debugging', false ) === 'on';
24
-
25
  }
26
-
27
  public static function get_logger() {
28
  if ( ! class_exists( CTX_WC_Log_Handler::class ) ) {
29
  return false;
30
  }
31
-
32
  static $logger = null;
33
  if ( $logger instanceof \WC_Logger ) {
34
  return $logger;
35
  }
36
-
37
  if ( ! class_exists( 'WC_Logger' ) ) {
38
  return $logger;
39
  }
40
-
41
-
42
  return new WC_Logger( [ new CTX_WC_Log_Handler() ] );
43
  }
44
-
45
-
46
  /**
47
  * Write message to log file.
48
  * Write log message if debugging is enabled
@@ -68,7 +69,7 @@ class Logs {
68
  */
69
  public static function write_log( $source, $message, $level = 'debug', $data = null, $force_log = true, $wc_log = false ) {
70
  if ( true === $force_log || woo_feed_is_debugging_enabled() ) {
71
-
72
  if ( ! in_array( $level, [
73
  'emergency',
74
  'alert',
@@ -91,13 +92,13 @@ class Logs {
91
  } else {
92
  $context['data'] = $data;
93
  }
94
-
95
  $loggers = [ self::get_logger() ];
96
  if ( true === $wc_log && function_exists( 'wc_get_logger' ) ) {
97
  $loggers[] = wc_get_logger();
98
  }
99
-
100
-
101
  foreach ( $loggers as $logger ) {
102
  if ( is_callable( [ $logger, $level ] ) ) {
103
  $logger->$level( $message . PHP_EOL, $context );
@@ -105,7 +106,7 @@ class Logs {
105
  }
106
  }
107
  }
108
-
109
  /**
110
  * Log Fatal Errors in both wc-logs and woo-feed/logs
111
  *
@@ -115,9 +116,9 @@ class Logs {
115
  public static function write_fatal_log( $message, $data = null ) {
116
  // woocommerce use 'fatal-errors' as log handler...
117
  // make no conflicts with woocommerce fatal-errors logs
118
- self::write_log( 'woo-feed-fatal-errors', $message, 'critical', $data, true, true );
119
  }
120
-
121
  /**
122
  * Log Fatal Errors in both wc-logs and woo-feed/logs
123
  *
@@ -127,9 +128,9 @@ class Logs {
127
  public static function write_debug_log( $message, $data = null ) {
128
  // woocommerce use 'fatal-errors' as log handler...
129
  // make no conflicts with woocommerce fatal-errors logs
130
- self::write_log( 'woo-feed-fatal-errors', $message, 'debug', $data, true, true );
131
  }
132
-
133
  /**
134
  * Delete Log file by source or handle name
135
  *
@@ -142,9 +143,9 @@ class Logs {
142
  if ( ! class_exists( "CTX_WC_Log_Handler" ) ) {
143
  return false;
144
  }
145
-
146
  try {
147
- if ( 'woo-feed-fatal-errors' === $source ) {
148
  // fatal error are also logged in wc-logs dir.
149
  if ( class_exists( 'WC_Log_Handler_File', false ) ) {
150
  $log_handler = new WC_Log_Handler_File();
@@ -156,10 +157,10 @@ class Logs {
156
  } catch ( Exception $e ) {
157
  return false;
158
  }
159
-
160
  return false;
161
  }
162
-
163
  /**
164
  * Delete all log files.
165
  *
@@ -167,30 +168,16 @@ class Logs {
167
  */
168
  public static function delete_all_logs() {
169
  // delete the fatal error log
170
- self::delete_log( 'woo-feed-fatal-errors' );
171
  // get all logs
172
  $logs = CTX_WC_Log_Handler::get_log_files();
173
  foreach ( $logs as $log ) {
174
  self::delete_log( $log, true );
175
  }
176
  }
177
-
178
- /**
179
- * Log Feed Generation Progress to individual log file.
180
- *
181
- * @param string $feed_name Feed name, will be use for log file name.
182
- * @param string $message Log message.
183
- * @param mixed $data Extra data for the log handler.
184
- * @param bool $force_log ignore debugging settings
185
- *
186
- * @return void
187
- * @since 3.2.1
188
- *
189
- */
190
- public static function log_feed_process( $feed_name, $message, $data = null, $force_log = false ) {
191
- self::write_log( $feed_name, $message, 'debug', $data, $force_log, false );
192
- }
193
-
194
  /**
195
  * Trigger logging cleanup using the logging class.
196
  *
@@ -202,7 +189,7 @@ class Logs {
202
  $logger->clear_expired_logs();
203
  }
204
  }
205
-
206
-
207
  }
208
  // End of file logs class.
4
 
5
  use Exception;
6
  use WC_Logger;
7
+ use CTXFeed\V5\Utility\CTX_WC_Log_Handler;
8
 
9
  /**
10
  * Log Helper Functions
13
  * @subpackage CTX_WC_Log_Handler
14
  * @since WooFeed 3.3.0
15
  * @version 1.0.0
16
+ * @author Ohidul Islam <wahid0003@gmail.com>
17
  * @copyright WebAppick
18
  */
19
  class Logs {
20
+
21
  private static $is_debug_enabled;
22
+
23
  public function __construct() {
24
  self::$is_debug_enabled = woo_feed_get_options( 'enable_error_debugging', false ) === 'on';
25
+
26
  }
27
+
28
  public static function get_logger() {
29
  if ( ! class_exists( CTX_WC_Log_Handler::class ) ) {
30
  return false;
31
  }
32
+
33
  static $logger = null;
34
  if ( $logger instanceof \WC_Logger ) {
35
  return $logger;
36
  }
37
+
38
  if ( ! class_exists( 'WC_Logger' ) ) {
39
  return $logger;
40
  }
41
+
42
+
43
  return new WC_Logger( [ new CTX_WC_Log_Handler() ] );
44
  }
45
+
46
+
47
  /**
48
  * Write message to log file.
49
  * Write log message if debugging is enabled
69
  */
70
  public static function write_log( $source, $message, $level = 'debug', $data = null, $force_log = true, $wc_log = false ) {
71
  if ( true === $force_log || woo_feed_is_debugging_enabled() ) {
72
+
73
  if ( ! in_array( $level, [
74
  'emergency',
75
  'alert',
92
  } else {
93
  $context['data'] = $data;
94
  }
95
+
96
  $loggers = [ self::get_logger() ];
97
  if ( true === $wc_log && function_exists( 'wc_get_logger' ) ) {
98
  $loggers[] = wc_get_logger();
99
  }
100
+
101
+
102
  foreach ( $loggers as $logger ) {
103
  if ( is_callable( [ $logger, $level ] ) ) {
104
  $logger->$level( $message . PHP_EOL, $context );
106
  }
107
  }
108
  }
109
+
110
  /**
111
  * Log Fatal Errors in both wc-logs and woo-feed/logs
112
  *
116
  public static function write_fatal_log( $message, $data = null ) {
117
  // woocommerce use 'fatal-errors' as log handler...
118
  // make no conflicts with woocommerce fatal-errors logs
119
+ self::write_log( 'ctx-feed-fatal-errors', $message, 'critical', $data, true, true );
120
  }
121
+
122
  /**
123
  * Log Fatal Errors in both wc-logs and woo-feed/logs
124
  *
128
  public static function write_debug_log( $message, $data = null ) {
129
  // woocommerce use 'fatal-errors' as log handler...
130
  // make no conflicts with woocommerce fatal-errors logs
131
+ self::write_log( 'ctx-feed-fatal-errors', $message, 'debug', $data, true, true );
132
  }
133
+
134
  /**
135
  * Delete Log file by source or handle name
136
  *
143
  if ( ! class_exists( "CTX_WC_Log_Handler" ) ) {
144
  return false;
145
  }
146
+
147
  try {
148
+ if ( 'ctx-feed-fatal-errors' === $source ) {
149
  // fatal error are also logged in wc-logs dir.
150
  if ( class_exists( 'WC_Log_Handler_File', false ) ) {
151
  $log_handler = new WC_Log_Handler_File();
157
  } catch ( Exception $e ) {
158
  return false;
159
  }
160
+
161
  return false;
162
  }
163
+
164
  /**
165
  * Delete all log files.
166
  *
168
  */
169
  public static function delete_all_logs() {
170
  // delete the fatal error log
171
+ self::delete_log( 'ctx-feed-fatal-errors' );
172
  // get all logs
173
  $logs = CTX_WC_Log_Handler::get_log_files();
174
  foreach ( $logs as $log ) {
175
  self::delete_log( $log, true );
176
  }
177
  }
178
+
179
+
180
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
181
  /**
182
  * Trigger logging cleanup using the logging class.
183
  *
189
  $logger->clear_expired_logs();
190
  }
191
  }
192
+
193
+
194
  }
195
  // End of file logs class.
admin/js/localization/messages_ar.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: AR (Arabic; العربية)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "هذا الحقل إلزامي",
15
- remote: "يرجى تصحيح هذا الحقل للمتابعة",
16
- email: "رجاء إدخال عنوان بريد إلكتروني صحيح",
17
- url: "رجاء إدخال عنوان موقع إلكتروني صحيح",
18
- date: "رجاء إدخال تاريخ صحيح",
19
- dateISO: "رجاء إدخال تاريخ صحيح (ISO)",
20
- number: "رجاء إدخال عدد بطريقة صحيحة",
21
- digits: "رجاء إدخال أرقام فقط",
22
- creditcard: "رجاء إدخال رقم بطاقة ائتمان صحيح",
23
- equalTo: "رجاء إدخال نفس القيمة",
24
- extension: "رجاء إدخال ملف بامتداد موافق عليه",
25
- maxlength: $.validator.format("الحد الأقصى لعدد الحروف هو {0}"),
26
- minlength: $.validator.format("الحد الأدنى لعدد الحروف هو {0}"),
27
- rangelength: $.validator.format("عدد الحروف يجب أن يكون بين {0} و {1}"),
28
- range: $.validator.format("رجاء إدخال عدد قيمته بين {0} و {1}"),
29
- max: $.validator.format("رجاء إدخال عدد أقل من أو يساوي (0}"),
30
- min: $.validator.format("رجاء إدخال عدد أكبر من أو يساوي (0}")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_ar.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"هذا الحقل إلزامي",remote:"يرجى تصحيح هذا الحقل للمتابعة",email:"رجاء إدخال عنوان بريد إلكتروني صحيح",url:"رجاء إدخال عنوان موقع إلكتروني صحيح",date:"رجاء إدخال تاريخ صحيح",dateISO:"رجاء إدخال تاريخ صحيح (ISO)",number:"رجاء إدخال عدد بطريقة صحيحة",digits:"رجاء إدخال أرقام فقط",creditcard:"رجاء إدخال رقم بطاقة ائتمان صحيح",equalTo:"رجاء إدخال نفس القيمة",extension:"رجاء إدخال ملف بامتداد موافق عليه",maxlength:a.validator.format("الحد الأقصى لعدد الحروف هو {0}"),minlength:a.validator.format("الحد الأدنى لعدد الحروف هو {0}"),rangelength:a.validator.format("عدد الحروف يجب أن يكون بين {0} و {1}"),range:a.validator.format("رجاء إدخال عدد قيمته بين {0} و {1}"),max:a.validator.format("رجاء إدخال عدد أقل من أو يساوي (0}"),min:a.validator.format("رجاء إدخال عدد أكبر من أو يساوي (0}")})});
 
 
 
 
admin/js/localization/messages_bg.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: BG (Bulgarian; български език)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Полето е задължително.",
15
- remote: "Моля, въведете правилната стойност.",
16
- email: "Моля, въведете валиден email.",
17
- url: "Моля, въведете валидно URL.",
18
- date: "Моля, въведете валидна дата.",
19
- dateISO: "Моля, въведете валидна дата (ISO).",
20
- number: "Моля, въведете валиден номер.",
21
- digits: "Моля, въведете само цифри.",
22
- creditcard: "Моля, въведете валиден номер на кредитна карта.",
23
- equalTo: "Моля, въведете същата стойност отново.",
24
- extension: "Моля, въведете стойност с валидно разширение.",
25
- maxlength: $.validator.format("Моля, въведете повече от {0} символа."),
26
- minlength: $.validator.format("Моля, въведете поне {0} символа."),
27
- rangelength: $.validator.format("Моля, въведете стойност с дължина между {0} и {1} символа."),
28
- range: $.validator.format("Моля, въведете стойност между {0} и {1}."),
29
- max: $.validator.format("Моля, въведете стойност по-малка или равна на {0}."),
30
- min: $.validator.format("Моля, въведете стойност по-голяма или равна на {0}.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_bg.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Полето е задължително.",remote:"Моля, въведете правилната стойност.",email:"Моля, въведете валиден email.",url:"Моля, въведете валидно URL.",date:"Моля, въведете валидна дата.",dateISO:"Моля, въведете валидна дата (ISO).",number:"Моля, въведете валиден номер.",digits:"Моля, въведете само цифри.",creditcard:"Моля, въведете валиден номер на кредитна карта.",equalTo:"Моля, въведете същата стойност отново.",extension:"Моля, въведете стойност с валидно разширение.",maxlength:a.validator.format("Моля, въведете повече от {0} символа."),minlength:a.validator.format("Моля, въведете поне {0} символа."),rangelength:a.validator.format("Моля, въведете стойност с дължина между {0} и {1} символа."),range:a.validator.format("Моля, въведете стойност между {0} и {1}."),max:a.validator.format("Моля, въведете стойност по-малка или равна на {0}."),min:a.validator.format("Моля, въведете стойност по-голяма или равна на {0}.")})});
 
 
 
 
admin/js/localization/messages_bn_BD.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: bn_BD (Bengali, Bangladesh)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "এই তথ্যটি আবশ্যক।",
15
- remote: "এই তথ্যটি ঠিক করুন।",
16
- email: "অনুগ্রহ করে একটি সঠিক মেইল ঠিকানা লিখুন।",
17
- url: "অনুগ্রহ করে একটি সঠিক লিঙ্ক দিন।",
18
- date: "তারিখ সঠিক নয়।",
19
- dateISO: "অনুগ্রহ করে একটি সঠিক (ISO) তারিখ লিখুন।",
20
- number: "অনুগ্রহ করে একটি সঠিক নম্বর লিখুন।",
21
- digits: "এখানে শুধু সংখ্যা ব্যবহার করা যাবে।",
22
- creditcard: "অনুগ্রহ করে একটি ক্রেডিট কার্ডের সঠিক নম্বর লিখুন।",
23
- equalTo: "একই মান আবার লিখুন।",
24
- extension: "সঠিক ধরনের ফাইল আপলোড করুন।",
25
- maxlength: $.validator.format("{0}টির বেশি অক্ষর লেখা যাবে না।"),
26
- minlength: $.validator.format("{0}টির কম অক্ষর লেখা যাবে না।"),
27
- rangelength: $.validator.format("{0} থেকে {1} টি অক্ষর সম্বলিত মান লিখুন।"),
28
- range: $.validator.format("{0} থেকে {1} এর মধ্যে একটি মান ব্যবহার করুন।"),
29
- max: $.validator.format("অনুগ্রহ করে {0} বা তার চাইতে কম মান ব্যবহার করুন।"),
30
- min: $.validator.format("অনুগ্রহ করে {0} বা তার চাইতে বেশি মান ব্যবহার করুন।")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_bn_BD.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"এই তথ্যটি আবশ্যক।",remote:"এই তথ্যটি ঠিক করুন।",email:"অনুগ্রহ করে একটি সঠিক মেইল ঠিকানা লিখুন।",url:"অনুগ্রহ করে একটি সঠিক লিঙ্ক দিন।",date:"তারিখ সঠিক নয়।",dateISO:"অনুগ্রহ করে একটি সঠিক (ISO) তারিখ লিখুন।",number:"অনুগ্রহ করে একটি সঠিক নম্বর লিখুন।",digits:"এখানে শুধু সংখ্যা ব্যবহার করা যাবে।",creditcard:"অনুগ্রহ করে একটি ক্রেডিট কার্ডের সঠিক নম্বর লিখুন।",equalTo:"একই মান আবার লিখুন।",extension:"সঠিক ধরনের ফাইল আপলোড করুন।",maxlength:a.validator.format("{0}টির বেশি অক্ষর লেখা যাবে না।"),minlength:a.validator.format("{0}টির কম অক্ষর লেখা যাবে না।"),rangelength:a.validator.format("{0} থেকে {1} টি অক্ষর সম্বলিত মান লিখুন।"),range:a.validator.format("{0} থেকে {1} এর মধ্যে একটি মান ব্যবহার করুন।"),max:a.validator.format("অনুগ্রহ করে {0} বা তার চাইতে কম মান ব্যবহার করুন।"),min:a.validator.format("অনুগ্রহ করে {0} বা তার চাইতে বেশি মান ব্যবহার করুন।")})});
 
 
 
 
admin/js/localization/messages_ca.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: CA (Catalan; català)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Aquest camp és obligatori.",
15
- remote: "Si us plau, omple aquest camp.",
16
- email: "Si us plau, escriu una adreça de correu-e vàlida",
17
- url: "Si us plau, escriu una URL vàlida.",
18
- date: "Si us plau, escriu una data vàlida.",
19
- dateISO: "Si us plau, escriu una data (ISO) vàlida.",
20
- number: "Si us plau, escriu un número enter vàlid.",
21
- digits: "Si us plau, escriu només dígits.",
22
- creditcard: "Si us plau, escriu un número de tarjeta vàlid.",
23
- equalTo: "Si us plau, escriu el mateix valor de nou.",
24
- extension: "Si us plau, escriu un valor amb una extensió acceptada.",
25
- maxlength: $.validator.format("Si us plau, no escriguis més de {0} caracters."),
26
- minlength: $.validator.format("Si us plau, no escriguis menys de {0} caracters."),
27
- rangelength: $.validator.format("Si us plau, escriu un valor entre {0} i {1} caracters."),
28
- range: $.validator.format("Si us plau, escriu un valor entre {0} i {1}."),
29
- max: $.validator.format("Si us plau, escriu un valor menor o igual a {0}."),
30
- min: $.validator.format("Si us plau, escriu un valor major o igual a {0}.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_ca.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Aquest camp és obligatori.",remote:"Si us plau, omple aquest camp.",email:"Si us plau, escriu una adreça de correu-e vàlida",url:"Si us plau, escriu una URL vàlida.",date:"Si us plau, escriu una data vàlida.",dateISO:"Si us plau, escriu una data (ISO) vàlida.",number:"Si us plau, escriu un número enter vàlid.",digits:"Si us plau, escriu només dígits.",creditcard:"Si us plau, escriu un número de tarjeta vàlid.",equalTo:"Si us plau, escriu el mateix valor de nou.",extension:"Si us plau, escriu un valor amb una extensió acceptada.",maxlength:a.validator.format("Si us plau, no escriguis més de {0} caracters."),minlength:a.validator.format("Si us plau, no escriguis menys de {0} caracters."),rangelength:a.validator.format("Si us plau, escriu un valor entre {0} i {1} caracters."),range:a.validator.format("Si us plau, escriu un valor entre {0} i {1}."),max:a.validator.format("Si us plau, escriu un valor menor o igual a {0}."),min:a.validator.format("Si us plau, escriu un valor major o igual a {0}.")})});
 
 
 
 
admin/js/localization/messages_cs.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: CS (Czech; čeština, český jazyk)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Tento údaj je povinný.",
15
- remote: "Prosím, opravte tento údaj.",
16
- email: "Prosím, zadejte platný e-mail.",
17
- url: "Prosím, zadejte platné URL.",
18
- date: "Prosím, zadejte platné datum.",
19
- dateISO: "Prosím, zadejte platné datum (ISO).",
20
- number: "Prosím, zadejte číslo.",
21
- digits: "Prosím, zadávejte pouze číslice.",
22
- creditcard: "Prosím, zadejte číslo kreditní karty.",
23
- equalTo: "Prosím, zadejte znovu stejnou hodnotu.",
24
- extension: "Prosím, zadejte soubor se správnou příponou.",
25
- maxlength: $.validator.format("Prosím, zadejte nejvíce {0} znaků."),
26
- minlength: $.validator.format("Prosím, zadejte nejméně {0} znaků."),
27
- rangelength: $.validator.format("Prosím, zadejte od {0} do {1} znaků."),
28
- range: $.validator.format("Prosím, zadejte hodnotu od {0} do {1}."),
29
- max: $.validator.format("Prosím, zadejte hodnotu menší nebo rovnu {0}."),
30
- min: $.validator.format("Prosím, zadejte hodnotu větší nebo rovnu {0}.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_cs.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Tento údaj je povinný.",remote:"Prosím, opravte tento údaj.",email:"Prosím, zadejte platný e-mail.",url:"Prosím, zadejte platné URL.",date:"Prosím, zadejte platné datum.",dateISO:"Prosím, zadejte platné datum (ISO).",number:"Prosím, zadejte číslo.",digits:"Prosím, zadávejte pouze číslice.",creditcard:"Prosím, zadejte číslo kreditní karty.",equalTo:"Prosím, zadejte znovu stejnou hodnotu.",extension:"Prosím, zadejte soubor se správnou příponou.",maxlength:a.validator.format("Prosím, zadejte nejvíce {0} znaků."),minlength:a.validator.format("Prosím, zadejte nejméně {0} znaků."),rangelength:a.validator.format("Prosím, zadejte od {0} do {1} znaků."),range:a.validator.format("Prosím, zadejte hodnotu od {0} do {1}."),max:a.validator.format("Prosím, zadejte hodnotu menší nebo rovnu {0}."),min:a.validator.format("Prosím, zadejte hodnotu větší nebo rovnu {0}.")})});
 
 
 
 
admin/js/localization/messages_da.js DELETED
@@ -1,30 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: DA (Danish; dansk)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Dette felt er påkrævet.",
15
- maxlength: $.validator.format("Indtast højst {0} tegn."),
16
- minlength: $.validator.format("Indtast mindst {0} tegn."),
17
- rangelength: $.validator.format("Indtast mindst {0} og højst {1} tegn."),
18
- email: "Indtast en gyldig email-adresse.",
19
- url: "Indtast en gyldig URL.",
20
- date: "Indtast en gyldig dato.",
21
- number: "Indtast et tal.",
22
- digits: "Indtast kun cifre.",
23
- equalTo: "Indtast den samme værdi igen.",
24
- range: $.validator.format("Angiv en værdi mellem {0} og {1}."),
25
- max: $.validator.format("Angiv en værdi der højst er {0}."),
26
- min: $.validator.format("Angiv en værdi der mindst er {0}."),
27
- creditcard: "Indtast et gyldigt kreditkortnummer."
28
- });
29
-
30
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_da.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Dette felt er påkrævet.",maxlength:a.validator.format("Indtast højst {0} tegn."),minlength:a.validator.format("Indtast mindst {0} tegn."),rangelength:a.validator.format("Indtast mindst {0} og højst {1} tegn."),email:"Indtast en gyldig email-adresse.",url:"Indtast en gyldig URL.",date:"Indtast en gyldig dato.",number:"Indtast et tal.",digits:"Indtast kun cifre.",equalTo:"Indtast den samme værdi igen.",range:a.validator.format("Angiv en værdi mellem {0} og {1}."),max:a.validator.format("Angiv en værdi der højst er {0}."),min:a.validator.format("Angiv en værdi der mindst er {0}."),creditcard:"Indtast et gyldigt kreditkortnummer."})});
 
 
 
 
admin/js/localization/messages_de.js DELETED
@@ -1,30 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: DE (German, Deutsch)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Dieses Feld ist ein Pflichtfeld.",
15
- maxlength: $.validator.format("Geben Sie bitte maximal {0} Zeichen ein."),
16
- minlength: $.validator.format("Geben Sie bitte mindestens {0} Zeichen ein."),
17
- rangelength: $.validator.format("Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein."),
18
- email: "Geben Sie bitte eine gültige E-Mail Adresse ein.",
19
- url: "Geben Sie bitte eine gültige URL ein.",
20
- date: "Bitte geben Sie ein gültiges Datum ein.",
21
- number: "Geben Sie bitte eine Nummer ein.",
22
- digits: "Geben Sie bitte nur Ziffern ein.",
23
- equalTo: "Bitte denselben Wert wiederholen.",
24
- range: $.validator.format("Geben Sie bitte einen Wert zwischen {0} und {1} ein."),
25
- max: $.validator.format("Geben Sie bitte einen Wert kleiner oder gleich {0} ein."),
26
- min: $.validator.format("Geben Sie bitte einen Wert größer oder gleich {0} ein."),
27
- creditcard: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein."
28
- });
29
-
30
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_de.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Dieses Feld ist ein Pflichtfeld.",maxlength:a.validator.format("Geben Sie bitte maximal {0} Zeichen ein."),minlength:a.validator.format("Geben Sie bitte mindestens {0} Zeichen ein."),rangelength:a.validator.format("Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein."),email:"Geben Sie bitte eine gültige E-Mail Adresse ein.",url:"Geben Sie bitte eine gültige URL ein.",date:"Bitte geben Sie ein gültiges Datum ein.",number:"Geben Sie bitte eine Nummer ein.",digits:"Geben Sie bitte nur Ziffern ein.",equalTo:"Bitte denselben Wert wiederholen.",range:a.validator.format("Geben Sie bitte einen Wert zwischen {0} und {1} ein."),max:a.validator.format("Geben Sie bitte einen Wert kleiner oder gleich {0} ein."),min:a.validator.format("Geben Sie bitte einen Wert größer oder gleich {0} ein."),creditcard:"Geben Sie bitte eine gültige Kreditkarten-Nummer ein."})});
 
 
 
 
admin/js/localization/messages_el.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: EL (Greek; ελληνικά)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Αυτό το πεδίο είναι υποχρεωτικό.",
15
- remote: "Παρακαλώ διορθώστε αυτό το πεδίο.",
16
- email: "Παρακαλώ εισάγετε μια έγκυρη διεύθυνση email.",
17
- url: "Παρακαλώ εισάγετε ένα έγκυρο URL.",
18
- date: "Παρακαλώ εισάγετε μια έγκυρη ημερομηνία.",
19
- dateISO: "Παρακαλώ εισάγετε μια έγκυρη ημερομηνία (ISO).",
20
- number: "Παρακαλώ εισάγετε έναν έγκυρο αριθμό.",
21
- digits: "Παρακαλώ εισάγετε μόνο αριθμητικά ψηφία.",
22
- creditcard: "Παρακαλώ εισάγετε έναν έγκυρο αριθμό πιστωτικής κάρτας.",
23
- equalTo: "Παρακαλώ εισάγετε την ίδια τιμή ξανά.",
24
- extension: "Παρακαλώ εισάγετε μια τιμή με έγκυρη επέκταση αρχείου.",
25
- maxlength: $.validator.format("Παρακαλώ εισάγετε μέχρι και {0} χαρακτήρες."),
26
- minlength: $.validator.format("Παρακαλώ εισάγετε τουλάχιστον {0} χαρακτήρες."),
27
- rangelength: $.validator.format("Παρακαλώ εισάγετε μια τιμή με μήκος μεταξύ {0} και {1} χαρακτήρων."),
28
- range: $.validator.format("Παρακαλώ εισάγετε μια τιμή μεταξύ {0} και {1}."),
29
- max: $.validator.format("Παρακαλώ εισάγετε μια τιμή μικρότερη ή ίση του {0}."),
30
- min: $.validator.format("Παρακαλώ εισάγετε μια τιμή μεγαλύτερη ή ίση του {0}.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_el.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Αυτό το πεδίο είναι υποχρεωτικό.",remote:"Παρακαλώ διορθώστε αυτό το πεδίο.",email:"Παρακαλώ εισάγετε μια έγκυρη διεύθυνση email.",url:"Παρακαλώ εισάγετε ένα έγκυρο URL.",date:"Παρακαλώ εισάγετε μια έγκυρη ημερομηνία.",dateISO:"Παρακαλώ εισάγετε μια έγκυρη ημερομηνία (ISO).",number:"Παρακαλώ εισάγετε έναν έγκυρο αριθμό.",digits:"Παρακαλώ εισάγετε μόνο αριθμητικά ψηφία.",creditcard:"Παρακαλώ εισάγετε έναν έγκυρο αριθμό πιστωτικής κάρτας.",equalTo:"Παρακαλώ εισάγετε την ίδια τιμή ξανά.",extension:"Παρακαλώ εισάγετε μια τιμή με έγκυρη επέκταση αρχείου.",maxlength:a.validator.format("Παρακαλώ εισάγετε μέχρι και {0} χαρακτήρες."),minlength:a.validator.format("Παρακαλώ εισάγετε τουλάχιστον {0} χαρακτήρες."),rangelength:a.validator.format("Παρακαλώ εισάγετε μια τιμή με μήκος μεταξύ {0} και {1} χαρακτήρων."),range:a.validator.format("Παρακαλώ εισάγετε μια τιμή μεταξύ {0} και {1}."),max:a.validator.format("Παρακαλώ εισάγετε μια τιμή μικρότερη ή ίση του {0}."),min:a.validator.format("Παρακαλώ εισάγετε μια τιμή μεγαλύτερη ή ίση του {0}.")})});
 
 
 
 
admin/js/localization/messages_es.js DELETED
@@ -1,36 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: ES (Spanish; Español)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Este campo es obligatorio.",
15
- remote: "Por favor, rellena este campo.",
16
- email: "Por favor, escribe una dirección de correo válida.",
17
- url: "Por favor, escribe una URL válida.",
18
- date: "Por favor, escribe una fecha válida.",
19
- dateISO: "Por favor, escribe una fecha (ISO) válida.",
20
- number: "Por favor, escribe un número válido.",
21
- digits: "Por favor, escribe sólo dígitos.",
22
- creditcard: "Por favor, escribe un número de tarjeta válido.",
23
- equalTo: "Por favor, escribe el mismo valor de nuevo.",
24
- extension: "Por favor, escribe un valor con una extensión aceptada.",
25
- maxlength: $.validator.format("Por favor, no escribas más de {0} caracteres."),
26
- minlength: $.validator.format("Por favor, no escribas menos de {0} caracteres."),
27
- rangelength: $.validator.format("Por favor, escribe un valor entre {0} y {1} caracteres."),
28
- range: $.validator.format("Por favor, escribe un valor entre {0} y {1}."),
29
- max: $.validator.format("Por favor, escribe un valor menor o igual a {0}."),
30
- min: $.validator.format("Por favor, escribe un valor mayor o igual a {0}."),
31
- nifES: "Por favor, escribe un NIF válido.",
32
- nieES: "Por favor, escribe un NIE válido.",
33
- cifES: "Por favor, escribe un CIF válido."
34
- });
35
-
36
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_es.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Este campo es obligatorio.",remote:"Por favor, rellena este campo.",email:"Por favor, escribe una dirección de correo válida.",url:"Por favor, escribe una URL válida.",date:"Por favor, escribe una fecha válida.",dateISO:"Por favor, escribe una fecha (ISO) válida.",number:"Por favor, escribe un número válido.",digits:"Por favor, escribe sólo dígitos.",creditcard:"Por favor, escribe un número de tarjeta válido.",equalTo:"Por favor, escribe el mismo valor de nuevo.",extension:"Por favor, escribe un valor con una extensión aceptada.",maxlength:a.validator.format("Por favor, no escribas más de {0} caracteres."),minlength:a.validator.format("Por favor, no escribas menos de {0} caracteres."),rangelength:a.validator.format("Por favor, escribe un valor entre {0} y {1} caracteres."),range:a.validator.format("Por favor, escribe un valor entre {0} y {1}."),max:a.validator.format("Por favor, escribe un valor menor o igual a {0}."),min:a.validator.format("Por favor, escribe un valor mayor o igual a {0}."),nifES:"Por favor, escribe un NIF válido.",nieES:"Por favor, escribe un NIE válido.",cifES:"Por favor, escribe un CIF válido."})});
 
 
 
 
admin/js/localization/messages_es_AR.js DELETED
@@ -1,37 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: ES (Spanish; Español)
12
- * Region: AR (Argentina)
13
- */
14
- $.extend($.validator.messages, {
15
- required: "Este campo es obligatorio.",
16
- remote: "Por favor, completá este campo.",
17
- email: "Por favor, escribí una dirección de correo válida.",
18
- url: "Por favor, escribí una URL válida.",
19
- date: "Por favor, escribí una fecha válida.",
20
- dateISO: "Por favor, escribí una fecha (ISO) válida.",
21
- number: "Por favor, escribí un número entero válido.",
22
- digits: "Por favor, escribí sólo dígitos.",
23
- creditcard: "Por favor, escribí un número de tarjeta válido.",
24
- equalTo: "Por favor, escribí el mismo valor de nuevo.",
25
- extension: "Por favor, escribí un valor con una extensión aceptada.",
26
- maxlength: $.validator.format("Por favor, no escribas más de {0} caracteres."),
27
- minlength: $.validator.format("Por favor, no escribas menos de {0} caracteres."),
28
- rangelength: $.validator.format("Por favor, escribí un valor entre {0} y {1} caracteres."),
29
- range: $.validator.format("Por favor, escribí un valor entre {0} y {1}."),
30
- max: $.validator.format("Por favor, escribí un valor menor o igual a {0}."),
31
- min: $.validator.format("Por favor, escribí un valor mayor o igual a {0}."),
32
- nifES: "Por favor, escribí un NIF válido.",
33
- nieES: "Por favor, escribí un NIE válido.",
34
- cifES: "Por favor, escribí un CIF válido."
35
- });
36
-
37
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_es_AR.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Este campo es obligatorio.",remote:"Por favor, completá este campo.",email:"Por favor, escribí una dirección de correo válida.",url:"Por favor, escribí una URL válida.",date:"Por favor, escribí una fecha válida.",dateISO:"Por favor, escribí una fecha (ISO) válida.",number:"Por favor, escribí un número entero válido.",digits:"Por favor, escribí sólo dígitos.",creditcard:"Por favor, escribí un número de tarjeta válido.",equalTo:"Por favor, escribí el mismo valor de nuevo.",extension:"Por favor, escribí un valor con una extensión aceptada.",maxlength:a.validator.format("Por favor, no escribas más de {0} caracteres."),minlength:a.validator.format("Por favor, no escribas menos de {0} caracteres."),rangelength:a.validator.format("Por favor, escribí un valor entre {0} y {1} caracteres."),range:a.validator.format("Por favor, escribí un valor entre {0} y {1}."),max:a.validator.format("Por favor, escribí un valor menor o igual a {0}."),min:a.validator.format("Por favor, escribí un valor mayor o igual a {0}."),nifES:"Por favor, escribí un NIF válido.",nieES:"Por favor, escribí un NIE válido.",cifES:"Por favor, escribí un CIF válido."})});
 
 
 
 
admin/js/localization/messages_es_PE.js DELETED
@@ -1,37 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: ES (Spanish; Español)
12
- * Region: PE (Perú)
13
- */
14
- $.extend($.validator.messages, {
15
- required: "Este campo es obligatorio.",
16
- remote: "Por favor, llene este campo.",
17
- email: "Por favor, escriba un correo electrónico válido.",
18
- url: "Por favor, escriba una URL válida.",
19
- date: "Por favor, escriba una fecha válida.",
20
- dateISO: "Por favor, escriba una fecha (ISO) válida.",
21
- number: "Por favor, escriba un número válido.",
22
- digits: "Por favor, escriba sólo dígitos.",
23
- creditcard: "Por favor, escriba un número de tarjeta válido.",
24
- equalTo: "Por favor, escriba el mismo valor de nuevo.",
25
- extension: "Por favor, escriba un valor con una extensión permitida.",
26
- maxlength: $.validator.format("Por favor, no escriba más de {0} caracteres."),
27
- minlength: $.validator.format("Por favor, no escriba menos de {0} caracteres."),
28
- rangelength: $.validator.format("Por favor, escriba un valor entre {0} y {1} caracteres."),
29
- range: $.validator.format("Por favor, escriba un valor entre {0} y {1}."),
30
- max: $.validator.format("Por favor, escriba un valor menor o igual a {0}."),
31
- min: $.validator.format("Por favor, escriba un valor mayor o igual a {0}."),
32
- nifES: "Por favor, escriba un NIF válido.",
33
- nieES: "Por favor, escriba un NIE válido.",
34
- cifES: "Por favor, escriba un CIF válido."
35
- });
36
-
37
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_es_PE.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Este campo es obligatorio.",remote:"Por favor, llene este campo.",email:"Por favor, escriba un correo electrónico válido.",url:"Por favor, escriba una URL válida.",date:"Por favor, escriba una fecha válida.",dateISO:"Por favor, escriba una fecha (ISO) válida.",number:"Por favor, escriba un número válido.",digits:"Por favor, escriba sólo dígitos.",creditcard:"Por favor, escriba un número de tarjeta válido.",equalTo:"Por favor, escriba el mismo valor de nuevo.",extension:"Por favor, escriba un valor con una extensión permitida.",maxlength:a.validator.format("Por favor, no escriba más de {0} caracteres."),minlength:a.validator.format("Por favor, no escriba menos de {0} caracteres."),rangelength:a.validator.format("Por favor, escriba un valor entre {0} y {1} caracteres."),range:a.validator.format("Por favor, escriba un valor entre {0} y {1}."),max:a.validator.format("Por favor, escriba un valor menor o igual a {0}."),min:a.validator.format("Por favor, escriba un valor mayor o igual a {0}."),nifES:"Por favor, escriba un NIF válido.",nieES:"Por favor, escriba un NIE válido.",cifES:"Por favor, escriba un CIF válido."})});
 
 
 
 
admin/js/localization/messages_et.js DELETED
@@ -1,31 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: ET (Estonian; eesti, eesti keel)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "See väli peab olema täidetud.",
15
- maxlength: $.validator.format("Palun sisestage vähem kui {0} tähemärki."),
16
- minlength: $.validator.format("Palun sisestage vähemalt {0} tähemärki."),
17
- rangelength: $.validator.format("Palun sisestage väärtus vahemikus {0} kuni {1} tähemärki."),
18
- email: "Palun sisestage korrektne e-maili aadress.",
19
- url: "Palun sisestage korrektne URL.",
20
- date: "Palun sisestage korrektne kuupäev.",
21
- dateISO: "Palun sisestage korrektne kuupäev (YYYY-MM-DD).",
22
- number: "Palun sisestage korrektne number.",
23
- digits: "Palun sisestage ainult numbreid.",
24
- equalTo: "Palun sisestage sama väärtus uuesti.",
25
- range: $.validator.format("Palun sisestage väärtus vahemikus {0} kuni {1}."),
26
- max: $.validator.format("Palun sisestage väärtus, mis on väiksem või võrdne arvuga {0}."),
27
- min: $.validator.format("Palun sisestage väärtus, mis on suurem või võrdne arvuga {0}."),
28
- creditcard: "Palun sisestage korrektne krediitkaardi number."
29
- });
30
-
31
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_et.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"See väli peab olema täidetud.",maxlength:a.validator.format("Palun sisestage vähem kui {0} tähemärki."),minlength:a.validator.format("Palun sisestage vähemalt {0} tähemärki."),rangelength:a.validator.format("Palun sisestage väärtus vahemikus {0} kuni {1} tähemärki."),email:"Palun sisestage korrektne e-maili aadress.",url:"Palun sisestage korrektne URL.",date:"Palun sisestage korrektne kuupäev.",dateISO:"Palun sisestage korrektne kuupäev (YYYY-MM-DD).",number:"Palun sisestage korrektne number.",digits:"Palun sisestage ainult numbreid.",equalTo:"Palun sisestage sama väärtus uuesti.",range:a.validator.format("Palun sisestage väärtus vahemikus {0} kuni {1}."),max:a.validator.format("Palun sisestage väärtus, mis on väiksem või võrdne arvuga {0}."),min:a.validator.format("Palun sisestage väärtus, mis on suurem või võrdne arvuga {0}."),creditcard:"Palun sisestage korrektne krediitkaardi number."})});
 
 
 
 
admin/js/localization/messages_eu.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: EU (Basque; euskara, euskera)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Eremu hau beharrezkoa da.",
15
- remote: "Mesedez, bete eremu hau.",
16
- email: "Mesedez, idatzi baliozko posta helbide bat.",
17
- url: "Mesedez, idatzi baliozko URL bat.",
18
- date: "Mesedez, idatzi baliozko data bat.",
19
- dateISO: "Mesedez, idatzi baliozko (ISO) data bat.",
20
- number: "Mesedez, idatzi baliozko zenbaki oso bat.",
21
- digits: "Mesedez, idatzi digituak soilik.",
22
- creditcard: "Mesedez, idatzi baliozko txartel zenbaki bat.",
23
- equalTo: "Mesedez, idatzi berdina berriro ere.",
24
- extension: "Mesedez, idatzi onartutako luzapena duen balio bat.",
25
- maxlength: $.validator.format("Mesedez, ez idatzi {0} karaktere baino gehiago."),
26
- minlength: $.validator.format("Mesedez, ez idatzi {0} karaktere baino gutxiago."),
27
- rangelength: $.validator.format("Mesedez, idatzi {0} eta {1} karaktere arteko balio bat."),
28
- range: $.validator.format("Mesedez, idatzi {0} eta {1} arteko balio bat."),
29
- max: $.validator.format("Mesedez, idatzi {0} edo txikiagoa den balio bat."),
30
- min: $.validator.format("Mesedez, idatzi {0} edo handiagoa den balio bat.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_eu.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Eremu hau beharrezkoa da.",remote:"Mesedez, bete eremu hau.",email:"Mesedez, idatzi baliozko posta helbide bat.",url:"Mesedez, idatzi baliozko URL bat.",date:"Mesedez, idatzi baliozko data bat.",dateISO:"Mesedez, idatzi baliozko (ISO) data bat.",number:"Mesedez, idatzi baliozko zenbaki oso bat.",digits:"Mesedez, idatzi digituak soilik.",creditcard:"Mesedez, idatzi baliozko txartel zenbaki bat.",equalTo:"Mesedez, idatzi berdina berriro ere.",extension:"Mesedez, idatzi onartutako luzapena duen balio bat.",maxlength:a.validator.format("Mesedez, ez idatzi {0} karaktere baino gehiago."),minlength:a.validator.format("Mesedez, ez idatzi {0} karaktere baino gutxiago."),rangelength:a.validator.format("Mesedez, idatzi {0} eta {1} karaktere arteko balio bat."),range:a.validator.format("Mesedez, idatzi {0} eta {1} arteko balio bat."),max:a.validator.format("Mesedez, idatzi {0} edo txikiagoa den balio bat."),min:a.validator.format("Mesedez, idatzi {0} edo handiagoa den balio bat.")})});
 
 
 
 
admin/js/localization/messages_fa.js DELETED
@@ -1,36 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: FA (Persian; فارسی)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "تکمیل این فیلد اجباری است.",
15
- remote: "لطفا این فیلد را تصحیح کنید.",
16
- email: ".لطفا یک ایمیل صحیح وارد کنید",
17
- url: "لطفا آدرس صحیح وارد کنید.",
18
- date: "لطفا یک تاریخ صحیح وارد کنید",
19
- dateFA: "لطفا یک تاریخ صحیح وارد کنید",
20
- dateISO: "لطفا تاریخ صحیح وارد کنید (ISO).",
21
- number: "لطفا عدد صحیح وارد کنید.",
22
- digits: "لطفا تنها رقم وارد کنید",
23
- creditcard: "لطفا کریدیت کارت صحیح وارد کنید.",
24
- equalTo: "لطفا مقدار برابری وارد کنید",
25
- extension: "لطفا مقداری وارد کنید که ",
26
- maxlength: $.validator.format("لطفا بیشتر از {0} حرف وارد نکنید."),
27
- minlength: $.validator.format("لطفا کمتر از {0} حرف وارد نکنید."),
28
- rangelength: $.validator.format("لطفا مقداری بین {0} تا {1} حرف وارد کنید."),
29
- range: $.validator.format("لطفا مقداری بین {0} تا {1} حرف وارد کنید."),
30
- max: $.validator.format("لطفا مقداری کمتر از {0} حرف وارد کنید."),
31
- min: $.validator.format("لطفا مقداری بیشتر از {0} حرف وارد کنید."),
32
- minWords: $.validator.format("لطفا حداقل {0} کلمه وارد کنید."),
33
- maxWords: $.validator.format("لطفا حداکثر {0} کلمه وارد کنید.")
34
- });
35
-
36
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_fa.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"تکمیل این فیلد اجباری است.",remote:"لطفا این فیلد را تصحیح کنید.",email:".لطفا یک ایمیل صحیح وارد کنید",url:"لطفا آدرس صحیح وارد کنید.",date:"لطفا یک تاریخ صحیح وارد کنید",dateFA:"لطفا یک تاریخ صحیح وارد کنید",dateISO:"لطفا تاریخ صحیح وارد کنید (ISO).",number:"لطفا عدد صحیح وارد کنید.",digits:"لطفا تنها رقم وارد کنید",creditcard:"لطفا کریدیت کارت صحیح وارد کنید.",equalTo:"لطفا مقدار برابری وارد کنید",extension:"لطفا مقداری وارد کنید که ",maxlength:a.validator.format("لطفا بیشتر از {0} حرف وارد نکنید."),minlength:a.validator.format("لطفا کمتر از {0} حرف وارد نکنید."),rangelength:a.validator.format("لطفا مقداری بین {0} تا {1} حرف وارد کنید."),range:a.validator.format("لطفا مقداری بین {0} تا {1} حرف وارد کنید."),max:a.validator.format("لطفا مقداری کمتر از {0} حرف وارد کنید."),min:a.validator.format("لطفا مقداری بیشتر از {0} حرف وارد کنید."),minWords:a.validator.format("لطفا حداقل {0} کلمه وارد کنید."),maxWords:a.validator.format("لطفا حداکثر {0} کلمه وارد کنید.")})});
 
 
 
 
admin/js/localization/messages_fi.js DELETED
@@ -1,31 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: FI (Finnish; suomi, suomen kieli)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "T&auml;m&auml; kentt&auml; on pakollinen.",
15
- email: "Sy&ouml;t&auml; oikea s&auml;hk&ouml;postiosoite.",
16
- url: "Sy&ouml;t&auml; oikea URL-osoite.",
17
- date: "Sy&ouml;t&auml; oikea p&auml;iv&auml;m&auml;&auml;r&auml;.",
18
- dateISO: "Sy&ouml;t&auml; oikea p&auml;iv&auml;m&auml;&auml;r&auml; muodossa VVVV-KK-PP.",
19
- number: "Sy&ouml;t&auml; luku.",
20
- creditcard: "Sy&ouml;t&auml; voimassa oleva luottokorttinumero.",
21
- digits: "Sy&ouml;t&auml; pelk&auml;st&auml;&auml;n numeroita.",
22
- equalTo: "Sy&ouml;t&auml; sama arvo uudestaan.",
23
- maxlength: $.validator.format("Voit sy&ouml;tt&auml;&auml; enint&auml;&auml;n {0} merkki&auml;."),
24
- minlength: $.validator.format("V&auml;hint&auml;&auml;n {0} merkki&auml;."),
25
- rangelength: $.validator.format("Sy&ouml;t&auml; v&auml;hint&auml;&auml;n {0} ja enint&auml;&auml;n {1} merkki&auml;."),
26
- range: $.validator.format("Sy&ouml;t&auml; arvo v&auml;lilt&auml; {0}&ndash;{1}."),
27
- max: $.validator.format("Sy&ouml;t&auml; arvo, joka on enint&auml;&auml;n {0}."),
28
- min: $.validator.format("Sy&ouml;t&auml; arvo, joka on v&auml;hint&auml;&auml;n {0}.")
29
- });
30
-
31
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_fi.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"T&auml;m&auml; kentt&auml; on pakollinen.",email:"Sy&ouml;t&auml; oikea s&auml;hk&ouml;postiosoite.",url:"Sy&ouml;t&auml; oikea URL-osoite.",date:"Sy&ouml;t&auml; oikea p&auml;iv&auml;m&auml;&auml;r&auml;.",dateISO:"Sy&ouml;t&auml; oikea p&auml;iv&auml;m&auml;&auml;r&auml; muodossa VVVV-KK-PP.",number:"Sy&ouml;t&auml; luku.",creditcard:"Sy&ouml;t&auml; voimassa oleva luottokorttinumero.",digits:"Sy&ouml;t&auml; pelk&auml;st&auml;&auml;n numeroita.",equalTo:"Sy&ouml;t&auml; sama arvo uudestaan.",maxlength:a.validator.format("Voit sy&ouml;tt&auml;&auml; enint&auml;&auml;n {0} merkki&auml;."),minlength:a.validator.format("V&auml;hint&auml;&auml;n {0} merkki&auml;."),rangelength:a.validator.format("Sy&ouml;t&auml; v&auml;hint&auml;&auml;n {0} ja enint&auml;&auml;n {1} merkki&auml;."),range:a.validator.format("Sy&ouml;t&auml; arvo v&auml;lilt&auml; {0}&ndash;{1}."),max:a.validator.format("Sy&ouml;t&auml; arvo, joka on enint&auml;&auml;n {0}."),min:a.validator.format("Sy&ouml;t&auml; arvo, joka on v&auml;hint&auml;&auml;n {0}.")})});
 
 
 
 
admin/js/localization/messages_fr.js DELETED
@@ -1,59 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: FR (French; français)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Ce champ est obligatoire.",
15
- remote: "Veuillez corriger ce champ.",
16
- email: "Veuillez fournir une adresse électronique valide.",
17
- url: "Veuillez fournir une adresse URL valide.",
18
- date: "Veuillez fournir une date valide.",
19
- dateISO: "Veuillez fournir une date valide (ISO).",
20
- number: "Veuillez fournir un numéro valide.",
21
- digits: "Veuillez fournir seulement des chiffres.",
22
- creditcard: "Veuillez fournir un numéro de carte de crédit valide.",
23
- equalTo: "Veuillez fournir encore la même valeur.",
24
- extension: "Veuillez fournir une valeur avec une extension valide.",
25
- maxlength: $.validator.format("Veuillez fournir au plus {0} caractères."),
26
- minlength: $.validator.format("Veuillez fournir au moins {0} caractères."),
27
- rangelength: $.validator.format("Veuillez fournir une valeur qui contient entre {0} et {1} caractères."),
28
- range: $.validator.format("Veuillez fournir une valeur entre {0} et {1}."),
29
- max: $.validator.format("Veuillez fournir une valeur inférieure ou égale à {0}."),
30
- min: $.validator.format("Veuillez fournir une valeur supérieure ou égale à {0}."),
31
- maxWords: $.validator.format("Veuillez fournir au plus {0} mots."),
32
- minWords: $.validator.format("Veuillez fournir au moins {0} mots."),
33
- rangeWords: $.validator.format("Veuillez fournir entre {0} et {1} mots."),
34
- letterswithbasicpunc: "Veuillez fournir seulement des lettres et des signes de ponctuation.",
35
- alphanumeric: "Veuillez fournir seulement des lettres, nombres, espaces et soulignages.",
36
- lettersonly: "Veuillez fournir seulement des lettres.",
37
- nowhitespace: "Veuillez ne pas inscrire d'espaces blancs.",
38
- ziprange: "Veuillez fournir un code postal entre 902xx-xxxx et 905-xx-xxxx.",
39
- integer: "Veuillez fournir un nombre non décimal qui est positif ou négatif.",
40
- vinUS: "Veuillez fournir un numéro d'identification du véhicule (VIN).",
41
- dateITA: "Veuillez fournir une date valide.",
42
- time: "Veuillez fournir une heure valide entre 00:00 et 23:59.",
43
- phoneUS: "Veuillez fournir un numéro de téléphone valide.",
44
- phoneUK: "Veuillez fournir un numéro de téléphone valide.",
45
- mobileUK: "Veuillez fournir un numéro de téléphone mobile valide.",
46
- strippedminlength: $.validator.format("Veuillez fournir au moins {0} caractères."),
47
- email2: "Veuillez fournir une adresse électronique valide.",
48
- url2: "Veuillez fournir une adresse URL valide.",
49
- creditcardtypes: "Veuillez fournir un numéro de carte de crédit valide.",
50
- ipv4: "Veuillez fournir une adresse IP v4 valide.",
51
- ipv6: "Veuillez fournir une adresse IP v6 valide.",
52
- require_from_group: "Veuillez fournir au moins {0} de ces champs.",
53
- nifES: "Veuillez fournir un numéro NIF valide.",
54
- nieES: "Veuillez fournir un numéro NIE valide.",
55
- cifES: "Veuillez fournir un numéro CIF valide.",
56
- postalCodeCA: "Veuillez fournir un code postal valide."
57
- });
58
-
59
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_fr.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Ce champ est obligatoire.",remote:"Veuillez corriger ce champ.",email:"Veuillez fournir une adresse électronique valide.",url:"Veuillez fournir une adresse URL valide.",date:"Veuillez fournir une date valide.",dateISO:"Veuillez fournir une date valide (ISO).",number:"Veuillez fournir un numéro valide.",digits:"Veuillez fournir seulement des chiffres.",creditcard:"Veuillez fournir un numéro de carte de crédit valide.",equalTo:"Veuillez fournir encore la même valeur.",extension:"Veuillez fournir une valeur avec une extension valide.",maxlength:a.validator.format("Veuillez fournir au plus {0} caractères."),minlength:a.validator.format("Veuillez fournir au moins {0} caractères."),rangelength:a.validator.format("Veuillez fournir une valeur qui contient entre {0} et {1} caractères."),range:a.validator.format("Veuillez fournir une valeur entre {0} et {1}."),max:a.validator.format("Veuillez fournir une valeur inférieure ou égale à {0}."),min:a.validator.format("Veuillez fournir une valeur supérieure ou égale à {0}."),maxWords:a.validator.format("Veuillez fournir au plus {0} mots."),minWords:a.validator.format("Veuillez fournir au moins {0} mots."),rangeWords:a.validator.format("Veuillez fournir entre {0} et {1} mots."),letterswithbasicpunc:"Veuillez fournir seulement des lettres et des signes de ponctuation.",alphanumeric:"Veuillez fournir seulement des lettres, nombres, espaces et soulignages.",lettersonly:"Veuillez fournir seulement des lettres.",nowhitespace:"Veuillez ne pas inscrire d'espaces blancs.",ziprange:"Veuillez fournir un code postal entre 902xx-xxxx et 905-xx-xxxx.",integer:"Veuillez fournir un nombre non décimal qui est positif ou négatif.",vinUS:"Veuillez fournir un numéro d'identification du véhicule (VIN).",dateITA:"Veuillez fournir une date valide.",time:"Veuillez fournir une heure valide entre 00:00 et 23:59.",phoneUS:"Veuillez fournir un numéro de téléphone valide.",phoneUK:"Veuillez fournir un numéro de téléphone valide.",mobileUK:"Veuillez fournir un numéro de téléphone mobile valide.",strippedminlength:a.validator.format("Veuillez fournir au moins {0} caractères."),email2:"Veuillez fournir une adresse électronique valide.",url2:"Veuillez fournir une adresse URL valide.",creditcardtypes:"Veuillez fournir un numéro de carte de crédit valide.",ipv4:"Veuillez fournir une adresse IP v4 valide.",ipv6:"Veuillez fournir une adresse IP v6 valide.",require_from_group:"Veuillez fournir au moins {0} de ces champs.",nifES:"Veuillez fournir un numéro NIF valide.",nieES:"Veuillez fournir un numéro NIE valide.",cifES:"Veuillez fournir un numéro CIF valide.",postalCodeCA:"Veuillez fournir un code postal valide."})});
 
 
 
 
admin/js/localization/messages_ge.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /**
10
- * @author @tatocaster <kutaliatato@gmail.com>
11
- * Translated default messages for the jQuery validation plugin.
12
- * Locale: GE (Georgian; ქართული)
13
- */
14
- $.extend($.validator.messages, {
15
- required: "ეს ველი სავალდებულოა",
16
- remote: "გთხოვთ შეასწოროთ.",
17
- email: "გთხოვთ შეიყვანოთ სწორი ფორმატით.",
18
- url: "გთხოვთ შეიყვანოთ სწორი ფორმატით.",
19
- date: "გთხოვთ შეიყვანოთ სწორი თარიღი.",
20
- dateISO: "გთხოვთ შეიყვანოთ სწორი ფორმატით ( ISO ).",
21
- number: "გთხოვთ შეიყვანოთ რიცხვი.",
22
- digits: "დაშვებულია მხოლოდ ციფრები.",
23
- creditcard: "გთხოვთ შეიყვანოთ სწორი ფორმატის ბარათის კოდი.",
24
- equalTo: "გთხოვთ შეიყვანოთ იგივე მნიშვნელობა.",
25
- maxlength: $.validator.format( "გთხოვთ შეიყვანოთ არა უმეტეს {0} სიმბოლოსი." ),
26
- minlength: $.validator.format( "შეიყვანეთ მინიმუმ {0} სიმბოლო." ),
27
- rangelength: $.validator.format( "გთხოვთ შეიყვანოთ {0} -დან {1} -მდე რაოდენობის სიმბოლოები." ),
28
- range: $.validator.format( "შეიყვანეთ {0} -სა {1} -ს შორის." ),
29
- max: $.validator.format( "გთხოვთ შეიყვანოთ მნიშვნელობა ნაკლები ან ტოლი {0} -ს." ),
30
- min: $.validator.format( "გთხოვთ შეიყვანოთ მნიშვნელობა მეტი ან ტოლი {0} -ს." )
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_ge.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"ეს ველი სავალდებულოა",remote:"გთხოვთ შეასწოროთ.",email:"გთხოვთ შეიყვანოთ სწორი ფორმატით.",url:"გთხოვთ შეიყვანოთ სწორი ფორმატით.",date:"გთხოვთ შეიყვანოთ სწორი თარიღი.",dateISO:"გთხოვთ შეიყვანოთ სწორი ფორმატით ( ISO ).",number:"გთხოვთ შეიყვანოთ რიცხვი.",digits:"დაშვებულია მხოლოდ ციფრები.",creditcard:"გთხოვთ შეიყვანოთ სწორი ფორმატის ბარათის კოდი.",equalTo:"გთხოვთ შეიყვანოთ იგივე მნიშვნელობა.",maxlength:a.validator.format("გთხოვთ შეიყვანოთ არა უმეტეს {0} სიმბოლოსი."),minlength:a.validator.format("შეიყვანეთ მინიმუმ {0} სიმბოლო."),rangelength:a.validator.format("გთხოვთ შეიყვანოთ {0} -დან {1} -მდე რაოდენობის სიმბოლოები."),range:a.validator.format("შეიყვანეთ {0} -სა {1} -ს შორის."),max:a.validator.format("გთხოვთ შეიყვანოთ მნიშვნელობა ნაკლები ან ტოლი {0} -ს."),min:a.validator.format("გთხოვთ შეიყვანოთ მნიშვნელობა მეტი ან ტოლი {0} -ს.")})});
 
 
 
 
admin/js/localization/messages_gl.js DELETED
@@ -1,38 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: GL (Galician; Galego)
12
- */
13
- (function($) {
14
- $.extend($.validator.messages, {
15
- required: "Este campo é obrigatorio.",
16
- remote: "Por favor, cubre este campo.",
17
- email: "Por favor, escribe unha dirección de correo válida.",
18
- url: "Por favor, escribe unha URL válida.",
19
- date: "Por favor, escribe unha data válida.",
20
- dateISO: "Por favor, escribe unha data (ISO) válida.",
21
- number: "Por favor, escribe un número válido.",
22
- digits: "Por favor, escribe só díxitos.",
23
- creditcard: "Por favor, escribe un número de tarxeta válido.",
24
- equalTo: "Por favor, escribe o mesmo valor de novo.",
25
- extension: "Por favor, escribe un valor cunha extensión aceptada.",
26
- maxlength: $.validator.format("Por favor, non escribas máis de {0} caracteres."),
27
- minlength: $.validator.format("Por favor, non escribas menos de {0} caracteres."),
28
- rangelength: $.validator.format("Por favor, escribe un valor entre {0} e {1} caracteres."),
29
- range: $.validator.format("Por favor, escribe un valor entre {0} e {1}."),
30
- max: $.validator.format("Por favor, escribe un valor menor ou igual a {0}."),
31
- min: $.validator.format("Por favor, escribe un valor maior ou igual a {0}."),
32
- nifES: "Por favor, escribe un NIF válido.",
33
- nieES: "Por favor, escribe un NIE válido.",
34
- cifES: "Por favor, escribe un CIF válido."
35
- });
36
- }(jQuery));
37
-
38
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_gl.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){!function(a){a.extend(a.validator.messages,{required:"Este campo é obrigatorio.",remote:"Por favor, cubre este campo.",email:"Por favor, escribe unha dirección de correo válida.",url:"Por favor, escribe unha URL válida.",date:"Por favor, escribe unha data válida.",dateISO:"Por favor, escribe unha data (ISO) válida.",number:"Por favor, escribe un número válido.",digits:"Por favor, escribe só díxitos.",creditcard:"Por favor, escribe un número de tarxeta válido.",equalTo:"Por favor, escribe o mesmo valor de novo.",extension:"Por favor, escribe un valor cunha extensión aceptada.",maxlength:a.validator.format("Por favor, non escribas máis de {0} caracteres."),minlength:a.validator.format("Por favor, non escribas menos de {0} caracteres."),rangelength:a.validator.format("Por favor, escribe un valor entre {0} e {1} caracteres."),range:a.validator.format("Por favor, escribe un valor entre {0} e {1}."),max:a.validator.format("Por favor, escribe un valor menor ou igual a {0}."),min:a.validator.format("Por favor, escribe un valor maior ou igual a {0}."),nifES:"Por favor, escribe un NIF válido.",nieES:"Por favor, escribe un NIE válido.",cifES:"Por favor, escribe un CIF válido."})}(jQuery)});
 
 
 
 
admin/js/localization/messages_he.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: HE (Hebrew; עברית)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "השדה הזה הינו שדה חובה",
15
- remote: "נא לתקן שדה זה",
16
- email: "נא למלא כתובת דוא\"ל חוקית",
17
- url: "נא למלא כתובת אינטרנט חוקית",
18
- date: "נא למלא תאריך חוקי",
19
- dateISO: "נא למלא תאריך חוקי (ISO)",
20
- number: "נא למלא מספר",
21
- digits: "נא למלא רק מספרים",
22
- creditcard: "נא למלא מספר כרטיס אשראי חוקי",
23
- equalTo: "נא למלא את אותו ערך שוב",
24
- extension: "נא למלא ערך עם סיומת חוקית",
25
- maxlength: $.validator.format(".נא לא למלא יותר מ- {0} תווים"),
26
- minlength: $.validator.format("נא למלא לפחות {0} תווים"),
27
- rangelength: $.validator.format("נא למלא ערך בין {0} ל- {1} תווים"),
28
- range: $.validator.format("נא למלא ערך בין {0} ל- {1}"),
29
- max: $.validator.format("נא למלא ערך קטן או שווה ל- {0}"),
30
- min: $.validator.format("נא למלא ערך גדול או שווה ל- {0}")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_he.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"השדה הזה הינו שדה חובה",remote:"נא לתקן שדה זה",email:'נא למלא כתובת דוא"ל חוקית',url:"נא למלא כתובת אינטרנט חוקית",date:"נא למלא תאריך חוקי",dateISO:"נא למלא תאריך חוקי (ISO)",number:"נא למלא מספר",digits:"נא למלא רק מספרים",creditcard:"נא למלא מספר כרטיס אשראי חוקי",equalTo:"נא למלא את אותו ערך שוב",extension:"נא למלא ערך עם סיומת חוקית",maxlength:a.validator.format(".נא לא למלא יותר מ- {0} תווים"),minlength:a.validator.format("נא למלא לפחות {0} תווים"),rangelength:a.validator.format("נא למלא ערך בין {0} ל- {1} תווים"),range:a.validator.format("נא למלא ערך בין {0} ל- {1}"),max:a.validator.format("נא למלא ערך קטן או שווה ל- {0}"),min:a.validator.format("נא למלא ערך גדול או שווה ל- {0}")})});
 
 
 
 
admin/js/localization/messages_hr.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: HR (Croatia; hrvatski jezik)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Ovo polje je obavezno.",
15
- remote: "Ovo polje treba popraviti.",
16
- email: "Unesite ispravnu e-mail adresu.",
17
- url: "Unesite ispravan URL.",
18
- date: "Unesite ispravan datum.",
19
- dateISO: "Unesite ispravan datum (ISO).",
20
- number: "Unesite ispravan broj.",
21
- digits: "Unesite samo brojeve.",
22
- creditcard: "Unesite ispravan broj kreditne kartice.",
23
- equalTo: "Unesite ponovo istu vrijednost.",
24
- extension: "Unesite vrijednost sa ispravnom ekstenzijom.",
25
- maxlength: $.validator.format("Maksimalni broj znakova je {0} ."),
26
- minlength: $.validator.format("Minimalni broj znakova je {0} ."),
27
- rangelength: $.validator.format("Unesite vrijednost između {0} i {1} znakova."),
28
- range: $.validator.format("Unesite vrijednost između {0} i {1}."),
29
- max: $.validator.format("Unesite vrijednost manju ili jednaku {0}."),
30
- min: $.validator.format("Unesite vrijednost veću ili jednaku {0}.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_hr.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Ovo polje je obavezno.",remote:"Ovo polje treba popraviti.",email:"Unesite ispravnu e-mail adresu.",url:"Unesite ispravan URL.",date:"Unesite ispravan datum.",dateISO:"Unesite ispravan datum (ISO).",number:"Unesite ispravan broj.",digits:"Unesite samo brojeve.",creditcard:"Unesite ispravan broj kreditne kartice.",equalTo:"Unesite ponovo istu vrijednost.",extension:"Unesite vrijednost sa ispravnom ekstenzijom.",maxlength:a.validator.format("Maksimalni broj znakova je {0} ."),minlength:a.validator.format("Minimalni broj znakova je {0} ."),rangelength:a.validator.format("Unesite vrijednost između {0} i {1} znakova."),range:a.validator.format("Unesite vrijednost između {0} i {1}."),max:a.validator.format("Unesite vrijednost manju ili jednaku {0}."),min:a.validator.format("Unesite vrijednost veću ili jednaku {0}.")})});
 
 
 
 
admin/js/localization/messages_hu.js DELETED
@@ -1,32 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: HU (Hungarian; Magyar)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Kötelező megadni.",
15
- maxlength: $.validator.format("Legfeljebb {0} karakter hosszú legyen."),
16
- minlength: $.validator.format("Legalább {0} karakter hosszú legyen."),
17
- rangelength: $.validator.format("Legalább {0} és legfeljebb {1} karakter hosszú legyen."),
18
- email: "Érvényes e-mail címnek kell lennie.",
19
- url: "Érvényes URL-nek kell lennie.",
20
- date: "Dátumnak kell lennie.",
21
- number: "Számnak kell lennie.",
22
- digits: "Csak számjegyek lehetnek.",
23
- equalTo: "Meg kell egyeznie a két értéknek.",
24
- range: $.validator.format("{0} és {1} közé kell esnie."),
25
- max: $.validator.format("Nem lehet nagyobb, mint {0}."),
26
- min: $.validator.format("Nem lehet kisebb, mint {0}."),
27
- creditcard: "Érvényes hitelkártyaszámnak kell lennie.",
28
- remote: "Kérem javítsa ki ezt a mezőt.",
29
- dateISO: "Kérem írjon be egy érvényes dátumot (ISO)."
30
- });
31
-
32
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_hu.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Kötelező megadni.",maxlength:a.validator.format("Legfeljebb {0} karakter hosszú legyen."),minlength:a.validator.format("Legalább {0} karakter hosszú legyen."),rangelength:a.validator.format("Legalább {0} és legfeljebb {1} karakter hosszú legyen."),email:"Érvényes e-mail címnek kell lennie.",url:"Érvényes URL-nek kell lennie.",date:"Dátumnak kell lennie.",number:"Számnak kell lennie.",digits:"Csak számjegyek lehetnek.",equalTo:"Meg kell egyeznie a két értéknek.",range:a.validator.format("{0} és {1} közé kell esnie."),max:a.validator.format("Nem lehet nagyobb, mint {0}."),min:a.validator.format("Nem lehet kisebb, mint {0}."),creditcard:"Érvényes hitelkártyaszámnak kell lennie.",remote:"Kérem javítsa ki ezt a mezőt.",dateISO:"Kérem írjon be egy érvényes dátumot (ISO)."})});
 
 
 
 
admin/js/localization/messages_hy_AM.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: HY_AM (Armenian; հայերեն լեզու)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Պարտադիր լրացման դաշտ",
15
- remote: "Ներմուծեք ճիշտ արժեքը",
16
- email: "Ներմուծեք վավեր էլեկտրոնային փոստի հասցե",
17
- url: "Ներմուծեք վավեր URL",
18
- date: "Ներմուծեք վավեր ամսաթիվ",
19
- dateISO: "Ներմուծեք ISO ֆորմատով վավեր ամսաթիվ։",
20
- number: "Ներմուծեք թիվ",
21
- digits: "Ներմուծեք միայն թվեր",
22
- creditcard: "Ներմուծեք ճիշտ բանկային քարտի համար",
23
- equalTo: "Ներմուծեք միևնուն արժեքը ևս մեկ անգամ",
24
- extension: "Ընտրեք ճիշտ ընդլանումով ֆայլ",
25
- maxlength: $.validator.format("Ներմուծեք ոչ ավել քան {0} նիշ"),
26
- minlength: $.validator.format("Ներմուծեք ոչ պակաս քան {0} նիշ"),
27
- rangelength: $.validator.format("Ներմուծեք {0}֊ից {1} երկարությամբ արժեք"),
28
- range: $.validator.format("Ներմուծեք թիվ {0}֊ից {1} միջակայքում"),
29
- max: $.validator.format("Ներմուծեք թիվ, որը փոքր կամ հավասար է {0}֊ին"),
30
- min: $.validator.format("Ներմուծեք թիվ, որը մեծ կամ հավասար է {0}֊ին")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_hy_AM.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Պարտադիր լրացման դաշտ",remote:"Ներմուծեք ճիշտ արժեքը",email:"Ներմուծեք վավեր էլեկտրոնային փոստի հասցե",url:"Ներմուծեք վավեր URL",date:"Ներմուծեք վավեր ամսաթիվ",dateISO:"Ներմուծեք ISO ֆորմատով վավեր ամսաթիվ։",number:"Ներմուծեք թիվ",digits:"Ներմուծեք միայն թվեր",creditcard:"Ներմուծեք ճիշտ բանկային քարտի համար",equalTo:"Ներմուծեք միևնուն արժեքը ևս մեկ անգամ",extension:"Ընտրեք ճիշտ ընդլանումով ֆայլ",maxlength:a.validator.format("Ներմուծեք ոչ ավել քան {0} նիշ"),minlength:a.validator.format("Ներմուծեք ոչ պակաս քան {0} նիշ"),rangelength:a.validator.format("Ներմուծեք {0}֊ից {1} երկարությամբ արժեք"),range:a.validator.format("Ներմուծեք թիվ {0}֊ից {1} միջակայքում"),max:a.validator.format("Ներմուծեք թիվ, որը փոքր կամ հավասար է {0}֊ին"),min:a.validator.format("Ներմուծեք թիվ, որը մեծ կամ հավասար է {0}֊ին")})});
 
 
 
 
admin/js/localization/messages_id.js DELETED
@@ -1,32 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: ID (Indonesia; Indonesian)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Kolom ini diperlukan.",
15
- remote: "Harap benarkan kolom ini.",
16
- email: "Silakan masukkan format email yang benar.",
17
- url: "Silakan masukkan format URL yang benar.",
18
- date: "Silakan masukkan format tanggal yang benar.",
19
- dateISO: "Silakan masukkan format tanggal(ISO) yang benar.",
20
- number: "Silakan masukkan angka yang benar.",
21
- digits: "Harap masukan angka saja.",
22
- creditcard: "Harap masukkan format kartu kredit yang benar.",
23
- equalTo: "Harap masukkan nilai yg sama dengan sebelumnya.",
24
- maxlength: $.validator.format("Input dibatasi hanya {0} karakter."),
25
- minlength: $.validator.format("Input tidak kurang dari {0} karakter."),
26
- rangelength: $.validator.format("Panjang karakter yg diizinkan antara {0} dan {1} karakter."),
27
- range: $.validator.format("Harap masukkan nilai antara {0} dan {1}."),
28
- max: $.validator.format("Harap masukkan nilai lebih kecil atau sama dengan {0}."),
29
- min: $.validator.format("Harap masukkan nilai lebih besar atau sama dengan {0}.")
30
- });
31
-
32
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_id.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Kolom ini diperlukan.",remote:"Harap benarkan kolom ini.",email:"Silakan masukkan format email yang benar.",url:"Silakan masukkan format URL yang benar.",date:"Silakan masukkan format tanggal yang benar.",dateISO:"Silakan masukkan format tanggal(ISO) yang benar.",number:"Silakan masukkan angka yang benar.",digits:"Harap masukan angka saja.",creditcard:"Harap masukkan format kartu kredit yang benar.",equalTo:"Harap masukkan nilai yg sama dengan sebelumnya.",maxlength:a.validator.format("Input dibatasi hanya {0} karakter."),minlength:a.validator.format("Input tidak kurang dari {0} karakter."),rangelength:a.validator.format("Panjang karakter yg diizinkan antara {0} dan {1} karakter."),range:a.validator.format("Harap masukkan nilai antara {0} dan {1}."),max:a.validator.format("Harap masukkan nilai lebih kecil atau sama dengan {0}."),min:a.validator.format("Harap masukkan nilai lebih besar atau sama dengan {0}.")})});
 
 
 
 
admin/js/localization/messages_is.js DELETED
@@ -1,31 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: IS (Icelandic; íslenska)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Þessi reitur er nauðsynlegur.",
15
- remote: "Lagaðu þennan reit.",
16
- maxlength: $.validator.format("Sláðu inn mest {0} stafi."),
17
- minlength: $.validator.format("Sláðu inn minnst {0} stafi."),
18
- rangelength: $.validator.format("Sláðu inn minnst {0} og mest {1} stafi."),
19
- email: "Sláðu inn gilt netfang.",
20
- url: "Sláðu inn gilda vefslóð.",
21
- date: "Sláðu inn gilda dagsetningu.",
22
- number: "Sláðu inn tölu.",
23
- digits: "Sláðu inn tölustafi eingöngu.",
24
- equalTo: "Sláðu sama gildi inn aftur.",
25
- range: $.validator.format("Sláðu inn gildi milli {0} og {1}."),
26
- max: $.validator.format("Sláðu inn gildi sem er minna en eða jafnt og {0}."),
27
- min: $.validator.format("Sláðu inn gildi sem er stærra en eða jafnt og {0}."),
28
- creditcard: "Sláðu inn gilt greiðslukortanúmer."
29
- });
30
-
31
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_is.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Þessi reitur er nauðsynlegur.",remote:"Lagaðu þennan reit.",maxlength:a.validator.format("Sláðu inn mest {0} stafi."),minlength:a.validator.format("Sláðu inn minnst {0} stafi."),rangelength:a.validator.format("Sláðu inn minnst {0} og mest {1} stafi."),email:"Sláðu inn gilt netfang.",url:"Sláðu inn gilda vefslóð.",date:"Sláðu inn gilda dagsetningu.",number:"Sláðu inn tölu.",digits:"Sláðu inn tölustafi eingöngu.",equalTo:"Sláðu sama gildi inn aftur.",range:a.validator.format("Sláðu inn gildi milli {0} og {1}."),max:a.validator.format("Sláðu inn gildi sem er minna en eða jafnt og {0}."),min:a.validator.format("Sláðu inn gildi sem er stærra en eða jafnt og {0}."),creditcard:"Sláðu inn gilt greiðslukortanúmer."})});
 
 
 
 
admin/js/localization/messages_it.js DELETED
@@ -1,37 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: IT (Italian; Italiano)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Campo obbligatorio",
15
- remote: "Controlla questo campo",
16
- email: "Inserisci un indirizzo email valido",
17
- url: "Inserisci un indirizzo web valido",
18
- date: "Inserisci una data valida",
19
- dateISO: "Inserisci una data valida (ISO)",
20
- number: "Inserisci un numero valido",
21
- digits: "Inserisci solo numeri",
22
- creditcard: "Inserisci un numero di carta di credito valido",
23
- equalTo: "Il valore non corrisponde",
24
- extension: "Inserisci un valore con un&apos;estensione valida",
25
- maxlength: $.validator.format("Non inserire pi&ugrave; di {0} caratteri"),
26
- minlength: $.validator.format("Inserisci almeno {0} caratteri"),
27
- rangelength: $.validator.format("Inserisci un valore compreso tra {0} e {1} caratteri"),
28
- range: $.validator.format("Inserisci un valore compreso tra {0} e {1}"),
29
- max: $.validator.format("Inserisci un valore minore o uguale a {0}"),
30
- min: $.validator.format("Inserisci un valore maggiore o uguale a {0}"),
31
- nifES: "Inserisci un NIF valido",
32
- nieES: "Inserisci un NIE valido",
33
- cifES: "Inserisci un CIF valido",
34
- currency: "Inserisci una valuta valida"
35
- });
36
-
37
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_it.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Campo obbligatorio",remote:"Controlla questo campo",email:"Inserisci un indirizzo email valido",url:"Inserisci un indirizzo web valido",date:"Inserisci una data valida",dateISO:"Inserisci una data valida (ISO)",number:"Inserisci un numero valido",digits:"Inserisci solo numeri",creditcard:"Inserisci un numero di carta di credito valido",equalTo:"Il valore non corrisponde",extension:"Inserisci un valore con un&apos;estensione valida",maxlength:a.validator.format("Non inserire pi&ugrave; di {0} caratteri"),minlength:a.validator.format("Inserisci almeno {0} caratteri"),rangelength:a.validator.format("Inserisci un valore compreso tra {0} e {1} caratteri"),range:a.validator.format("Inserisci un valore compreso tra {0} e {1}"),max:a.validator.format("Inserisci un valore minore o uguale a {0}"),min:a.validator.format("Inserisci un valore maggiore o uguale a {0}"),nifES:"Inserisci un NIF valido",nieES:"Inserisci un NIE valido",cifES:"Inserisci un CIF valido",currency:"Inserisci una valuta valida"})});
 
 
 
 
admin/js/localization/messages_ja.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: JA (Japanese; 日本語)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "このフィールドは必須です。",
15
- remote: "このフィールドを修正してください。",
16
- email: "有効なEメールアドレスを入力してください。",
17
- url: "有効なURLを入力してください。",
18
- date: "有効な日付を入力してください。",
19
- dateISO: "有効な日付(ISO)を入力してください。",
20
- number: "有効な数字を入力してください。",
21
- digits: "数字のみを入力してください。",
22
- creditcard: "有効なクレジットカード番号を入力してください。",
23
- equalTo: "同じ値をもう一度入力してください。",
24
- extension: "有効な拡張子を含む値を入力してください。",
25
- maxlength: $.validator.format("{0} 文字以内で入力してください。"),
26
- minlength: $.validator.format("{0} 文字以上で入力してください。"),
27
- rangelength: $.validator.format("{0} 文字から {1} 文字までの値を入力してください。"),
28
- range: $.validator.format("{0} から {1} までの値を入力してください。"),
29
- max: $.validator.format("{0} 以下の値を入力してください。"),
30
- min: $.validator.format("{0} 以上の値を入力してください。")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_ja.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"このフィールドは必須です。",remote:"このフィールドを修正してください。",email:"有効なEメールアドレスを入力してください。",url:"有効なURLを入力してください。",date:"有効な日付を入力してください。",dateISO:"有効な日付(ISO)を入力してください。",number:"有効な数字を入力してください。",digits:"数字のみを入力してください。",creditcard:"有効なクレジットカード番号を入力してください。",equalTo:"同じ値をもう一度入力してください。",extension:"有効な拡張子を含む値を入力してください。",maxlength:a.validator.format("{0} 文字以内で入力してください。"),minlength:a.validator.format("{0} 文字以上で入力してください。"),rangelength:a.validator.format("{0} 文字から {1} 文字までの値を入力してください。"),range:a.validator.format("{0} から {1} までの値を入力してください。"),max:a.validator.format("{0} 以下の値を入力してください。"),min:a.validator.format("{0} 以上の値を入力してください。")})});
 
 
 
 
admin/js/localization/messages_ka.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: KA (Georgian; ქართული)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "ამ ველის შევსება აუცილებელია.",
15
- remote: "გთხოვთ მიუთითოთ სწორი მნიშვნელობა.",
16
- email: "გთხოვთ მიუთითოთ ელ-ფოსტის კორექტული მისამართი.",
17
- url: "გთხოვთ მიუთითოთ კორექტული URL.",
18
- date: "გთხოვთ მიუთითოთ კორექტული თარიღი.",
19
- dateISO: "გთხოვთ მიუთითოთ კორექტული თარიღი ISO ფორმატში.",
20
- number: "გთხოვთ მიუთითოთ ციფრი.",
21
- digits: "გთხოვთ მიუთითოთ მხოლოდ ციფრები.",
22
- creditcard: "გთხოვთ მიუთითოთ საკრედიტო ბარათის კორექტული ნომერი.",
23
- equalTo: "გთხოვთ მიუთითოთ ასეთივე მნიშვნელობა კიდევ ერთხელ.",
24
- extension: "გთხოვთ აირჩიოთ ფაილი კორექტული გაფართოებით.",
25
- maxlength: $.validator.format("დასაშვებია არაუმეტეს {0} სიმბოლო."),
26
- minlength: $.validator.format("აუცილებელია შეიყვანოთ მინიმუმ {0} სიმბოლო."),
27
- rangelength: $.validator.format("ტექსტში სიმბოლოების რაოდენობა უნდა იყოს {0}-დან {1}-მდე."),
28
- range: $.validator.format("გთხოვთ შეიყვანოთ ციფრი {0}-დან {1}-მდე."),
29
- max: $.validator.format("გთხოვთ შეიყვანოთ ციფრი რომელიც ნაკლებია ან უდრის {0}-ს."),
30
- min: $.validator.format("გთხოვთ შეიყვანოთ ციფრი რომელიც მეტია ან უდრის {0}-ს.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_ka.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"ამ ველის შევსება აუცილებელია.",remote:"გთხოვთ მიუთითოთ სწორი მნიშვნელობა.",email:"გთხოვთ მიუთითოთ ელ-ფოსტის კორექტული მისამართი.",url:"გთხოვთ მიუთითოთ კორექტული URL.",date:"გთხოვთ მიუთითოთ კორექტული თარიღი.",dateISO:"გთხოვთ მიუთითოთ კორექტული თარიღი ISO ფორმატში.",number:"გთხოვთ მიუთითოთ ციფრი.",digits:"გთხოვთ მიუთითოთ მხოლოდ ციფრები.",creditcard:"გთხოვთ მიუთითოთ საკრედიტო ბარათის კორექტული ნომერი.",equalTo:"გთხოვთ მიუთითოთ ასეთივე მნიშვნელობა კიდევ ერთხელ.",extension:"გთხოვთ აირჩიოთ ფაილი კორექტული გაფართოებით.",maxlength:a.validator.format("დასაშვებია არაუმეტეს {0} სიმბოლო."),minlength:a.validator.format("აუცილებელია შეიყვანოთ მინიმუმ {0} სიმბოლო."),rangelength:a.validator.format("ტექსტში სიმბოლოების რაოდენობა უნდა იყოს {0}-დან {1}-მდე."),range:a.validator.format("გთხოვთ შეიყვანოთ ციფრი {0}-დან {1}-მდე."),max:a.validator.format("გთხოვთ შეიყვანოთ ციფრი რომელიც ნაკლებია ან უდრის {0}-ს."),min:a.validator.format("გთხოვთ შეიყვანოთ ციფრი რომელიც მეტია ან უდრის {0}-ს.")})});
 
 
 
 
admin/js/localization/messages_kk.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: KK (Kazakh; қазақ тілі)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Бұл өрісті міндетті түрде толтырыңыз.",
15
- remote: "Дұрыс мағына енгізуіңізді сұраймыз.",
16
- email: "Нақты электронды поштаңызды енгізуіңізді сұраймыз.",
17
- url: "Нақты URL-ды енгізуіңізді сұраймыз.",
18
- date: "Нақты URL-ды енгізуіңізді сұраймыз.",
19
- dateISO: "Нақты ISO форматымен сәйкес датасын енгізуіңізді сұраймыз.",
20
- number: "Күнді енгізуіңізді сұраймыз.",
21
- digits: "Тек қана сандарды енгізуіңізді сұраймыз.",
22
- creditcard: "Несие картасының нөмірін дұрыс енгізуіңізді сұраймыз.",
23
- equalTo: "Осы мәнді қайта енгізуіңізді сұраймыз.",
24
- extension: "Файлдың кеңейтуін дұрыс таңдаңыз.",
25
- maxlength: $.validator.format("Ұзындығы {0} символдан көр болмасын."),
26
- minlength: $.validator.format("Ұзындығы {0} символдан аз болмасын."),
27
- rangelength: $.validator.format("Ұзындығы {0}-{1} дейін мән енгізуіңізді сұраймыз."),
28
- range: $.validator.format("Пожалуйста, введите число от {0} до {1}. - {0} - {1} санын енгізуіңізді сұраймыз."),
29
- max: $.validator.format("{0} аз немесе тең санын енгізуіңіді сұраймыз."),
30
- min: $.validator.format("{0} көп немесе тең санын енгізуіңізді сұраймыз.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_kk.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Бұл өрісті міндетті түрде толтырыңыз.",remote:"Дұрыс мағына енгізуіңізді сұраймыз.",email:"Нақты электронды поштаңызды енгізуіңізді сұраймыз.",url:"Нақты URL-ды енгізуіңізді сұраймыз.",date:"Нақты URL-ды енгізуіңізді сұраймыз.",dateISO:"Нақты ISO форматымен сәйкес датасын енгізуіңізді сұраймыз.",number:"Күнді енгізуіңізді сұраймыз.",digits:"Тек қана сандарды енгізуіңізді сұраймыз.",creditcard:"Несие картасының нөмірін дұрыс енгізуіңізді сұраймыз.",equalTo:"Осы мәнді қайта енгізуіңізді сұраймыз.",extension:"Файлдың кеңейтуін дұрыс таңдаңыз.",maxlength:a.validator.format("Ұзындығы {0} символдан көр болмасын."),minlength:a.validator.format("Ұзындығы {0} символдан аз болмасын."),rangelength:a.validator.format("Ұзындығы {0}-{1} дейін мән енгізуіңізді сұраймыз."),range:a.validator.format("Пожалуйста, введите число от {0} до {1}. - {0} - {1} санын енгізуіңізді сұраймыз."),max:a.validator.format("{0} аз немесе тең санын енгізуіңіді сұраймыз."),min:a.validator.format("{0} көп немесе тең санын енгізуіңізді сұраймыз.")})});
 
 
 
 
admin/js/localization/messages_ko.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: KO (Korean; 한국어)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "필수 항목입니다.",
15
- remote: "항목을 수정하세요.",
16
- email: "유효하지 않은 E-Mail주소입니다.",
17
- url: "유효하지 않은 URL입니다.",
18
- date: "올바른 날짜를 입력하세요.",
19
- dateISO: "올바른 날짜(ISO)를 입력하세요.",
20
- number: "유효한 숫자가 아닙니다.",
21
- digits: "숫자만 입력 가능합니다.",
22
- creditcard: "신용카드 번호가 바르지 않습니다.",
23
- equalTo: "같은 값을 다시 입력하세요.",
24
- extension: "올바른 확장자가 아닙니다.",
25
- maxlength: $.validator.format("{0}자를 넘을 수 없습니다. "),
26
- minlength: $.validator.format("{0}자 이상 입력하세요."),
27
- rangelength: $.validator.format("문자 길이가 {0} 에서 {1} 사이의 값을 입력하세요."),
28
- range: $.validator.format("{0} 에서 {1} 사이의 값을 입력하세요."),
29
- max: $.validator.format("{0} 이하의 값을 입력하세요."),
30
- min: $.validator.format("{0} 이상의 값을 입력하세요.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_ko.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"필수 항목입니다.",remote:"항목을 수정하세요.",email:"유효하지 않은 E-Mail주소입니다.",url:"유효하지 않은 URL입니다.",date:"올바른 날짜를 입력하세요.",dateISO:"올바른 날짜(ISO)를 입력하세요.",number:"유효한 숫자가 아닙니다.",digits:"숫자만 입력 가능합니다.",creditcard:"신용카드 번호가 바르지 않습니다.",equalTo:"같은 값을 다시 입력하세요.",extension:"올바른 확장자가 아닙니다.",maxlength:a.validator.format("{0}자를 넘을 수 없습니다. "),minlength:a.validator.format("{0}자 이상 입력하세요."),rangelength:a.validator.format("문자 길이가 {0} 에서 {1} 사이의 값을 입력하세요."),range:a.validator.format("{0} 에서 {1} 사이의 값을 입력하세요."),max:a.validator.format("{0} 이하의 값을 입력하세요."),min:a.validator.format("{0} 이상의 값을 입력하세요.")})});
 
 
 
 
admin/js/localization/messages_lt.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: LT (Lithuanian; lietuvių kalba)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Šis laukas yra privalomas.",
15
- remote: "Prašau pataisyti šį lauką.",
16
- email: "Prašau įvesti teisingą elektroninio pašto adresą.",
17
- url: "Prašau įvesti teisingą URL.",
18
- date: "Prašau įvesti teisingą datą.",
19
- dateISO: "Prašau įvesti teisingą datą (ISO).",
20
- number: "Prašau įvesti teisingą skaičių.",
21
- digits: "Prašau naudoti tik skaitmenis.",
22
- creditcard: "Prašau įvesti teisingą kreditinės kortelės numerį.",
23
- equalTo: "Prašau įvestį tą pačią reikšmę dar kartą.",
24
- extension: "Prašau įvesti reikšmę su teisingu plėtiniu.",
25
- maxlength: $.validator.format("Prašau įvesti ne daugiau kaip {0} simbolių."),
26
- minlength: $.validator.format("Prašau įvesti bent {0} simbolius."),
27
- rangelength: $.validator.format("Prašau įvesti reikšmes, kurių ilgis nuo {0} iki {1} simbolių."),
28
- range: $.validator.format("Prašau įvesti reikšmę intervale nuo {0} iki {1}."),
29
- max: $.validator.format("Prašau įvesti reikšmę mažesnę arba lygią {0}."),
30
- min: $.validator.format("Prašau įvesti reikšmę didesnę arba lygią {0}.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_lt.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Šis laukas yra privalomas.",remote:"Prašau pataisyti šį lauką.",email:"Prašau įvesti teisingą elektroninio pašto adresą.",url:"Prašau įvesti teisingą URL.",date:"Prašau įvesti teisingą datą.",dateISO:"Prašau įvesti teisingą datą (ISO).",number:"Prašau įvesti teisingą skaičių.",digits:"Prašau naudoti tik skaitmenis.",creditcard:"Prašau įvesti teisingą kreditinės kortelės numerį.",equalTo:"Prašau įvestį tą pačią reikšmę dar kartą.",extension:"Prašau įvesti reikšmę su teisingu plėtiniu.",maxlength:a.validator.format("Prašau įvesti ne daugiau kaip {0} simbolių."),minlength:a.validator.format("Prašau įvesti bent {0} simbolius."),rangelength:a.validator.format("Prašau įvesti reikšmes, kurių ilgis nuo {0} iki {1} simbolių."),range:a.validator.format("Prašau įvesti reikšmę intervale nuo {0} iki {1}."),max:a.validator.format("Prašau įvesti reikšmę mažesnę arba lygią {0}."),min:a.validator.format("Prašau įvesti reikšmę didesnę arba lygią {0}.")})});
 
 
 
 
admin/js/localization/messages_lv.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: LV (Latvian; latviešu valoda)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Šis lauks ir obligāts.",
15
- remote: "Lūdzu, pārbaudiet šo lauku.",
16
- email: "Lūdzu, ievadiet derīgu e-pasta adresi.",
17
- url: "Lūdzu, ievadiet derīgu URL adresi.",
18
- date: "Lūdzu, ievadiet derīgu datumu.",
19
- dateISO: "Lūdzu, ievadiet derīgu datumu (ISO).",
20
- number: "Lūdzu, ievadiet derīgu numuru.",
21
- digits: "Lūdzu, ievadiet tikai ciparus.",
22
- creditcard: "Lūdzu, ievadiet derīgu kredītkartes numuru.",
23
- equalTo: "Lūdzu, ievadiet to pašu vēlreiz.",
24
- extension: "Lūdzu, ievadiet vērtību ar derīgu paplašinājumu.",
25
- maxlength: $.validator.format("Lūdzu, ievadiet ne vairāk kā {0} rakstzīmes."),
26
- minlength: $.validator.format("Lūdzu, ievadiet vismaz {0} rakstzīmes."),
27
- rangelength: $.validator.format("Lūdzu ievadiet {0} līdz {1} rakstzīmes."),
28
- range: $.validator.format("Lūdzu, ievadiet skaitli no {0} līdz {1}."),
29
- max: $.validator.format("Lūdzu, ievadiet skaitli, kurš ir mazāks vai vienāds ar {0}."),
30
- min: $.validator.format("Lūdzu, ievadiet skaitli, kurš ir lielāks vai vienāds ar {0}.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_lv.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Šis lauks ir obligāts.",remote:"Lūdzu, pārbaudiet šo lauku.",email:"Lūdzu, ievadiet derīgu e-pasta adresi.",url:"Lūdzu, ievadiet derīgu URL adresi.",date:"Lūdzu, ievadiet derīgu datumu.",dateISO:"Lūdzu, ievadiet derīgu datumu (ISO).",number:"Lūdzu, ievadiet derīgu numuru.",digits:"Lūdzu, ievadiet tikai ciparus.",creditcard:"Lūdzu, ievadiet derīgu kredītkartes numuru.",equalTo:"Lūdzu, ievadiet to pašu vēlreiz.",extension:"Lūdzu, ievadiet vērtību ar derīgu paplašinājumu.",maxlength:a.validator.format("Lūdzu, ievadiet ne vairāk kā {0} rakstzīmes."),minlength:a.validator.format("Lūdzu, ievadiet vismaz {0} rakstzīmes."),rangelength:a.validator.format("Lūdzu ievadiet {0} līdz {1} rakstzīmes."),range:a.validator.format("Lūdzu, ievadiet skaitli no {0} līdz {1}."),max:a.validator.format("Lūdzu, ievadiet skaitli, kurš ir mazāks vai vienāds ar {0}."),min:a.validator.format("Lūdzu, ievadiet skaitli, kurš ir lielāks vai vienāds ar {0}.")})});
 
 
 
 
admin/js/localization/messages_my.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: MY (Malay; Melayu)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Medan ini diperlukan.",
15
- remote: "Sila betulkan medan ini.",
16
- email: "Sila masukkan alamat emel yang betul.",
17
- url: "Sila masukkan URL yang betul.",
18
- date: "Sila masukkan tarikh yang betul.",
19
- dateISO: "Sila masukkan tarikh(ISO) yang betul.",
20
- number: "Sila masukkan nombor yang betul.",
21
- digits: "Sila masukkan nilai digit sahaja.",
22
- creditcard: "Sila masukkan nombor kredit kad yang betul.",
23
- equalTo: "Sila masukkan nilai yang sama semula.",
24
- extension: "Sila masukkan nilai yang telah diterima.",
25
- maxlength: $.validator.format("Sila masukkan nilai tidak lebih dari {0} aksara."),
26
- minlength: $.validator.format("Sila masukkan nilai sekurang-kurangnya {0} aksara."),
27
- rangelength: $.validator.format("Sila masukkan panjang nilai antara {0} dan {1} aksara."),
28
- range: $.validator.format("Sila masukkan nilai antara {0} dan {1} aksara."),
29
- max: $.validator.format("Sila masukkan nilai yang kurang atau sama dengan {0}."),
30
- min: $.validator.format("Sila masukkan nilai yang lebih atau sama dengan {0}.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_my.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Medan ini diperlukan.",remote:"Sila betulkan medan ini.",email:"Sila masukkan alamat emel yang betul.",url:"Sila masukkan URL yang betul.",date:"Sila masukkan tarikh yang betul.",dateISO:"Sila masukkan tarikh(ISO) yang betul.",number:"Sila masukkan nombor yang betul.",digits:"Sila masukkan nilai digit sahaja.",creditcard:"Sila masukkan nombor kredit kad yang betul.",equalTo:"Sila masukkan nilai yang sama semula.",extension:"Sila masukkan nilai yang telah diterima.",maxlength:a.validator.format("Sila masukkan nilai tidak lebih dari {0} aksara."),minlength:a.validator.format("Sila masukkan nilai sekurang-kurangnya {0} aksara."),rangelength:a.validator.format("Sila masukkan panjang nilai antara {0} dan {1} aksara."),range:a.validator.format("Sila masukkan nilai antara {0} dan {1} aksara."),max:a.validator.format("Sila masukkan nilai yang kurang atau sama dengan {0}."),min:a.validator.format("Sila masukkan nilai yang lebih atau sama dengan {0}.")})});
 
 
 
 
admin/js/localization/messages_nl.js DELETED
@@ -1,43 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: NL (Dutch; Nederlands, Vlaams)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Dit is een verplicht veld.",
15
- remote: "Controleer dit veld.",
16
- email: "Vul hier een geldig e-mailadres in.",
17
- url: "Vul hier een geldige URL in.",
18
- date: "Vul hier een geldige datum in.",
19
- dateISO: "Vul hier een geldige datum in (ISO-formaat).",
20
- number: "Vul hier een geldig getal in.",
21
- digits: "Vul hier alleen getallen in.",
22
- creditcard: "Vul hier een geldig creditcardnummer in.",
23
- equalTo: "Vul hier dezelfde waarde in.",
24
- extension: "Vul hier een waarde in met een geldige extensie.",
25
- maxlength: $.validator.format("Vul hier maximaal {0} tekens in."),
26
- minlength: $.validator.format("Vul hier minimaal {0} tekens in."),
27
- rangelength: $.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1} tekens."),
28
- range: $.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1}."),
29
- max: $.validator.format("Vul hier een waarde in kleiner dan of gelijk aan {0}."),
30
- min: $.validator.format("Vul hier een waarde in groter dan of gelijk aan {0}."),
31
-
32
- // for validations in additional-methods.js
33
- iban: "Vul hier een geldig IBAN in.",
34
- dateNL: "Vul hier een geldige datum in.",
35
- phoneNL: "Vul hier een geldig Nederlands telefoonnummer in.",
36
- mobileNL: "Vul hier een geldig Nederlands mobiel telefoonnummer in.",
37
- postalcodeNL: "Vul hier een geldige postcode in.",
38
- bankaccountNL: "Vul hier een geldig bankrekeningnummer in.",
39
- giroaccountNL: "Vul hier een geldig gironummer in.",
40
- bankorgiroaccountNL: "Vul hier een geldig bank- of gironummer in."
41
- });
42
-
43
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_nl.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Dit is een verplicht veld.",remote:"Controleer dit veld.",email:"Vul hier een geldig e-mailadres in.",url:"Vul hier een geldige URL in.",date:"Vul hier een geldige datum in.",dateISO:"Vul hier een geldige datum in (ISO-formaat).",number:"Vul hier een geldig getal in.",digits:"Vul hier alleen getallen in.",creditcard:"Vul hier een geldig creditcardnummer in.",equalTo:"Vul hier dezelfde waarde in.",extension:"Vul hier een waarde in met een geldige extensie.",maxlength:a.validator.format("Vul hier maximaal {0} tekens in."),minlength:a.validator.format("Vul hier minimaal {0} tekens in."),rangelength:a.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1} tekens."),range:a.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1}."),max:a.validator.format("Vul hier een waarde in kleiner dan of gelijk aan {0}."),min:a.validator.format("Vul hier een waarde in groter dan of gelijk aan {0}."),iban:"Vul hier een geldig IBAN in.",dateNL:"Vul hier een geldige datum in.",phoneNL:"Vul hier een geldig Nederlands telefoonnummer in.",mobileNL:"Vul hier een geldig Nederlands mobiel telefoonnummer in.",postalcodeNL:"Vul hier een geldige postcode in.",bankaccountNL:"Vul hier een geldig bankrekeningnummer in.",giroaccountNL:"Vul hier een geldig gironummer in.",bankorgiroaccountNL:"Vul hier een geldig bank- of gironummer in."})});
 
 
 
 
admin/js/localization/messages_no.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: NO (Norwegian; Norsk)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Dette feltet er obligatorisk.",
15
- maxlength: $.validator.format("Maksimalt {0} tegn."),
16
- minlength: $.validator.format("Minimum {0} tegn."),
17
- rangelength: $.validator.format("Angi minimum {0} og maksimum {1} tegn."),
18
- email: "Oppgi en gyldig epostadresse.",
19
- url: "Angi en gyldig URL.",
20
- date: "Angi en gyldig dato.",
21
- dateISO: "Angi en gyldig dato (&ARING;&ARING;&ARING;&ARING;-MM-DD).",
22
- dateSE: "Angi en gyldig dato.",
23
- number: "Angi et gyldig nummer.",
24
- numberSE: "Angi et gyldig nummer.",
25
- digits: "Skriv kun tall.",
26
- equalTo: "Skriv samme verdi igjen.",
27
- range: $.validator.format("Angi en verdi mellom {0} og {1}."),
28
- max: $.validator.format("Angi en verdi som er mindre eller lik {0}."),
29
- min: $.validator.format("Angi en verdi som er st&oslash;rre eller lik {0}."),
30
- creditcard: "Angi et gyldig kredittkortnummer."
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_no.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Dette feltet er obligatorisk.",maxlength:a.validator.format("Maksimalt {0} tegn."),minlength:a.validator.format("Minimum {0} tegn."),rangelength:a.validator.format("Angi minimum {0} og maksimum {1} tegn."),email:"Oppgi en gyldig epostadresse.",url:"Angi en gyldig URL.",date:"Angi en gyldig dato.",dateISO:"Angi en gyldig dato (&ARING;&ARING;&ARING;&ARING;-MM-DD).",dateSE:"Angi en gyldig dato.",number:"Angi et gyldig nummer.",numberSE:"Angi et gyldig nummer.",digits:"Skriv kun tall.",equalTo:"Skriv samme verdi igjen.",range:a.validator.format("Angi en verdi mellom {0} og {1}."),max:a.validator.format("Angi en verdi som er mindre eller lik {0}."),min:a.validator.format("Angi en verdi som er st&oslash;rre eller lik {0}."),creditcard:"Angi et gyldig kredittkortnummer."})});
 
 
 
 
admin/js/localization/messages_pl.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: PL (Polish; język polski, polszczyzna)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "To pole jest wymagane.",
15
- remote: "Proszę o wypełnienie tego pola.",
16
- email: "Proszę o podanie prawidłowego adresu email.",
17
- url: "Proszę o podanie prawidłowego URL.",
18
- date: "Proszę o podanie prawidłowej daty.",
19
- dateISO: "Proszę o podanie prawidłowej daty (ISO).",
20
- number: "Proszę o podanie prawidłowej liczby.",
21
- digits: "Proszę o podanie samych cyfr.",
22
- creditcard: "Proszę o podanie prawidłowej karty kredytowej.",
23
- equalTo: "Proszę o podanie tej samej wartości ponownie.",
24
- extension: "Proszę o podanie wartości z prawidłowym rozszerzeniem.",
25
- maxlength: $.validator.format("Proszę o podanie nie więcej niż {0} znaków."),
26
- minlength: $.validator.format("Proszę o podanie przynajmniej {0} znaków."),
27
- rangelength: $.validator.format("Proszę o podanie wartości o długości od {0} do {1} znaków."),
28
- range: $.validator.format("Proszę o podanie wartości z przedziału od {0} do {1}."),
29
- max: $.validator.format("Proszę o podanie wartości mniejszej bądź równej {0}."),
30
- min: $.validator.format("Proszę o podanie wartości większej bądź równej {0}.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_pl.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"To pole jest wymagane.",remote:"Proszę o wypełnienie tego pola.",email:"Proszę o podanie prawidłowego adresu email.",url:"Proszę o podanie prawidłowego URL.",date:"Proszę o podanie prawidłowej daty.",dateISO:"Proszę o podanie prawidłowej daty (ISO).",number:"Proszę o podanie prawidłowej liczby.",digits:"Proszę o podanie samych cyfr.",creditcard:"Proszę o podanie prawidłowej karty kredytowej.",equalTo:"Proszę o podanie tej samej wartości ponownie.",extension:"Proszę o podanie wartości z prawidłowym rozszerzeniem.",maxlength:a.validator.format("Proszę o podanie nie więcej niż {0} znaków."),minlength:a.validator.format("Proszę o podanie przynajmniej {0} znaków."),rangelength:a.validator.format("Proszę o podanie wartości o długości od {0} do {1} znaków."),range:a.validator.format("Proszę o podanie wartości z przedziału od {0} do {1}."),max:a.validator.format("Proszę o podanie wartości mniejszej bądź równej {0}."),min:a.validator.format("Proszę o podanie wartości większej bądź równej {0}.")})});
 
 
 
 
admin/js/localization/messages_pt_BR.js DELETED
@@ -1,39 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: PT (Portuguese; português)
12
- * Region: BR (Brazil)
13
- */
14
- $.extend($.validator.messages, {
15
- required: "Este campo &eacute; requerido.",
16
- remote: "Por favor, corrija este campo.",
17
- email: "Por favor, forne&ccedil;a um endere&ccedil;o de email v&aacute;lido.",
18
- url: "Por favor, forne&ccedil;a uma URL v&aacute;lida.",
19
- date: "Por favor, forne&ccedil;a uma data v&aacute;lida.",
20
- dateISO: "Por favor, forne&ccedil;a uma data v&aacute;lida (ISO).",
21
- number: "Por favor, forne&ccedil;a um n&uacute;mero v&aacute;lido.",
22
- digits: "Por favor, forne&ccedil;a somente d&iacute;gitos.",
23
- creditcard: "Por favor, forne&ccedil;a um cart&atilde;o de cr&eacute;dito v&aacute;lido.",
24
- equalTo: "Por favor, forne&ccedil;a o mesmo valor novamente.",
25
- extension: "Por favor, forne&ccedil;a um valor com uma extens&atilde;o v&aacute;lida.",
26
- maxlength: $.validator.format("Por favor, forne&ccedil;a n&atilde;o mais que {0} caracteres."),
27
- minlength: $.validator.format("Por favor, forne&ccedil;a ao menos {0} caracteres."),
28
- rangelength: $.validator.format("Por favor, forne&ccedil;a um valor entre {0} e {1} caracteres de comprimento."),
29
- range: $.validator.format("Por favor, forne&ccedil;a um valor entre {0} e {1}."),
30
- max: $.validator.format("Por favor, forne&ccedil;a um valor menor ou igual a {0}."),
31
- min: $.validator.format("Por favor, forne&ccedil;a um valor maior ou igual a {0}."),
32
- nifES: "Por favor, forne&ccedil;a um NIF v&aacute;lido.",
33
- nieES: "Por favor, forne&ccedil;a um NIE v&aacute;lido.",
34
- cifEE: "Por favor, forne&ccedil;a um CIF v&aacute;lido.",
35
- postalcodeBR: "Por favor, forne&ccedil;a um CEP v&aacute;lido.",
36
- cpfBR: "Por favor, forne&ccedil;a um CPF v&aacute;lido."
37
- });
38
-
39
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_pt_BR.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Este campo &eacute; requerido.",remote:"Por favor, corrija este campo.",email:"Por favor, forne&ccedil;a um endere&ccedil;o de email v&aacute;lido.",url:"Por favor, forne&ccedil;a uma URL v&aacute;lida.",date:"Por favor, forne&ccedil;a uma data v&aacute;lida.",dateISO:"Por favor, forne&ccedil;a uma data v&aacute;lida (ISO).",number:"Por favor, forne&ccedil;a um n&uacute;mero v&aacute;lido.",digits:"Por favor, forne&ccedil;a somente d&iacute;gitos.",creditcard:"Por favor, forne&ccedil;a um cart&atilde;o de cr&eacute;dito v&aacute;lido.",equalTo:"Por favor, forne&ccedil;a o mesmo valor novamente.",extension:"Por favor, forne&ccedil;a um valor com uma extens&atilde;o v&aacute;lida.",maxlength:a.validator.format("Por favor, forne&ccedil;a n&atilde;o mais que {0} caracteres."),minlength:a.validator.format("Por favor, forne&ccedil;a ao menos {0} caracteres."),rangelength:a.validator.format("Por favor, forne&ccedil;a um valor entre {0} e {1} caracteres de comprimento."),range:a.validator.format("Por favor, forne&ccedil;a um valor entre {0} e {1}."),max:a.validator.format("Por favor, forne&ccedil;a um valor menor ou igual a {0}."),min:a.validator.format("Por favor, forne&ccedil;a um valor maior ou igual a {0}."),nifES:"Por favor, forne&ccedil;a um NIF v&aacute;lido.",nieES:"Por favor, forne&ccedil;a um NIE v&aacute;lido.",cifEE:"Por favor, forne&ccedil;a um CIF v&aacute;lido.",postalcodeBR:"Por favor, forne&ccedil;a um CEP v&aacute;lido.",cpfBR:"Por favor, forne&ccedil;a um CPF v&aacute;lido."})});
 
 
 
 
admin/js/localization/messages_pt_PT.js DELETED
@@ -1,37 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: PT (Portuguese; português)
12
- * Region: PT (Portugal)
13
- */
14
- $.extend($.validator.messages, {
15
- required: "Campo de preenchimento obrigat&oacute;rio.",
16
- remote: "Por favor, corrija este campo.",
17
- email: "Por favor, introduza um endere&ccedil;o eletr&oacute;nico v&aacute;lido.",
18
- url: "Por favor, introduza um URL v&aacute;lido.",
19
- date: "Por favor, introduza uma data v&aacute;lida.",
20
- dateISO: "Por favor, introduza uma data v&aacute;lida (ISO).",
21
- number: "Por favor, introduza um n&uacute;mero v&aacute;lido.",
22
- digits: "Por favor, introduza apenas d&iacute;gitos.",
23
- creditcard: "Por favor, introduza um n&uacute;mero de cart&atilde;o de cr&eacute;dito v&aacute;lido.",
24
- equalTo: "Por favor, introduza de novo o mesmo valor.",
25
- extension: "Por favor, introduza um ficheiro com uma extens&atilde;o v&aacute;lida.",
26
- maxlength: $.validator.format("Por favor, n&atilde;o introduza mais do que {0} caracteres."),
27
- minlength: $.validator.format("Por favor, introduza pelo menos {0} caracteres."),
28
- rangelength: $.validator.format("Por favor, introduza entre {0} e {1} caracteres."),
29
- range: $.validator.format("Por favor, introduza um valor entre {0} e {1}."),
30
- max: $.validator.format("Por favor, introduza um valor menor ou igual a {0}."),
31
- min: $.validator.format("Por favor, introduza um valor maior ou igual a {0}."),
32
- nifES: "Por favor, introduza um NIF v&aacute;lido.",
33
- nieES: "Por favor, introduza um NIE v&aacute;lido.",
34
- cifES: "Por favor, introduza um CIF v&aacute;lido."
35
- });
36
-
37
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_pt_PT.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Campo de preenchimento obrigat&oacute;rio.",remote:"Por favor, corrija este campo.",email:"Por favor, introduza um endere&ccedil;o eletr&oacute;nico v&aacute;lido.",url:"Por favor, introduza um URL v&aacute;lido.",date:"Por favor, introduza uma data v&aacute;lida.",dateISO:"Por favor, introduza uma data v&aacute;lida (ISO).",number:"Por favor, introduza um n&uacute;mero v&aacute;lido.",digits:"Por favor, introduza apenas d&iacute;gitos.",creditcard:"Por favor, introduza um n&uacute;mero de cart&atilde;o de cr&eacute;dito v&aacute;lido.",equalTo:"Por favor, introduza de novo o mesmo valor.",extension:"Por favor, introduza um ficheiro com uma extens&atilde;o v&aacute;lida.",maxlength:a.validator.format("Por favor, n&atilde;o introduza mais do que {0} caracteres."),minlength:a.validator.format("Por favor, introduza pelo menos {0} caracteres."),rangelength:a.validator.format("Por favor, introduza entre {0} e {1} caracteres."),range:a.validator.format("Por favor, introduza um valor entre {0} e {1}."),max:a.validator.format("Por favor, introduza um valor menor ou igual a {0}."),min:a.validator.format("Por favor, introduza um valor maior ou igual a {0}."),nifES:"Por favor, introduza um NIF v&aacute;lido.",nieES:"Por favor, introduza um NIE v&aacute;lido.",cifES:"Por favor, introduza um CIF v&aacute;lido."})});
 
 
 
 
admin/js/localization/messages_ro.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: RO (Romanian, limba română)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Acest câmp este obligatoriu.",
15
- remote: "Te rugăm să completezi acest câmp.",
16
- email: "Te rugăm să introduci o adresă de email validă",
17
- url: "Te rugăm sa introduci o adresă URL validă.",
18
- date: "Te rugăm să introduci o dată corectă.",
19
- dateISO: "Te rugăm să introduci o dată (ISO) corectă.",
20
- number: "Te rugăm să introduci un număr întreg valid.",
21
- digits: "Te rugăm să introduci doar cifre.",
22
- creditcard: "Te rugăm să introduci un numar de carte de credit valid.",
23
- equalTo: "Te rugăm să reintroduci valoarea.",
24
- extension: "Te rugăm să introduci o valoare cu o extensie validă.",
25
- maxlength: $.validator.format("Te rugăm să nu introduci mai mult de {0} caractere."),
26
- minlength: $.validator.format("Te rugăm să introduci cel puțin {0} caractere."),
27
- rangelength: $.validator.format("Te rugăm să introduci o valoare între {0} și {1} caractere."),
28
- range: $.validator.format("Te rugăm să introduci o valoare între {0} și {1}."),
29
- max: $.validator.format("Te rugăm să introduci o valoare egal sau mai mică decât {0}."),
30
- min: $.validator.format("Te rugăm să introduci o valoare egal sau mai mare decât {0}.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_ro.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Acest câmp este obligatoriu.",remote:"Te rugăm să completezi acest câmp.",email:"Te rugăm să introduci o adresă de email validă",url:"Te rugăm sa introduci o adresă URL validă.",date:"Te rugăm să introduci o dată corectă.",dateISO:"Te rugăm să introduci o dată (ISO) corectă.",number:"Te rugăm să introduci un număr întreg valid.",digits:"Te rugăm să introduci doar cifre.",creditcard:"Te rugăm să introduci un numar de carte de credit valid.",equalTo:"Te rugăm să reintroduci valoarea.",extension:"Te rugăm să introduci o valoare cu o extensie validă.",maxlength:a.validator.format("Te rugăm să nu introduci mai mult de {0} caractere."),minlength:a.validator.format("Te rugăm să introduci cel puțin {0} caractere."),rangelength:a.validator.format("Te rugăm să introduci o valoare între {0} și {1} caractere."),range:a.validator.format("Te rugăm să introduci o valoare între {0} și {1}."),max:a.validator.format("Te rugăm să introduci o valoare egal sau mai mică decât {0}."),min:a.validator.format("Te rugăm să introduci o valoare egal sau mai mare decât {0}.")})});
 
 
 
 
admin/js/localization/messages_ru.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: RU (Russian; русский язык)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Это поле необходимо заполнить.",
15
- remote: "Пожалуйста, введите правильное значение.",
16
- email: "Пожалуйста, введите корректный адрес электронной почты.",
17
- url: "Пожалуйста, введите корректный URL.",
18
- date: "Пожалуйста, введите корректную дату.",
19
- dateISO: "Пожалуйста, введите корректную дату в формате ISO.",
20
- number: "Пожалуйста, введите число.",
21
- digits: "Пожалуйста, вводите только цифры.",
22
- creditcard: "Пожалуйста, введите правильный номер кредитной карты.",
23
- equalTo: "Пожалуйста, введите такое же значение ещё раз.",
24
- extension: "Пожалуйста, выберите файл с правильным расширением.",
25
- maxlength: $.validator.format("Пожалуйста, введите не больше {0} символов."),
26
- minlength: $.validator.format("Пожалуйста, введите не меньше {0} символов."),
27
- rangelength: $.validator.format("Пожалуйста, введите значение длиной от {0} до {1} символов."),
28
- range: $.validator.format("Пожалуйста, введите число от {0} до {1}."),
29
- max: $.validator.format("Пожалуйста, введите число, меньшее или равное {0}."),
30
- min: $.validator.format("Пожалуйста, введите число, большее или равное {0}.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_ru.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Это поле необходимо заполнить.",remote:"Пожалуйста, введите правильное значение.",email:"Пожалуйста, введите корректный адрес электронной почты.",url:"Пожалуйста, введите корректный URL.",date:"Пожалуйста, введите корректную дату.",dateISO:"Пожалуйста, введите корректную дату в формате ISO.",number:"Пожалуйста, введите число.",digits:"Пожалуйста, вводите только цифры.",creditcard:"Пожалуйста, введите правильный номер кредитной карты.",equalTo:"Пожалуйста, введите такое же значение ещё раз.",extension:"Пожалуйста, выберите файл с правильным расширением.",maxlength:a.validator.format("Пожалуйста, введите не больше {0} символов."),minlength:a.validator.format("Пожалуйста, введите не меньше {0} символов."),rangelength:a.validator.format("Пожалуйста, введите значение длиной от {0} до {1} символов."),range:a.validator.format("Пожалуйста, введите число от {0} до {1}."),max:a.validator.format("Пожалуйста, введите число, меньшее или равное {0}."),min:a.validator.format("Пожалуйста, введите число, большее или равное {0}.")})});
 
 
 
 
admin/js/localization/messages_si.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: SI (Slovenian)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "To polje je obvezno.",
15
- remote: "Vpis v tem polju ni v pravi obliki.",
16
- email: "Prosimo, vnesite pravi email naslov.",
17
- url: "Prosimo, vnesite pravi URL.",
18
- date: "Prosimo, vnesite pravi datum.",
19
- dateISO: "Prosimo, vnesite pravi datum (ISO).",
20
- number: "Prosimo, vnesite pravo številko.",
21
- digits: "Prosimo, vnesite samo številke.",
22
- creditcard: "Prosimo, vnesite pravo številko kreditne kartice.",
23
- equalTo: "Prosimo, ponovno vnesite enako vsebino.",
24
- extension: "Prosimo, vnesite vsebino z pravo končnico.",
25
- maxlength: $.validator.format("Prosimo, da ne vnašate več kot {0} znakov."),
26
- minlength: $.validator.format("Prosimo, vnesite vsaj {0} znakov."),
27
- rangelength: $.validator.format("Prosimo, vnesite od {0} do {1} znakov."),
28
- range: $.validator.format("Prosimo, vnesite vrednost med {0} in {1}."),
29
- max: $.validator.format("Prosimo, vnesite vrednost manjšo ali enako {0}."),
30
- min: $.validator.format("Prosimo, vnesite vrednost večjo ali enako {0}.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_si.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"To polje je obvezno.",remote:"Vpis v tem polju ni v pravi obliki.",email:"Prosimo, vnesite pravi email naslov.",url:"Prosimo, vnesite pravi URL.",date:"Prosimo, vnesite pravi datum.",dateISO:"Prosimo, vnesite pravi datum (ISO).",number:"Prosimo, vnesite pravo številko.",digits:"Prosimo, vnesite samo številke.",creditcard:"Prosimo, vnesite pravo številko kreditne kartice.",equalTo:"Prosimo, ponovno vnesite enako vsebino.",extension:"Prosimo, vnesite vsebino z pravo končnico.",maxlength:a.validator.format("Prosimo, da ne vnašate več kot {0} znakov."),minlength:a.validator.format("Prosimo, vnesite vsaj {0} znakov."),rangelength:a.validator.format("Prosimo, vnesite od {0} do {1} znakov."),range:a.validator.format("Prosimo, vnesite vrednost med {0} in {1}."),max:a.validator.format("Prosimo, vnesite vrednost manjšo ali enako {0}."),min:a.validator.format("Prosimo, vnesite vrednost večjo ali enako {0}.")})});
 
 
 
 
admin/js/localization/messages_sk.js DELETED
@@ -1,30 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: SK (Slovak; slovenčina, slovenský jazyk)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Povinné zadať.",
15
- maxlength: $.validator.format("Maximálne {0} znakov."),
16
- minlength: $.validator.format("Minimálne {0} znakov."),
17
- rangelength: $.validator.format("Minimálne {0} a Maximálne {1} znakov."),
18
- email: "E-mailová adresa musí byť platná.",
19
- url: "URL musí byť platný.",
20
- date: "Musí byť dátum.",
21
- number: "Musí byť číslo.",
22
- digits: "Môže obsahovať iba číslice.",
23
- equalTo: "Dva hodnoty sa musia rovnať.",
24
- range: $.validator.format("Musí byť medzi {0} a {1}."),
25
- max: $.validator.format("Nemôže byť viac ako{0}."),
26
- min: $.validator.format("Nemôže byť menej ako{0}."),
27
- creditcard: "Číslo platobnej karty musí byť platné."
28
- });
29
-
30
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_sk.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Povinné zadať.",maxlength:a.validator.format("Maximálne {0} znakov."),minlength:a.validator.format("Minimálne {0} znakov."),rangelength:a.validator.format("Minimálne {0} a Maximálne {1} znakov."),email:"E-mailová adresa musí byť platná.",url:"URL musí byť platný.",date:"Musí byť dátum.",number:"Musí byť číslo.",digits:"Môže obsahovať iba číslice.",equalTo:"Dva hodnoty sa musia rovnať.",range:a.validator.format("Musí byť medzi {0} a {1}."),max:a.validator.format("Nemôže byť viac ako{0}."),min:a.validator.format("Nemôže byť menej ako{0}."),creditcard:"Číslo platobnej karty musí byť platné."})});
 
 
 
 
admin/js/localization/messages_sl.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Language: SL (Slovenian; slovenski jezik)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "To polje je obvezno.",
15
- remote: "Prosimo popravite to polje.",
16
- email: "Prosimo vnesite veljaven email naslov.",
17
- url: "Prosimo vnesite veljaven URL naslov.",
18
- date: "Prosimo vnesite veljaven datum.",
19
- dateISO: "Prosimo vnesite veljaven ISO datum.",
20
- number: "Prosimo vnesite veljavno število.",
21
- digits: "Prosimo vnesite samo števila.",
22
- creditcard: "Prosimo vnesite veljavno številko kreditne kartice.",
23
- equalTo: "Prosimo ponovno vnesite vrednost.",
24
- extension: "Prosimo vnesite vrednost z veljavno končnico.",
25
- maxlength: $.validator.format("Prosimo vnesite največ {0} znakov."),
26
- minlength: $.validator.format("Prosimo vnesite najmanj {0} znakov."),
27
- rangelength: $.validator.format("Prosimo vnesite najmanj {0} in največ {1} znakov."),
28
- range: $.validator.format("Prosimo vnesite vrednost med {0} in {1}."),
29
- max: $.validator.format("Prosimo vnesite vrednost manjše ali enako {0}."),
30
- min: $.validator.format("Prosimo vnesite vrednost večje ali enako {0}.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_sl.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"To polje je obvezno.",remote:"Prosimo popravite to polje.",email:"Prosimo vnesite veljaven email naslov.",url:"Prosimo vnesite veljaven URL naslov.",date:"Prosimo vnesite veljaven datum.",dateISO:"Prosimo vnesite veljaven ISO datum.",number:"Prosimo vnesite veljavno število.",digits:"Prosimo vnesite samo števila.",creditcard:"Prosimo vnesite veljavno številko kreditne kartice.",equalTo:"Prosimo ponovno vnesite vrednost.",extension:"Prosimo vnesite vrednost z veljavno končnico.",maxlength:a.validator.format("Prosimo vnesite največ {0} znakov."),minlength:a.validator.format("Prosimo vnesite najmanj {0} znakov."),rangelength:a.validator.format("Prosimo vnesite najmanj {0} in največ {1} znakov."),range:a.validator.format("Prosimo vnesite vrednost med {0} in {1}."),max:a.validator.format("Prosimo vnesite vrednost manjše ali enako {0}."),min:a.validator.format("Prosimo vnesite vrednost večje ali enako {0}.")})});
 
 
 
 
admin/js/localization/messages_sr.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: SR (Serbian; српски језик)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Поље је обавезно.",
15
- remote: "Средите ово поље.",
16
- email: "Унесите исправну и-мејл адресу.",
17
- url: "Унесите исправан URL.",
18
- date: "Унесите исправан датум.",
19
- dateISO: "Унесите исправан датум (ISO).",
20
- number: "Унесите исправан број.",
21
- digits: "Унесите само цифе.",
22
- creditcard: "Унесите исправан број кредитне картице.",
23
- equalTo: "Унесите исту вредност поново.",
24
- extension: "Унесите вредност са одговарајућом екстензијом.",
25
- maxlength: $.validator.format("Унесите мање од {0} карактера."),
26
- minlength: $.validator.format("Унесите барем {0} карактера."),
27
- rangelength: $.validator.format("Унесите вредност дугачку између {0} и {1} карактера."),
28
- range: $.validator.format("Унесите вредност између {0} и {1}."),
29
- max: $.validator.format("Унесите вредност мању или једнаку {0}."),
30
- min: $.validator.format("Унесите вредност већу или једнаку {0}.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_sr.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Поље је обавезно.",remote:"Средите ово поље.",email:"Унесите исправну и-мејл адресу.",url:"Унесите исправан URL.",date:"Унесите исправан датум.",dateISO:"Унесите исправан датум (ISO).",number:"Унесите исправан број.",digits:"Унесите само цифе.",creditcard:"Унесите исправан број кредитне картице.",equalTo:"Унесите исту вредност поново.",extension:"Унесите вредност са одговарајућом екстензијом.",maxlength:a.validator.format("Унесите мање од {0} карактера."),minlength:a.validator.format("Унесите барем {0} карактера."),rangelength:a.validator.format("Унесите вредност дугачку између {0} и {1} карактера."),range:a.validator.format("Унесите вредност између {0} и {1}."),max:a.validator.format("Унесите вредност мању или једнаку {0}."),min:a.validator.format("Унесите вредност већу или једнаку {0}.")})});
 
 
 
 
admin/js/localization/messages_sr_lat.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: SR (Serbian - Latin alphabet; srpski jezik - latinica)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Polje je obavezno.",
15
- remote: "Sredite ovo polje.",
16
- email: "Unesite ispravnu e-mail adresu",
17
- url: "Unesite ispravan URL.",
18
- date: "Unesite ispravan datum.",
19
- dateISO: "Unesite ispravan datum (ISO).",
20
- number: "Unesite ispravan broj.",
21
- digits: "Unesite samo cifre.",
22
- creditcard: "Unesite ispravan broj kreditne kartice.",
23
- equalTo: "Unesite istu vrednost ponovo.",
24
- extension: "Unesite vrednost sa odgovarajućom ekstenzijom.",
25
- maxlength: $.validator.format("Unesite manje od {0} karaktera."),
26
- minlength: $.validator.format("Unesite barem {0} karaktera."),
27
- rangelength: $.validator.format("Unesite vrednost dugačku između {0} i {1} karaktera."),
28
- range: $.validator.format("Unesite vrednost između {0} i {1}."),
29
- max: $.validator.format("Unesite vrednost manju ili jednaku {0}."),
30
- min: $.validator.format("Unesite vrednost veću ili jednaku {0}.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_sr_lat.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Polje je obavezno.",remote:"Sredite ovo polje.",email:"Unesite ispravnu e-mail adresu",url:"Unesite ispravan URL.",date:"Unesite ispravan datum.",dateISO:"Unesite ispravan datum (ISO).",number:"Unesite ispravan broj.",digits:"Unesite samo cifre.",creditcard:"Unesite ispravan broj kreditne kartice.",equalTo:"Unesite istu vrednost ponovo.",extension:"Unesite vrednost sa odgovarajućom ekstenzijom.",maxlength:a.validator.format("Unesite manje od {0} karaktera."),minlength:a.validator.format("Unesite barem {0} karaktera."),rangelength:a.validator.format("Unesite vrednost dugačku između {0} i {1} karaktera."),range:a.validator.format("Unesite vrednost između {0} i {1}."),max:a.validator.format("Unesite vrednost manju ili jednaku {0}."),min:a.validator.format("Unesite vrednost veću ili jednaku {0}.")})});
 
 
 
 
admin/js/localization/messages_sv.js DELETED
@@ -1,31 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: SV (Swedish; Svenska)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Detta f&auml;lt &auml;r obligatoriskt.",
15
- maxlength: $.validator.format("Du f&aring;r ange h&ouml;gst {0} tecken."),
16
- minlength: $.validator.format("Du m&aring;ste ange minst {0} tecken."),
17
- rangelength: $.validator.format("Ange minst {0} och max {1} tecken."),
18
- email: "Ange en korrekt e-postadress.",
19
- url: "Ange en korrekt URL.",
20
- date: "Ange ett korrekt datum.",
21
- dateISO: "Ange ett korrekt datum (&Aring;&Aring;&Aring;&Aring;-MM-DD).",
22
- number: "Ange ett korrekt nummer.",
23
- digits: "Ange endast siffror.",
24
- equalTo: "Ange samma v&auml;rde igen.",
25
- range: $.validator.format("Ange ett v&auml;rde mellan {0} och {1}."),
26
- max: $.validator.format("Ange ett v&auml;rde som &auml;r mindre eller lika med {0}."),
27
- min: $.validator.format("Ange ett v&auml;rde som &auml;r st&ouml;rre eller lika med {0}."),
28
- creditcard: "Ange ett korrekt kreditkortsnummer."
29
- });
30
-
31
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_sv.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Detta f&auml;lt &auml;r obligatoriskt.",maxlength:a.validator.format("Du f&aring;r ange h&ouml;gst {0} tecken."),minlength:a.validator.format("Du m&aring;ste ange minst {0} tecken."),rangelength:a.validator.format("Ange minst {0} och max {1} tecken."),email:"Ange en korrekt e-postadress.",url:"Ange en korrekt URL.",date:"Ange ett korrekt datum.",dateISO:"Ange ett korrekt datum (&Aring;&Aring;&Aring;&Aring;-MM-DD).",number:"Ange ett korrekt nummer.",digits:"Ange endast siffror.",equalTo:"Ange samma v&auml;rde igen.",range:a.validator.format("Ange ett v&auml;rde mellan {0} och {1}."),max:a.validator.format("Ange ett v&auml;rde som &auml;r mindre eller lika med {0}."),min:a.validator.format("Ange ett v&auml;rde som &auml;r st&ouml;rre eller lika med {0}."),creditcard:"Ange ett korrekt kreditkortsnummer."})});
 
 
 
 
admin/js/localization/messages_th.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: TH (Thai; ไทย)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "โปรดระบุ",
15
- remote: "โปรดแก้ไขให้ถูกต้อง",
16
- email: "โปรดระบุที่อยู่อีเมล์ที่ถูกต้อง",
17
- url: "โปรดระบุ URL ที่ถูกต้อง",
18
- date: "โปรดระบุวันที่ ที่ถูกต้อง",
19
- dateISO: "โปรดระบุวันที่ ที่ถูกต้อง (ระบบ ISO).",
20
- number: "โปรดระบุทศนิยมที่ถูกต้อง",
21
- digits: "โปรดระบุจำนวนเต็มที่ถูกต้อง",
22
- creditcard: "โปรดระบุรหัสบัตรเครดิตที่ถูกต้อง",
23
- equalTo: "โปรดระบุค่าเดิมอีกครั้ง",
24
- extension: "โปรดระบุค่าที่มีส่วนขยายที่ถูกต้อง",
25
- maxlength: $.validator.format("โปรดอย่าระบุค่าที่ยาวกว่า {0} อักขระ"),
26
- minlength: $.validator.format("โปรดอย่าระบุค่าที่สั้นกว่า {0} อักขระ"),
27
- rangelength: $.validator.format("โปรดอย่าระบุค่าความยาวระหว่าง {0} ถึง {1} อักขระ"),
28
- range: $.validator.format("โปรดระบุค่าระหว่าง {0} และ {1}"),
29
- max: $.validator.format("โปรดระบุค่าน้อยกว่าหรือเท่ากับ {0}"),
30
- min: $.validator.format("โปรดระบุค่ามากกว่าหรือเท่ากับ {0}")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_th.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"โปรดระบุ",remote:"โปรดแก้ไขให้ถูกต้อง",email:"โปรดระบุที่อยู่อีเมล์ที่ถูกต้อง",url:"โปรดระบุ URL ที่ถูกต้อง",date:"โปรดระบุวันที่ ที่ถูกต้อง",dateISO:"โปรดระบุวันที่ ที่ถูกต้อง (ระบบ ISO).",number:"โปรดระบุทศนิยมที่ถูกต้อง",digits:"โปรดระบุจำนวนเต็มที่ถูกต้อง",creditcard:"โปรดระบุรหัสบัตรเครดิตที่ถูกต้อง",equalTo:"โปรดระบุค่าเดิมอีกครั้ง",extension:"โปรดระบุค่าที่มีส่วนขยายที่ถูกต้อง",maxlength:a.validator.format("โปรดอย่าระบุค่าที่ยาวกว่า {0} อักขระ"),minlength:a.validator.format("โปรดอย่าระบุค่าที่สั้นกว่า {0} อักขระ"),rangelength:a.validator.format("โปรดอย่าระบุค่าความยาวระหว่าง {0} ถึง {1} อักขระ"),range:a.validator.format("โปรดระบุค่าระหว่าง {0} และ {1}"),max:a.validator.format("โปรดระบุค่าน้อยกว่าหรือเท่ากับ {0}"),min:a.validator.format("โปรดระบุค่ามากกว่าหรือเท่ากับ {0}")})});
 
 
 
 
admin/js/localization/messages_tj.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: TJ (Tajikistan; Забони тоҷикӣ)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Ворид кардани ин филд маҷбури аст.",
15
- remote: "Илтимос, маълумоти саҳеҳ ворид кунед.",
16
- email: "Илтимос, почтаи электронии саҳеҳ ворид кунед.",
17
- url: "Илтимос, URL адреси саҳеҳ ворид кунед.",
18
- date: "Илтимос, таърихи саҳеҳ ворид кунед.",
19
- dateISO: "Илтимос, таърихи саҳеҳи (ISO)ӣ ворид кунед.",
20
- number: "Илтимос, рақамҳои саҳеҳ ворид кунед.",
21
- digits: "Илтимос, танҳо рақам ворид кунед.",
22
- creditcard: "Илтимос, кредит карди саҳеҳ ворид кунед.",
23
- equalTo: "Илтимос, миқдори баробар ворид кунед.",
24
- extension: "Илтимос, қофияи файлро дуруст интихоб кунед",
25
- maxlength: $.validator.format("Илтимос, бештар аз {0} рамз ворид накунед."),
26
- minlength: $.validator.format("Илтимос, камтар аз {0} рамз ворид накунед."),
27
- rangelength: $.validator.format("Илтимос, камтар аз {0} ва зиёда аз {1} рамз ворид кунед."),
28
- range: $.validator.format("Илтимос, аз {0} то {1} рақам зиёд ворид кунед."),
29
- max: $.validator.format("Илтимос, бештар аз {0} рақам ворид накунед."),
30
- min: $.validator.format("Илтимос, камтар аз {0} рақам ворид накунед.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_tj.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Ворид кардани ин филд маҷбури аст.",remote:"Илтимос, маълумоти саҳеҳ ворид кунед.",email:"Илтимос, почтаи электронии саҳеҳ ворид кунед.",url:"Илтимос, URL адреси саҳеҳ ворид кунед.",date:"Илтимос, таърихи саҳеҳ ворид кунед.",dateISO:"Илтимос, таърихи саҳеҳи (ISO)ӣ ворид кунед.",number:"Илтимос, рақамҳои саҳеҳ ворид кунед.",digits:"Илтимос, танҳо рақам ворид кунед.",creditcard:"Илтимос, кредит карди саҳеҳ ворид кунед.",equalTo:"Илтимос, миқдори баробар ворид кунед.",extension:"Илтимос, қофияи файлро дуруст интихоб кунед",maxlength:a.validator.format("Илтимос, бештар аз {0} рамз ворид накунед."),minlength:a.validator.format("Илтимос, камтар аз {0} рамз ворид накунед."),rangelength:a.validator.format("Илтимос, камтар аз {0} ва зиёда аз {1} рамз ворид кунед."),range:a.validator.format("Илтимос, аз {0} то {1} рақам зиёд ворид кунед."),max:a.validator.format("Илтимос, бештар аз {0} рақам ворид накунед."),min:a.validator.format("Илтимос, камтар аз {0} рақам ворид накунед.")})});
 
 
 
 
admin/js/localization/messages_tr.js DELETED
@@ -1,34 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: TR (Turkish; Türkçe)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Bu alanın doldurulması zorunludur.",
15
- remote: "Lütfen bu alanı düzeltin.",
16
- email: "Lütfen geçerli bir e-posta adresi giriniz.",
17
- url: "Lütfen geçerli bir web adresi (URL) giriniz.",
18
- date: "Lütfen geçerli bir tarih giriniz.",
19
- dateISO: "Lütfen geçerli bir tarih giriniz(ISO formatında)",
20
- number: "Lütfen geçerli bir sayı giriniz.",
21
- digits: "Lütfen sadece sayısal karakterler giriniz.",
22
- creditcard: "Lütfen geçerli bir kredi kartı giriniz.",
23
- equalTo: "Lütfen aynı değeri tekrar giriniz.",
24
- extension: "Lütfen geçerli uzantıya sahip bir değer giriniz.",
25
- maxlength: $.validator.format("Lütfen en fazla {0} karakter uzunluğunda bir değer giriniz."),
26
- minlength: $.validator.format("Lütfen en az {0} karakter uzunluğunda bir değer giriniz."),
27
- rangelength: $.validator.format("Lütfen en az {0} ve en fazla {1} uzunluğunda bir değer giriniz."),
28
- range: $.validator.format("Lütfen {0} ile {1} arasında bir değer giriniz."),
29
- max: $.validator.format("Lütfen {0} değerine eşit ya da daha küçük bir değer giriniz."),
30
- min: $.validator.format("Lütfen {0} değerine eşit ya da daha büyük bir değer giriniz."),
31
- require_from_group: "Lütfen bu alanların en az {0} tanesini doldurunuz."
32
- });
33
-
34
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_tr.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Bu alanın doldurulması zorunludur.",remote:"Lütfen bu alanı düzeltin.",email:"Lütfen geçerli bir e-posta adresi giriniz.",url:"Lütfen geçerli bir web adresi (URL) giriniz.",date:"Lütfen geçerli bir tarih giriniz.",dateISO:"Lütfen geçerli bir tarih giriniz(ISO formatında)",number:"Lütfen geçerli bir sayı giriniz.",digits:"Lütfen sadece sayısal karakterler giriniz.",creditcard:"Lütfen geçerli bir kredi kartı giriniz.",equalTo:"Lütfen aynı değeri tekrar giriniz.",extension:"Lütfen geçerli uzantıya sahip bir değer giriniz.",maxlength:a.validator.format("Lütfen en fazla {0} karakter uzunluğunda bir değer giriniz."),minlength:a.validator.format("Lütfen en az {0} karakter uzunluğunda bir değer giriniz."),rangelength:a.validator.format("Lütfen en az {0} ve en fazla {1} uzunluğunda bir değer giriniz."),range:a.validator.format("Lütfen {0} ile {1} arasında bir değer giriniz."),max:a.validator.format("Lütfen {0} değerine eşit ya da daha küçük bir değer giriniz."),min:a.validator.format("Lütfen {0} değerine eşit ya da daha büyük bir değer giriniz."),require_from_group:"Lütfen bu alanların en az {0} tanesini doldurunuz."})});
 
 
 
 
admin/js/localization/messages_uk.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: UK (Ukrainian; українська мова)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Це поле необхідно заповнити.",
15
- remote: "Будь ласка, введіть правильне значення.",
16
- email: "Будь ласка, введіть коректну адресу електронної пошти.",
17
- url: "Будь ласка, введіть коректний URL.",
18
- date: "Будь ласка, введіть коректну дату.",
19
- dateISO: "Будь ласка, введіть коректну дату у форматі ISO.",
20
- number: "Будь ласка, введіть число.",
21
- digits: "Вводите потрібно лише цифри.",
22
- creditcard: "Будь ласка, введіть правильний номер кредитної карти.",
23
- equalTo: "Будь ласка, введіть таке ж значення ще раз.",
24
- extension: "Будь ласка, виберіть файл з правильним розширенням.",
25
- maxlength: $.validator.format("Будь ласка, введіть не більше {0} символів."),
26
- minlength: $.validator.format("Будь ласка, введіть не менше {0} символів."),
27
- rangelength: $.validator.format("Будь ласка, введіть значення довжиною від {0} до {1} символів."),
28
- range: $.validator.format("Будь ласка, введіть число від {0} до {1}."),
29
- max: $.validator.format("Будь ласка, введіть число, менше або рівно {0}."),
30
- min: $.validator.format("Будь ласка, введіть число, більше або рівно {0}.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_uk.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Це поле необхідно заповнити.",remote:"Будь ласка, введіть правильне значення.",email:"Будь ласка, введіть коректну адресу електронної пошти.",url:"Будь ласка, введіть коректний URL.",date:"Будь ласка, введіть коректну дату.",dateISO:"Будь ласка, введіть коректну дату у форматі ISO.",number:"Будь ласка, введіть число.",digits:"Вводите потрібно лише цифри.",creditcard:"Будь ласка, введіть правильний номер кредитної карти.",equalTo:"Будь ласка, введіть таке ж значення ще раз.",extension:"Будь ласка, виберіть файл з правильним розширенням.",maxlength:a.validator.format("Будь ласка, введіть не більше {0} символів."),minlength:a.validator.format("Будь ласка, введіть не менше {0} символів."),rangelength:a.validator.format("Будь ласка, введіть значення довжиною від {0} до {1} символів."),range:a.validator.format("Будь ласка, введіть число від {0} до {1}."),max:a.validator.format("Будь ласка, введіть число, менше або рівно {0}."),min:a.validator.format("Будь ласка, введіть число, більше або рівно {0}.")})});
 
 
 
 
admin/js/localization/messages_vi.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: VI (Vietnamese; Tiếng Việt)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "Hãy nhập.",
15
- remote: "Hãy sửa cho đúng.",
16
- email: "Hãy nhập email.",
17
- url: "Hãy nhập URL.",
18
- date: "Hãy nhập ngày.",
19
- dateISO: "Hãy nhập ngày (ISO).",
20
- number: "Hãy nhập số.",
21
- digits: "Hãy nhập chữ số.",
22
- creditcard: "Hãy nhập số thẻ tín dụng.",
23
- equalTo: "Hãy nhập thêm lần nữa.",
24
- extension: "Phần mở rộng không đúng.",
25
- maxlength: $.validator.format("Hãy nhập từ {0} kí tự trở xuống."),
26
- minlength: $.validator.format("Hãy nhập từ {0} kí tự trở lên."),
27
- rangelength: $.validator.format("Hãy nhập từ {0} đến {1} kí tự."),
28
- range: $.validator.format("Hãy nhập từ {0} đến {1}."),
29
- max: $.validator.format("Hãy nhập từ {0} trở xuống."),
30
- min: $.validator.format("Hãy nhập từ {1} trở lên.")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_vi.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"Hãy nhập.",remote:"Hãy sửa cho đúng.",email:"Hãy nhập email.",url:"Hãy nhập URL.",date:"Hãy nhập ngày.",dateISO:"Hãy nhập ngày (ISO).",number:"Hãy nhập số.",digits:"Hãy nhập chữ số.",creditcard:"Hãy nhập số thẻ tín dụng.",equalTo:"Hãy nhập thêm lần nữa.",extension:"Phần mở rộng không đúng.",maxlength:a.validator.format("Hãy nhập từ {0} kí tự trở xuống."),minlength:a.validator.format("Hãy nhập từ {0} kí tự trở lên."),rangelength:a.validator.format("Hãy nhập từ {0} đến {1} kí tự."),range:a.validator.format("Hãy nhập từ {0} đến {1}."),max:a.validator.format("Hãy nhập từ {0} trở xuống."),min:a.validator.format("Hãy nhập từ {1} trở lên.")})});
 
 
 
 
admin/js/localization/messages_zh.js DELETED
@@ -1,33 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語)
12
- */
13
- $.extend($.validator.messages, {
14
- required: "这是必填字段",
15
- remote: "请修正此字段",
16
- email: "请输入有效的电子邮件地址",
17
- url: "请输入有效的网址",
18
- date: "请输入有效的日期",
19
- dateISO: "请输入有效的日期 (YYYY-MM-DD)",
20
- number: "请输入有效的数字",
21
- digits: "只能输入数字",
22
- creditcard: "请输入有效的信用卡号码",
23
- equalTo: "你的输入不相同",
24
- extension: "请输入有效的后缀",
25
- maxlength: $.validator.format("最多可以输入 {0} 个字符"),
26
- minlength: $.validator.format("最少要输入 {0} 个字符"),
27
- rangelength: $.validator.format("请输入长度在 {0} 到 {1} 之间的字符串"),
28
- range: $.validator.format("请输入范围在 {0} 到 {1} 之间的数值"),
29
- max: $.validator.format("请输入不大于 {0} 的数值"),
30
- min: $.validator.format("请输入不小于 {0} 的数值")
31
- });
32
-
33
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_zh.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"这是必填字段",remote:"请修正此字段",email:"请输入有效的电子邮件地址",url:"请输入有效的网址",date:"请输入有效的日期",dateISO:"请输入有效的日期 (YYYY-MM-DD)",number:"请输入有效的数字",digits:"只能输入数字",creditcard:"请输入有效的信用卡号码",equalTo:"你的输入不相同",extension:"请输入有效的后缀",maxlength:a.validator.format("最多可以输入 {0} 个字符"),minlength:a.validator.format("最少要输入 {0} 个字符"),rangelength:a.validator.format("请输入长度在 {0} 到 {1} 之间的字符串"),range:a.validator.format("请输入范围在 {0} 到 {1} 之间的数值"),max:a.validator.format("请输入不大于 {0} 的数值"),min:a.validator.format("请输入不小于 {0} 的数值")})});
 
 
 
 
admin/js/localization/messages_zh_TW.js DELETED
@@ -1,34 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Translated default messages for the jQuery validation plugin.
11
- * Locale: ZH (Chinese; 中文 (Zhōngwén), 汉语, 漢語)
12
- * Region: TW (Taiwan)
13
- */
14
- $.extend($.validator.messages, {
15
- required: "必須填寫",
16
- remote: "請修正此欄位",
17
- email: "請輸入有效的電子郵件",
18
- url: "請輸入有效的網址",
19
- date: "請輸入有效的日期",
20
- dateISO: "請輸入有效的日期 (YYYY-MM-DD)",
21
- number: "請輸入正確的數值",
22
- digits: "只可輸入數字",
23
- creditcard: "請輸入有效的信用卡號碼",
24
- equalTo: "請重複輸入一次",
25
- extension: "請輸入有效的後綴",
26
- maxlength: $.validator.format("最多 {0} 個字"),
27
- minlength: $.validator.format("最少 {0} 個字"),
28
- rangelength: $.validator.format("請輸入長度為 {0} 至 {1} 之間的字串"),
29
- range: $.validator.format("請輸入 {0} 至 {1} 之間的數值"),
30
- max: $.validator.format("請輸入不大於 {0} 的數值"),
31
- min: $.validator.format("請輸入不小於 {0} 的數值")
32
- });
33
-
34
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/messages_zh_TW.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"必須填寫",remote:"請修正此欄位",email:"請輸入有效的電子郵件",url:"請輸入有效的網址",date:"請輸入有效的日期",dateISO:"請輸入有效的日期 (YYYY-MM-DD)",number:"請輸入正確的數值",digits:"只可輸入數字",creditcard:"請輸入有效的信用卡號碼",equalTo:"請重複輸入一次",extension:"請輸入有效的後綴",maxlength:a.validator.format("最多 {0} 個字"),minlength:a.validator.format("最少 {0} 個字"),rangelength:a.validator.format("請輸入長度為 {0} 至 {1} 之間的字串"),range:a.validator.format("請輸入 {0} 至 {1} 之間的數值"),max:a.validator.format("請輸入不大於 {0} 的數值"),min:a.validator.format("請輸入不小於 {0} 的數值")})});
 
 
 
 
admin/js/localization/methods_de.js DELETED
@@ -1,22 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Localized default methods for the jQuery validation plugin.
11
- * Locale: DE
12
- */
13
- $.extend($.validator.methods, {
14
- date: function(value, element) {
15
- return this.optional(element) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(value);
16
- },
17
- number: function(value, element) {
18
- return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value);
19
- }
20
- });
21
-
22
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/methods_de.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.methods,{date:function(a,b){return this.optional(b)||/^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(a)}})});
 
 
 
 
admin/js/localization/methods_es_CL.js DELETED
@@ -1,22 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Localized default methods for the jQuery validation plugin.
11
- * Locale: ES_CL
12
- */
13
- $.extend($.validator.methods, {
14
- date: function(value, element) {
15
- return this.optional(element) || /^\d\d?\-\d\d?\-\d\d\d?\d?$/.test(value);
16
- },
17
- number: function(value, element) {
18
- return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value);
19
- }
20
- });
21
-
22
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/methods_es_CL.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.methods,{date:function(a,b){return this.optional(b)||/^\d\d?\-\d\d?\-\d\d\d?\d?$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(a)}})});
 
 
 
 
admin/js/localization/methods_fi.js DELETED
@@ -1,22 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Localized default methods for the jQuery validation plugin.
11
- * Locale: FI
12
- */
13
- $.extend($.validator.methods, {
14
- date: function(value, element) {
15
- return this.optional(element) || /^\d{1,2}\.\d{1,2}\.\d{4}$/.test(value);
16
- },
17
- number: function(value, element) {
18
- return this.optional(element) || /^-?(?:\d+)(?:,\d+)?$/.test(value);
19
- }
20
- });
21
-
22
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/methods_fi.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.methods,{date:function(a,b){return this.optional(b)||/^\d{1,2}\.\d{1,2}\.\d{4}$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+)(?:,\d+)?$/.test(a)}})});
 
 
 
 
admin/js/localization/methods_nl.js DELETED
@@ -1,19 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Localized default methods for the jQuery validation plugin.
11
- * Locale: NL
12
- */
13
- $.extend($.validator.methods, {
14
- date: function(value, element) {
15
- return this.optional(element) || /^\d\d?[\.\/\-]\d\d?[\.\/\-]\d\d\d?\d?$/.test(value);
16
- }
17
- });
18
-
19
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/methods_nl.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.methods,{date:function(a,b){return this.optional(b)||/^\d\d?[\.\/\-]\d\d?[\.\/\-]\d\d\d?\d?$/.test(a)}})});
 
 
 
 
admin/js/localization/methods_pt.js DELETED
@@ -1,19 +0,0 @@
1
- (function( factory ) {
2
- if ( typeof define === "function" && define.amd ) {
3
- define( ["jquery", "../jquery.validate"], factory );
4
- } else {
5
- factory( jQuery );
6
- }
7
- }(function( $ ) {
8
-
9
- /*
10
- * Localized default methods for the jQuery validation plugin.
11
- * Locale: PT_BR
12
- */
13
- $.extend($.validator.methods, {
14
- date: function(value, element) {
15
- return this.optional(element) || /^\d\d?\/\d\d?\/\d\d\d?\d?$/.test(value);
16
- }
17
- });
18
-
19
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/localization/methods_pt.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
2
- * http://jqueryvalidation.org/
3
- * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
4
- !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.methods,{date:function(a,b){return this.optional(b)||/^\d\d?\/\d\d?\/\d\d\d?\d?$/.test(a)}})});
 
 
 
 
admin/js/woo-feed-admin-pro.js CHANGED
@@ -1,4 +1,5 @@
1
- // noinspection JSUnresolvedVariable,ES6ConvertVarToLetConst,SpellCheckingInspection
 
2
  /**!
3
  * WooFeed Pro Scripts
4
  * @version 1.0.0
@@ -6,22 +7,174 @@
6
  * @copyright 2020 WebAppick
7
  *
8
  */
9
- (function ($, window, document, wpAjax, opts) {
10
- "use strict";
11
- /* global ajaxurl, wpAjax, postboxes, pagenow, alert, deleteUserSetting, typenow, adminpage, thousandsSeparator, decimalPoint, isRtl */
12
- $(window).on('load', function () {
13
- // noinspection ES6ConvertVarToLetConst,SpellCheckingInspection
14
- var sliders = $('.wapk-slider');
15
- if( sliders.length ) {
16
- sliders.slick({
17
- autoplay: true,
18
- dots: true,
19
- centerMode: true,
20
- arrows: false,
21
- slidesToShow: 1,
22
- slidesToScroll: 1,
23
- lazyLoad: 'progressive'
24
- });
25
- }
26
- } );
27
- }( jQuery, window, document, wp.ajax, wpf_ajax_obj ));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "use strict"; // noinspection JSUnresolvedVariable
2
+
3
  /**!
4
  * WooFeed Pro Scripts
5
  * @version 1.0.0
7
  * @copyright 2020 WebAppick
8
  *
9
  */
10
+
11
+ (function ($, window, document, wf, wpAjax, opts) {
12
+ "use strict";
13
+ /* global ajaxurl, wpAjax, postboxes, pagenow, alert, deleteUserSetting, typenow, adminpage, thousandsSeparator, decimalPoint, isRtl */
14
+
15
+ $(window).on('load', function () {
16
+ var __idx__ = 0,
17
+ srt = $('#wf_str_replace tbody');
18
+ $(document).on('change', "#custom2_attribute", function (e) {
19
+ // Custom 2 template attribute name
20
+ $("#custom2_attribute_value").val(`{${$(this).val().trim()}}`); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html
21
+ }).on('change', '#is_variations', function (e) {
22
+ let is_variations = $(this).val();
23
+ if ('both' === is_variations || 'n' === is_variations) {
24
+ $(".WFVariablePriceTR").show();
25
+ } else {
26
+ $(".WFVariablePriceTR").hide();
27
+ }
28
+ }).on('change', '#wpf_ptitle', function () {
29
+ // Variation Product Title
30
+ let selectize = $(this)[0].selectize,
31
+ titleEl = $("textarea[name='ptitle_show']"),
32
+ title = titleEl.val().trim().split('|');
33
+ title.push($(this).val());
34
+ // Show Title
35
+ titleEl.val(title.filter(x => '' !== x).join('|'));
36
+ selectize.clear(true); // reset the select value silently.
37
+ selectize.refreshOptions(false); // reset selectize scroll position silently.
38
+ }).on('click', '#wf_new_str_replace', function () {
39
+ if (0 === __idx__) {
40
+ __idx__ = srt.find('tr').length;
41
+ } else {
42
+ __idx__++;
43
+ }
44
+
45
+ srt.append($('#wf_str_replace_template').text().trim().replace(/__idx__/g, __idx__));
46
+ }).on('click', '.wf-add-row', function (e) {
47
+ e.preventDefault();
48
+
49
+ var self = $(this),
50
+ __idx__ = parseInt(self.data('idx') || 0) + 1,
51
+ template = (/^</.test(self.data('template')) ? self.data('template') : $(self.data('template')).text()).trim(),
52
+ target = $(self.data('target'));
53
+
54
+ target.append(template.trim().replace(/__idx__/g, __idx__));
55
+ wf.helper.selectize();
56
+ self.data('idx', __idx__);
57
+ }).on('submit', '#attribute-mapping-form', function (e) {
58
+ if (!$(this).find('[name^="value["]').length) {
59
+ alert(opts.form.one_item_required);
60
+ return false;
61
+ }
62
+ }).on('click', '#wf_newFilter', function () {
63
+ // Add New Condition for Filter
64
+ $('#table-advanced-filter tbody tr:eq(0)').show().clone().find('input').val('').end().find('select').val('').end().insertAfter('#table-advanced-filter tbody tr:last');
65
+ $('.fsrow:gt(2)').prop('disabled', false);
66
+ $('.wf_concat_advance:last').prop('value', 'OR');
67
+ $('.daRow:eq(0)').hide();
68
+ }).on('click', '#wf_newCon', function () {
69
+ // Dynamic Attribute Add New Condition
70
+ $('#table-1 tbody tr:first').show().clone().find('input').val('').end().insertAfter('#table-1 tbody tr:last');
71
+ $('.fsrow:gt(7)').prop('disabled', false);
72
+ $('.daRow:eq(0)').hide();
73
+ $('#table-1 tbody tr:last td select.woo_feed_dynamic_attr_condition_select').change(function () {
74
+ woo_feed_dynamic_attr_condition_between($(this));
75
+ });
76
+ }).on('change keyup', '.treegrid-parent', function () {
77
+ // Category Mapping (Auto Field Populate)
78
+ // noinspection ES6ConvertVarToLetConst
79
+ var val = $(this).val(),
80
+ parent = $(this).attr('data-cat_id'); // noinspection ES6ConvertVarToLetConst
81
+
82
+ $(".treegrid-parent-" + parent).val(val);
83
+ }); // placeholder for Between Dynamic Attribute condition
84
+
85
+ function woo_feed_dynamic_attr_condition_between(elem) {
86
+ // noinspection ES6ConvertVarToLetConst
87
+ var input = elem.closest('tr').find('.woo_feed_dynamic_attr_condition_value');
88
+ if ('between' === elem.val()) input.attr('placeholder', 'Ex: 10,20');
89
+ else input.attr('placeholder', '');
90
+ }
91
+
92
+ $('.woo_feed_dynamic_attr_condition_select').change(function () {
93
+ woo_feed_dynamic_attr_condition_between($(this));
94
+ });
95
+
96
+ if ($('#attribute-mapping-form').length > 0) {
97
+ wf.helper.sortable();
98
+ }
99
+ });
100
+
101
+ // Document events
102
+ $(document)
103
+ .on('feedEditor.init', function () {
104
+ wf.helper.fancySelect($('#wf_product_post_status, .filter_mode'), {
105
+ maxItemShow: 2
106
+ });
107
+ })
108
+
109
+ // filter tab functionality
110
+ .one('click', 'label[for="wf-tab-content-filter"]', function (e) {
111
+ var filterData = {
112
+ action: 'woo_feed_filter_count', //callback function
113
+ nonce: wpf_ajax_obj.ajax.nonce,
114
+ };
115
+ // AJAX call
116
+ $.ajax({
117
+ method: "GET",
118
+ url: wpf_ajax_obj.wpf_ajax_url,
119
+ data: filterData,
120
+ success: function (message) {
121
+ if (message.data.backorder) {
122
+ var singularOrPluralText = message.data.backorder === 1 ? 'product is' : 'products are';
123
+ $('#wf-tab-content-filter table tr:nth-of-type(1)').find('.help').after('<div class="counter"><span class="dashicons dashicons-info-outline" aria-hidden="true"></span>' + message.data.backorder + ' ' + singularOrPluralText + ' on backorder.</div>');
124
+ }
125
+ if (message.data.outOfStock) {
126
+ var singularOrPluralText = message.data.outOfStock === 1 ? 'product is' : 'products are';
127
+ $('#wf-tab-content-filter table tr:nth-of-type(2)').find('.help').after('<div class="counter"><span class="dashicons dashicons-info-outline" aria-hidden="true"></span>' + message.data.outOfStock + ' ' + singularOrPluralText + ' out of stock.</div>');
128
+ }
129
+ if (message.data.hidden) {
130
+ var singularOrPluralText = message.data.hidden === 1 ? 'product is' : 'products are';
131
+ $('#wf-tab-content-filter table tr:nth-of-type(3)').find('.help').after('<div class="counter"><span class="dashicons dashicons-info-outline" aria-hidden="true"></span>' + message.data.hidden + ' ' + singularOrPluralText + ' hidden.</div>');
132
+ }
133
+ if (message.data.noDesc) {
134
+ var singularOrPluralText = message.data.noDesc === 1 ? 'product has' : 'products are';
135
+ $('#wf-tab-content-filter table tr:nth-of-type(4)').find('.help').after('<div class="counter"><span class="dashicons dashicons-info-outline" aria-hidden="true"></span>' + message.data.noDesc + ' ' + singularOrPluralText + ' no description.</div>');
136
+ }
137
+ if (message.data.noImg) {
138
+ var singularOrPluralText = message.data.noImg === 1 ? 'product has' : 'products have';
139
+ $('#wf-tab-content-filter table tr:nth-of-type(5)').find('.help').after('<div class="counter"><span class="dashicons dashicons-info-outline" aria-hidden="true"></span>' + message.data.noImg + ' ' + singularOrPluralText + ' no image.</div>');
140
+ }
141
+ if (message.data.noPrice) {
142
+ var singularOrPluralText = message.data.noPrice === 1 ? 'product has' : 'products have';
143
+ $('#wf-tab-content-filter table tr:nth-of-type(6)').find('.help').after('<div class="counter"><span class="dashicons dashicons-info-outline" aria-hidden="true"></span>' + message.data.noPrice + ' ' + singularOrPluralText + ' no price.</div>');
144
+ }
145
+ }
146
+ });
147
+ });
148
+
149
+ $(document).ready(function () {
150
+
151
+ if ($('#feedCurrency').length > 0) {
152
+ function multicurrency_update() {
153
+
154
+ $('.wf_attr.wf_attributes').each(function (key, value) {
155
+ var currency = $('#feedCurrency').val();
156
+ var attribute_value = $(value).val();
157
+ if (-1 !== $.inArray(attribute_value, ['price', 'current_price', 'sale_price', 'price_with_tax', 'current_price_with_tax', 'sale_price_with_tax'])) {
158
+ $('input[name^="suffix"]').eq(parseInt(key)).val(' ' + currency);
159
+ }
160
+ });
161
+
162
+ }
163
+
164
+ $('#feedCurrency').on('change', multicurrency_update);
165
+ //$(document).on( 'feedEditor.after.free.postfix.update', multicurrency_update );
166
+ }
167
+
168
+ if ($('#editor').length > 0) {
169
+ let el = document.getElementById("editor");
170
+ const editor = CodeMirror.fromTextArea(el, {
171
+ lineNumbers: true,
172
+ mode: "xml",
173
+ matchBrackets: true
174
+ });
175
+ editor.setSize(null, 620);
176
+ }
177
+ });
178
+
179
+
180
+ })(jQuery, window, document, wf, wp.ajax, wpf_ajax_obj);
admin/partials/woo-feed-add-option.php CHANGED
@@ -1,4 +1,7 @@
1
- <?php $wooFeedDropDown = new Woo_Feed_Dropdown(); ?>
 
 
 
2
  <div class="wrap">
3
  <h2><?php esc_html_e( 'Add Option', 'woo-feed' ); ?></h2>
4
 
@@ -10,7 +13,7 @@
10
  <tr>
11
  <td style="width: 130px;max-width: 130px;"><label for="wpfp_option"><b><?php esc_html_e( 'Option Name', 'woo-feed' ); ?> <span class="requiredIn">*</span></b></label></td>
12
  <td>
13
- <select name="wpfp_option" id="wpfp_option" class="selectize generalInput" style="width: 100%;" placeholder="<?php esc_attr_e( 'Search Option Name', 'woo-feed' ); ?>" required><?php $wooFeedDropDown->woo_feed_get_wp_options(); ?></select>
14
  </td>
15
  </tr>
16
  <tr>
1
+ <?php
2
+ use CTXFeed\V5\Common\DropDownOptions;
3
+ $options = DropDownOptions::get_options('',true);
4
+ ?>
5
  <div class="wrap">
6
  <h2><?php esc_html_e( 'Add Option', 'woo-feed' ); ?></h2>
7
 
13
  <tr>
14
  <td style="width: 130px;max-width: 130px;"><label for="wpfp_option"><b><?php esc_html_e( 'Option Name', 'woo-feed' ); ?> <span class="requiredIn">*</span></b></label></td>
15
  <td>
16
+ <select name="wpfp_option" id="wpfp_option" class="selectize generalInput" style="width: 100%;" placeholder="<?php esc_attr_e( 'Search Option Name', 'woo-feed' ); ?>" required><?php echo $options; ?></select>
17
  </td>
18
  </tr>
19
  <tr>
admin/partials/woo-feed-pro-vs-free.php CHANGED
@@ -162,7 +162,7 @@ ob_start(); ?>
162
  <div class="wapk-feed-buy-now-wrapper">
163
  <div class="wapk-feed-buy-now-product-container">
164
  <div class="wapk-feed-buy-now-thumbnail">
165
- <img src="<?php echo WOO_FEED_PRO_ADMIN_URL; ?>images/woo-feed-icon.svg" alt="CTX Feed Pro" />
166
  </div>
167
  <div class="wapk-feed-buy-now-title">
168
  <div class="wapk-feed-buy-now-product-name"><?php esc_attr_e('CTX Feed Pro', 'woo-feed');?></div>
162
  <div class="wapk-feed-buy-now-wrapper">
163
  <div class="wapk-feed-buy-now-product-container">
164
  <div class="wapk-feed-buy-now-thumbnail">
165
+ <img src="<?php echo WOO_FEED_FREE_ADMIN_URL; ?>images/woo-feed-icon.svg" alt="CTX Feed Pro" />
166
  </div>
167
  <div class="wapk-feed-buy-now-title">
168
  <div class="wapk-feed-buy-now-product-name"><?php esc_attr_e('CTX Feed Pro', 'woo-feed');?></div>
includes/action-handler.php CHANGED
@@ -41,46 +41,45 @@ DisplayNotices::init();
41
  if ( ! function_exists( 'woo_feed_get_product_information' ) ) {
42
  function woo_feed_get_product_information() {
43
  check_ajax_referer( 'wpf_feed_nonce' );
44
-
45
  // Check user permission
46
  if ( ! current_user_can( 'manage_woocommerce' ) ) {
47
  Logs::write_debug_log( 'User doesnt have enough permission.' );
48
  wp_send_json_error( esc_html__( 'Unauthorized Action.', 'woo-feed' ) );
49
  wp_die();
50
  }
51
-
52
-
53
  if ( ! isset( $_REQUEST['feed'] ) ) {
54
  Logs::write_debug_log( 'Feed name not submitted.' );
55
  wp_send_json_error( esc_html__( 'Invalid Request.', 'woo-feed' ) );
56
  wp_die();
57
  }
58
-
59
  $feed = sanitize_text_field( wp_unslash( $_REQUEST['feed'] ) );
60
  $limit = isset( $_REQUEST['limit'] ) ? absint( $_REQUEST['limit'] ) : 200;
61
  $config = Factory::get_feed_config( $feed );
62
-
63
  if ( woo_feed_wc_version_check( 3.2 ) ) {
64
-
65
  Logs::delete_log( $config->get_feed_file_name() );
66
  Logs::write_log( $config->get_feed_file_name(), sprintf( 'Getting Data for %s feed.', $feed ) );
67
  Logs::write_log( $config->get_feed_file_name(), 'Generating Feed VIA Ajax...' );
68
- Logs::write_log( $config->get_feed_file_name(), sprintf( 'Getting Data for %s feed.', $feed ) );
69
  Logs::write_log( $config->get_feed_file_name(), sprintf( 'Current Limit is %d.', $limit ) );
70
  Logs::write_log( $config->get_feed_file_name(), 'Feed Config::' . PHP_EOL . print_r( $config->get_config(), true ), 'info' );
71
-
72
  try {
73
  // Hook Before Query Products
74
  do_action( 'before_woo_feed_get_product_information', $config );
75
-
76
  //Get Product Ids
77
  $ids = Factory::get_product_ids( $config );
78
-
79
  // Hook After Query Products
80
  do_action( 'after_woo_feed_get_product_information', $config );
81
-
82
  Logs::write_log( $config->get_feed_file_name(), sprintf( 'Total %d product found', is_array( $ids ) && ! empty( $ids ) ? count( $ids ) : 0 ) );
83
-
84
  if ( is_array( $ids ) && ! empty( $ids ) ) {
85
  if ( count( $ids ) > $limit ) {
86
  rsort( $ids ); // sorting ids in descending order
@@ -88,9 +87,9 @@ if ( ! function_exists( 'woo_feed_get_product_information' ) ) {
88
  } else {
89
  $batches = array( $ids );
90
  }
91
-
92
  Logs::write_log( $config->get_feed_file_name(), sprintf( 'Total %d batches', count( $batches ) ) );
93
-
94
  wp_send_json_success(
95
  array(
96
  'product' => $batches,
@@ -107,13 +106,13 @@ if ( ! function_exists( 'woo_feed_get_product_information' ) ) {
107
  );
108
  }
109
  wp_die();
110
-
111
  } catch ( Exception $e ) {
112
-
113
  $message = 'Error getting Product Ids.' . PHP_EOL . 'Caught Exception :: ' . $e->getMessage();
114
  Logs::write_log( $config->get_feed_file_name(), $message );
115
  Logs::write_fatal_log( $message, $e );
116
-
117
  wp_send_json_error(
118
  array(
119
  'message' => esc_html__( 'Failed to fetch products.', 'woo-feed' ),
@@ -144,7 +143,7 @@ if ( ! function_exists( 'woo_feed_get_product_information' ) ) {
144
  wp_die();
145
  }
146
  }
147
-
148
  add_action( 'wp_ajax_get_product_information', 'woo_feed_get_product_information' );
149
  }
150
 
41
  if ( ! function_exists( 'woo_feed_get_product_information' ) ) {
42
  function woo_feed_get_product_information() {
43
  check_ajax_referer( 'wpf_feed_nonce' );
44
+
45
  // Check user permission
46
  if ( ! current_user_can( 'manage_woocommerce' ) ) {
47
  Logs::write_debug_log( 'User doesnt have enough permission.' );
48
  wp_send_json_error( esc_html__( 'Unauthorized Action.', 'woo-feed' ) );
49
  wp_die();
50
  }
51
+
52
+
53
  if ( ! isset( $_REQUEST['feed'] ) ) {
54
  Logs::write_debug_log( 'Feed name not submitted.' );
55
  wp_send_json_error( esc_html__( 'Invalid Request.', 'woo-feed' ) );
56
  wp_die();
57
  }
58
+
59
  $feed = sanitize_text_field( wp_unslash( $_REQUEST['feed'] ) );
60
  $limit = isset( $_REQUEST['limit'] ) ? absint( $_REQUEST['limit'] ) : 200;
61
  $config = Factory::get_feed_config( $feed );
62
+
63
  if ( woo_feed_wc_version_check( 3.2 ) ) {
64
+
65
  Logs::delete_log( $config->get_feed_file_name() );
66
  Logs::write_log( $config->get_feed_file_name(), sprintf( 'Getting Data for %s feed.', $feed ) );
67
  Logs::write_log( $config->get_feed_file_name(), 'Generating Feed VIA Ajax...' );
 
68
  Logs::write_log( $config->get_feed_file_name(), sprintf( 'Current Limit is %d.', $limit ) );
69
  Logs::write_log( $config->get_feed_file_name(), 'Feed Config::' . PHP_EOL . print_r( $config->get_config(), true ), 'info' );
70
+
71
  try {
72
  // Hook Before Query Products
73
  do_action( 'before_woo_feed_get_product_information', $config );
74
+
75
  //Get Product Ids
76
  $ids = Factory::get_product_ids( $config );
77
+
78
  // Hook After Query Products
79
  do_action( 'after_woo_feed_get_product_information', $config );
80
+
81
  Logs::write_log( $config->get_feed_file_name(), sprintf( 'Total %d product found', is_array( $ids ) && ! empty( $ids ) ? count( $ids ) : 0 ) );
82
+
83
  if ( is_array( $ids ) && ! empty( $ids ) ) {
84
  if ( count( $ids ) > $limit ) {
85
  rsort( $ids ); // sorting ids in descending order
87
  } else {
88
  $batches = array( $ids );
89
  }
90
+
91
  Logs::write_log( $config->get_feed_file_name(), sprintf( 'Total %d batches', count( $batches ) ) );
92
+
93
  wp_send_json_success(
94
  array(
95
  'product' => $batches,
106
  );
107
  }
108
  wp_die();
109
+
110
  } catch ( Exception $e ) {
111
+
112
  $message = 'Error getting Product Ids.' . PHP_EOL . 'Caught Exception :: ' . $e->getMessage();
113
  Logs::write_log( $config->get_feed_file_name(), $message );
114
  Logs::write_fatal_log( $message, $e );
115
+
116
  wp_send_json_error(
117
  array(
118
  'message' => esc_html__( 'Failed to fetch products.', 'woo-feed' ),
143
  wp_die();
144
  }
145
  }
146
+
147
  add_action( 'wp_ajax_get_product_information', 'woo_feed_get_product_information' );
148
  }
149
 
includes/classes/class-woo-feed-constants.php CHANGED
@@ -23,7 +23,7 @@ if( ! class_exists("Woo_Feed_Constants") ) {
23
  * @var string
24
  * @since 3.1.6
25
  */
26
- define( 'WOO_FEED_FREE_VERSION', '4.5.0' );
27
  }
28
 
29
  if ( ! defined( 'WOO_FEED_FREE_PATH' ) ) {
@@ -46,6 +46,8 @@ if( ! class_exists("Woo_Feed_Constants") ) {
46
  define( 'WOO_FEED_FREE_ADMIN_PATH', WOO_FEED_FREE_PATH . 'admin/' );
47
  }
48
 
 
 
49
  if ( ! defined( 'WOO_FEED_FREE_LIBS_PATH' ) ) {
50
  /**
51
  * Admin File Path with trailing slash
@@ -115,4 +117,4 @@ if( ! class_exists("Woo_Feed_Constants") ) {
115
  }
116
  }
117
  }
118
- }
23
  * @var string
24
  * @since 3.1.6
25
  */
26
+ define( 'WOO_FEED_FREE_VERSION', '4.5.2' );
27
  }
28
 
29
  if ( ! defined( 'WOO_FEED_FREE_PATH' ) ) {
46
  define( 'WOO_FEED_FREE_ADMIN_PATH', WOO_FEED_FREE_PATH . 'admin/' );
47
  }
48
 
49
+
50
+
51
  if ( ! defined( 'WOO_FEED_FREE_LIBS_PATH' ) ) {
52
  /**
53
  * Admin File Path with trailing slash
117
  }
118
  }
119
  }
120
+ }
includes/classes/class-woo-feed-merchant.php CHANGED
@@ -391,7 +391,7 @@ class Woo_Feed_Merchant {
391
  'daisycon_work_jobs' => esc_html__( 'Daisycon Advertiser (Work & Jobs)', 'woo-feed' ),
392
  'dooyoo' => esc_html__( 'Dooyoo', 'woo-feed' ),
393
  'ecommerceit' => esc_html__( 'Ecommerce.it', 'woo-feed' ),
394
- 'etsy' => esc_html__( 'Etsy', 'woo-feed' ),
395
  'fruugo' => esc_html__( 'Fruugo', 'woo-feed' ),
396
  'fashionchick' => esc_html__( 'Fashionchick.nl', 'woo-feed' ),
397
  'fruugo.au' => esc_html__( 'Fruugoaustralia.com', 'woo-feed' ),
391
  'daisycon_work_jobs' => esc_html__( 'Daisycon Advertiser (Work & Jobs)', 'woo-feed' ),
392
  'dooyoo' => esc_html__( 'Dooyoo', 'woo-feed' ),
393
  'ecommerceit' => esc_html__( 'Ecommerce.it', 'woo-feed' ),
394
+ // 'etsy' => esc_html__( 'Etsy', 'woo-feed' ),
395
  'fruugo' => esc_html__( 'Fruugo', 'woo-feed' ),
396
  'fashionchick' => esc_html__( 'Fashionchick.nl', 'woo-feed' ),
397
  'fruugo.au' => esc_html__( 'Fruugoaustralia.com', 'woo-feed' ),
includes/helper.php CHANGED
@@ -1713,7 +1713,7 @@ if ( ! function_exists( 'woo_feed_generate_feed' ) ) {
1713
  do_action( 'before_woo_feed_generate_feed', $info );
1714
 
1715
  // Generate Feed Data
1716
- if ( isset( $info['provider'] ) && 'googlereview' === $info['provider'] ) {
1717
  $reviewObj = new Woo_Feed_Review( $info );
1718
  $feedBody = $reviewObj->make_review_xml_feed();
1719
  $string = $feedBody;
@@ -1721,7 +1721,7 @@ if ( ! function_exists( 'woo_feed_generate_feed' ) ) {
1721
  } else {
1722
  $products = new Woo_Generate_Feed( $info['provider'], $info );
1723
  $getString = $products->getProducts();
1724
- if ( 'csv' == $info['feedType'] || 'tsv' == $info['feedType'] || 'xls' == $info['feedType'] ) {
1725
  $csvHead[0] = $getString['header'];
1726
  if ( ! empty( $csvHead ) && ! empty( $getString['body'] ) ) {
1727
  $string = array_merge( $csvHead, $getString['body'] );
@@ -1729,7 +1729,7 @@ if ( ! function_exists( 'woo_feed_generate_feed' ) ) {
1729
  $string = array();
1730
  }
1731
  } else {
1732
- if ( 'json' == $info['feedType'] ) {
1733
  $string = array();
1734
  } else {
1735
  $string = $getString['header'] . $getString['body'] . $getString['footer'];
1713
  do_action( 'before_woo_feed_generate_feed', $info );
1714
 
1715
  // Generate Feed Data
1716
+ if ( 'googlereview' === $info['provider'] ) {
1717
  $reviewObj = new Woo_Feed_Review( $info );
1718
  $feedBody = $reviewObj->make_review_xml_feed();
1719
  $string = $feedBody;
1721
  } else {
1722
  $products = new Woo_Generate_Feed( $info['provider'], $info );
1723
  $getString = $products->getProducts();
1724
+ if ( 'csv' === $info['feedType'] || 'tsv' === $info['feedType'] || 'xls' === $info['feedType'] ) {
1725
  $csvHead[0] = $getString['header'];
1726
  if ( ! empty( $csvHead ) && ! empty( $getString['body'] ) ) {
1727
  $string = array_merge( $csvHead, $getString['body'] );
1729
  $string = array();
1730
  }
1731
  } else {
1732
+ if ( 'json' === $info['feedType'] ) {
1733
  $string = array();
1734
  } else {
1735
  $string = $getString['header'] . $getString['body'] . $getString['footer'];
woo-feed.php CHANGED
@@ -10,7 +10,7 @@
10
  * Plugin Name: CTX Feed
11
  * Plugin URI: https://webappick.com/
12
  * Description: Easily generate woocommerce product feed for any marketing channel like Google Shopping(Merchant), Facebook Remarketing, Bing, eBay & more. Support 100+ Merchants.
13
- * Version: 4.5.1
14
  * Author: WebAppick
15
  * Author URI: https://webappick.com/
16
  * License: GPL v2
@@ -24,8 +24,8 @@
24
  * Requires PHP: 5.6
25
  *
26
  * WC Requirement & Test
27
- * WC requires at least: 3.2
28
- * WC tested up to: 6.2.1
29
  */
30
 
31
  if ( ! defined( 'ABSPATH' ) ) {
@@ -34,13 +34,23 @@ if ( ! defined( 'ABSPATH' ) ) {
34
 
35
 
36
  if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
 
 
 
 
 
 
 
 
 
 
37
  /**
38
- * Plugin Base File
39
  *
40
- * @since 3.1.41
41
- * @var string
42
  */
43
- define( 'WOO_FEED_FREE_FILE', __FILE__ );
44
  }
45
 
46
  require_once __DIR__ . '/includes/classes/class-woo-feed-constants.php';
@@ -53,8 +63,8 @@ Woo_Feed_Constants::defined_constants();
53
  *
54
  * */
55
  require_once __DIR__ . DIRECTORY_SEPARATOR
56
- . 'libs' . DIRECTORY_SEPARATOR
57
- . 'autoload.php';
58
 
59
  /**
60
  * Load V5 Module
@@ -64,10 +74,10 @@ require_once WOO_FEED_FREE_PATH . 'V5/autoload.php';
64
  // Attributes executable file [Manages newly added attributes]
65
  // @TODO Refactor all the attributes to a single file.
66
  require_once __DIR__ . DIRECTORY_SEPARATOR
67
- . 'libs' . DIRECTORY_SEPARATOR
68
- . 'WebAppick' . DIRECTORY_SEPARATOR
69
- . 'Attributes' . DIRECTORY_SEPARATOR
70
- . 'Attributes.php';
71
 
72
  /**
73
  * Load Uses Tracker
@@ -122,10 +132,10 @@ if ( ! function_exists( 'run_woo_feed' ) ) {
122
  add_action( 'plugins_loaded', array( $plugin, 'run' ), PHP_INT_MAX );
123
  add_action( 'admin_notices', 'wooFeed_Admin_Notices' );
124
  //add_action( 'admin_notices', 'woo_feed_black_friday_notice' );
125
- WooFeedWebAppickAPI::getInstance();
126
-
127
- }
128
-
129
  run_woo_feed();
130
  }
131
 
@@ -156,15 +166,15 @@ if ( ! function_exists( 'woo_feed_make_batch_feed' ) ) {
156
  wp_send_json_error( esc_html__( 'Invalid Request.', 'woo-feed' ) );
157
  die();
158
  }
159
-
160
  $feedName = woo_feed_extract_feed_option_name( sanitize_text_field( wp_unslash( $_REQUEST['feed'] ) ) );
161
  $feedInfo = get_option( 'wf_config' . $feedName, false );
162
-
163
  if ( ! $feedInfo ) {
164
  $getFeedConfig = maybe_unserialize( get_option( 'wf_feed_' . $feedName ) );
165
  $feedInfo = $getFeedConfig['feedrules'];
166
  }
167
-
168
  $feedInfo['productIds'] = isset( $_REQUEST['products'] ) ? array_map( 'absint', $_REQUEST['products'] ) : array();
169
  $offset = isset( $_REQUEST['loop'] ) ? absint( $_REQUEST['loop'] ) : 0;
170
  if ( woo_feed_is_debugging_enabled() ) {
@@ -180,17 +190,17 @@ if ( ! function_exists( 'woo_feed_make_batch_feed' ) ) {
180
  woo_feed_log_feed_process( $feedInfo['filename'], $m );
181
  }
182
  }
183
-
184
  if ( 0 === $offset ) {
185
  woo_feed_unlink_tempFiles( $feedInfo, $feedName );
186
  }
187
-
188
  if ( isset($feedInfo['provider']) && 'googlereview' === $feedInfo['provider'] ) {
189
- $feed_data = true;
190
- } else {
191
- $feed_data = woo_feed_generate_batch_data( $feedInfo, $feedName );
192
- }
193
-
194
  if ( $feed_data ) {
195
  woo_feed_log_feed_process( $feedInfo['filename'], sprintf( 'Done Processing Loop %d.', ( $offset + 1 ) ) );
196
  wp_send_json_success(
@@ -231,15 +241,15 @@ if ( ! function_exists( 'woo_feed_save_feed_file' ) ) {
231
  wp_send_json_error( esc_html__( 'Invalid Feed.', 'woo-feed' ) );
232
  die();
233
  }
234
-
235
  $feedName = woo_feed_extract_feed_option_name( sanitize_text_field( wp_unslash( $_REQUEST['feed'] ) ) );
236
  $info = get_option( 'wf_config' . $feedName, false );
237
-
238
  if ( ! $info ) {
239
  $getFeedConfig = maybe_unserialize( get_option( 'wf_feed_' . $feedName ) );
240
  $info = $getFeedConfig['feedrules'];
241
  }
242
-
243
  $feedService = $info['provider'];
244
  $type = $info['feedType'];
245
  woo_feed_log_feed_process( $info['filename'], sprintf( 'Preparing Final Feed (%s) File...', $type ) );
@@ -256,26 +266,26 @@ if ( ! function_exists( 'woo_feed_save_feed_file' ) ) {
256
  if ( ! $feedFooter ) {
257
  woo_feed_log_feed_process( $info['filename'], 'Unable to Get Footer Chunk' );
258
  }
259
-
260
  // make file xml string
261
  if ( isset( $info['provider'] ) && 'googlereview' === $info['provider'] ) {
262
- $reviewObj = new Woo_Feed_Review($info);
263
- $feedBody = $reviewObj->make_review_xml_feed();
264
- $string = $feedBody;
265
-
266
  } elseif ( 'csv' === $type || 'tsv' === $type || 'xls' === $type ) {
267
- $csvHead[0] = $feedHeader;
268
- if ( ! empty( $csvHead ) && ! empty( $feedBody ) ) {
269
- $string = array_merge( $csvHead, $feedBody );
270
- } else {
271
- $string = array();
272
- }
273
- } elseif ( 'json' === $type ) {
274
- $string = $feedBody;
275
- } else {
276
- $string = $feedHeader . $feedBody . $feedFooter;
277
- }
278
-
279
  $upload_dir = wp_get_upload_dir();
280
  $path = $upload_dir['basedir'] . '/woo-feed/' . $feedService . '/' . $type;
281
  $saveFile = false;
@@ -318,7 +328,7 @@ if ( ! function_exists( 'woo_feed_save_feed_file' ) ) {
318
  wp_send_json_error( $data );
319
  wp_die();
320
  }
321
-
322
  $feed_URL = woo_feed_get_file_url( $feedName, $feedService, $type );
323
  // Save Info into database.
324
  $feedInfo = array(
@@ -332,21 +342,21 @@ if ( ! function_exists( 'woo_feed_save_feed_file' ) ) {
332
  } else {
333
  $feedInfo['status'] = 1;
334
  }
335
-
336
  woo_feed_unlink_tempFiles( $info, $feedName );
337
-
338
  woo_feed_log_feed_process( $info['filename'], 'Updating Feed Information.' );
339
-
340
  update_option( 'wf_feed_' . $feedName, serialize( $feedInfo ), false ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize
341
-
342
  if ( $saveFile ) {
343
  // FTP File Upload Info
344
  $ftpEnabled = sanitize_text_field( $info['ftpenabled'] );
345
-
346
  if ( $ftpEnabled ) {
347
  woo_feed_handle_file_transfer( $file, $feedName . '.' . $type, $info );
348
  }
349
-
350
  $cat = woo_feed_check_google_category( $feedInfo );
351
  $data = array(
352
  'info' => $feedInfo,
@@ -380,7 +390,7 @@ if ( ! function_exists( 'woo_feed_generate_batch_data' ) ) {
380
  function woo_feed_generate_batch_data( $info, $feedSlug ) {
381
  // parse rules.
382
  $info = woo_feed_parse_feed_rules( isset( $info['feedrules'] ) ? $info['feedrules'] : $info );
383
-
384
  try {
385
  do_action( 'before_woo_feed_generate_batch_data', $info );
386
  $status = false;
@@ -433,7 +443,7 @@ if ( ! function_exists( 'woo_feed_generate_new_feed' ) ) {
433
  * Generate Feed
434
  */
435
  function woo_feed_generate_new_feed() {
436
-
437
  if ( isset( $_POST['provider'], $_POST['_wpnonce'], $_POST['filename'], $_POST['feedType'] ) ) {
438
  // Verify Nonce.
439
  if ( ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['_wpnonce'] ) ), 'woo_feed_form_nonce' ) ) {
@@ -443,9 +453,9 @@ if ( ! function_exists( 'woo_feed_generate_new_feed' ) ) {
443
  if ( ! woo_feed_check_valid_extension( sanitize_text_field( wp_unslash( $_POST['feedType'] ) ) ) ) {
444
  wp_die( esc_html__( 'Invalid Feed Type!', 'woo-feed' ), 400 );
445
  }
446
-
447
  $fileName = woo_feed_save_feed_config_data( $_POST );
448
-
449
  wp_safe_redirect(
450
  add_query_arg(
451
  array(
@@ -458,7 +468,7 @@ if ( ! function_exists( 'woo_feed_generate_new_feed' ) ) {
458
  );
459
  wp_die();
460
  }
461
-
462
  require WOO_FEED_FREE_ADMIN_PATH . 'partials/woo-feed-admin-display.php';
463
  }
464
  }
@@ -467,23 +477,23 @@ if ( ! function_exists( 'woo_feed_manage_feed' ) ) {
467
  * Manage Feeds
468
  */
469
  function woo_feed_manage_feed() {
470
-
471
  $provider = apply_filters('CTXFEED_filter_securing_input', "POST", @$_POST['provider'], "text");
472
  $feed_id = apply_filters('CTXFEED_filter_securing_input', "POST", @$_POST['feed_id'], "text");
473
  $feed_option_name = apply_filters('CTXFEED_filter_securing_input', "POST", @$_POST['feed_option_name'], "text");
474
  $filename = apply_filters('CTXFEED_filter_securing_input', "POST", @$_POST['filename'], "file_name");
475
  $feedType = apply_filters('CTXFEED_filter_securing_input', "POST", @$_POST['feedType'], "text");
476
-
477
  $getaction = apply_filters('CTXFEED_filter_securing_input', "GET", @$_GET['action'], "text");
478
  $getfeed = apply_filters('CTXFEED_filter_securing_input', "GET", @$_GET['feed'], "text");
479
-
480
  // @TODO use admin_post_ action for form handling.
481
  // Manage action for category mapping.
482
  if ( 'edit-feed' === $getaction ) {
483
  if ( ! defined( 'WOO_FEED_EDIT_CONFIG' ) ) {
484
  define( 'WOO_FEED_EDIT_CONFIG', true );
485
  }
486
-
487
  if ( count( $_POST ) && $provider && $feed_id && $feed_option_name && $filename && $feedType ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
488
  $nonce = isset( $_POST['_wpnonce'] ) && ! empty( $_POST['_wpnonce'] ) ? sanitize_text_field( wp_unslash( $_POST['_wpnonce'] ) ) : '';
489
  if ( ! wp_verify_nonce( $nonce, 'wf_edit_feed' ) ) {
@@ -493,11 +503,11 @@ if ( ! function_exists( 'woo_feed_manage_feed' ) ) {
493
  if ( ! woo_feed_check_valid_extension( wp_unslash( $_POST['feedType'] ) ) ) {
494
  wp_die( esc_html__( 'Invalid Feed Type!', 'woo-feed' ), 400 );
495
  }
496
-
497
  // check if name is changed... save as new, rename feed isn't implemented ... it can be...
498
  // delete old feed save data as new feed.
499
  $feed_option_name = wp_unslash( $feed_option_name ) ;
500
-
501
  // if ( $_POST['filename'] !== $_POST['feed_option_name'] ) {
502
  // $feed_option_name = ( isset( $_POST['filename'] ) && ! empty( $_POST['filename'] ) ) ? sanitize_text_field( $_POST['filename'] ) : null;
503
  // Delete old feed info & file
@@ -623,23 +633,23 @@ if ( ! function_exists( 'feed_merchant_view' ) ) {
623
  }
624
  // Get facebook Categories.
625
  if ( ! function_exists( 'woo_feed_get_facebook_categories' ) ) {
626
- add_action( 'wp_ajax_get_facebook_categories', 'woo_feed_get_facebook_categories' );
627
- /**
628
- * Ajax Response for Facebook Category Dropdown Data
629
- *
630
- * @return void
631
- */
632
- function woo_feed_get_facebook_categories() {
633
- check_ajax_referer( 'wpf_feed_nonce' );
634
- if ( ! current_user_can( 'manage_woocommerce' ) ) {
635
- woo_feed_log_debug_message( 'User doesnt have enough permission.' );
636
- wp_send_json_error( esc_html__( 'Unauthorized Action.', 'woo-feed' ) );
637
- wp_die();
638
- }
639
- $wooFeedDropDown = new Woo_Feed_Dropdown();
640
- wp_send_json_success( $wooFeedDropDown->facebookTaxonomyArray() );
641
- die();
642
- }
643
  }
644
  // Get Google Categories.
645
  if ( ! function_exists( 'woo_feed_get_google_categories' ) ) {
@@ -702,12 +712,12 @@ if ( ! function_exists( 'woo_feed_update_feed_status' ) ) {
702
  wp_send_json_error( esc_html__( 'Unauthorized Action.', 'woo-feed' ) );
703
  wp_die();
704
  }
705
-
706
  $feedName = isset( $_POST['feedName'] ) ? sanitize_text_field( wp_unslash( $_POST['feedName'] ) ) : '';
707
  if ( ! empty( $feedName ) ) {
708
  $feedInfo = maybe_unserialize( get_option( $feedName ) );
709
  $feedInfo['status'] = isset( $_POST['status'] ) && 1 === (int) $_POST['status'] ? 1 : 0;
710
-
711
  $feed_slug = str_replace( 'wf_feed_', 'wf_config', $feedName );
712
  if ( 1 === $feedInfo['status'] ) {
713
  if ( ! wp_next_scheduled( 'woo_feed_update_single_feed', array( $feed_slug ) ) ) {
@@ -716,7 +726,7 @@ if ( ! function_exists( 'woo_feed_update_feed_status' ) ) {
716
  } else {
717
  wp_clear_scheduled_hook( 'woo_feed_update_single_feed', array( $feed_slug ) );
718
  }
719
-
720
  update_option( $feedName, serialize( $feedInfo ), false ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize
721
  wp_send_json_success( array( 'status' => true ) );
722
  } else {
@@ -748,7 +758,7 @@ if ( ! function_exists( 'woo_feed_config_feed' ) ) {
748
  function woo_feed_config_feed() {
749
  if ( isset( $_POST['wa_woo_feed_config'], $_POST['_wpnonce'] ) ) {
750
  check_admin_referer( 'woo-feed-config' );
751
-
752
  $data = array(
753
  'per_batch' => isset( $_POST['batch_limit'] ) ? absint( $_POST['batch_limit'] ) : '',
754
  'product_query_type' => isset( $_POST['product_query_type'] ) ? sanitize_text_field( wp_unslash( $_POST['product_query_type'] ) ) : '',
@@ -760,20 +770,20 @@ if ( ! function_exists( 'woo_feed_config_feed' ) ) {
760
  'disable_brand' => isset( $_POST['disable_brand'] ) ? sanitize_text_field( wp_unslash( $_POST['disable_brand'] ) ) : '',
761
  'disable_pixel' => isset( $_POST['disable_pixel'] ) ? sanitize_text_field( wp_unslash( $_POST['disable_pixel'] )) : '',
762
  'pixel_id' => isset( $_POST['pixel_id'] ) ? sanitize_text_field( wp_unslash( $_POST['pixel_id'] )) : '',
763
- 'disable_remarketing' => isset( $_POST['disable_remarketing'] ) ? sanitize_text_field( wp_unslash( $_POST['disable_remarketing'] )) : '',
764
- 'remarketing_id' => isset( $_POST['remarketing_id'] ) ? sanitize_text_field( wp_unslash( $_POST['remarketing_id'] )) : '',
765
- 'remarketing_label' => isset( $_POST['remarketing_label'] ) ? sanitize_text_field( wp_unslash( $_POST['remarketing_label'] )) : '',
766
- 'allow_all_shipping' => isset( $_POST['allow_all_shipping'] ) ? sanitize_text_field( wp_unslash( $_POST['allow_all_shipping'] ) ) : '',
767
  'only_free_shipping' => isset( $_POST['only_free_shipping'] ) ? sanitize_text_field( wp_unslash( $_POST['only_free_shipping'] ) ) : '',
768
  'only_local_pickup_shipping' => isset( $_POST['only_local_pickup_shipping'] ) ? sanitize_text_field( wp_unslash( $_POST['only_local_pickup_shipping'] ) ) : '',
769
  'enable_ftp_upload' => isset( $_POST['enable_ftp_upload'] ) ? sanitize_text_field( wp_unslash( $_POST['enable_ftp_upload'] ) ) : '',
770
  );
771
-
772
  woo_feed_save_options( $data );
773
-
774
  // $currencyAPI = isset( $_POST['currency_api_code'] ) ? sanitize_text_field( $_POST['currency_api_code'] ) : '';
775
  // update_option( 'woo_feed_currency_api_code', $currencyAPI, false );
776
-
777
  if ( isset( $_POST['opt_in'] ) && 'on' === $_POST['opt_in'] ) {
778
  WooFeedWebAppickAPI::getInstance()->trackerOptIn();
779
  } else {
@@ -786,11 +796,11 @@ if ( ! function_exists( 'woo_feed_config_feed' ) ) {
786
  if ( isset( $_POST['purge_feed_cache'] ) ) {
787
  woo_feed_flush_cache_data();
788
  }
789
-
790
  wp_safe_redirect( admin_url( 'admin.php?page=webappick-feed-settings&settings_updated=1' ) );
791
  die();
792
  }
793
-
794
  require WOO_FEED_FREE_ADMIN_PATH . 'partials/woo-feed-settings.php';
795
  }
796
  }
@@ -806,64 +816,64 @@ if ( ! function_exists( 'woo_feed_flash_cache_action' ) ) {
806
  }
807
 
808
  if ( ! class_exists( 'webappick_suggest_plugin' ) ) {
809
- class webappick_suggest_plugin {
810
-
811
- static function init() {
812
- if ( is_admin() ) {
813
- if ( ! is_plugin_active('xt-woo-variation-swatches/xt-woo-variation-swatches.php') ) {
814
- add_filter( 'install_plugins_table_api_args_featured', array( __CLASS__, 'featured_plugins_tab' ) );
815
- }
816
- }
817
- } // init
818
- // add our plugins to recommended list
819
- static function plugins_api_result( $res, $action, $args ) {
820
- remove_filter( 'plugins_api_result', array( __CLASS__, 'plugins_api_result' ), 10, 1 );
821
- $res = self::add_plugin_favs( 'webappick-pdf-invoice-for-woocommerce', $res );
822
-
823
- return $res;
824
- } // plugins_api_result
825
- // helper function for adding plugins to fav list
826
- static function featured_plugins_tab( $args ) {
827
- add_filter( 'plugins_api_result', array( __CLASS__, 'plugins_api_result' ), 10, 3 );
828
- return $args;
829
- } // featured_plugins_tab
830
- // add single plugin to list of favs
831
- static function add_plugin_favs( $plugin_slug, $res ) {
832
- if ( ! empty( $res->plugins ) && is_array( $res->plugins ) ) {
833
- foreach ( $res->plugins as $plugin ) {
834
- if ( is_object( $plugin ) && ! empty( $plugin->slug ) && $plugin->slug === $plugin_slug ) {
835
- return $res;
836
- }
837
- } // foreach
838
- }
839
- $plugin_info = get_transient( 'wf-plugin-info-' . $plugin_slug );
840
- if ( $plugin_info ) {
841
- array_unshift( $res->plugins, $plugin_info );
842
- } else {
843
- $plugin_info = plugins_api(
844
- 'plugin_information',
845
- array(
846
- 'slug' => $plugin_slug,
847
- 'is_ssl' => is_ssl(),
848
- 'fields' => array(
849
- 'banners' => true,
850
- 'reviews' => true,
851
- 'downloaded' => true,
852
- 'active_installs' => true,
853
- 'icons' => true,
854
- 'short_description' => true,
855
- ),
856
- )
857
- );
858
- if ( ! is_wp_error( $plugin_info ) ) {
859
- $res->plugins[] = $plugin_info;
860
- set_transient( 'wf-plugin-info-' . $plugin_slug, $plugin_info, DAY_IN_SECONDS * 7 );
861
- }
862
- }
863
- return $res;
864
- } // add_plugin_favs
865
- }
866
- add_action( 'init', array( 'webappick_suggest_plugin', 'init' ) );
867
  }
868
  // Suggest other plugins of webappick.
869
 
10
  * Plugin Name: CTX Feed
11
  * Plugin URI: https://webappick.com/
12
  * Description: Easily generate woocommerce product feed for any marketing channel like Google Shopping(Merchant), Facebook Remarketing, Bing, eBay & more. Support 100+ Merchants.
13
+ * Version: 4.5.2
14
  * Author: WebAppick
15
  * Author URI: https://webappick.com/
16
  * License: GPL v2
24
  * Requires PHP: 5.6
25
  *
26
  * WC Requirement & Test
27
+ * WC requires at least: 3.3
28
+ * WC tested up to: 6.9.1
29
  */
30
 
31
  if ( ! defined( 'ABSPATH' ) ) {
34
 
35
 
36
  if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
37
+ /**
38
+ * Plugin Base File
39
+ *
40
+ * @since 3.1.41
41
+ * @var string
42
+ */
43
+ define( 'WOO_FEED_FREE_FILE', __FILE__ );
44
+ }
45
+
46
+ if ( ! defined( 'WOO_FEED_FREE_ADMIN_URL' ) ) {
47
  /**
48
+ * Admin File url
49
  *
50
+ * @since 4.2.0
51
+ * @var string
52
  */
53
+ define( 'WOO_FEED_FREE_ADMIN_URL', plugin_dir_url( __FILE__ ) . 'admin/' );
54
  }
55
 
56
  require_once __DIR__ . '/includes/classes/class-woo-feed-constants.php';
63
  *
64
  * */
65
  require_once __DIR__ . DIRECTORY_SEPARATOR
66
+ . 'libs' . DIRECTORY_SEPARATOR
67
+ . 'autoload.php';
68
 
69
  /**
70
  * Load V5 Module
74
  // Attributes executable file [Manages newly added attributes]
75
  // @TODO Refactor all the attributes to a single file.
76
  require_once __DIR__ . DIRECTORY_SEPARATOR
77
+ . 'libs' . DIRECTORY_SEPARATOR
78
+ . 'WebAppick' . DIRECTORY_SEPARATOR
79
+ . 'Attributes' . DIRECTORY_SEPARATOR
80
+ . 'Attributes.php';
81
 
82
  /**
83
  * Load Uses Tracker
132
  add_action( 'plugins_loaded', array( $plugin, 'run' ), PHP_INT_MAX );
133
  add_action( 'admin_notices', 'wooFeed_Admin_Notices' );
134
  //add_action( 'admin_notices', 'woo_feed_black_friday_notice' );
135
+ WooFeedWebAppickAPI::getInstance();
136
+
137
+ }
138
+
139
  run_woo_feed();
140
  }
141
 
166
  wp_send_json_error( esc_html__( 'Invalid Request.', 'woo-feed' ) );
167
  die();
168
  }
169
+
170
  $feedName = woo_feed_extract_feed_option_name( sanitize_text_field( wp_unslash( $_REQUEST['feed'] ) ) );
171
  $feedInfo = get_option( 'wf_config' . $feedName, false );
172
+
173
  if ( ! $feedInfo ) {
174
  $getFeedConfig = maybe_unserialize( get_option( 'wf_feed_' . $feedName ) );
175
  $feedInfo = $getFeedConfig['feedrules'];
176
  }
177
+
178
  $feedInfo['productIds'] = isset( $_REQUEST['products'] ) ? array_map( 'absint', $_REQUEST['products'] ) : array();
179
  $offset = isset( $_REQUEST['loop'] ) ? absint( $_REQUEST['loop'] ) : 0;
180
  if ( woo_feed_is_debugging_enabled() ) {
190
  woo_feed_log_feed_process( $feedInfo['filename'], $m );
191
  }
192
  }
193
+
194
  if ( 0 === $offset ) {
195
  woo_feed_unlink_tempFiles( $feedInfo, $feedName );
196
  }
197
+
198
  if ( isset($feedInfo['provider']) && 'googlereview' === $feedInfo['provider'] ) {
199
+ $feed_data = true;
200
+ } else {
201
+ $feed_data = woo_feed_generate_batch_data( $feedInfo, $feedName );
202
+ }
203
+
204
  if ( $feed_data ) {
205
  woo_feed_log_feed_process( $feedInfo['filename'], sprintf( 'Done Processing Loop %d.', ( $offset + 1 ) ) );
206
  wp_send_json_success(
241
  wp_send_json_error( esc_html__( 'Invalid Feed.', 'woo-feed' ) );
242
  die();
243
  }
244
+
245
  $feedName = woo_feed_extract_feed_option_name( sanitize_text_field( wp_unslash( $_REQUEST['feed'] ) ) );
246
  $info = get_option( 'wf_config' . $feedName, false );
247
+
248
  if ( ! $info ) {
249
  $getFeedConfig = maybe_unserialize( get_option( 'wf_feed_' . $feedName ) );
250
  $info = $getFeedConfig['feedrules'];
251
  }
252
+
253
  $feedService = $info['provider'];
254
  $type = $info['feedType'];
255
  woo_feed_log_feed_process( $info['filename'], sprintf( 'Preparing Final Feed (%s) File...', $type ) );
266
  if ( ! $feedFooter ) {
267
  woo_feed_log_feed_process( $info['filename'], 'Unable to Get Footer Chunk' );
268
  }
269
+
270
  // make file xml string
271
  if ( isset( $info['provider'] ) && 'googlereview' === $info['provider'] ) {
272
+ $reviewObj = new Woo_Feed_Review($info);
273
+ $feedBody = $reviewObj->make_review_xml_feed();
274
+ $string = $feedBody;
275
+
276
  } elseif ( 'csv' === $type || 'tsv' === $type || 'xls' === $type ) {
277
+ $csvHead[0] = $feedHeader;
278
+ if ( ! empty( $csvHead ) && ! empty( $feedBody ) ) {
279
+ $string = array_merge( $csvHead, $feedBody );
280
+ } else {
281
+ $string = array();
282
+ }
283
+ } elseif ( 'json' === $type ) {
284
+ $string = $feedBody;
285
+ } else {
286
+ $string = $feedHeader . $feedBody . $feedFooter;
287
+ }
288
+
289
  $upload_dir = wp_get_upload_dir();
290
  $path = $upload_dir['basedir'] . '/woo-feed/' . $feedService . '/' . $type;
291
  $saveFile = false;
328
  wp_send_json_error( $data );
329
  wp_die();
330
  }
331
+
332
  $feed_URL = woo_feed_get_file_url( $feedName, $feedService, $type );
333
  // Save Info into database.
334
  $feedInfo = array(
342
  } else {
343
  $feedInfo['status'] = 1;
344
  }
345
+
346
  woo_feed_unlink_tempFiles( $info, $feedName );
347
+
348
  woo_feed_log_feed_process( $info['filename'], 'Updating Feed Information.' );
349
+
350
  update_option( 'wf_feed_' . $feedName, serialize( $feedInfo ), false ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize
351
+
352
  if ( $saveFile ) {
353
  // FTP File Upload Info
354
  $ftpEnabled = sanitize_text_field( $info['ftpenabled'] );
355
+
356
  if ( $ftpEnabled ) {
357
  woo_feed_handle_file_transfer( $file, $feedName . '.' . $type, $info );
358
  }
359
+
360
  $cat = woo_feed_check_google_category( $feedInfo );
361
  $data = array(
362
  'info' => $feedInfo,
390
  function woo_feed_generate_batch_data( $info, $feedSlug ) {
391
  // parse rules.
392
  $info = woo_feed_parse_feed_rules( isset( $info['feedrules'] ) ? $info['feedrules'] : $info );
393
+
394
  try {
395
  do_action( 'before_woo_feed_generate_batch_data', $info );
396
  $status = false;
443
  * Generate Feed
444
  */
445
  function woo_feed_generate_new_feed() {
446
+
447
  if ( isset( $_POST['provider'], $_POST['_wpnonce'], $_POST['filename'], $_POST['feedType'] ) ) {
448
  // Verify Nonce.
449
  if ( ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['_wpnonce'] ) ), 'woo_feed_form_nonce' ) ) {
453
  if ( ! woo_feed_check_valid_extension( sanitize_text_field( wp_unslash( $_POST['feedType'] ) ) ) ) {
454
  wp_die( esc_html__( 'Invalid Feed Type!', 'woo-feed' ), 400 );
455
  }
456
+
457
  $fileName = woo_feed_save_feed_config_data( $_POST );
458
+
459
  wp_safe_redirect(
460
  add_query_arg(
461
  array(
468
  );
469
  wp_die();
470
  }
471
+
472
  require WOO_FEED_FREE_ADMIN_PATH . 'partials/woo-feed-admin-display.php';
473
  }
474
  }
477
  * Manage Feeds
478
  */
479
  function woo_feed_manage_feed() {
480
+
481
  $provider = apply_filters('CTXFEED_filter_securing_input', "POST", @$_POST['provider'], "text");
482
  $feed_id = apply_filters('CTXFEED_filter_securing_input', "POST", @$_POST['feed_id'], "text");
483
  $feed_option_name = apply_filters('CTXFEED_filter_securing_input', "POST", @$_POST['feed_option_name'], "text");
484
  $filename = apply_filters('CTXFEED_filter_securing_input', "POST", @$_POST['filename'], "file_name");
485
  $feedType = apply_filters('CTXFEED_filter_securing_input', "POST", @$_POST['feedType'], "text");
486
+
487
  $getaction = apply_filters('CTXFEED_filter_securing_input', "GET", @$_GET['action'], "text");
488
  $getfeed = apply_filters('CTXFEED_filter_securing_input', "GET", @$_GET['feed'], "text");
489
+
490
  // @TODO use admin_post_ action for form handling.
491
  // Manage action for category mapping.
492
  if ( 'edit-feed' === $getaction ) {
493
  if ( ! defined( 'WOO_FEED_EDIT_CONFIG' ) ) {
494
  define( 'WOO_FEED_EDIT_CONFIG', true );
495
  }
496
+
497
  if ( count( $_POST ) && $provider && $feed_id && $feed_option_name && $filename && $feedType ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
498
  $nonce = isset( $_POST['_wpnonce'] ) && ! empty( $_POST['_wpnonce'] ) ? sanitize_text_field( wp_unslash( $_POST['_wpnonce'] ) ) : '';
499
  if ( ! wp_verify_nonce( $nonce, 'wf_edit_feed' ) ) {
503
  if ( ! woo_feed_check_valid_extension( wp_unslash( $_POST['feedType'] ) ) ) {
504
  wp_die( esc_html__( 'Invalid Feed Type!', 'woo-feed' ), 400 );
505
  }
506
+
507
  // check if name is changed... save as new, rename feed isn't implemented ... it can be...
508
  // delete old feed save data as new feed.
509
  $feed_option_name = wp_unslash( $feed_option_name ) ;
510
+
511
  // if ( $_POST['filename'] !== $_POST['feed_option_name'] ) {
512
  // $feed_option_name = ( isset( $_POST['filename'] ) && ! empty( $_POST['filename'] ) ) ? sanitize_text_field( $_POST['filename'] ) : null;
513
  // Delete old feed info & file
633
  }
634
  // Get facebook Categories.
635
  if ( ! function_exists( 'woo_feed_get_facebook_categories' ) ) {
636
+ add_action( 'wp_ajax_get_facebook_categories', 'woo_feed_get_facebook_categories' );
637
+ /**
638
+ * Ajax Response for Facebook Category Dropdown Data
639
+ *
640
+ * @return void
641
+ */
642
+ function woo_feed_get_facebook_categories() {
643
+ check_ajax_referer( 'wpf_feed_nonce' );
644
+ if ( ! current_user_can( 'manage_woocommerce' ) ) {
645
+ woo_feed_log_debug_message( 'User doesnt have enough permission.' );
646
+ wp_send_json_error( esc_html__( 'Unauthorized Action.', 'woo-feed' ) );
647
+ wp_die();
648
+ }
649
+ $wooFeedDropDown = new Woo_Feed_Dropdown();
650
+ wp_send_json_success( $wooFeedDropDown->facebookTaxonomyArray() );
651
+ die();
652
+ }
653
  }
654
  // Get Google Categories.
655
  if ( ! function_exists( 'woo_feed_get_google_categories' ) ) {
712
  wp_send_json_error( esc_html__( 'Unauthorized Action.', 'woo-feed' ) );
713
  wp_die();
714
  }
715
+
716
  $feedName = isset( $_POST['feedName'] ) ? sanitize_text_field( wp_unslash( $_POST['feedName'] ) ) : '';
717
  if ( ! empty( $feedName ) ) {
718
  $feedInfo = maybe_unserialize( get_option( $feedName ) );
719
  $feedInfo['status'] = isset( $_POST['status'] ) && 1 === (int) $_POST['status'] ? 1 : 0;
720
+
721
  $feed_slug = str_replace( 'wf_feed_', 'wf_config', $feedName );
722
  if ( 1 === $feedInfo['status'] ) {
723
  if ( ! wp_next_scheduled( 'woo_feed_update_single_feed', array( $feed_slug ) ) ) {
726
  } else {
727
  wp_clear_scheduled_hook( 'woo_feed_update_single_feed', array( $feed_slug ) );
728
  }
729
+
730
  update_option( $feedName, serialize( $feedInfo ), false ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize
731
  wp_send_json_success( array( 'status' => true ) );
732
  } else {
758
  function woo_feed_config_feed() {
759
  if ( isset( $_POST['wa_woo_feed_config'], $_POST['_wpnonce'] ) ) {
760
  check_admin_referer( 'woo-feed-config' );
761
+
762
  $data = array(
763
  'per_batch' => isset( $_POST['batch_limit'] ) ? absint( $_POST['batch_limit'] ) : '',
764
  'product_query_type' => isset( $_POST['product_query_type'] ) ? sanitize_text_field( wp_unslash( $_POST['product_query_type'] ) ) : '',
770
  'disable_brand' => isset( $_POST['disable_brand'] ) ? sanitize_text_field( wp_unslash( $_POST['disable_brand'] ) ) : '',
771
  'disable_pixel' => isset( $_POST['disable_pixel'] ) ? sanitize_text_field( wp_unslash( $_POST['disable_pixel'] )) : '',
772
  'pixel_id' => isset( $_POST['pixel_id'] ) ? sanitize_text_field( wp_unslash( $_POST['pixel_id'] )) : '',
773
+ 'disable_remarketing' => isset( $_POST['disable_remarketing'] ) ? sanitize_text_field( wp_unslash( $_POST['disable_remarketing'] )) : '',
774
+ 'remarketing_id' => isset( $_POST['remarketing_id'] ) ? sanitize_text_field( wp_unslash( $_POST['remarketing_id'] )) : '',
775
+ 'remarketing_label' => isset( $_POST['remarketing_label'] ) ? sanitize_text_field( wp_unslash( $_POST['remarketing_label'] )) : '',
776
+ 'allow_all_shipping' => isset( $_POST['allow_all_shipping'] ) ? sanitize_text_field( wp_unslash( $_POST['allow_all_shipping'] ) ) : '',
777
  'only_free_shipping' => isset( $_POST['only_free_shipping'] ) ? sanitize_text_field( wp_unslash( $_POST['only_free_shipping'] ) ) : '',
778
  'only_local_pickup_shipping' => isset( $_POST['only_local_pickup_shipping'] ) ? sanitize_text_field( wp_unslash( $_POST['only_local_pickup_shipping'] ) ) : '',
779
  'enable_ftp_upload' => isset( $_POST['enable_ftp_upload'] ) ? sanitize_text_field( wp_unslash( $_POST['enable_ftp_upload'] ) ) : '',
780
  );
781
+
782
  woo_feed_save_options( $data );
783
+
784
  // $currencyAPI = isset( $_POST['currency_api_code'] ) ? sanitize_text_field( $_POST['currency_api_code'] ) : '';
785
  // update_option( 'woo_feed_currency_api_code', $currencyAPI, false );
786
+
787
  if ( isset( $_POST['opt_in'] ) && 'on' === $_POST['opt_in'] ) {
788
  WooFeedWebAppickAPI::getInstance()->trackerOptIn();
789
  } else {
796
  if ( isset( $_POST['purge_feed_cache'] ) ) {
797
  woo_feed_flush_cache_data();
798
  }
799
+
800
  wp_safe_redirect( admin_url( 'admin.php?page=webappick-feed-settings&settings_updated=1' ) );
801
  die();
802
  }
803
+
804
  require WOO_FEED_FREE_ADMIN_PATH . 'partials/woo-feed-settings.php';
805
  }
806
  }
816
  }
817
 
818
  if ( ! class_exists( 'webappick_suggest_plugin' ) ) {
819
+ class webappick_suggest_plugin {
820
+
821
+ static function init() {
822
+ if ( is_admin() ) {
823
+ if ( ! is_plugin_active('xt-woo-variation-swatches/xt-woo-variation-swatches.php') ) {
824
+ add_filter( 'install_plugins_table_api_args_featured', array( __CLASS__, 'featured_plugins_tab' ) );
825
+ }
826
+ }
827
+ } // init
828
+ // add our plugins to recommended list
829
+ static function plugins_api_result( $res, $action, $args ) {
830
+ remove_filter( 'plugins_api_result', array( __CLASS__, 'plugins_api_result' ), 10, 1 );
831
+ $res = self::add_plugin_favs( 'webappick-pdf-invoice-for-woocommerce', $res );
832
+
833
+ return $res;
834
+ } // plugins_api_result
835
+ // helper function for adding plugins to fav list
836
+ static function featured_plugins_tab( $args ) {
837
+ add_filter( 'plugins_api_result', array( __CLASS__, 'plugins_api_result' ), 10, 3 );
838
+ return $args;
839
+ } // featured_plugins_tab
840
+ // add single plugin to list of favs
841
+ static function add_plugin_favs( $plugin_slug, $res ) {
842
+ if ( ! empty( $res->plugins ) && is_array( $res->plugins ) ) {
843
+ foreach ( $res->plugins as $plugin ) {
844
+ if ( is_object( $plugin ) && ! empty( $plugin->slug ) && $plugin->slug === $plugin_slug ) {
845
+ return $res;
846
+ }
847
+ } // foreach
848
+ }
849
+ $plugin_info = get_transient( 'wf-plugin-info-' . $plugin_slug );
850
+ if ( $plugin_info ) {
851
+ array_unshift( $res->plugins, $plugin_info );
852
+ } else {
853
+ $plugin_info = plugins_api(
854
+ 'plugin_information',
855
+ array(
856
+ 'slug' => $plugin_slug,
857
+ 'is_ssl' => is_ssl(),
858
+ 'fields' => array(
859
+ 'banners' => true,
860
+ 'reviews' => true,
861
+ 'downloaded' => true,
862
+ 'active_installs' => true,
863
+ 'icons' => true,
864
+ 'short_description' => true,
865
+ ),
866
+ )
867
+ );
868
+ if ( ! is_wp_error( $plugin_info ) ) {
869
+ $res->plugins[] = $plugin_info;
870
+ set_transient( 'wf-plugin-info-' . $plugin_slug, $plugin_info, DAY_IN_SECONDS * 7 );
871
+ }
872
+ }
873
+ return $res;
874
+ } // add_plugin_favs
875
+ }
876
+ add_action( 'init', array( 'webappick_suggest_plugin', 'init' ) );
877
  }
878
  // Suggest other plugins of webappick.
879