Flexible Shipping for WooCommerce - Version 3.3.3

Version Description

  • 2019-04-04 =
  • Fixed notices in order meta box
  • Fixed changelog entries
Download this release

Release Info

Developer jablonowski
Plugin Icon 128x128 Flexible Shipping for WooCommerce
Version 3.3.3
Comparing to
See all releases

Code changes from version 3.3.2 to 3.3.3

Files changed (132) hide show
  1. classes/shipment/saas/class-shipment-saas-metabox-attachments.php +4 -0
  2. classes/shipment/saas/views/order-metabox-shipment-attachments.php +4 -0
  3. composer.lock +2424 -0
  4. flexible-shipping.php +3 -5
  5. readme.txt +8 -4
  6. vendor/autoload.php +1 -1
  7. vendor/composer/autoload_classmap.php +0 -97
  8. vendor/composer/autoload_psr4.php +0 -1
  9. vendor/composer/autoload_real.php +7 -7
  10. vendor/composer/autoload_static.php +4 -109
  11. vendor/composer/installed.json +0 -172
  12. vendor/composer/installers/LICENSE +0 -19
  13. vendor/composer/installers/composer.json +0 -105
  14. vendor/composer/installers/src/Composer/Installers/AglInstaller.php +0 -21
  15. vendor/composer/installers/src/Composer/Installers/AimeosInstaller.php +0 -9
  16. vendor/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php +0 -11
  17. vendor/composer/installers/src/Composer/Installers/AsgardInstaller.php +0 -49
  18. vendor/composer/installers/src/Composer/Installers/AttogramInstaller.php +0 -9
  19. vendor/composer/installers/src/Composer/Installers/BaseInstaller.php +0 -136
  20. vendor/composer/installers/src/Composer/Installers/BitrixInstaller.php +0 -126
  21. vendor/composer/installers/src/Composer/Installers/BonefishInstaller.php +0 -9
  22. vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php +0 -82
  23. vendor/composer/installers/src/Composer/Installers/ChefInstaller.php +0 -11
  24. vendor/composer/installers/src/Composer/Installers/CiviCrmInstaller.php +0 -9
  25. vendor/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php +0 -10
  26. vendor/composer/installers/src/Composer/Installers/CockpitInstaller.php +0 -34
  27. vendor/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php +0 -11
  28. vendor/composer/installers/src/Composer/Installers/Concrete5Installer.php +0 -13
  29. vendor/composer/installers/src/Composer/Installers/CraftInstaller.php +0 -35
  30. vendor/composer/installers/src/Composer/Installers/CroogoInstaller.php +0 -21
  31. vendor/composer/installers/src/Composer/Installers/DecibelInstaller.php +0 -10
  32. vendor/composer/installers/src/Composer/Installers/DokuWikiInstaller.php +0 -50
  33. vendor/composer/installers/src/Composer/Installers/DolibarrInstaller.php +0 -16
  34. vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php +0 -16
  35. vendor/composer/installers/src/Composer/Installers/ElggInstaller.php +0 -9
  36. vendor/composer/installers/src/Composer/Installers/EliasisInstaller.php +0 -12
  37. vendor/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php +0 -29
  38. vendor/composer/installers/src/Composer/Installers/EzPlatformInstaller.php +0 -10
  39. vendor/composer/installers/src/Composer/Installers/FuelInstaller.php +0 -11
  40. vendor/composer/installers/src/Composer/Installers/FuelphpInstaller.php +0 -9
  41. vendor/composer/installers/src/Composer/Installers/GravInstaller.php +0 -30
  42. vendor/composer/installers/src/Composer/Installers/HuradInstaller.php +0 -25
  43. vendor/composer/installers/src/Composer/Installers/ImageCMSInstaller.php +0 -11
  44. vendor/composer/installers/src/Composer/Installers/Installer.php +0 -274
  45. vendor/composer/installers/src/Composer/Installers/ItopInstaller.php +0 -9
  46. vendor/composer/installers/src/Composer/Installers/JoomlaInstaller.php +0 -15
  47. vendor/composer/installers/src/Composer/Installers/KanboardInstaller.php +0 -18
  48. vendor/composer/installers/src/Composer/Installers/KirbyInstaller.php +0 -11
  49. vendor/composer/installers/src/Composer/Installers/KodiCMSInstaller.php +0 -10
  50. vendor/composer/installers/src/Composer/Installers/KohanaInstaller.php +0 -9
  51. vendor/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php +0 -27
  52. vendor/composer/installers/src/Composer/Installers/LaravelInstaller.php +0 -9
  53. vendor/composer/installers/src/Composer/Installers/LavaLiteInstaller.php +0 -10
  54. vendor/composer/installers/src/Composer/Installers/LithiumInstaller.php +0 -10
  55. vendor/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php +0 -9
  56. vendor/composer/installers/src/Composer/Installers/MODXEvoInstaller.php +0 -16
  57. vendor/composer/installers/src/Composer/Installers/MagentoInstaller.php +0 -11
  58. vendor/composer/installers/src/Composer/Installers/MajimaInstaller.php +0 -37
  59. vendor/composer/installers/src/Composer/Installers/MakoInstaller.php +0 -9
  60. vendor/composer/installers/src/Composer/Installers/MauticInstaller.php +0 -25
  61. vendor/composer/installers/src/Composer/Installers/MayaInstaller.php +0 -33
  62. vendor/composer/installers/src/Composer/Installers/MediaWikiInstaller.php +0 -51
  63. vendor/composer/installers/src/Composer/Installers/MicroweberInstaller.php +0 -111
  64. vendor/composer/installers/src/Composer/Installers/ModxInstaller.php +0 -12
  65. vendor/composer/installers/src/Composer/Installers/MoodleInstaller.php +0 -57
  66. vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php +0 -47
  67. vendor/composer/installers/src/Composer/Installers/OntoWikiInstaller.php +0 -24
  68. vendor/composer/installers/src/Composer/Installers/OsclassInstaller.php +0 -14
  69. vendor/composer/installers/src/Composer/Installers/OxidInstaller.php +0 -59
  70. vendor/composer/installers/src/Composer/Installers/PPIInstaller.php +0 -9
  71. vendor/composer/installers/src/Composer/Installers/PhiftyInstaller.php +0 -11
  72. vendor/composer/installers/src/Composer/Installers/PhpBBInstaller.php +0 -11
  73. vendor/composer/installers/src/Composer/Installers/PimcoreInstaller.php +0 -21
  74. vendor/composer/installers/src/Composer/Installers/PiwikInstaller.php +0 -32
  75. vendor/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php +0 -29
  76. vendor/composer/installers/src/Composer/Installers/Plugin.php +0 -17
  77. vendor/composer/installers/src/Composer/Installers/PortoInstaller.php +0 -9
  78. vendor/composer/installers/src/Composer/Installers/PrestashopInstaller.php +0 -10
  79. vendor/composer/installers/src/Composer/Installers/PuppetInstaller.php +0 -11
  80. vendor/composer/installers/src/Composer/Installers/PxcmsInstaller.php +0 -63
  81. vendor/composer/installers/src/Composer/Installers/RadPHPInstaller.php +0 -24
  82. vendor/composer/installers/src/Composer/Installers/ReIndexInstaller.php +0 -10
  83. vendor/composer/installers/src/Composer/Installers/RedaxoInstaller.php +0 -10
  84. vendor/composer/installers/src/Composer/Installers/RoundcubeInstaller.php +0 -22
  85. vendor/composer/installers/src/Composer/Installers/SMFInstaller.php +0 -10
  86. vendor/composer/installers/src/Composer/Installers/ShopwareInstaller.php +0 -60
  87. vendor/composer/installers/src/Composer/Installers/SilverStripeInstaller.php +0 -35
  88. vendor/composer/installers/src/Composer/Installers/SiteDirectInstaller.php +0 -25
  89. vendor/composer/installers/src/Composer/Installers/SyDESInstaller.php +0 -49
  90. vendor/composer/installers/src/Composer/Installers/Symfony1Installer.php +0 -26
  91. vendor/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php +0 -16
  92. vendor/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php +0 -38
  93. vendor/composer/installers/src/Composer/Installers/TheliaInstaller.php +0 -12
  94. vendor/composer/installers/src/Composer/Installers/TuskInstaller.php +0 -14
  95. vendor/composer/installers/src/Composer/Installers/UserFrostingInstaller.php +0 -9
  96. vendor/composer/installers/src/Composer/Installers/VanillaInstaller.php +0 -10
  97. vendor/composer/installers/src/Composer/Installers/VgmcpInstaller.php +0 -49
  98. vendor/composer/installers/src/Composer/Installers/WHMCSInstaller.php +0 -10
  99. vendor/composer/installers/src/Composer/Installers/WolfCMSInstaller.php +0 -9
  100. vendor/composer/installers/src/Composer/Installers/WordPressInstaller.php +0 -12
  101. vendor/composer/installers/src/Composer/Installers/YawikInstaller.php +0 -32
  102. vendor/composer/installers/src/Composer/Installers/ZendInstaller.php +0 -11
  103. vendor/composer/installers/src/Composer/Installers/ZikulaInstaller.php +0 -10
  104. vendor/composer/installers/src/bootstrap.php +0 -13
  105. vendor/wpdesk/wp-settings/.editorconfig +0 -29
  106. vendor/wpdesk/wp-settings/.gitattributes +0 -2
  107. vendor/wpdesk/wp-settings/.gitignore +0 -36
  108. vendor/wpdesk/wp-settings/.gitlab-ci.yml +0 -310
  109. vendor/wpdesk/wp-settings/.gitlab/issue_templates/Bug.md +0 -32
  110. vendor/wpdesk/wp-settings/.jshintrc +0 -14
  111. vendor/wpdesk/wp-settings/CONTRIBUTING.md +0 -6
  112. vendor/wpdesk/wp-settings/README.md +0 -5
  113. vendor/wpdesk/wp-settings/apigen.neon +0 -4
  114. vendor/wpdesk/wp-settings/composer.json +0 -34
  115. vendor/wpdesk/wp-settings/license.txt +0 -281
  116. vendor/wpdesk/wp-settings/source/assets/css/admin-settings.css +0 -82
  117. vendor/wpdesk/wp-settings/source/assets/css/admin-settings.min.css +0 -1
  118. vendor/wpdesk/wp-settings/source/assets/css/admin.css +0 -35
  119. vendor/wpdesk/wp-settings/source/assets/css/admin.min.css +0 -1
  120. vendor/wpdesk/wp-settings/source/assets/css/jquery-ui-classic.min.css +0 -1
  121. vendor/wpdesk/wp-settings/source/assets/css/jquery-ui-fresh.min.css +0 -1
  122. vendor/wpdesk/wp-settings/source/assets/js/admin-settings.js +0 -104
  123. vendor/wpdesk/wp-settings/source/assets/js/admin-settings.min.js +0 -1
  124. vendor/wpdesk/wp-settings/source/assets/js/admin.js +0 -104
  125. vendor/wpdesk/wp-settings/source/assets/js/admin.min.js +0 -1
  126. vendor/wpdesk/wp-settings/source/class.s214-settings.php +0 -1233
  127. vendor/wpdesk/wp-settings/source/class.wpdesk-s214-settings.php +0 -1198
  128. vendor/wpdesk/wp-settings/source/class.wpdesk-wp-settings.php +0 -48
  129. vendor/wpdesk/wp-settings/source/modules/licensing/S214_Plugin_Updater.php +0 -382
  130. vendor/wpdesk/wp-settings/source/modules/licensing/class.s214-license.php +0 -385
  131. vendor/wpdesk/wp-settings/source/modules/sysinfo/browser.php +0 -1103
  132. vendor/wpdesk/wp-settings/source/modules/sysinfo/class.s214-sysinfo.php +0 -442
classes/shipment/saas/class-shipment-saas-metabox-attachments.php CHANGED
@@ -26,6 +26,10 @@ class WPDesk_Flexible_Shipping_Shipment_Saas_Metabox_Attachments {
26
  * Display order metabox attachments.
27
  */
28
  public function display_order_metabox_attachments() {
 
 
 
 
29
  $shipment_id = $this->shipment->get_id();
30
  $type_field_id = 'attachment_type';
31
  $attachment_field_id = 'attachment_attachment_id';
26
  * Display order metabox attachments.
27
  */
28
  public function display_order_metabox_attachments() {
29
+ global $thepostid;
30
+
31
+ $thepostid = $this->shipment->get_order()->get_id();
32
+
33
  $shipment_id = $this->shipment->get_id();
34
  $type_field_id = 'attachment_type';
35
  $attachment_field_id = 'attachment_attachment_id';
classes/shipment/saas/views/order-metabox-shipment-attachments.php CHANGED
@@ -8,6 +8,9 @@
8
  * @var array $attachment_types Allowed document types.
9
  * @var string $shipment_id Shipment ID.
10
  */
 
 
 
11
  ?>
12
  <?php $show_send_button = false; ?>
13
  <div class="flexible-shipping-shipment-attachments">
@@ -46,6 +49,7 @@
46
  </div><br />
47
  <?php
48
  $args = array(
 
49
  'id' => $type_field_id,
50
  'type' => 'select',
51
  'class' => 'flexible-shipping-shipment-attachments-type',
8
  * @var array $attachment_types Allowed document types.
9
  * @var string $shipment_id Shipment ID.
10
  */
11
+
12
+ $type_value = '';
13
+ $attachment_id_value = '';
14
  ?>
15
  <?php $show_send_button = false; ?>
16
  <div class="flexible-shipping-shipment-attachments">
49
  </div><br />
50
  <?php
51
  $args = array(
52
+ 'label' => '',
53
  'id' => $type_field_id,
54
  'type' => 'select',
55
  'class' => 'flexible-shipping-shipment-attachments-type',
composer.lock ADDED
@@ -0,0 +1,2424 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_readme": [
3
+ "This file locks the dependencies of your project to a known state",
4
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5
+ "This file is @generated automatically"
6
+ ],
7
+ "content-hash": "2a09b774172fcdd423aaf8e1c7abe382",
8
+ "packages": [
9
+ {
10
+ "name": "moneyphp/money",
11
+ "version": "v3.2.1",
12
+ "source": {
13
+ "type": "git",
14
+ "url": "https://github.com/moneyphp/money.git",
15
+ "reference": "f6085de6c565e98d2f9a7311a605987b54e06d5e"
16
+ },
17
+ "dist": {
18
+ "type": "zip",
19
+ "url": "https://api.github.com/repos/moneyphp/money/zipball/f6085de6c565e98d2f9a7311a605987b54e06d5e",
20
+ "reference": "f6085de6c565e98d2f9a7311a605987b54e06d5e",
21
+ "shasum": ""
22
+ },
23
+ "require": {
24
+ "ext-json": "*",
25
+ "php": ">=5.6"
26
+ },
27
+ "require-dev": {
28
+ "cache/taggable-cache": "^0.4.0",
29
+ "doctrine/instantiator": "^1.0.5",
30
+ "ext-bcmath": "*",
31
+ "ext-gmp": "*",
32
+ "ext-intl": "*",
33
+ "florianv/exchanger": "^1.0",
34
+ "florianv/swap": "^3.0",
35
+ "leanphp/phpspec-code-coverage": "^3.0 || ^4.0",
36
+ "moneyphp/iso-currencies": "^3.0",
37
+ "php-http/message": "^1.4",
38
+ "php-http/mock-client": "^1.0.0",
39
+ "phpspec/phpspec": "^3.0",
40
+ "phpunit/phpunit": "^5.7 || ^6.4 || ^7.0",
41
+ "psr/cache": "^1.0",
42
+ "symfony/phpunit-bridge": "^4"
43
+ },
44
+ "suggest": {
45
+ "ext-bcmath": "Calculate without integer limits",
46
+ "ext-gmp": "Calculate without integer limits",
47
+ "ext-intl": "Format Money objects with intl",
48
+ "florianv/exchanger": "Exchange rates library for PHP",
49
+ "florianv/swap": "Exchange rates library for PHP",
50
+ "psr/cache-implementation": "Used for Currency caching"
51
+ },
52
+ "type": "library",
53
+ "extra": {
54
+ "branch-alias": {
55
+ "dev-master": "3.0-dev"
56
+ }
57
+ },
58
+ "autoload": {
59
+ "psr-4": {
60
+ "Money\\": "src/"
61
+ }
62
+ },
63
+ "notification-url": "https://packagist.org/downloads/",
64
+ "license": [
65
+ "MIT"
66
+ ],
67
+ "authors": [
68
+ {
69
+ "name": "Márk Sági-Kazár",
70
+ "email": "mark.sagikazar@gmail.com"
71
+ },
72
+ {
73
+ "name": "Mathias Verraes",
74
+ "email": "mathias@verraes.net",
75
+ "homepage": "http://verraes.net"
76
+ },
77
+ {
78
+ "name": "Frederik Bosch",
79
+ "email": "f.bosch@genkgo.nl"
80
+ }
81
+ ],
82
+ "description": "PHP implementation of Fowler's Money pattern",
83
+ "homepage": "http://moneyphp.org",
84
+ "keywords": [
85
+ "Value Object",
86
+ "money",
87
+ "vo"
88
+ ],
89
+ "time": "2019-02-07T18:01:35+00:00"
90
+ },
91
+ {
92
+ "name": "monolog/monolog",
93
+ "version": "1.24.0",
94
+ "source": {
95
+ "type": "git",
96
+ "url": "https://github.com/Seldaek/monolog.git",
97
+ "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266"
98
+ },
99
+ "dist": {
100
+ "type": "zip",
101
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
102
+ "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
103
+ "shasum": ""
104
+ },
105
+ "require": {
106
+ "php": ">=5.3.0",
107
+ "psr/log": "~1.0"
108
+ },
109
+ "provide": {
110
+ "psr/log-implementation": "1.0.0"
111
+ },
112
+ "require-dev": {
113
+ "aws/aws-sdk-php": "^2.4.9 || ^3.0",
114
+ "doctrine/couchdb": "~1.0@dev",
115
+ "graylog2/gelf-php": "~1.0",
116
+ "jakub-onderka/php-parallel-lint": "0.9",
117
+ "php-amqplib/php-amqplib": "~2.4",
118
+ "php-console/php-console": "^3.1.3",
119
+ "phpunit/phpunit": "~4.5",
120
+ "phpunit/phpunit-mock-objects": "2.3.0",
121
+ "ruflin/elastica": ">=0.90 <3.0",
122
+ "sentry/sentry": "^0.13",
123
+ "swiftmailer/swiftmailer": "^5.3|^6.0"
124
+ },
125
+ "suggest": {
126
+ "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
127
+ "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
128
+ "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
129
+ "ext-mongo": "Allow sending log messages to a MongoDB server",
130
+ "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
131
+ "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
132
+ "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
133
+ "php-console/php-console": "Allow sending log messages to Google Chrome",
134
+ "rollbar/rollbar": "Allow sending log messages to Rollbar",
135
+ "ruflin/elastica": "Allow sending log messages to an Elastic Search server",
136
+ "sentry/sentry": "Allow sending log messages to a Sentry server"
137
+ },
138
+ "type": "library",
139
+ "extra": {
140
+ "branch-alias": {
141
+ "dev-master": "2.0.x-dev"
142
+ }
143
+ },
144
+ "autoload": {
145
+ "psr-4": {
146
+ "Monolog\\": "src/Monolog"
147
+ }
148
+ },
149
+ "notification-url": "https://packagist.org/downloads/",
150
+ "license": [
151
+ "MIT"
152
+ ],
153
+ "authors": [
154
+ {
155
+ "name": "Jordi Boggiano",
156
+ "email": "j.boggiano@seld.be",
157
+ "homepage": "http://seld.be"
158
+ }
159
+ ],
160
+ "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
161
+ "homepage": "http://github.com/Seldaek/monolog",
162
+ "keywords": [
163
+ "log",
164
+ "logging",
165
+ "psr-3"
166
+ ],
167
+ "time": "2018-11-05T09:00:11+00:00"
168
+ },
169
+ {
170
+ "name": "psr/log",
171
+ "version": "1.1.0",
172
+ "source": {
173
+ "type": "git",
174
+ "url": "https://github.com/php-fig/log.git",
175
+ "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
176
+ },
177
+ "dist": {
178
+ "type": "zip",
179
+ "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
180
+ "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
181
+ "shasum": ""
182
+ },
183
+ "require": {
184
+ "php": ">=5.3.0"
185
+ },
186
+ "type": "library",
187
+ "extra": {
188
+ "branch-alias": {
189
+ "dev-master": "1.0.x-dev"
190
+ }
191
+ },
192
+ "autoload": {
193
+ "psr-4": {
194
+ "Psr\\Log\\": "Psr/Log/"
195
+ }
196
+ },
197
+ "notification-url": "https://packagist.org/downloads/",
198
+ "license": [
199
+ "MIT"
200
+ ],
201
+ "authors": [
202
+ {
203
+ "name": "PHP-FIG",
204
+ "homepage": "http://www.php-fig.org/"
205
+ }
206
+ ],
207
+ "description": "Common interface for logging libraries",
208
+ "homepage": "https://github.com/php-fig/log",
209
+ "keywords": [
210
+ "log",
211
+ "psr",
212
+ "psr-3"
213
+ ],
214
+ "time": "2018-11-20T15:27:04+00:00"
215
+ },
216
+ {
217
+ "name": "psr/simple-cache",
218
+ "version": "1.0.1",
219
+ "source": {
220
+ "type": "git",
221
+ "url": "https://github.com/php-fig/simple-cache.git",
222
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
223
+ },
224
+ "dist": {
225
+ "type": "zip",
226
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
227
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
228
+ "shasum": ""
229
+ },
230
+ "require": {
231
+ "php": ">=5.3.0"
232
+ },
233
+ "type": "library",
234
+ "extra": {
235
+ "branch-alias": {
236
+ "dev-master": "1.0.x-dev"
237
+ }
238
+ },
239
+ "autoload": {
240
+ "psr-4": {
241
+ "Psr\\SimpleCache\\": "src/"
242
+ }
243
+ },
244
+ "notification-url": "https://packagist.org/downloads/",
245
+ "license": [
246
+ "MIT"
247
+ ],
248
+ "authors": [
249
+ {
250
+ "name": "PHP-FIG",
251
+ "homepage": "http://www.php-fig.org/"
252
+ }
253
+ ],
254
+ "description": "Common interfaces for simple caching",
255
+ "keywords": [
256
+ "cache",
257
+ "caching",
258
+ "psr",
259
+ "psr-16",
260
+ "simple-cache"
261
+ ],
262
+ "time": "2017-10-23T01:57:42+00:00"
263
+ },
264
+ {
265
+ "name": "wpdesk/wp-abtesting",
266
+ "version": "1.1.0",
267
+ "source": {
268
+ "type": "git",
269
+ "url": "https://gitlab.com/wpdesk/wp-abtesting.git",
270
+ "reference": "4bc7cbc78cf6e7ed6c370a1215a5e93b38caee32"
271
+ },
272
+ "dist": {
273
+ "type": "zip",
274
+ "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-abtesting/repository/archive.zip?sha=4bc7cbc78cf6e7ed6c370a1215a5e93b38caee32",
275
+ "reference": "4bc7cbc78cf6e7ed6c370a1215a5e93b38caee32",
276
+ "shasum": ""
277
+ },
278
+ "require": {
279
+ "php": ">=5.6",
280
+ "wpdesk/wp-persistence": "^1.0"
281
+ },
282
+ "require-dev": {
283
+ "phpunit/phpunit": "^5",
284
+ "squizlabs/php_codesniffer": "^3.0.2",
285
+ "wimg/php-compatibility": "^8",
286
+ "wp-coding-standards/wpcs": "^0.14.1"
287
+ },
288
+ "type": "library",
289
+ "autoload": {
290
+ "psr-4": {
291
+ "WPDesk\\ABTesting\\": "src/"
292
+ }
293
+ },
294
+ "notification-url": "https://packagist.org/downloads/",
295
+ "authors": [
296
+ {
297
+ "name": "Krzysiek",
298
+ "email": "krzysiek@wpdesk.pl"
299
+ }
300
+ ],
301
+ "time": "2019-02-05T07:56:25+00:00"
302
+ },
303
+ {
304
+ "name": "wpdesk/wp-autoloader",
305
+ "version": "1.2",
306
+ "source": {
307
+ "type": "git",
308
+ "url": "https://gitlab.com/wpdesk/wp-autoloader.git",
309
+ "reference": "0785174fe20b832321981224d0aacd83e4ae57ec"
310
+ },
311
+ "dist": {
312
+ "type": "zip",
313
+ "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-autoloader/repository/archive.zip?sha=0785174fe20b832321981224d0aacd83e4ae57ec",
314
+ "reference": "0785174fe20b832321981224d0aacd83e4ae57ec",
315
+ "shasum": ""
316
+ },
317
+ "require": {
318
+ "php": ">=5.5",
319
+ "psr/log": "^1.0",
320
+ "wpdesk/wp-basic-requirements": "^2.0"
321
+ },
322
+ "require-dev": {
323
+ "10up/wp_mock": "*",
324
+ "mockery/mockery": "*",
325
+ "phpunit/phpunit": "<7",
326
+ "squizlabs/php_codesniffer": "^3.0.2",
327
+ "wimg/php-compatibility": "^8",
328
+ "wp-coding-standards/wpcs": "^0.14.1"
329
+ },
330
+ "type": "library",
331
+ "notification-url": "https://packagist.org/downloads/",
332
+ "authors": [
333
+ {
334
+ "name": "Krzysiek",
335
+ "email": "krzysiek@wpdesk.pl"
336
+ }
337
+ ],
338
+ "time": "2019-03-25T10:50:36+00:00"
339
+ },
340
+ {
341
+ "name": "wpdesk/wp-basic-requirements",
342
+ "version": "2.3.1",
343
+ "source": {
344
+ "type": "git",
345
+ "url": "https://gitlab.com/wpdesk/wp-basic-requirements.git",
346
+ "reference": "97216ee83f871426669ac57b40cc666fdf61d7cc"
347
+ },
348
+ "dist": {
349
+ "type": "zip",
350
+ "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-basic-requirements/repository/archive.zip?sha=97216ee83f871426669ac57b40cc666fdf61d7cc",
351
+ "reference": "97216ee83f871426669ac57b40cc666fdf61d7cc",
352
+ "shasum": ""
353
+ },
354
+ "require": {
355
+ "php": ">=5.2"
356
+ },
357
+ "require-dev": {
358
+ "10up/wp_mock": "*",
359
+ "mockery/mockery": "*",
360
+ "php": ">=5.5",
361
+ "phpunit/phpunit": "<7",
362
+ "squizlabs/php_codesniffer": "^3.0.2",
363
+ "wimg/php-compatibility": "^8",
364
+ "wp-coding-standards/wpcs": "^0.14.1"
365
+ },
366
+ "type": "library",
367
+ "notification-url": "https://packagist.org/downloads/",
368
+ "authors": [
369
+ {
370
+ "name": "Krzysiek",
371
+ "email": "krzysiek@wpdesk.pl"
372
+ }
373
+ ],
374
+ "time": "2019-03-25T13:11:11+00:00"
375
+ },
376
+ {
377
+ "name": "wpdesk/wp-builder",
378
+ "version": "1.1",
379
+ "source": {
380
+ "type": "git",
381
+ "url": "https://gitlab.com/wpdesk/wp-builder.git",
382
+ "reference": "7e54daed6f86260705fa65d2668ae65f9e66114f"
383
+ },
384
+ "dist": {
385
+ "type": "zip",
386
+ "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-builder/repository/archive.zip?sha=7e54daed6f86260705fa65d2668ae65f9e66114f",
387
+ "reference": "7e54daed6f86260705fa65d2668ae65f9e66114f",
388
+ "shasum": ""
389
+ },
390
+ "require": {
391
+ "php": ">=5.5",
392
+ "wpdesk/wp-basic-requirements": "^2.0"
393
+ },
394
+ "require-dev": {
395
+ "10up/wp_mock": "*",
396
+ "mockery/mockery": "*",
397
+ "phpunit/phpunit": "<7",
398
+ "squizlabs/php_codesniffer": "^3.0.2",
399
+ "wimg/php-compatibility": "^8",
400
+ "wp-coding-standards/wpcs": "^0.14.1"
401
+ },
402
+ "type": "library",
403
+ "autoload": {
404
+ "psr-4": {
405
+ "WPDesk\\PluginBuilder\\": "src/"
406
+ }
407
+ },
408
+ "notification-url": "https://packagist.org/downloads/",
409
+ "authors": [
410
+ {
411
+ "name": "Krzysiek",
412
+ "email": "krzysiek@wpdesk.pl"
413
+ }
414
+ ],
415
+ "time": "2018-10-18T13:11:44+00:00"
416
+ },
417
+ {
418
+ "name": "wpdesk/wp-logs",
419
+ "version": "1.4.0",
420
+ "source": {
421
+ "type": "git",
422
+ "url": "https://gitlab.com/wpdesk/wp-logs.git",
423
+ "reference": "0eaf62bfa73d6b773089c948cf5926360b4d3949"
424
+ },
425
+ "dist": {
426
+ "type": "zip",
427
+ "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-logs/repository/archive.zip?sha=0eaf62bfa73d6b773089c948cf5926360b4d3949",
428
+ "reference": "0eaf62bfa73d6b773089c948cf5926360b4d3949",
429
+ "shasum": ""
430
+ },
431
+ "require": {
432
+ "monolog/monolog": "^1.23",
433
+ "php": ">=5.6",
434
+ "psr/log": "^1.0.1"
435
+ },
436
+ "require-dev": {
437
+ "phpunit/phpunit": "^5",
438
+ "squizlabs/php_codesniffer": "^3.0.2",
439
+ "wimg/php-compatibility": "^8",
440
+ "wp-coding-standards/wpcs": "^0.14.1"
441
+ },
442
+ "type": "library",
443
+ "autoload": {
444
+ "psr-4": {
445
+ "WPDesk\\Logger\\": "src/"
446
+ }
447
+ },
448
+ "notification-url": "https://packagist.org/downloads/",
449
+ "authors": [
450
+ {
451
+ "name": "Krzysiek",
452
+ "email": "krzysiek@wpdesk.pl"
453
+ }
454
+ ],
455
+ "time": "2019-01-21T15:12:41+00:00"
456
+ },
457
+ {
458
+ "name": "wpdesk/wp-mutex",
459
+ "version": "1.1",
460
+ "source": {
461
+ "type": "git",
462
+ "url": "https://gitlab.com/wpdesk/wp-mutex.git",
463
+ "reference": "4df845e751382179fadf2fff3c8e243b77e7d773"
464
+ },
465
+ "dist": {
466
+ "type": "zip",
467
+ "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-mutex/repository/archive.zip?sha=4df845e751382179fadf2fff3c8e243b77e7d773",
468
+ "reference": "4df845e751382179fadf2fff3c8e243b77e7d773",
469
+ "shasum": ""
470
+ },
471
+ "require": {
472
+ "php": ">=5.6"
473
+ },
474
+ "require-dev": {
475
+ "10up/wp_mock": "*",
476
+ "mockery/mockery": "*",
477
+ "phpunit/phpunit": "<7",
478
+ "squizlabs/php_codesniffer": "^3.0.2",
479
+ "wimg/php-compatibility": "^8",
480
+ "wp-coding-standards/wpcs": "^0.14.1"
481
+ },
482
+ "type": "library",
483
+ "autoload": {
484
+ "psr-4": {
485
+ "WPDesk\\Mutex\\": "src/WPDesk/Mutex/"
486
+ },
487
+ "files": [
488
+ "src/WPDesk/functions.php"
489
+ ]
490
+ },
491
+ "notification-url": "https://packagist.org/downloads/",
492
+ "license": [
493
+ "MIT"
494
+ ],
495
+ "authors": [
496
+ {
497
+ "name": "grola",
498
+ "email": "grola@wpdesk.net"
499
+ },
500
+ {
501
+ "name": "dyszczo",
502
+ "email": "dyszczo@wpdesk.net"
503
+ }
504
+ ],
505
+ "description": "Library for locking in Wordpress.",
506
+ "homepage": "https://gitlab.com/wpdesk/wp-mutex",
507
+ "keywords": [
508
+ "lock",
509
+ "mutex",
510
+ "wordpress"
511
+ ],
512
+ "time": "2018-11-13T12:27:39+00:00"
513
+ },
514
+ {
515
+ "name": "wpdesk/wp-notice",
516
+ "version": "3.0",
517
+ "source": {
518
+ "type": "git",
519
+ "url": "https://gitlab.com/wpdesk/wp-notice.git",
520
+ "reference": "49b651f53fa0a64295bdeaa2e427e8add7114a62"
521
+ },
522
+ "dist": {
523
+ "type": "zip",
524
+ "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-notice/repository/archive.zip?sha=49b651f53fa0a64295bdeaa2e427e8add7114a62",
525
+ "reference": "49b651f53fa0a64295bdeaa2e427e8add7114a62",
526
+ "shasum": ""
527
+ },
528
+ "require": {
529
+ "php": ">=5.5",
530
+ "wpdesk/wp-builder": "^1.0"
531
+ },
532
+ "require-dev": {
533
+ "10up/wp_mock": "*",
534
+ "mockery/mockery": "*",
535
+ "phpunit/phpunit": "<7",
536
+ "squizlabs/php_codesniffer": "^3.0.2",
537
+ "wimg/php-compatibility": "^8",
538
+ "wp-coding-standards/wpcs": "^0.14.1"
539
+ },
540
+ "type": "library",
541
+ "autoload": {
542
+ "psr-4": {
543
+ "WPDesk\\Notice\\": "src/WPDesk/Notice/"
544
+ },
545
+ "files": [
546
+ "src/WPDesk/notice-functions.php"
547
+ ]
548
+ },
549
+ "notification-url": "https://packagist.org/downloads/",
550
+ "license": [
551
+ "MIT"
552
+ ],
553
+ "authors": [
554
+ {
555
+ "name": "grola",
556
+ "email": "grola@wpdesk.net"
557
+ }
558
+ ],
559
+ "description": "Library for displaying Wordpress notices.",
560
+ "homepage": "https://gitlab.com/wpdesk/wp-notice",
561
+ "keywords": [
562
+ "admin",
563
+ "notice",
564
+ "wordpress"
565
+ ],
566
+ "time": "2019-02-21T11:12:53+00:00"
567
+ },
568
+ {
569
+ "name": "wpdesk/wp-persistence",
570
+ "version": "1.0",
571
+ "source": {
572
+ "type": "git",
573
+ "url": "https://gitlab.com/wpdesk/wp-persistence.git",
574
+ "reference": "d667f0da177826826f4c604dbada6831d03b6a60"
575
+ },
576
+ "dist": {
577
+ "type": "zip",
578
+ "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-persistence/repository/archive.zip?sha=d667f0da177826826f4c604dbada6831d03b6a60",
579
+ "reference": "d667f0da177826826f4c604dbada6831d03b6a60",
580
+ "shasum": ""
581
+ },
582
+ "require": {
583
+ "php": ">=5.6"
584
+ },
585
+ "require-dev": {
586
+ "phpunit/phpunit": "^5",
587
+ "squizlabs/php_codesniffer": "^3.0.2",
588
+ "wimg/php-compatibility": "^8",
589
+ "wp-coding-standards/wpcs": "^0.14.1"
590
+ },
591
+ "type": "library",
592
+ "autoload": {
593
+ "psr-4": {
594
+ "WPDesk\\Persistence\\": "src/"
595
+ }
596
+ },
597
+ "notification-url": "https://packagist.org/downloads/",
598
+ "authors": [
599
+ {
600
+ "name": "Krzysiek",
601
+ "email": "krzysiek@wpdesk.pl"
602
+ }
603
+ ],
604
+ "time": "2019-02-01T09:01:34+00:00"
605
+ },
606
+ {
607
+ "name": "wpdesk/wp-saas-platform-client",
608
+ "version": "1.10",
609
+ "source": {
610
+ "type": "git",
611
+ "url": "https://gitlab.com/wpdesk/wp-saas-platform-client.git",
612
+ "reference": "54327826936f8133481a917774e9b4fb2a8911f9"
613
+ },
614
+ "dist": {
615
+ "type": "zip",
616
+ "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-saas-platform-client/repository/archive.zip?sha=54327826936f8133481a917774e9b4fb2a8911f9",
617
+ "reference": "54327826936f8133481a917774e9b4fb2a8911f9",
618
+ "shasum": ""
619
+ },
620
+ "require": {
621
+ "ext-curl": "*",
622
+ "ext-json": "*",
623
+ "php": ">=5.5",
624
+ "psr/log": "^1.0.1",
625
+ "psr/simple-cache": "^1.0",
626
+ "wpdesk/wp-persistence": "^1.0"
627
+ },
628
+ "require-dev": {
629
+ "10up/wp_mock": "*",
630
+ "mockery/mockery": "*",
631
+ "phpunit/phpunit": "<7",
632
+ "squizlabs/php_codesniffer": "^3.0.2",
633
+ "wp-coding-standards/wpcs": "^0.14.1"
634
+ },
635
+ "type": "library",
636
+ "autoload": {
637
+ "psr-4": {
638
+ "WPDesk\\SaasPlatformClient\\": "src/"
639
+ }
640
+ },
641
+ "notification-url": "https://packagist.org/downloads/",
642
+ "authors": [
643
+ {
644
+ "name": "Krzysiek",
645
+ "email": "krzysiek@wpdesk.pl"
646
+ }
647
+ ],
648
+ "time": "2019-03-14T13:31:32+00:00"
649
+ },
650
+ {
651
+ "name": "wpdesk/wp-view",
652
+ "version": "1.0.2",
653
+ "source": {
654
+ "type": "git",
655
+ "url": "https://gitlab.com/wpdesk/wp-view.git",
656
+ "reference": "08393dd1cc5c5bc72e232c5b18af68e064ec8362"
657
+ },
658
+ "dist": {
659
+ "type": "zip",
660
+ "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-view/repository/archive.zip?sha=08393dd1cc5c5bc72e232c5b18af68e064ec8362",
661
+ "reference": "08393dd1cc5c5bc72e232c5b18af68e064ec8362",
662
+ "shasum": ""
663
+ },
664
+ "require": {
665
+ "php": ">=5.5"
666
+ },
667
+ "require-dev": {
668
+ "10up/wp_mock": "*",
669
+ "mockery/mockery": "*",
670
+ "phpunit/phpunit": "<7",
671
+ "squizlabs/php_codesniffer": "^3.0.2",
672
+ "wimg/php-compatibility": "^8",
673
+ "wp-coding-standards/wpcs": "^0.14.1"
674
+ },
675
+ "type": "library",
676
+ "autoload": {
677
+ "psr-4": {
678
+ "WPDesk\\View\\": "src/"
679
+ }
680
+ },
681
+ "notification-url": "https://packagist.org/downloads/",
682
+ "authors": [
683
+ {
684
+ "name": "Krzysiek",
685
+ "email": "krzysiek@wpdesk.pl"
686
+ }
687
+ ],
688
+ "time": "2018-10-18T13:44:18+00:00"
689
+ }
690
+ ],
691
+ "packages-dev": [
692
+ {
693
+ "name": "10up/wp_mock",
694
+ "version": "0.2.0",
695
+ "source": {
696
+ "type": "git",
697
+ "url": "https://github.com/10up/wp_mock.git",
698
+ "reference": "507e59027e9b0d86eba9b74420962a72c4c2ec9e"
699
+ },
700
+ "dist": {
701
+ "type": "zip",
702
+ "url": "https://api.github.com/repos/10up/wp_mock/zipball/507e59027e9b0d86eba9b74420962a72c4c2ec9e",
703
+ "reference": "507e59027e9b0d86eba9b74420962a72c4c2ec9e",
704
+ "shasum": ""
705
+ },
706
+ "require": {
707
+ "antecedent/patchwork": "~2.0.3",
708
+ "mockery/mockery": "^0.9.5",
709
+ "php": ">=5.6",
710
+ "phpunit/phpunit": ">=4.3"
711
+ },
712
+ "conflict": {
713
+ "phpunit/phpunit": ">=6.0"
714
+ },
715
+ "require-dev": {
716
+ "behat/behat": "^3.0"
717
+ },
718
+ "type": "library",
719
+ "autoload": {
720
+ "psr-4": {
721
+ "WP_Mock\\": "./php/WP_Mock"
722
+ },
723
+ "classmap": [
724
+ "php/WP_Mock.php"
725
+ ]
726
+ },
727
+ "notification-url": "https://packagist.org/downloads/",
728
+ "license": [
729
+ "GPL-2.0+"
730
+ ],
731
+ "description": "A mocking library to take the pain out of unit testing for WordPress",
732
+ "time": "2017-07-19T03:10:11+00:00"
733
+ },
734
+ {
735
+ "name": "antecedent/patchwork",
736
+ "version": "2.0.9",
737
+ "source": {
738
+ "type": "git",
739
+ "url": "https://github.com/antecedent/patchwork.git",
740
+ "reference": "cab3be4865e47f1dc447715e76c7b616e48b005d"
741
+ },
742
+ "dist": {
743
+ "type": "zip",
744
+ "url": "https://api.github.com/repos/antecedent/patchwork/zipball/cab3be4865e47f1dc447715e76c7b616e48b005d",
745
+ "reference": "cab3be4865e47f1dc447715e76c7b616e48b005d",
746
+ "shasum": ""
747
+ },
748
+ "require": {
749
+ "php": ">=5.4.0"
750
+ },
751
+ "type": "library",
752
+ "notification-url": "https://packagist.org/downloads/",
753
+ "license": [
754
+ "MIT"
755
+ ],
756
+ "authors": [
757
+ {
758
+ "name": "Ignas Rudaitis",
759
+ "email": "ignas.rudaitis@gmail.com"
760
+ }
761
+ ],
762
+ "description": "Method redefinition (monkey-patching) functionality for PHP.",
763
+ "homepage": "http://patchwork2.org/",
764
+ "keywords": [
765
+ "aop",
766
+ "aspect",
767
+ "interception",
768
+ "monkeypatching",
769
+ "redefinition",
770
+ "runkit",
771
+ "testing"
772
+ ],
773
+ "time": "2017-08-01T11:52:57+00:00"
774
+ },
775
+ {
776
+ "name": "doctrine/instantiator",
777
+ "version": "1.0.5",
778
+ "source": {
779
+ "type": "git",
780
+ "url": "https://github.com/doctrine/instantiator.git",
781
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
782
+ },
783
+ "dist": {
784
+ "type": "zip",
785
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
786
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
787
+ "shasum": ""
788
+ },
789
+ "require": {
790
+ "php": ">=5.3,<8.0-DEV"
791
+ },
792
+ "require-dev": {
793
+ "athletic/athletic": "~0.1.8",
794
+ "ext-pdo": "*",
795
+ "ext-phar": "*",
796
+ "phpunit/phpunit": "~4.0",
797
+ "squizlabs/php_codesniffer": "~2.0"
798
+ },
799
+ "type": "library",
800
+ "extra": {
801
+ "branch-alias": {
802
+ "dev-master": "1.0.x-dev"
803
+ }
804
+ },
805
+ "autoload": {
806
+ "psr-4": {
807
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
808
+ }
809
+ },
810
+ "notification-url": "https://packagist.org/downloads/",
811
+ "license": [
812
+ "MIT"
813
+ ],
814
+ "authors": [
815
+ {
816
+ "name": "Marco Pivetta",
817
+ "email": "ocramius@gmail.com",
818
+ "homepage": "http://ocramius.github.com/"
819
+ }
820
+ ],
821
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
822
+ "homepage": "https://github.com/doctrine/instantiator",
823
+ "keywords": [
824
+ "constructor",
825
+ "instantiate"
826
+ ],
827
+ "time": "2015-06-14T21:17:01+00:00"
828
+ },
829
+ {
830
+ "name": "hamcrest/hamcrest-php",
831
+ "version": "v1.2.2",
832
+ "source": {
833
+ "type": "git",
834
+ "url": "https://github.com/hamcrest/hamcrest-php.git",
835
+ "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c"
836
+ },
837
+ "dist": {
838
+ "type": "zip",
839
+ "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b37020aa976fa52d3de9aa904aa2522dc518f79c",
840
+ "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c",
841
+ "shasum": ""
842
+ },
843
+ "require": {
844
+ "php": ">=5.3.2"
845
+ },
846
+ "replace": {
847
+ "cordoval/hamcrest-php": "*",
848
+ "davedevelopment/hamcrest-php": "*",
849
+ "kodova/hamcrest-php": "*"
850
+ },
851
+ "require-dev": {
852
+ "phpunit/php-file-iterator": "1.3.3",
853
+ "satooshi/php-coveralls": "dev-master"
854
+ },
855
+ "type": "library",
856
+ "autoload": {
857
+ "classmap": [
858
+ "hamcrest"
859
+ ],
860
+ "files": [
861
+ "hamcrest/Hamcrest.php"
862
+ ]
863
+ },
864
+ "notification-url": "https://packagist.org/downloads/",
865
+ "license": [
866
+ "BSD"
867
+ ],
868
+ "description": "This is the PHP port of Hamcrest Matchers",
869
+ "keywords": [
870
+ "test"
871
+ ],
872
+ "time": "2015-05-11T14:41:42+00:00"
873
+ },
874
+ {
875
+ "name": "mockery/mockery",
876
+ "version": "0.9.11",
877
+ "source": {
878
+ "type": "git",
879
+ "url": "https://github.com/mockery/mockery.git",
880
+ "reference": "be9bf28d8e57d67883cba9fcadfcff8caab667f8"
881
+ },
882
+ "dist": {
883
+ "type": "zip",
884
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/be9bf28d8e57d67883cba9fcadfcff8caab667f8",
885
+ "reference": "be9bf28d8e57d67883cba9fcadfcff8caab667f8",
886
+ "shasum": ""
887
+ },
888
+ "require": {
889
+ "hamcrest/hamcrest-php": "~1.1",
890
+ "lib-pcre": ">=7.0",
891
+ "php": ">=5.3.2"
892
+ },
893
+ "require-dev": {
894
+ "phpunit/phpunit": "~4.0"
895
+ },
896
+ "type": "library",
897
+ "extra": {
898
+ "branch-alias": {
899
+ "dev-master": "0.9.x-dev"
900
+ }
901
+ },
902
+ "autoload": {
903
+ "psr-0": {
904
+ "Mockery": "library/"
905
+ }
906
+ },
907
+ "notification-url": "https://packagist.org/downloads/",
908
+ "license": [
909
+ "BSD-3-Clause"
910
+ ],
911
+ "authors": [
912
+ {
913
+ "name": "Pádraic Brady",
914
+ "email": "padraic.brady@gmail.com",
915
+ "homepage": "http://blog.astrumfutura.com"
916
+ },
917
+ {
918
+ "name": "Dave Marshall",
919
+ "email": "dave.marshall@atstsolutions.co.uk",
920
+ "homepage": "http://davedevelopment.co.uk"
921
+ }
922
+ ],
923
+ "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.",
924
+ "homepage": "http://github.com/padraic/mockery",
925
+ "keywords": [
926
+ "BDD",
927
+ "TDD",
928
+ "library",
929
+ "mock",
930
+ "mock objects",
931
+ "mockery",
932
+ "stub",
933
+ "test",
934
+ "test double",
935
+ "testing"
936
+ ],
937
+ "time": "2019-02-12T16:07:13+00:00"
938
+ },
939
+ {
940
+ "name": "myclabs/deep-copy",
941
+ "version": "1.7.0",
942
+ "source": {
943
+ "type": "git",
944
+ "url": "https://github.com/myclabs/DeepCopy.git",
945
+ "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e"
946
+ },
947
+ "dist": {
948
+ "type": "zip",
949
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
950
+ "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
951
+ "shasum": ""
952
+ },
953
+ "require": {
954
+ "php": "^5.6 || ^7.0"
955
+ },
956
+ "require-dev": {
957
+ "doctrine/collections": "^1.0",
958
+ "doctrine/common": "^2.6",
959
+ "phpunit/phpunit": "^4.1"
960
+ },
961
+ "type": "library",
962
+ "autoload": {
963
+ "psr-4": {
964
+ "DeepCopy\\": "src/DeepCopy/"
965
+ },
966
+ "files": [
967
+ "src/DeepCopy/deep_copy.php"
968
+ ]
969
+ },
970
+ "notification-url": "https://packagist.org/downloads/",
971
+ "license": [
972
+ "MIT"
973
+ ],
974
+ "description": "Create deep copies (clones) of your objects",
975
+ "keywords": [
976
+ "clone",
977
+ "copy",
978
+ "duplicate",
979
+ "object",
980
+ "object graph"
981
+ ],
982
+ "time": "2017-10-19T19:58:43+00:00"
983
+ },
984
+ {
985
+ "name": "phpcompatibility/php-compatibility",
986
+ "version": "9.1.1",
987
+ "source": {
988
+ "type": "git",
989
+ "url": "https://github.com/PHPCompatibility/PHPCompatibility.git",
990
+ "reference": "2b63c5d284ab8857f7b1d5c240ddb507a6b2293c"
991
+ },
992
+ "dist": {
993
+ "type": "zip",
994
+ "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/2b63c5d284ab8857f7b1d5c240ddb507a6b2293c",
995
+ "reference": "2b63c5d284ab8857f7b1d5c240ddb507a6b2293c",
996
+ "shasum": ""
997
+ },
998
+ "require": {
999
+ "php": ">=5.3",
1000
+ "squizlabs/php_codesniffer": "^2.3 || ^3.0.2"
1001
+ },
1002
+ "conflict": {
1003
+ "squizlabs/php_codesniffer": "2.6.2"
1004
+ },
1005
+ "require-dev": {
1006
+ "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0"
1007
+ },
1008
+ "suggest": {
1009
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.",
1010
+ "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
1011
+ },
1012
+ "type": "phpcodesniffer-standard",
1013
+ "notification-url": "https://packagist.org/downloads/",
1014
+ "license": [
1015
+ "LGPL-3.0-or-later"
1016
+ ],
1017
+ "authors": [
1018
+ {
1019
+ "name": "Contributors",
1020
+ "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors"
1021
+ },
1022
+ {
1023
+ "name": "Wim Godden",
1024
+ "homepage": "https://github.com/wimg",
1025
+ "role": "lead"
1026
+ },
1027
+ {
1028
+ "name": "Juliette Reinders Folmer",
1029
+ "homepage": "https://github.com/jrfnl",
1030
+ "role": "lead"
1031
+ }
1032
+ ],
1033
+ "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.",
1034
+ "homepage": "http://techblog.wimgodden.be/tag/codesniffer/",
1035
+ "keywords": [
1036
+ "compatibility",
1037
+ "phpcs",
1038
+ "standards"
1039
+ ],
1040
+ "time": "2018-12-30T23:16:27+00:00"
1041
+ },
1042
+ {
1043
+ "name": "phpdocumentor/reflection-common",
1044
+ "version": "1.0.1",
1045
+ "source": {
1046
+ "type": "git",
1047
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
1048
+ "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
1049
+ },
1050
+ "dist": {
1051
+ "type": "zip",
1052
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
1053
+ "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
1054
+ "shasum": ""
1055
+ },
1056
+ "require": {
1057
+ "php": ">=5.5"
1058
+ },
1059
+ "require-dev": {
1060
+ "phpunit/phpunit": "^4.6"
1061
+ },
1062
+ "type": "library",
1063
+ "extra": {
1064
+ "branch-alias": {
1065
+ "dev-master": "1.0.x-dev"
1066
+ }
1067
+ },
1068
+ "autoload": {
1069
+ "psr-4": {
1070
+ "phpDocumentor\\Reflection\\": [
1071
+ "src"
1072
+ ]
1073
+ }
1074
+ },
1075
+ "notification-url": "https://packagist.org/downloads/",
1076
+ "license": [
1077
+ "MIT"
1078
+ ],
1079
+ "authors": [
1080
+ {
1081
+ "name": "Jaap van Otterdijk",
1082
+ "email": "opensource@ijaap.nl"
1083
+ }
1084
+ ],
1085
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
1086
+ "homepage": "http://www.phpdoc.org",
1087
+ "keywords": [
1088
+ "FQSEN",
1089
+ "phpDocumentor",
1090
+ "phpdoc",
1091
+ "reflection",
1092
+ "static analysis"
1093
+ ],
1094
+ "time": "2017-09-11T18:02:19+00:00"
1095
+ },
1096
+ {
1097
+ "name": "phpdocumentor/reflection-docblock",
1098
+ "version": "3.3.2",
1099
+ "source": {
1100
+ "type": "git",
1101
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
1102
+ "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2"
1103
+ },
1104
+ "dist": {
1105
+ "type": "zip",
1106
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bf329f6c1aadea3299f08ee804682b7c45b326a2",
1107
+ "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2",
1108
+ "shasum": ""
1109
+ },
1110
+ "require": {
1111
+ "php": "^5.6 || ^7.0",
1112
+ "phpdocumentor/reflection-common": "^1.0.0",
1113
+ "phpdocumentor/type-resolver": "^0.4.0",
1114
+ "webmozart/assert": "^1.0"
1115
+ },
1116
+ "require-dev": {
1117
+ "mockery/mockery": "^0.9.4",
1118
+ "phpunit/phpunit": "^4.4"
1119
+ },
1120
+ "type": "library",
1121
+ "autoload": {
1122
+ "psr-4": {
1123
+ "phpDocumentor\\Reflection\\": [
1124
+ "src/"
1125
+ ]
1126
+ }
1127
+ },
1128
+ "notification-url": "https://packagist.org/downloads/",
1129
+ "license": [
1130
+ "MIT"
1131
+ ],
1132
+ "authors": [
1133
+ {
1134
+ "name": "Mike van Riel",
1135
+ "email": "me@mikevanriel.com"
1136
+ }
1137
+ ],
1138
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
1139
+ "time": "2017-11-10T14:09:06+00:00"
1140
+ },
1141
+ {
1142
+ "name": "phpdocumentor/type-resolver",
1143
+ "version": "0.4.0",
1144
+ "source": {
1145
+ "type": "git",
1146
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
1147
+ "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7"
1148
+ },
1149
+ "dist": {
1150
+ "type": "zip",
1151
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7",
1152
+ "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7",
1153
+ "shasum": ""
1154
+ },
1155
+ "require": {
1156
+ "php": "^5.5 || ^7.0",
1157
+ "phpdocumentor/reflection-common": "^1.0"
1158
+ },
1159
+ "require-dev": {
1160
+ "mockery/mockery": "^0.9.4",
1161
+ "phpunit/phpunit": "^5.2||^4.8.24"
1162
+ },
1163
+ "type": "library",
1164
+ "extra": {
1165
+ "branch-alias": {
1166
+ "dev-master": "1.0.x-dev"
1167
+ }
1168
+ },
1169
+ "autoload": {
1170
+ "psr-4": {
1171
+ "phpDocumentor\\Reflection\\": [
1172
+ "src/"
1173
+ ]
1174
+ }
1175
+ },
1176
+ "notification-url": "https://packagist.org/downloads/",
1177
+ "license": [
1178
+ "MIT"
1179
+ ],
1180
+ "authors": [
1181
+ {
1182
+ "name": "Mike van Riel",
1183
+ "email": "me@mikevanriel.com"
1184
+ }
1185
+ ],
1186
+ "time": "2017-07-14T14:27:02+00:00"
1187
+ },
1188
+ {
1189
+ "name": "phpspec/prophecy",
1190
+ "version": "1.8.0",
1191
+ "source": {
1192
+ "type": "git",
1193
+ "url": "https://github.com/phpspec/prophecy.git",
1194
+ "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06"
1195
+ },
1196
+ "dist": {
1197
+ "type": "zip",
1198
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
1199
+ "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
1200
+ "shasum": ""
1201
+ },
1202
+ "require": {
1203
+ "doctrine/instantiator": "^1.0.2",
1204
+ "php": "^5.3|^7.0",
1205
+ "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
1206
+ "sebastian/comparator": "^1.1|^2.0|^3.0",
1207
+ "sebastian/recursion-context": "^1.0|^2.0|^3.0"
1208
+ },
1209
+ "require-dev": {
1210
+ "phpspec/phpspec": "^2.5|^3.2",
1211
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
1212
+ },
1213
+ "type": "library",
1214
+ "extra": {
1215
+ "branch-alias": {
1216
+ "dev-master": "1.8.x-dev"
1217
+ }
1218
+ },
1219
+ "autoload": {
1220
+ "psr-0": {
1221
+ "Prophecy\\": "src/"
1222
+ }
1223
+ },
1224
+ "notification-url": "https://packagist.org/downloads/",
1225
+ "license": [
1226
+ "MIT"
1227
+ ],
1228
+ "authors": [
1229
+ {
1230
+ "name": "Konstantin Kudryashov",
1231
+ "email": "ever.zet@gmail.com",
1232
+ "homepage": "http://everzet.com"
1233
+ },
1234
+ {
1235
+ "name": "Marcello Duarte",
1236
+ "email": "marcello.duarte@gmail.com"
1237
+ }
1238
+ ],
1239
+ "description": "Highly opinionated mocking framework for PHP 5.3+",
1240
+ "homepage": "https://github.com/phpspec/prophecy",
1241
+ "keywords": [
1242
+ "Double",
1243
+ "Dummy",
1244
+ "fake",
1245
+ "mock",
1246
+ "spy",
1247
+ "stub"
1248
+ ],
1249
+ "time": "2018-08-05T17:53:17+00:00"
1250
+ },
1251
+ {
1252
+ "name": "phpunit/php-code-coverage",
1253
+ "version": "4.0.8",
1254
+ "source": {
1255
+ "type": "git",
1256
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
1257
+ "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d"
1258
+ },
1259
+ "dist": {
1260
+ "type": "zip",
1261
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d",
1262
+ "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d",
1263
+ "shasum": ""
1264
+ },
1265
+ "require": {
1266
+ "ext-dom": "*",
1267
+ "ext-xmlwriter": "*",
1268
+ "php": "^5.6 || ^7.0",
1269
+ "phpunit/php-file-iterator": "^1.3",
1270
+ "phpunit/php-text-template": "^1.2",
1271
+ "phpunit/php-token-stream": "^1.4.2 || ^2.0",
1272
+ "sebastian/code-unit-reverse-lookup": "^1.0",
1273
+ "sebastian/environment": "^1.3.2 || ^2.0",
1274
+ "sebastian/version": "^1.0 || ^2.0"
1275
+ },
1276
+ "require-dev": {
1277
+ "ext-xdebug": "^2.1.4",
1278
+ "phpunit/phpunit": "^5.7"
1279
+ },
1280
+ "suggest": {
1281
+ "ext-xdebug": "^2.5.1"
1282
+ },
1283
+ "type": "library",
1284
+ "extra": {
1285
+ "branch-alias": {
1286
+ "dev-master": "4.0.x-dev"
1287
+ }
1288
+ },
1289
+ "autoload": {
1290
+ "classmap": [
1291
+ "src/"
1292
+ ]
1293
+ },
1294
+ "notification-url": "https://packagist.org/downloads/",
1295
+ "license": [
1296
+ "BSD-3-Clause"
1297
+ ],
1298
+ "authors": [
1299
+ {
1300
+ "name": "Sebastian Bergmann",
1301
+ "email": "sb@sebastian-bergmann.de",
1302
+ "role": "lead"
1303
+ }
1304
+ ],
1305
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
1306
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
1307
+ "keywords": [
1308
+ "coverage",
1309
+ "testing",
1310
+ "xunit"
1311
+ ],
1312
+ "time": "2017-04-02T07:44:40+00:00"
1313
+ },
1314
+ {
1315
+ "name": "phpunit/php-file-iterator",
1316
+ "version": "1.4.5",
1317
+ "source": {
1318
+ "type": "git",
1319
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
1320
+ "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
1321
+ },
1322
+ "dist": {
1323
+ "type": "zip",
1324
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
1325
+ "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
1326
+ "shasum": ""
1327
+ },
1328
+ "require": {
1329
+ "php": ">=5.3.3"
1330
+ },
1331
+ "type": "library",
1332
+ "extra": {
1333
+ "branch-alias": {
1334
+ "dev-master": "1.4.x-dev"
1335
+ }
1336
+ },
1337
+ "autoload": {
1338
+ "classmap": [
1339
+ "src/"
1340
+ ]
1341
+ },
1342
+ "notification-url": "https://packagist.org/downloads/",
1343
+ "license": [
1344
+ "BSD-3-Clause"
1345
+ ],
1346
+ "authors": [
1347
+ {
1348
+ "name": "Sebastian Bergmann",
1349
+ "email": "sb@sebastian-bergmann.de",
1350
+ "role": "lead"
1351
+ }
1352
+ ],
1353
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
1354
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
1355
+ "keywords": [
1356
+ "filesystem",
1357
+ "iterator"
1358
+ ],
1359
+ "time": "2017-11-27T13:52:08+00:00"
1360
+ },
1361
+ {
1362
+ "name": "phpunit/php-text-template",
1363
+ "version": "1.2.1",
1364
+ "source": {
1365
+ "type": "git",
1366
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
1367
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
1368
+ },
1369
+ "dist": {
1370
+ "type": "zip",
1371
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
1372
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
1373
+ "shasum": ""
1374
+ },
1375
+ "require": {
1376
+ "php": ">=5.3.3"
1377
+ },
1378
+ "type": "library",
1379
+ "autoload": {
1380
+ "classmap": [
1381
+ "src/"
1382
+ ]
1383
+ },
1384
+ "notification-url": "https://packagist.org/downloads/",
1385
+ "license": [
1386
+ "BSD-3-Clause"
1387
+ ],
1388
+ "authors": [
1389
+ {
1390
+ "name": "Sebastian Bergmann",
1391
+ "email": "sebastian@phpunit.de",
1392
+ "role": "lead"
1393
+ }
1394
+ ],
1395
+ "description": "Simple template engine.",
1396
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
1397
+ "keywords": [
1398
+ "template"
1399
+ ],
1400
+ "time": "2015-06-21T13:50:34+00:00"
1401
+ },
1402
+ {
1403
+ "name": "phpunit/php-timer",
1404
+ "version": "1.0.9",
1405
+ "source": {
1406
+ "type": "git",
1407
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
1408
+ "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
1409
+ },
1410
+ "dist": {
1411
+ "type": "zip",
1412
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
1413
+ "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
1414
+ "shasum": ""
1415
+ },
1416
+ "require": {
1417
+ "php": "^5.3.3 || ^7.0"
1418
+ },
1419
+ "require-dev": {
1420
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
1421
+ },
1422
+ "type": "library",
1423
+ "extra": {
1424
+ "branch-alias": {
1425
+ "dev-master": "1.0-dev"
1426
+ }
1427
+ },
1428
+ "autoload": {
1429
+ "classmap": [
1430
+ "src/"
1431
+ ]
1432
+ },
1433
+ "notification-url": "https://packagist.org/downloads/",
1434
+ "license": [
1435
+ "BSD-3-Clause"
1436
+ ],
1437
+ "authors": [
1438
+ {
1439
+ "name": "Sebastian Bergmann",
1440
+ "email": "sb@sebastian-bergmann.de",
1441
+ "role": "lead"
1442
+ }
1443
+ ],
1444
+ "description": "Utility class for timing",
1445
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
1446
+ "keywords": [
1447
+ "timer"
1448
+ ],
1449
+ "time": "2017-02-26T11:10:40+00:00"
1450
+ },
1451
+ {
1452
+ "name": "phpunit/php-token-stream",
1453
+ "version": "1.4.12",
1454
+ "source": {
1455
+ "type": "git",
1456
+ "url": "https://github.com/sebastianbergmann/php-token-stream.git",
1457
+ "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16"
1458
+ },
1459
+ "dist": {
1460
+ "type": "zip",
1461
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16",
1462
+ "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16",
1463
+ "shasum": ""
1464
+ },
1465
+ "require": {
1466
+ "ext-tokenizer": "*",
1467
+ "php": ">=5.3.3"
1468
+ },
1469
+ "require-dev": {
1470
+ "phpunit/phpunit": "~4.2"
1471
+ },
1472
+ "type": "library",
1473
+ "extra": {
1474
+ "branch-alias": {
1475
+ "dev-master": "1.4-dev"
1476
+ }
1477
+ },
1478
+ "autoload": {
1479
+ "classmap": [
1480
+ "src/"
1481
+ ]
1482
+ },
1483
+ "notification-url": "https://packagist.org/downloads/",
1484
+ "license": [
1485
+ "BSD-3-Clause"
1486
+ ],
1487
+ "authors": [
1488
+ {
1489
+ "name": "Sebastian Bergmann",
1490
+ "email": "sebastian@phpunit.de"
1491
+ }
1492
+ ],
1493
+ "description": "Wrapper around PHP's tokenizer extension.",
1494
+ "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
1495
+ "keywords": [
1496
+ "tokenizer"
1497
+ ],
1498
+ "time": "2017-12-04T08:55:13+00:00"
1499
+ },
1500
+ {
1501
+ "name": "phpunit/phpunit",
1502
+ "version": "5.7.27",
1503
+ "source": {
1504
+ "type": "git",
1505
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
1506
+ "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c"
1507
+ },
1508
+ "dist": {
1509
+ "type": "zip",
1510
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c",
1511
+ "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c",
1512
+ "shasum": ""
1513
+ },
1514
+ "require": {
1515
+ "ext-dom": "*",
1516
+ "ext-json": "*",
1517
+ "ext-libxml": "*",
1518
+ "ext-mbstring": "*",
1519
+ "ext-xml": "*",
1520
+ "myclabs/deep-copy": "~1.3",
1521
+ "php": "^5.6 || ^7.0",
1522
+ "phpspec/prophecy": "^1.6.2",
1523
+ "phpunit/php-code-coverage": "^4.0.4",
1524
+ "phpunit/php-file-iterator": "~1.4",
1525
+ "phpunit/php-text-template": "~1.2",
1526
+ "phpunit/php-timer": "^1.0.6",
1527
+ "phpunit/phpunit-mock-objects": "^3.2",
1528
+ "sebastian/comparator": "^1.2.4",
1529
+ "sebastian/diff": "^1.4.3",
1530
+ "sebastian/environment": "^1.3.4 || ^2.0",
1531
+ "sebastian/exporter": "~2.0",
1532
+ "sebastian/global-state": "^1.1",
1533
+ "sebastian/object-enumerator": "~2.0",
1534
+ "sebastian/resource-operations": "~1.0",
1535
+ "sebastian/version": "^1.0.6|^2.0.1",
1536
+ "symfony/yaml": "~2.1|~3.0|~4.0"
1537
+ },
1538
+ "conflict": {
1539
+ "phpdocumentor/reflection-docblock": "3.0.2"
1540
+ },
1541
+ "require-dev": {
1542
+ "ext-pdo": "*"
1543
+ },
1544
+ "suggest": {
1545
+ "ext-xdebug": "*",
1546
+ "phpunit/php-invoker": "~1.1"
1547
+ },
1548
+ "bin": [
1549
+ "phpunit"
1550
+ ],
1551
+ "type": "library",
1552
+ "extra": {
1553
+ "branch-alias": {
1554
+ "dev-master": "5.7.x-dev"
1555
+ }
1556
+ },
1557
+ "autoload": {
1558
+ "classmap": [
1559
+ "src/"
1560
+ ]
1561
+ },
1562
+ "notification-url": "https://packagist.org/downloads/",
1563
+ "license": [
1564
+ "BSD-3-Clause"
1565
+ ],
1566
+ "authors": [
1567
+ {
1568
+ "name": "Sebastian Bergmann",
1569
+ "email": "sebastian@phpunit.de",
1570
+ "role": "lead"
1571
+ }
1572
+ ],
1573
+ "description": "The PHP Unit Testing framework.",
1574
+ "homepage": "https://phpunit.de/",
1575
+ "keywords": [
1576
+ "phpunit",
1577
+ "testing",
1578
+ "xunit"
1579
+ ],
1580
+ "time": "2018-02-01T05:50:59+00:00"
1581
+ },
1582
+ {
1583
+ "name": "phpunit/phpunit-mock-objects",
1584
+ "version": "3.4.4",
1585
+ "source": {
1586
+ "type": "git",
1587
+ "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
1588
+ "reference": "a23b761686d50a560cc56233b9ecf49597cc9118"
1589
+ },
1590
+ "dist": {
1591
+ "type": "zip",
1592
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118",
1593
+ "reference": "a23b761686d50a560cc56233b9ecf49597cc9118",
1594
+ "shasum": ""
1595
+ },
1596
+ "require": {
1597
+ "doctrine/instantiator": "^1.0.2",
1598
+ "php": "^5.6 || ^7.0",
1599
+ "phpunit/php-text-template": "^1.2",
1600
+ "sebastian/exporter": "^1.2 || ^2.0"
1601
+ },
1602
+ "conflict": {
1603
+ "phpunit/phpunit": "<5.4.0"
1604
+ },
1605
+ "require-dev": {
1606
+ "phpunit/phpunit": "^5.4"
1607
+ },
1608
+ "suggest": {
1609
+ "ext-soap": "*"
1610
+ },
1611
+ "type": "library",
1612
+ "extra": {
1613
+ "branch-alias": {
1614
+ "dev-master": "3.2.x-dev"
1615
+ }
1616
+ },
1617
+ "autoload": {
1618
+ "classmap": [
1619
+ "src/"
1620
+ ]
1621
+ },
1622
+ "notification-url": "https://packagist.org/downloads/",
1623
+ "license": [
1624
+ "BSD-3-Clause"
1625
+ ],
1626
+ "authors": [
1627
+ {
1628
+ "name": "Sebastian Bergmann",
1629
+ "email": "sb@sebastian-bergmann.de",
1630
+ "role": "lead"
1631
+ }
1632
+ ],
1633
+ "description": "Mock Object library for PHPUnit",
1634
+ "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
1635
+ "keywords": [
1636
+ "mock",
1637
+ "xunit"
1638
+ ],
1639
+ "abandoned": true,
1640
+ "time": "2017-06-30T09:13:00+00:00"
1641
+ },
1642
+ {
1643
+ "name": "sebastian/code-unit-reverse-lookup",
1644
+ "version": "1.0.1",
1645
+ "source": {
1646
+ "type": "git",
1647
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
1648
+ "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
1649
+ },
1650
+ "dist": {
1651
+ "type": "zip",
1652
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
1653
+ "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
1654
+ "shasum": ""
1655
+ },
1656
+ "require": {
1657
+ "php": "^5.6 || ^7.0"
1658
+ },
1659
+ "require-dev": {
1660
+ "phpunit/phpunit": "^5.7 || ^6.0"
1661
+ },
1662
+ "type": "library",
1663
+ "extra": {
1664
+ "branch-alias": {
1665
+ "dev-master": "1.0.x-dev"
1666
+ }
1667
+ },
1668
+ "autoload": {
1669
+ "classmap": [
1670
+ "src/"
1671
+ ]
1672
+ },
1673
+ "notification-url": "https://packagist.org/downloads/",
1674
+ "license": [
1675
+ "BSD-3-Clause"
1676
+ ],
1677
+ "authors": [
1678
+ {
1679
+ "name": "Sebastian Bergmann",
1680
+ "email": "sebastian@phpunit.de"
1681
+ }
1682
+ ],
1683
+ "description": "Looks up which function or method a line of code belongs to",
1684
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
1685
+ "time": "2017-03-04T06:30:41+00:00"
1686
+ },
1687
+ {
1688
+ "name": "sebastian/comparator",
1689
+ "version": "1.2.4",
1690
+ "source": {
1691
+ "type": "git",
1692
+ "url": "https://github.com/sebastianbergmann/comparator.git",
1693
+ "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
1694
+ },
1695
+ "dist": {
1696
+ "type": "zip",
1697
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
1698
+ "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
1699
+ "shasum": ""
1700
+ },
1701
+ "require": {
1702
+ "php": ">=5.3.3",
1703
+ "sebastian/diff": "~1.2",
1704
+ "sebastian/exporter": "~1.2 || ~2.0"
1705
+ },
1706
+ "require-dev": {
1707
+ "phpunit/phpunit": "~4.4"
1708
+ },
1709
+ "type": "library",
1710
+ "extra": {
1711
+ "branch-alias": {
1712
+ "dev-master": "1.2.x-dev"
1713
+ }
1714
+ },
1715
+ "autoload": {
1716
+ "classmap": [
1717
+ "src/"
1718
+ ]
1719
+ },
1720
+ "notification-url": "https://packagist.org/downloads/",
1721
+ "license": [
1722
+ "BSD-3-Clause"
1723
+ ],
1724
+ "authors": [
1725
+ {
1726
+ "name": "Jeff Welch",
1727
+ "email": "whatthejeff@gmail.com"
1728
+ },
1729
+ {
1730
+ "name": "Volker Dusch",
1731
+ "email": "github@wallbash.com"
1732
+ },
1733
+ {
1734
+ "name": "Bernhard Schussek",
1735
+ "email": "bschussek@2bepublished.at"
1736
+ },
1737
+ {
1738
+ "name": "Sebastian Bergmann",
1739
+ "email": "sebastian@phpunit.de"
1740
+ }
1741
+ ],
1742
+ "description": "Provides the functionality to compare PHP values for equality",
1743
+ "homepage": "http://www.github.com/sebastianbergmann/comparator",
1744
+ "keywords": [
1745
+ "comparator",
1746
+ "compare",
1747
+ "equality"
1748
+ ],
1749
+ "time": "2017-01-29T09:50:25+00:00"
1750
+ },
1751
+ {
1752
+ "name": "sebastian/diff",
1753
+ "version": "1.4.3",
1754
+ "source": {
1755
+ "type": "git",
1756
+ "url": "https://github.com/sebastianbergmann/diff.git",
1757
+ "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4"
1758
+ },
1759
+ "dist": {
1760
+ "type": "zip",
1761
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4",
1762
+ "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4",
1763
+ "shasum": ""
1764
+ },
1765
+ "require": {
1766
+ "php": "^5.3.3 || ^7.0"
1767
+ },
1768
+ "require-dev": {
1769
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
1770
+ },
1771
+ "type": "library",
1772
+ "extra": {
1773
+ "branch-alias": {
1774
+ "dev-master": "1.4-dev"
1775
+ }
1776
+ },
1777
+ "autoload": {
1778
+ "classmap": [
1779
+ "src/"
1780
+ ]
1781
+ },
1782
+ "notification-url": "https://packagist.org/downloads/",
1783
+ "license": [
1784
+ "BSD-3-Clause"
1785
+ ],
1786
+ "authors": [
1787
+ {
1788
+ "name": "Kore Nordmann",
1789
+ "email": "mail@kore-nordmann.de"
1790
+ },
1791
+ {
1792
+ "name": "Sebastian Bergmann",
1793
+ "email": "sebastian@phpunit.de"
1794
+ }
1795
+ ],
1796
+ "description": "Diff implementation",
1797
+ "homepage": "https://github.com/sebastianbergmann/diff",
1798
+ "keywords": [
1799
+ "diff"
1800
+ ],
1801
+ "time": "2017-05-22T07:24:03+00:00"
1802
+ },
1803
+ {
1804
+ "name": "sebastian/environment",
1805
+ "version": "2.0.0",
1806
+ "source": {
1807
+ "type": "git",
1808
+ "url": "https://github.com/sebastianbergmann/environment.git",
1809
+ "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac"
1810
+ },
1811
+ "dist": {
1812
+ "type": "zip",
1813
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
1814
+ "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
1815
+ "shasum": ""
1816
+ },
1817
+ "require": {
1818
+ "php": "^5.6 || ^7.0"
1819
+ },
1820
+ "require-dev": {
1821
+ "phpunit/phpunit": "^5.0"
1822
+ },
1823
+ "type": "library",
1824
+ "extra": {
1825
+ "branch-alias": {
1826
+ "dev-master": "2.0.x-dev"
1827
+ }
1828
+ },
1829
+ "autoload": {
1830
+ "classmap": [
1831
+ "src/"
1832
+ ]
1833
+ },
1834
+ "notification-url": "https://packagist.org/downloads/",
1835
+ "license": [
1836
+ "BSD-3-Clause"
1837
+ ],
1838
+ "authors": [
1839
+ {
1840
+ "name": "Sebastian Bergmann",
1841
+ "email": "sebastian@phpunit.de"
1842
+ }
1843
+ ],
1844
+ "description": "Provides functionality to handle HHVM/PHP environments",
1845
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
1846
+ "keywords": [
1847
+ "Xdebug",
1848
+ "environment",
1849
+ "hhvm"
1850
+ ],
1851
+ "time": "2016-11-26T07:53:53+00:00"
1852
+ },
1853
+ {
1854
+ "name": "sebastian/exporter",
1855
+ "version": "2.0.0",
1856
+ "source": {
1857
+ "type": "git",
1858
+ "url": "https://github.com/sebastianbergmann/exporter.git",
1859
+ "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4"
1860
+ },
1861
+ "dist": {
1862
+ "type": "zip",
1863
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
1864
+ "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
1865
+ "shasum": ""
1866
+ },
1867
+ "require": {
1868
+ "php": ">=5.3.3",
1869
+ "sebastian/recursion-context": "~2.0"
1870
+ },
1871
+ "require-dev": {
1872
+ "ext-mbstring": "*",
1873
+ "phpunit/phpunit": "~4.4"
1874
+ },
1875
+ "type": "library",
1876
+ "extra": {
1877
+ "branch-alias": {
1878
+ "dev-master": "2.0.x-dev"
1879
+ }
1880
+ },
1881
+ "autoload": {
1882
+ "classmap": [
1883
+ "src/"
1884
+ ]
1885
+ },
1886
+ "notification-url": "https://packagist.org/downloads/",
1887
+ "license": [
1888
+ "BSD-3-Clause"
1889
+ ],
1890
+ "authors": [
1891
+ {
1892
+ "name": "Jeff Welch",
1893
+ "email": "whatthejeff@gmail.com"
1894
+ },
1895
+ {
1896
+ "name": "Volker Dusch",
1897
+ "email": "github@wallbash.com"
1898
+ },
1899
+ {
1900
+ "name": "Bernhard Schussek",
1901
+ "email": "bschussek@2bepublished.at"
1902
+ },
1903
+ {
1904
+ "name": "Sebastian Bergmann",
1905
+ "email": "sebastian@phpunit.de"
1906
+ },
1907
+ {
1908
+ "name": "Adam Harvey",
1909
+ "email": "aharvey@php.net"
1910
+ }
1911
+ ],
1912
+ "description": "Provides the functionality to export PHP variables for visualization",
1913
+ "homepage": "http://www.github.com/sebastianbergmann/exporter",
1914
+ "keywords": [
1915
+ "export",
1916
+ "exporter"
1917
+ ],
1918
+ "time": "2016-11-19T08:54:04+00:00"
1919
+ },
1920
+ {
1921
+ "name": "sebastian/global-state",
1922
+ "version": "1.1.1",
1923
+ "source": {
1924
+ "type": "git",
1925
+ "url": "https://github.com/sebastianbergmann/global-state.git",
1926
+ "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
1927
+ },
1928
+ "dist": {
1929
+ "type": "zip",
1930
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
1931
+ "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
1932
+ "shasum": ""
1933
+ },
1934
+ "require": {
1935
+ "php": ">=5.3.3"
1936
+ },
1937
+ "require-dev": {
1938
+ "phpunit/phpunit": "~4.2"
1939
+ },
1940
+ "suggest": {
1941
+ "ext-uopz": "*"
1942
+ },
1943
+ "type": "library",
1944
+ "extra": {
1945
+ "branch-alias": {
1946
+ "dev-master": "1.0-dev"
1947
+ }
1948
+ },
1949
+ "autoload": {
1950
+ "classmap": [
1951
+ "src/"
1952
+ ]
1953
+ },
1954
+ "notification-url": "https://packagist.org/downloads/",
1955
+ "license": [
1956
+ "BSD-3-Clause"
1957
+ ],
1958
+ "authors": [
1959
+ {
1960
+ "name": "Sebastian Bergmann",
1961
+ "email": "sebastian@phpunit.de"
1962
+ }
1963
+ ],
1964
+ "description": "Snapshotting of global state",
1965
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
1966
+ "keywords": [
1967
+ "global state"
1968
+ ],
1969
+ "time": "2015-10-12T03:26:01+00:00"
1970
+ },
1971
+ {
1972
+ "name": "sebastian/object-enumerator",
1973
+ "version": "2.0.1",
1974
+ "source": {
1975
+ "type": "git",
1976
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
1977
+ "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7"
1978
+ },
1979
+ "dist": {
1980
+ "type": "zip",
1981
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7",
1982
+ "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7",
1983
+ "shasum": ""
1984
+ },
1985
+ "require": {
1986
+ "php": ">=5.6",
1987
+ "sebastian/recursion-context": "~2.0"
1988
+ },
1989
+ "require-dev": {
1990
+ "phpunit/phpunit": "~5"
1991
+ },
1992
+ "type": "library",
1993
+ "extra": {
1994
+ "branch-alias": {
1995
+ "dev-master": "2.0.x-dev"
1996
+ }
1997
+ },
1998
+ "autoload": {
1999
+ "classmap": [
2000
+ "src/"
2001
+ ]
2002
+ },
2003
+ "notification-url": "https://packagist.org/downloads/",
2004
+ "license": [
2005
+ "BSD-3-Clause"
2006
+ ],
2007
+ "authors": [
2008
+ {
2009
+ "name": "Sebastian Bergmann",
2010
+ "email": "sebastian@phpunit.de"
2011
+ }
2012
+ ],
2013
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
2014
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
2015
+ "time": "2017-02-18T15:18:39+00:00"
2016
+ },
2017
+ {
2018
+ "name": "sebastian/recursion-context",
2019
+ "version": "2.0.0",
2020
+ "source": {
2021
+ "type": "git",
2022
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
2023
+ "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a"
2024
+ },
2025
+ "dist": {
2026
+ "type": "zip",
2027
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a",
2028
+ "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a",
2029
+ "shasum": ""
2030
+ },
2031
+ "require": {
2032
+ "php": ">=5.3.3"
2033
+ },
2034
+ "require-dev": {
2035
+ "phpunit/phpunit": "~4.4"
2036
+ },
2037
+ "type": "library",
2038
+ "extra": {
2039
+ "branch-alias": {
2040
+ "dev-master": "2.0.x-dev"
2041
+ }
2042
+ },
2043
+ "autoload": {
2044
+ "classmap": [
2045
+ "src/"
2046
+ ]
2047
+ },
2048
+ "notification-url": "https://packagist.org/downloads/",
2049
+ "license": [
2050
+ "BSD-3-Clause"
2051
+ ],
2052
+ "authors": [
2053
+ {
2054
+ "name": "Jeff Welch",
2055
+ "email": "whatthejeff@gmail.com"
2056
+ },
2057
+ {
2058
+ "name": "Sebastian Bergmann",
2059
+ "email": "sebastian@phpunit.de"
2060
+ },
2061
+ {
2062
+ "name": "Adam Harvey",
2063
+ "email": "aharvey@php.net"
2064
+ }
2065
+ ],
2066
+ "description": "Provides functionality to recursively process PHP variables",
2067
+ "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
2068
+ "time": "2016-11-19T07:33:16+00:00"
2069
+ },
2070
+ {
2071
+ "name": "sebastian/resource-operations",
2072
+ "version": "1.0.0",
2073
+ "source": {
2074
+ "type": "git",
2075
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
2076
+ "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
2077
+ },
2078
+ "dist": {
2079
+ "type": "zip",
2080
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
2081
+ "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
2082
+ "shasum": ""
2083
+ },
2084
+ "require": {
2085
+ "php": ">=5.6.0"
2086
+ },
2087
+ "type": "library",
2088
+ "extra": {
2089
+ "branch-alias": {
2090
+ "dev-master": "1.0.x-dev"
2091
+ }
2092
+ },
2093
+ "autoload": {
2094
+ "classmap": [
2095
+ "src/"
2096
+ ]
2097
+ },
2098
+ "notification-url": "https://packagist.org/downloads/",
2099
+ "license": [
2100
+ "BSD-3-Clause"
2101
+ ],
2102
+ "authors": [
2103
+ {
2104
+ "name": "Sebastian Bergmann",
2105
+ "email": "sebastian@phpunit.de"
2106
+ }
2107
+ ],
2108
+ "description": "Provides a list of PHP built-in functions that operate on resources",
2109
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
2110
+ "time": "2015-07-28T20:34:47+00:00"
2111
+ },
2112
+ {
2113
+ "name": "sebastian/version",
2114
+ "version": "2.0.1",
2115
+ "source": {
2116
+ "type": "git",
2117
+ "url": "https://github.com/sebastianbergmann/version.git",
2118
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
2119
+ },
2120
+ "dist": {
2121
+ "type": "zip",
2122
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
2123
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
2124
+ "shasum": ""
2125
+ },
2126
+ "require": {
2127
+ "php": ">=5.6"
2128
+ },
2129
+ "type": "library",
2130
+ "extra": {
2131
+ "branch-alias": {
2132
+ "dev-master": "2.0.x-dev"
2133
+ }
2134
+ },
2135
+ "autoload": {
2136
+ "classmap": [
2137
+ "src/"
2138
+ ]
2139
+ },
2140
+ "notification-url": "https://packagist.org/downloads/",
2141
+ "license": [
2142
+ "BSD-3-Clause"
2143
+ ],
2144
+ "authors": [
2145
+ {
2146
+ "name": "Sebastian Bergmann",
2147
+ "email": "sebastian@phpunit.de",
2148
+ "role": "lead"
2149
+ }
2150
+ ],
2151
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
2152
+ "homepage": "https://github.com/sebastianbergmann/version",
2153
+ "time": "2016-10-03T07:35:21+00:00"
2154
+ },
2155
+ {
2156
+ "name": "squizlabs/php_codesniffer",
2157
+ "version": "3.4.1",
2158
+ "source": {
2159
+ "type": "git",
2160
+ "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
2161
+ "reference": "5b4333b4010625d29580eb4a41f1e53251be6baa"
2162
+ },
2163
+ "dist": {
2164
+ "type": "zip",
2165
+ "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/5b4333b4010625d29580eb4a41f1e53251be6baa",
2166
+ "reference": "5b4333b4010625d29580eb4a41f1e53251be6baa",
2167
+ "shasum": ""
2168
+ },
2169
+ "require": {
2170
+ "ext-simplexml": "*",
2171
+ "ext-tokenizer": "*",
2172
+ "ext-xmlwriter": "*",
2173
+ "php": ">=5.4.0"
2174
+ },
2175
+ "require-dev": {
2176
+ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
2177
+ },
2178
+ "bin": [
2179
+ "bin/phpcs",
2180
+ "bin/phpcbf"
2181
+ ],
2182
+ "type": "library",
2183
+ "extra": {
2184
+ "branch-alias": {
2185
+ "dev-master": "3.x-dev"
2186
+ }
2187
+ },
2188
+ "notification-url": "https://packagist.org/downloads/",
2189
+ "license": [
2190
+ "BSD-3-Clause"
2191
+ ],
2192
+ "authors": [
2193
+ {
2194
+ "name": "Greg Sherwood",
2195
+ "role": "lead"
2196
+ }
2197
+ ],
2198
+ "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
2199
+ "homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
2200
+ "keywords": [
2201
+ "phpcs",
2202
+ "standards"
2203
+ ],
2204
+ "time": "2019-03-19T03:22:27+00:00"
2205
+ },
2206
+ {
2207
+ "name": "symfony/polyfill-ctype",
2208
+ "version": "v1.11.0",
2209
+ "source": {
2210
+ "type": "git",
2211
+ "url": "https://github.com/symfony/polyfill-ctype.git",
2212
+ "reference": "82ebae02209c21113908c229e9883c419720738a"
2213
+ },
2214
+ "dist": {
2215
+ "type": "zip",
2216
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a",
2217
+ "reference": "82ebae02209c21113908c229e9883c419720738a",
2218
+ "shasum": ""
2219
+ },
2220
+ "require": {
2221
+ "php": ">=5.3.3"
2222
+ },
2223
+ "suggest": {
2224
+ "ext-ctype": "For best performance"
2225
+ },
2226
+ "type": "library",
2227
+ "extra": {
2228
+ "branch-alias": {
2229
+ "dev-master": "1.11-dev"
2230
+ }
2231
+ },
2232
+ "autoload": {
2233
+ "psr-4": {
2234
+ "Symfony\\Polyfill\\Ctype\\": ""
2235
+ },
2236
+ "files": [
2237
+ "bootstrap.php"
2238
+ ]
2239
+ },
2240
+ "notification-url": "https://packagist.org/downloads/",
2241
+ "license": [
2242
+ "MIT"
2243
+ ],
2244
+ "authors": [
2245
+ {
2246
+ "name": "Symfony Community",
2247
+ "homepage": "https://symfony.com/contributors"
2248
+ },
2249
+ {
2250
+ "name": "Gert de Pagter",
2251
+ "email": "backendtea@gmail.com"
2252
+ }
2253
+ ],
2254
+ "description": "Symfony polyfill for ctype functions",
2255
+ "homepage": "https://symfony.com",
2256
+ "keywords": [
2257
+ "compatibility",
2258
+ "ctype",
2259
+ "polyfill",
2260
+ "portable"
2261
+ ],
2262
+ "time": "2019-02-06T07:57:58+00:00"
2263
+ },
2264
+ {
2265
+ "name": "symfony/yaml",
2266
+ "version": "v3.4.24",
2267
+ "source": {
2268
+ "type": "git",
2269
+ "url": "https://github.com/symfony/yaml.git",
2270
+ "reference": "212a27b731e5bfb735679d1ffaac82bd6a1dc996"
2271
+ },
2272
+ "dist": {
2273
+ "type": "zip",
2274
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/212a27b731e5bfb735679d1ffaac82bd6a1dc996",
2275
+ "reference": "212a27b731e5bfb735679d1ffaac82bd6a1dc996",
2276
+ "shasum": ""
2277
+ },
2278
+ "require": {
2279
+ "php": "^5.5.9|>=7.0.8",
2280
+ "symfony/polyfill-ctype": "~1.8"
2281
+ },
2282
+ "conflict": {
2283
+ "symfony/console": "<3.4"
2284
+ },
2285
+ "require-dev": {
2286
+ "symfony/console": "~3.4|~4.0"
2287
+ },
2288
+ "suggest": {
2289
+ "symfony/console": "For validating YAML files using the lint command"
2290
+ },
2291
+ "type": "library",
2292
+ "extra": {
2293
+ "branch-alias": {
2294
+ "dev-master": "3.4-dev"
2295
+ }
2296
+ },
2297
+ "autoload": {
2298
+ "psr-4": {
2299
+ "Symfony\\Component\\Yaml\\": ""
2300
+ },
2301
+ "exclude-from-classmap": [
2302
+ "/Tests/"
2303
+ ]
2304
+ },
2305
+ "notification-url": "https://packagist.org/downloads/",
2306
+ "license": [
2307
+ "MIT"
2308
+ ],
2309
+ "authors": [
2310
+ {
2311
+ "name": "Fabien Potencier",
2312
+ "email": "fabien@symfony.com"
2313
+ },
2314
+ {
2315
+ "name": "Symfony Community",
2316
+ "homepage": "https://symfony.com/contributors"
2317
+ }
2318
+ ],
2319
+ "description": "Symfony Yaml Component",
2320
+ "homepage": "https://symfony.com",
2321
+ "time": "2019-03-25T07:48:46+00:00"
2322
+ },
2323
+ {
2324
+ "name": "webmozart/assert",
2325
+ "version": "1.4.0",
2326
+ "source": {
2327
+ "type": "git",
2328
+ "url": "https://github.com/webmozart/assert.git",
2329
+ "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9"
2330
+ },
2331
+ "dist": {
2332
+ "type": "zip",
2333
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9",
2334
+ "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9",
2335
+ "shasum": ""
2336
+ },
2337
+ "require": {
2338
+ "php": "^5.3.3 || ^7.0",
2339
+ "symfony/polyfill-ctype": "^1.8"
2340
+ },
2341
+ "require-dev": {
2342
+ "phpunit/phpunit": "^4.6",
2343
+ "sebastian/version": "^1.0.1"
2344
+ },
2345
+ "type": "library",
2346
+ "extra": {
2347
+ "branch-alias": {
2348
+ "dev-master": "1.3-dev"
2349
+ }
2350
+ },
2351
+ "autoload": {
2352
+ "psr-4": {
2353
+ "Webmozart\\Assert\\": "src/"
2354
+ }
2355
+ },
2356
+ "notification-url": "https://packagist.org/downloads/",
2357
+ "license": [
2358
+ "MIT"
2359
+ ],
2360
+ "authors": [
2361
+ {
2362
+ "name": "Bernhard Schussek",
2363
+ "email": "bschussek@gmail.com"
2364
+ }
2365
+ ],
2366
+ "description": "Assertions to validate method input/output with nice error messages.",
2367
+ "keywords": [
2368
+ "assert",
2369
+ "check",
2370
+ "validate"
2371
+ ],
2372
+ "time": "2018-12-25T11:19:39+00:00"
2373
+ },
2374
+ {
2375
+ "name": "wp-coding-standards/wpcs",
2376
+ "version": "0.14.1",
2377
+ "source": {
2378
+ "type": "git",
2379
+ "url": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git",
2380
+ "reference": "cf6b310caad735816caef7573295f8a534374706"
2381
+ },
2382
+ "dist": {
2383
+ "type": "zip",
2384
+ "url": "https://api.github.com/repos/WordPress-Coding-Standards/WordPress-Coding-Standards/zipball/cf6b310caad735816caef7573295f8a534374706",
2385
+ "reference": "cf6b310caad735816caef7573295f8a534374706",
2386
+ "shasum": ""
2387
+ },
2388
+ "require": {
2389
+ "php": ">=5.3",
2390
+ "squizlabs/php_codesniffer": "^2.9.0 || ^3.0.2"
2391
+ },
2392
+ "suggest": {
2393
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3"
2394
+ },
2395
+ "type": "phpcodesniffer-standard",
2396
+ "notification-url": "https://packagist.org/downloads/",
2397
+ "license": [
2398
+ "MIT"
2399
+ ],
2400
+ "authors": [
2401
+ {
2402
+ "name": "Contributors",
2403
+ "homepage": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/graphs/contributors"
2404
+ }
2405
+ ],
2406
+ "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions",
2407
+ "keywords": [
2408
+ "phpcs",
2409
+ "standards",
2410
+ "wordpress"
2411
+ ],
2412
+ "time": "2018-02-16T01:57:48+00:00"
2413
+ }
2414
+ ],
2415
+ "aliases": [],
2416
+ "minimum-stability": "dev",
2417
+ "stability-flags": [],
2418
+ "prefer-stable": true,
2419
+ "prefer-lowest": false,
2420
+ "platform": {
2421
+ "php": ">=5.6"
2422
+ },
2423
+ "platform-dev": []
2424
+ }
flexible-shipping.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Flexible Shipping
4
  Plugin URI: https://wordpress.org/plugins/flexible-shipping/
5
  Description: Create additional shipment methods in WooCommerce and enable pricing based on cart weight or total.
6
- Version: 3.3.2
7
  Author: WP Desk
8
  Author URI: https://www.wpdesk.net/
9
  Text Domain: flexible-shipping
@@ -42,11 +42,9 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
42
  require_once dirname( __FILE__ ) . '/vendor/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker.php';
43
  }
44
 
45
-
46
  /* THESE TWO VARIABLES CAN BE CHANGED AUTOMATICALLY */
47
-
48
- $plugin_version = '3.3.2';
49
- $plugin_release_timestamp = '2019-04-02';
50
 
51
  $plugin_name = 'Flexible Shipping';
52
  $plugin_class_name = 'Flexible_Shipping_Plugin';
3
  Plugin Name: Flexible Shipping
4
  Plugin URI: https://wordpress.org/plugins/flexible-shipping/
5
  Description: Create additional shipment methods in WooCommerce and enable pricing based on cart weight or total.
6
+ Version: 3.3.3
7
  Author: WP Desk
8
  Author URI: https://www.wpdesk.net/
9
  Text Domain: flexible-shipping
42
  require_once dirname( __FILE__ ) . '/vendor/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker.php';
43
  }
44
 
 
45
  /* THESE TWO VARIABLES CAN BE CHANGED AUTOMATICALLY */
46
+ $plugin_version = '3.3.3';
47
+ $plugin_release_timestamp = '2019-04-04';
 
48
 
49
  $plugin_name = 'Flexible Shipping';
50
  $plugin_class_name = 'Flexible_Shipping_Plugin';
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://flexibleshipping.com/table-rate/
4
  Tags: table rate, table rate shipping, woocommerce shipping, flexible shipping, woocommerce table rate shipping, cart based shipping, weight shipping, weight based shipping, totals based shipping, order based shipping, shipping zones, shipping classes
5
  Requires at least: 4.5
6
  Tested up to: 5.1.0
7
- Stable tag: 3.3.2
8
  Requires PHP: 5.6
9
  License: GPLv3 or later
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
@@ -175,14 +175,18 @@ If you are upgrading from the old Flexible Shipping version (1.3.2, woo-flexible
175
 
176
  == Changelog ==
177
 
178
- 3.3.2
 
 
 
 
179
  * Fixed weight calculation for float weight values
180
  * Conditional logic on fields in order meta box
181
 
182
- 3.3.1 - 2019-04-01
183
  * Fixed CSV import with multiple shipping classes
184
 
185
- 3.3.0 - 2019-03-19
186
  * Added support for EDT (Electronic Trade Documents)
187
 
188
  = 3.2.0 - 2019-03-11 =
4
  Tags: table rate, table rate shipping, woocommerce shipping, flexible shipping, woocommerce table rate shipping, cart based shipping, weight shipping, weight based shipping, totals based shipping, order based shipping, shipping zones, shipping classes
5
  Requires at least: 4.5
6
  Tested up to: 5.1.0
7
+ Stable tag: 3.3.3
8
  Requires PHP: 5.6
9
  License: GPLv3 or later
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
175
 
176
  == Changelog ==
177
 
178
+ = 3.3.3 - 2019-04-04 =
179
+ * Fixed notices in order meta box
180
+ * Fixed changelog entries
181
+
182
+ = 3.3.2 - 2019-04-02 =
183
  * Fixed weight calculation for float weight values
184
  * Conditional logic on fields in order meta box
185
 
186
+ = 3.3.1 - 2019-04-01 =
187
  * Fixed CSV import with multiple shipping classes
188
 
189
+ = 3.3.0 - 2019-03-19 =
190
  * Added support for EDT (Electronic Trade Documents)
191
 
192
  = 3.2.0 - 2019-03-11 =
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInitaafcce658bff0f6e1b833865f9ebd08f::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit8a4e70223d7dc54e60bb6eb464631f2f::getLoader();
vendor/composer/autoload_classmap.php CHANGED
@@ -6,97 +6,6 @@ $vendorDir = dirname(dirname(__FILE__));
6
  $baseDir = dirname($vendorDir);
7
 
8
  return array(
9
- 'Browser' => $vendorDir . '/wpdesk/wp-settings/source/modules/sysinfo/browser.php',
10
- 'Composer\\Installers\\AglInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AglInstaller.php',
11
- 'Composer\\Installers\\AimeosInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
12
- 'Composer\\Installers\\AnnotateCmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
13
- 'Composer\\Installers\\AsgardInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AsgardInstaller.php',
14
- 'Composer\\Installers\\AttogramInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AttogramInstaller.php',
15
- 'Composer\\Installers\\BaseInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/BaseInstaller.php',
16
- 'Composer\\Installers\\BitrixInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/BitrixInstaller.php',
17
- 'Composer\\Installers\\BonefishInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/BonefishInstaller.php',
18
- 'Composer\\Installers\\CakePHPInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CakePHPInstaller.php',
19
- 'Composer\\Installers\\ChefInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ChefInstaller.php',
20
- 'Composer\\Installers\\CiviCrmInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CiviCrmInstaller.php',
21
- 'Composer\\Installers\\ClanCatsFrameworkInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php',
22
- 'Composer\\Installers\\CockpitInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CockpitInstaller.php',
23
- 'Composer\\Installers\\CodeIgniterInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php',
24
- 'Composer\\Installers\\Concrete5Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Concrete5Installer.php',
25
- 'Composer\\Installers\\CraftInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CraftInstaller.php',
26
- 'Composer\\Installers\\CroogoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CroogoInstaller.php',
27
- 'Composer\\Installers\\DecibelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DecibelInstaller.php',
28
- 'Composer\\Installers\\DokuWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DokuWikiInstaller.php',
29
- 'Composer\\Installers\\DolibarrInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DolibarrInstaller.php',
30
- 'Composer\\Installers\\DrupalInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DrupalInstaller.php',
31
- 'Composer\\Installers\\ElggInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ElggInstaller.php',
32
- 'Composer\\Installers\\EliasisInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/EliasisInstaller.php',
33
- 'Composer\\Installers\\ExpressionEngineInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php',
34
- 'Composer\\Installers\\EzPlatformInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/EzPlatformInstaller.php',
35
- 'Composer\\Installers\\FuelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/FuelInstaller.php',
36
- 'Composer\\Installers\\FuelphpInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/FuelphpInstaller.php',
37
- 'Composer\\Installers\\GravInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/GravInstaller.php',
38
- 'Composer\\Installers\\HuradInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/HuradInstaller.php',
39
- 'Composer\\Installers\\ImageCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ImageCMSInstaller.php',
40
- 'Composer\\Installers\\Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Installer.php',
41
- 'Composer\\Installers\\ItopInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ItopInstaller.php',
42
- 'Composer\\Installers\\JoomlaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/JoomlaInstaller.php',
43
- 'Composer\\Installers\\KanboardInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KanboardInstaller.php',
44
- 'Composer\\Installers\\KirbyInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KirbyInstaller.php',
45
- 'Composer\\Installers\\KodiCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KodiCMSInstaller.php',
46
- 'Composer\\Installers\\KohanaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KohanaInstaller.php',
47
- 'Composer\\Installers\\LanManagementSystemInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php',
48
- 'Composer\\Installers\\LaravelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LaravelInstaller.php',
49
- 'Composer\\Installers\\LavaLiteInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LavaLiteInstaller.php',
50
- 'Composer\\Installers\\LithiumInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LithiumInstaller.php',
51
- 'Composer\\Installers\\MODULEWorkInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php',
52
- 'Composer\\Installers\\MODXEvoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MODXEvoInstaller.php',
53
- 'Composer\\Installers\\MagentoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MagentoInstaller.php',
54
- 'Composer\\Installers\\MajimaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MajimaInstaller.php',
55
- 'Composer\\Installers\\MakoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MakoInstaller.php',
56
- 'Composer\\Installers\\MauticInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MauticInstaller.php',
57
- 'Composer\\Installers\\MayaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MayaInstaller.php',
58
- 'Composer\\Installers\\MediaWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php',
59
- 'Composer\\Installers\\MicroweberInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MicroweberInstaller.php',
60
- 'Composer\\Installers\\ModxInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ModxInstaller.php',
61
- 'Composer\\Installers\\MoodleInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MoodleInstaller.php',
62
- 'Composer\\Installers\\OctoberInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OctoberInstaller.php',
63
- 'Composer\\Installers\\OntoWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OntoWikiInstaller.php',
64
- 'Composer\\Installers\\OsclassInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
65
- 'Composer\\Installers\\OxidInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
66
- 'Composer\\Installers\\PPIInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
67
- 'Composer\\Installers\\PhiftyInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
68
- 'Composer\\Installers\\PhpBBInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
69
- 'Composer\\Installers\\PimcoreInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
70
- 'Composer\\Installers\\PiwikInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PiwikInstaller.php',
71
- 'Composer\\Installers\\PlentymarketsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php',
72
- 'Composer\\Installers\\Plugin' => $vendorDir . '/composer/installers/src/Composer/Installers/Plugin.php',
73
- 'Composer\\Installers\\PortoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PortoInstaller.php',
74
- 'Composer\\Installers\\PrestashopInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PrestashopInstaller.php',
75
- 'Composer\\Installers\\PuppetInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PuppetInstaller.php',
76
- 'Composer\\Installers\\PxcmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PxcmsInstaller.php',
77
- 'Composer\\Installers\\RadPHPInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/RadPHPInstaller.php',
78
- 'Composer\\Installers\\ReIndexInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ReIndexInstaller.php',
79
- 'Composer\\Installers\\RedaxoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/RedaxoInstaller.php',
80
- 'Composer\\Installers\\RoundcubeInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/RoundcubeInstaller.php',
81
- 'Composer\\Installers\\SMFInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SMFInstaller.php',
82
- 'Composer\\Installers\\ShopwareInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php',
83
- 'Composer\\Installers\\SilverStripeInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php',
84
- 'Composer\\Installers\\SiteDirectInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SiteDirectInstaller.php',
85
- 'Composer\\Installers\\SyDESInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SyDESInstaller.php',
86
- 'Composer\\Installers\\Symfony1Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Symfony1Installer.php',
87
- 'Composer\\Installers\\TYPO3CmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php',
88
- 'Composer\\Installers\\TYPO3FlowInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php',
89
- 'Composer\\Installers\\TheliaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TheliaInstaller.php',
90
- 'Composer\\Installers\\TuskInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TuskInstaller.php',
91
- 'Composer\\Installers\\UserFrostingInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/UserFrostingInstaller.php',
92
- 'Composer\\Installers\\VanillaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/VanillaInstaller.php',
93
- 'Composer\\Installers\\VgmcpInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/VgmcpInstaller.php',
94
- 'Composer\\Installers\\WHMCSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WHMCSInstaller.php',
95
- 'Composer\\Installers\\WolfCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php',
96
- 'Composer\\Installers\\WordPressInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WordPressInstaller.php',
97
- 'Composer\\Installers\\YawikInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
98
- 'Composer\\Installers\\ZendInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZendInstaller.php',
99
- 'Composer\\Installers\\ZikulaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php',
100
  'Flexible_Shipping_Plugin' => $baseDir . '/classes/class-flexible-shipping-plugin.php',
101
  'Money\\Calculator' => $vendorDir . '/moneyphp/money/src/Calculator.php',
102
  'Money\\Calculator\\BcMathCalculator' => $vendorDir . '/moneyphp/money/src/Calculator/BcMathCalculator.php',
@@ -245,10 +154,6 @@ return array(
245
  'Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php',
246
  'Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php',
247
  'Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php',
248
- 'S214_License' => $vendorDir . '/wpdesk/wp-settings/source/modules/licensing/class.s214-license.php',
249
- 'S214_Plugin_Updater' => $vendorDir . '/wpdesk/wp-settings/source/modules/licensing/S214_Plugin_Updater.php',
250
- 'S214_Settings' => $vendorDir . '/wpdesk/wp-settings/source/class.s214-settings.php',
251
- 'S214_Sysinfo' => $vendorDir . '/wpdesk/wp-settings/source/modules/sysinfo/class.s214-sysinfo.php',
252
  'WPDesk\\ABTesting\\ABTest' => $vendorDir . '/wpdesk/wp-abtesting/src/ABTest.php',
253
  'WPDesk\\ABTesting\\ABTest\\EqualGroupsRandomABTest' => $vendorDir . '/wpdesk/wp-abtesting/src/ABTest/EqualGroupsRandomABTest.php',
254
  'WPDesk\\ABTesting\\ABVariant' => $vendorDir . '/wpdesk/wp-abtesting/src/ABVariant.php',
@@ -532,7 +437,6 @@ return array(
532
  'WPDesk_Flexible_Shipping_Tracker' => $baseDir . '/classes/tracker.php',
533
  'WPDesk_Flexible_Shipping_UK_States' => $baseDir . '/classes/class-uk-states.php',
534
  'WPDesk_Flexible_Shipping_WooCommerce_Context_Logger' => $baseDir . '/classes/logger/class-woocommerce-context-logger.php',
535
- 'WPDesk_S214_Settings' => $vendorDir . '/wpdesk/wp-settings/source/class.wpdesk-s214-settings.php',
536
  'WPDesk_Tracker' => $baseDir . '/inc/wpdesk-tracker/class-wpdesk-tracker.php',
537
  'WPDesk_Tracker_Data_Provider' => $baseDir . '/inc/wpdesk-tracker/data_provider/class-wpdesk-tracker-data-provider.php',
538
  'WPDesk_Tracker_Data_Provider_Gateways' => $baseDir . '/inc/wpdesk-tracker/data_provider/class-wpdesk-tracker-data-provider-gateways.php',
@@ -561,5 +465,4 @@ return array(
561
  'WPDesk_Tracker_Sender_Exception_WpError' => $baseDir . '/inc/wpdesk-tracker/sender/Exception/class-wpdesk-tracker-sender-exception-wperror.php',
562
  'WPDesk_Tracker_Sender_Logged' => $baseDir . '/inc/wpdesk-tracker/sender/class-wpdesk-tracker-sender-logged.php',
563
  'WPDesk_Tracker_Sender_Wordpress_To_WPDesk' => $baseDir . '/inc/wpdesk-tracker/sender/class-wpdesk-tracker-sender-wordpress-to-wpdesk.php',
564
- 'WPDesk_WP_Settings' => $vendorDir . '/wpdesk/wp-settings/source/class.wpdesk-wp-settings.php',
565
  );
6
  $baseDir = dirname($vendorDir);
7
 
8
  return array(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  'Flexible_Shipping_Plugin' => $baseDir . '/classes/class-flexible-shipping-plugin.php',
10
  'Money\\Calculator' => $vendorDir . '/moneyphp/money/src/Calculator.php',
11
  'Money\\Calculator\\BcMathCalculator' => $vendorDir . '/moneyphp/money/src/Calculator/BcMathCalculator.php',
154
  'Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php',
155
  'Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php',
156
  'Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php',
 
 
 
 
157
  'WPDesk\\ABTesting\\ABTest' => $vendorDir . '/wpdesk/wp-abtesting/src/ABTest.php',
158
  'WPDesk\\ABTesting\\ABTest\\EqualGroupsRandomABTest' => $vendorDir . '/wpdesk/wp-abtesting/src/ABTest/EqualGroupsRandomABTest.php',
159
  'WPDesk\\ABTesting\\ABVariant' => $vendorDir . '/wpdesk/wp-abtesting/src/ABVariant.php',
437
  'WPDesk_Flexible_Shipping_Tracker' => $baseDir . '/classes/tracker.php',
438
  'WPDesk_Flexible_Shipping_UK_States' => $baseDir . '/classes/class-uk-states.php',
439
  'WPDesk_Flexible_Shipping_WooCommerce_Context_Logger' => $baseDir . '/classes/logger/class-woocommerce-context-logger.php',
 
440
  'WPDesk_Tracker' => $baseDir . '/inc/wpdesk-tracker/class-wpdesk-tracker.php',
441
  'WPDesk_Tracker_Data_Provider' => $baseDir . '/inc/wpdesk-tracker/data_provider/class-wpdesk-tracker-data-provider.php',
442
  'WPDesk_Tracker_Data_Provider_Gateways' => $baseDir . '/inc/wpdesk-tracker/data_provider/class-wpdesk-tracker-data-provider-gateways.php',
465
  'WPDesk_Tracker_Sender_Exception_WpError' => $baseDir . '/inc/wpdesk-tracker/sender/Exception/class-wpdesk-tracker-sender-exception-wperror.php',
466
  'WPDesk_Tracker_Sender_Logged' => $baseDir . '/inc/wpdesk-tracker/sender/class-wpdesk-tracker-sender-logged.php',
467
  'WPDesk_Tracker_Sender_Wordpress_To_WPDesk' => $baseDir . '/inc/wpdesk-tracker/sender/class-wpdesk-tracker-sender-wordpress-to-wpdesk.php',
 
468
  );
vendor/composer/autoload_psr4.php CHANGED
@@ -18,5 +18,4 @@ return array(
18
  'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
19
  'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
20
  'Money\\' => array($vendorDir . '/moneyphp/money/src'),
21
- 'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'),
22
  );
18
  'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
19
  'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
20
  'Money\\' => array($vendorDir . '/moneyphp/money/src'),
 
21
  );
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInitaafcce658bff0f6e1b833865f9ebd08f
6
  {
7
  private static $loader;
8
 
@@ -19,15 +19,15 @@ class ComposerAutoloaderInitaafcce658bff0f6e1b833865f9ebd08f
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitaafcce658bff0f6e1b833865f9ebd08f', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitaafcce658bff0f6e1b833865f9ebd08f', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
- call_user_func(\Composer\Autoload\ComposerStaticInitaafcce658bff0f6e1b833865f9ebd08f::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
@@ -48,19 +48,19 @@ class ComposerAutoloaderInitaafcce658bff0f6e1b833865f9ebd08f
48
  $loader->register(true);
49
 
50
  if ($useStaticLoader) {
51
- $includeFiles = Composer\Autoload\ComposerStaticInitaafcce658bff0f6e1b833865f9ebd08f::$files;
52
  } else {
53
  $includeFiles = require __DIR__ . '/autoload_files.php';
54
  }
55
  foreach ($includeFiles as $fileIdentifier => $file) {
56
- composerRequireaafcce658bff0f6e1b833865f9ebd08f($fileIdentifier, $file);
57
  }
58
 
59
  return $loader;
60
  }
61
  }
62
 
63
- function composerRequireaafcce658bff0f6e1b833865f9ebd08f($fileIdentifier, $file)
64
  {
65
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
66
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit8a4e70223d7dc54e60bb6eb464631f2f
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit8a4e70223d7dc54e60bb6eb464631f2f', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit8a4e70223d7dc54e60bb6eb464631f2f', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
+ call_user_func(\Composer\Autoload\ComposerStaticInit8a4e70223d7dc54e60bb6eb464631f2f::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
48
  $loader->register(true);
49
 
50
  if ($useStaticLoader) {
51
+ $includeFiles = Composer\Autoload\ComposerStaticInit8a4e70223d7dc54e60bb6eb464631f2f::$files;
52
  } else {
53
  $includeFiles = require __DIR__ . '/autoload_files.php';
54
  }
55
  foreach ($includeFiles as $fileIdentifier => $file) {
56
+ composerRequire8a4e70223d7dc54e60bb6eb464631f2f($fileIdentifier, $file);
57
  }
58
 
59
  return $loader;
60
  }
61
  }
62
 
63
+ function composerRequire8a4e70223d7dc54e60bb6eb464631f2f($fileIdentifier, $file)
64
  {
65
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
66
  require $file;
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInitaafcce658bff0f6e1b833865f9ebd08f
8
  {
9
  public static $files = array (
10
  '46ae4ad8c3479aabff48f598a0e4b93f' => __DIR__ . '/..' . '/wpdesk/wp-mutex/src/WPDesk/functions.php',
@@ -33,10 +33,6 @@ class ComposerStaticInitaafcce658bff0f6e1b833865f9ebd08f
33
  'Monolog\\' => 8,
34
  'Money\\' => 6,
35
  ),
36
- 'C' =>
37
- array (
38
- 'Composer\\Installers\\' => 20,
39
- ),
40
  );
41
 
42
  public static $prefixDirsPsr4 = array (
@@ -88,104 +84,9 @@ class ComposerStaticInitaafcce658bff0f6e1b833865f9ebd08f
88
  array (
89
  0 => __DIR__ . '/..' . '/moneyphp/money/src',
90
  ),
91
- 'Composer\\Installers\\' =>
92
- array (
93
- 0 => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers',
94
- ),
95
  );
96
 
97
  public static $classMap = array (
98
- 'Browser' => __DIR__ . '/..' . '/wpdesk/wp-settings/source/modules/sysinfo/browser.php',
99
- 'Composer\\Installers\\AglInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AglInstaller.php',
100
- 'Composer\\Installers\\AimeosInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
101
- 'Composer\\Installers\\AnnotateCmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
102
- 'Composer\\Installers\\AsgardInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AsgardInstaller.php',
103
- 'Composer\\Installers\\AttogramInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AttogramInstaller.php',
104
- 'Composer\\Installers\\BaseInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/BaseInstaller.php',
105
- 'Composer\\Installers\\BitrixInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/BitrixInstaller.php',
106
- 'Composer\\Installers\\BonefishInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/BonefishInstaller.php',
107
- 'Composer\\Installers\\CakePHPInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CakePHPInstaller.php',
108
- 'Composer\\Installers\\ChefInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ChefInstaller.php',
109
- 'Composer\\Installers\\CiviCrmInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CiviCrmInstaller.php',
110
- 'Composer\\Installers\\ClanCatsFrameworkInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php',
111
- 'Composer\\Installers\\CockpitInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CockpitInstaller.php',
112
- 'Composer\\Installers\\CodeIgniterInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php',
113
- 'Composer\\Installers\\Concrete5Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Concrete5Installer.php',
114
- 'Composer\\Installers\\CraftInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CraftInstaller.php',
115
- 'Composer\\Installers\\CroogoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CroogoInstaller.php',
116
- 'Composer\\Installers\\DecibelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DecibelInstaller.php',
117
- 'Composer\\Installers\\DokuWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DokuWikiInstaller.php',
118
- 'Composer\\Installers\\DolibarrInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DolibarrInstaller.php',
119
- 'Composer\\Installers\\DrupalInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DrupalInstaller.php',
120
- 'Composer\\Installers\\ElggInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ElggInstaller.php',
121
- 'Composer\\Installers\\EliasisInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/EliasisInstaller.php',
122
- 'Composer\\Installers\\ExpressionEngineInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php',
123
- 'Composer\\Installers\\EzPlatformInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/EzPlatformInstaller.php',
124
- 'Composer\\Installers\\FuelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/FuelInstaller.php',
125
- 'Composer\\Installers\\FuelphpInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/FuelphpInstaller.php',
126
- 'Composer\\Installers\\GravInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/GravInstaller.php',
127
- 'Composer\\Installers\\HuradInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/HuradInstaller.php',
128
- 'Composer\\Installers\\ImageCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ImageCMSInstaller.php',
129
- 'Composer\\Installers\\Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Installer.php',
130
- 'Composer\\Installers\\ItopInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ItopInstaller.php',
131
- 'Composer\\Installers\\JoomlaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/JoomlaInstaller.php',
132
- 'Composer\\Installers\\KanboardInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KanboardInstaller.php',
133
- 'Composer\\Installers\\KirbyInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KirbyInstaller.php',
134
- 'Composer\\Installers\\KodiCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KodiCMSInstaller.php',
135
- 'Composer\\Installers\\KohanaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KohanaInstaller.php',
136
- 'Composer\\Installers\\LanManagementSystemInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php',
137
- 'Composer\\Installers\\LaravelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LaravelInstaller.php',
138
- 'Composer\\Installers\\LavaLiteInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LavaLiteInstaller.php',
139
- 'Composer\\Installers\\LithiumInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LithiumInstaller.php',
140
- 'Composer\\Installers\\MODULEWorkInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php',
141
- 'Composer\\Installers\\MODXEvoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MODXEvoInstaller.php',
142
- 'Composer\\Installers\\MagentoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MagentoInstaller.php',
143
- 'Composer\\Installers\\MajimaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MajimaInstaller.php',
144
- 'Composer\\Installers\\MakoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MakoInstaller.php',
145
- 'Composer\\Installers\\MauticInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MauticInstaller.php',
146
- 'Composer\\Installers\\MayaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MayaInstaller.php',
147
- 'Composer\\Installers\\MediaWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php',
148
- 'Composer\\Installers\\MicroweberInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MicroweberInstaller.php',
149
- 'Composer\\Installers\\ModxInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ModxInstaller.php',
150
- 'Composer\\Installers\\MoodleInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MoodleInstaller.php',
151
- 'Composer\\Installers\\OctoberInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OctoberInstaller.php',
152
- 'Composer\\Installers\\OntoWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OntoWikiInstaller.php',
153
- 'Composer\\Installers\\OsclassInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
154
- 'Composer\\Installers\\OxidInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
155
- 'Composer\\Installers\\PPIInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
156
- 'Composer\\Installers\\PhiftyInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
157
- 'Composer\\Installers\\PhpBBInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
158
- 'Composer\\Installers\\PimcoreInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
159
- 'Composer\\Installers\\PiwikInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PiwikInstaller.php',
160
- 'Composer\\Installers\\PlentymarketsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php',
161
- 'Composer\\Installers\\Plugin' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Plugin.php',
162
- 'Composer\\Installers\\PortoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PortoInstaller.php',
163
- 'Composer\\Installers\\PrestashopInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PrestashopInstaller.php',
164
- 'Composer\\Installers\\PuppetInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PuppetInstaller.php',
165
- 'Composer\\Installers\\PxcmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PxcmsInstaller.php',
166
- 'Composer\\Installers\\RadPHPInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/RadPHPInstaller.php',
167
- 'Composer\\Installers\\ReIndexInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ReIndexInstaller.php',
168
- 'Composer\\Installers\\RedaxoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/RedaxoInstaller.php',
169
- 'Composer\\Installers\\RoundcubeInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/RoundcubeInstaller.php',
170
- 'Composer\\Installers\\SMFInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SMFInstaller.php',
171
- 'Composer\\Installers\\ShopwareInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php',
172
- 'Composer\\Installers\\SilverStripeInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php',
173
- 'Composer\\Installers\\SiteDirectInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SiteDirectInstaller.php',
174
- 'Composer\\Installers\\SyDESInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SyDESInstaller.php',
175
- 'Composer\\Installers\\Symfony1Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Symfony1Installer.php',
176
- 'Composer\\Installers\\TYPO3CmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php',
177
- 'Composer\\Installers\\TYPO3FlowInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php',
178
- 'Composer\\Installers\\TheliaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TheliaInstaller.php',
179
- 'Composer\\Installers\\TuskInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TuskInstaller.php',
180
- 'Composer\\Installers\\UserFrostingInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/UserFrostingInstaller.php',
181
- 'Composer\\Installers\\VanillaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/VanillaInstaller.php',
182
- 'Composer\\Installers\\VgmcpInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/VgmcpInstaller.php',
183
- 'Composer\\Installers\\WHMCSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WHMCSInstaller.php',
184
- 'Composer\\Installers\\WolfCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php',
185
- 'Composer\\Installers\\WordPressInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WordPressInstaller.php',
186
- 'Composer\\Installers\\YawikInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
187
- 'Composer\\Installers\\ZendInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZendInstaller.php',
188
- 'Composer\\Installers\\ZikulaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php',
189
  'Flexible_Shipping_Plugin' => __DIR__ . '/../..' . '/classes/class-flexible-shipping-plugin.php',
190
  'Money\\Calculator' => __DIR__ . '/..' . '/moneyphp/money/src/Calculator.php',
191
  'Money\\Calculator\\BcMathCalculator' => __DIR__ . '/..' . '/moneyphp/money/src/Calculator/BcMathCalculator.php',
@@ -334,10 +235,6 @@ class ComposerStaticInitaafcce658bff0f6e1b833865f9ebd08f
334
  'Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php',
335
  'Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php',
336
  'Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php',
337
- 'S214_License' => __DIR__ . '/..' . '/wpdesk/wp-settings/source/modules/licensing/class.s214-license.php',
338
- 'S214_Plugin_Updater' => __DIR__ . '/..' . '/wpdesk/wp-settings/source/modules/licensing/S214_Plugin_Updater.php',
339
- 'S214_Settings' => __DIR__ . '/..' . '/wpdesk/wp-settings/source/class.s214-settings.php',
340
- 'S214_Sysinfo' => __DIR__ . '/..' . '/wpdesk/wp-settings/source/modules/sysinfo/class.s214-sysinfo.php',
341
  'WPDesk\\ABTesting\\ABTest' => __DIR__ . '/..' . '/wpdesk/wp-abtesting/src/ABTest.php',
342
  'WPDesk\\ABTesting\\ABTest\\EqualGroupsRandomABTest' => __DIR__ . '/..' . '/wpdesk/wp-abtesting/src/ABTest/EqualGroupsRandomABTest.php',
343
  'WPDesk\\ABTesting\\ABVariant' => __DIR__ . '/..' . '/wpdesk/wp-abtesting/src/ABVariant.php',
@@ -621,7 +518,6 @@ class ComposerStaticInitaafcce658bff0f6e1b833865f9ebd08f
621
  'WPDesk_Flexible_Shipping_Tracker' => __DIR__ . '/../..' . '/classes/tracker.php',
622
  'WPDesk_Flexible_Shipping_UK_States' => __DIR__ . '/../..' . '/classes/class-uk-states.php',
623
  'WPDesk_Flexible_Shipping_WooCommerce_Context_Logger' => __DIR__ . '/../..' . '/classes/logger/class-woocommerce-context-logger.php',
624
- 'WPDesk_S214_Settings' => __DIR__ . '/..' . '/wpdesk/wp-settings/source/class.wpdesk-s214-settings.php',
625
  'WPDesk_Tracker' => __DIR__ . '/../..' . '/inc/wpdesk-tracker/class-wpdesk-tracker.php',
626
  'WPDesk_Tracker_Data_Provider' => __DIR__ . '/../..' . '/inc/wpdesk-tracker/data_provider/class-wpdesk-tracker-data-provider.php',
627
  'WPDesk_Tracker_Data_Provider_Gateways' => __DIR__ . '/../..' . '/inc/wpdesk-tracker/data_provider/class-wpdesk-tracker-data-provider-gateways.php',
@@ -650,15 +546,14 @@ class ComposerStaticInitaafcce658bff0f6e1b833865f9ebd08f
650
  'WPDesk_Tracker_Sender_Exception_WpError' => __DIR__ . '/../..' . '/inc/wpdesk-tracker/sender/Exception/class-wpdesk-tracker-sender-exception-wperror.php',
651
  'WPDesk_Tracker_Sender_Logged' => __DIR__ . '/../..' . '/inc/wpdesk-tracker/sender/class-wpdesk-tracker-sender-logged.php',
652
  'WPDesk_Tracker_Sender_Wordpress_To_WPDesk' => __DIR__ . '/../..' . '/inc/wpdesk-tracker/sender/class-wpdesk-tracker-sender-wordpress-to-wpdesk.php',
653
- 'WPDesk_WP_Settings' => __DIR__ . '/..' . '/wpdesk/wp-settings/source/class.wpdesk-wp-settings.php',
654
  );
655
 
656
  public static function getInitializer(ClassLoader $loader)
657
  {
658
  return \Closure::bind(function () use ($loader) {
659
- $loader->prefixLengthsPsr4 = ComposerStaticInitaafcce658bff0f6e1b833865f9ebd08f::$prefixLengthsPsr4;
660
- $loader->prefixDirsPsr4 = ComposerStaticInitaafcce658bff0f6e1b833865f9ebd08f::$prefixDirsPsr4;
661
- $loader->classMap = ComposerStaticInitaafcce658bff0f6e1b833865f9ebd08f::$classMap;
662
 
663
  }, null, ClassLoader::class);
664
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit8a4e70223d7dc54e60bb6eb464631f2f
8
  {
9
  public static $files = array (
10
  '46ae4ad8c3479aabff48f598a0e4b93f' => __DIR__ . '/..' . '/wpdesk/wp-mutex/src/WPDesk/functions.php',
33
  'Monolog\\' => 8,
34
  'Money\\' => 6,
35
  ),
 
 
 
 
36
  );
37
 
38
  public static $prefixDirsPsr4 = array (
84
  array (
85
  0 => __DIR__ . '/..' . '/moneyphp/money/src',
86
  ),
 
 
 
 
87
  );
88
 
89
  public static $classMap = array (
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  'Flexible_Shipping_Plugin' => __DIR__ . '/../..' . '/classes/class-flexible-shipping-plugin.php',
91
  'Money\\Calculator' => __DIR__ . '/..' . '/moneyphp/money/src/Calculator.php',
92
  'Money\\Calculator\\BcMathCalculator' => __DIR__ . '/..' . '/moneyphp/money/src/Calculator/BcMathCalculator.php',
235
  'Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php',
236
  'Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php',
237
  'Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php',
 
 
 
 
238
  'WPDesk\\ABTesting\\ABTest' => __DIR__ . '/..' . '/wpdesk/wp-abtesting/src/ABTest.php',
239
  'WPDesk\\ABTesting\\ABTest\\EqualGroupsRandomABTest' => __DIR__ . '/..' . '/wpdesk/wp-abtesting/src/ABTest/EqualGroupsRandomABTest.php',
240
  'WPDesk\\ABTesting\\ABVariant' => __DIR__ . '/..' . '/wpdesk/wp-abtesting/src/ABVariant.php',
518
  'WPDesk_Flexible_Shipping_Tracker' => __DIR__ . '/../..' . '/classes/tracker.php',
519
  'WPDesk_Flexible_Shipping_UK_States' => __DIR__ . '/../..' . '/classes/class-uk-states.php',
520
  'WPDesk_Flexible_Shipping_WooCommerce_Context_Logger' => __DIR__ . '/../..' . '/classes/logger/class-woocommerce-context-logger.php',
 
521
  'WPDesk_Tracker' => __DIR__ . '/../..' . '/inc/wpdesk-tracker/class-wpdesk-tracker.php',
522
  'WPDesk_Tracker_Data_Provider' => __DIR__ . '/../..' . '/inc/wpdesk-tracker/data_provider/class-wpdesk-tracker-data-provider.php',
523
  'WPDesk_Tracker_Data_Provider_Gateways' => __DIR__ . '/../..' . '/inc/wpdesk-tracker/data_provider/class-wpdesk-tracker-data-provider-gateways.php',
546
  'WPDesk_Tracker_Sender_Exception_WpError' => __DIR__ . '/../..' . '/inc/wpdesk-tracker/sender/Exception/class-wpdesk-tracker-sender-exception-wperror.php',
547
  'WPDesk_Tracker_Sender_Logged' => __DIR__ . '/../..' . '/inc/wpdesk-tracker/sender/class-wpdesk-tracker-sender-logged.php',
548
  'WPDesk_Tracker_Sender_Wordpress_To_WPDesk' => __DIR__ . '/../..' . '/inc/wpdesk-tracker/sender/class-wpdesk-tracker-sender-wordpress-to-wpdesk.php',
 
549
  );
550
 
551
  public static function getInitializer(ClassLoader $loader)
552
  {
553
  return \Closure::bind(function () use ($loader) {
554
+ $loader->prefixLengthsPsr4 = ComposerStaticInit8a4e70223d7dc54e60bb6eb464631f2f::$prefixLengthsPsr4;
555
+ $loader->prefixDirsPsr4 = ComposerStaticInit8a4e70223d7dc54e60bb6eb464631f2f::$prefixDirsPsr4;
556
+ $loader->classMap = ComposerStaticInit8a4e70223d7dc54e60bb6eb464631f2f::$classMap;
557
 
558
  }, null, ClassLoader::class);
559
  }
vendor/composer/installed.json CHANGED
@@ -1,126 +1,4 @@
1
  [
2
- {
3
- "name": "composer/installers",
4
- "version": "v1.6.0",
5
- "version_normalized": "1.6.0.0",
6
- "source": {
7
- "type": "git",
8
- "url": "https://github.com/composer/installers.git",
9
- "reference": "cfcca6b1b60bc4974324efb5783c13dca6932b5b"
10
- },
11
- "dist": {
12
- "type": "zip",
13
- "url": "https://api.github.com/repos/composer/installers/zipball/cfcca6b1b60bc4974324efb5783c13dca6932b5b",
14
- "reference": "cfcca6b1b60bc4974324efb5783c13dca6932b5b",
15
- "shasum": ""
16
- },
17
- "require": {
18
- "composer-plugin-api": "^1.0"
19
- },
20
- "replace": {
21
- "roundcube/plugin-installer": "*",
22
- "shama/baton": "*"
23
- },
24
- "require-dev": {
25
- "composer/composer": "1.0.*@dev",
26
- "phpunit/phpunit": "^4.8.36"
27
- },
28
- "time": "2018-08-27T06:10:37+00:00",
29
- "type": "composer-plugin",
30
- "extra": {
31
- "class": "Composer\\Installers\\Plugin",
32
- "branch-alias": {
33
- "dev-master": "1.0-dev"
34
- }
35
- },
36
- "installation-source": "dist",
37
- "autoload": {
38
- "psr-4": {
39
- "Composer\\Installers\\": "src/Composer/Installers"
40
- }
41
- },
42
- "notification-url": "https://packagist.org/downloads/",
43
- "license": [
44
- "MIT"
45
- ],
46
- "authors": [
47
- {
48
- "name": "Kyle Robinson Young",
49
- "email": "kyle@dontkry.com",
50
- "homepage": "https://github.com/shama"
51
- }
52
- ],
53
- "description": "A multi-framework Composer library installer",
54
- "homepage": "https://composer.github.io/installers/",
55
- "keywords": [
56
- "Craft",
57
- "Dolibarr",
58
- "Eliasis",
59
- "Hurad",
60
- "ImageCMS",
61
- "Kanboard",
62
- "Lan Management System",
63
- "MODX Evo",
64
- "Mautic",
65
- "Maya",
66
- "OXID",
67
- "Plentymarkets",
68
- "Porto",
69
- "RadPHP",
70
- "SMF",
71
- "Thelia",
72
- "WolfCMS",
73
- "agl",
74
- "aimeos",
75
- "annotatecms",
76
- "attogram",
77
- "bitrix",
78
- "cakephp",
79
- "chef",
80
- "cockpit",
81
- "codeigniter",
82
- "concrete5",
83
- "croogo",
84
- "dokuwiki",
85
- "drupal",
86
- "eZ Platform",
87
- "elgg",
88
- "expressionengine",
89
- "fuelphp",
90
- "grav",
91
- "installer",
92
- "itop",
93
- "joomla",
94
- "kohana",
95
- "laravel",
96
- "lavalite",
97
- "lithium",
98
- "magento",
99
- "majima",
100
- "mako",
101
- "mediawiki",
102
- "modulework",
103
- "modx",
104
- "moodle",
105
- "osclass",
106
- "phpbb",
107
- "piwik",
108
- "ppi",
109
- "puppet",
110
- "pxcms",
111
- "reindex",
112
- "roundcube",
113
- "shopware",
114
- "silverstripe",
115
- "sydes",
116
- "symfony",
117
- "typo3",
118
- "wordpress",
119
- "yawik",
120
- "zend",
121
- "zikula"
122
- ]
123
- },
124
  {
125
  "name": "moneyphp/money",
126
  "version": "v3.2.1",
@@ -788,56 +666,6 @@
788
  }
789
  ]
790
  },
791
- {
792
- "name": "wpdesk/wp-settings",
793
- "version": "1.0",
794
- "version_normalized": "1.0.0.0",
795
- "source": {
796
- "type": "git",
797
- "url": "https://gitlab.com/wpdesk/wp-settings.git",
798
- "reference": "6575bc86da10a47a9cbccaef9ba475601d52617a"
799
- },
800
- "dist": {
801
- "type": "zip",
802
- "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-settings/repository/archive.zip?sha=6575bc86da10a47a9cbccaef9ba475601d52617a",
803
- "reference": "6575bc86da10a47a9cbccaef9ba475601d52617a",
804
- "shasum": ""
805
- },
806
- "require": {
807
- "composer/installers": "~1.0",
808
- "php": ">=5.3.0"
809
- },
810
- "require-dev": {
811
- "phpunit/php-invoker": "1.1.3",
812
- "phpunit/phpunit": "3.7.31",
813
- "satooshi/php-coveralls": "dev-master"
814
- },
815
- "time": "2018-08-01T11:34:33+00:00",
816
- "type": "library",
817
- "installation-source": "dist",
818
- "autoload": {
819
- "classmap": [
820
- "source/"
821
- ]
822
- },
823
- "notification-url": "https://packagist.org/downloads/",
824
- "license": [
825
- "GPL-2.0+"
826
- ],
827
- "authors": [
828
- {
829
- "name": "WP Desk",
830
- "email": "wpdesk@wpdesk.net"
831
- }
832
- ],
833
- "description": "A PHP library for implementing a simple, transparent WordPress settings panel.",
834
- "homepage": "https://wpdesk.net/",
835
- "keywords": [
836
- "Settings",
837
- "options",
838
- "wpdesk"
839
- ]
840
- },
841
  {
842
  "name": "wpdesk/wp-view",
843
  "version": "1.0.2",
1
  [
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  {
3
  "name": "moneyphp/money",
4
  "version": "v3.2.1",
666
  }
667
  ]
668
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
669
  {
670
  "name": "wpdesk/wp-view",
671
  "version": "1.0.2",
vendor/composer/installers/LICENSE DELETED
@@ -1,19 +0,0 @@
1
- Copyright (c) 2012 Kyle Robinson Young
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining a copy
4
- of this software and associated documentation files (the "Software"), to deal
5
- in the Software without restriction, including without limitation the rights
6
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- copies of the Software, and to permit persons to whom the Software is furnished
8
- to do so, subject to the following conditions:
9
-
10
- The above copyright notice and this permission notice shall be included in all
11
- copies or substantial portions of the Software.
12
-
13
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- THE SOFTWARE.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/composer.json DELETED
@@ -1,105 +0,0 @@
1
- {
2
- "name": "composer/installers",
3
- "type": "composer-plugin",
4
- "license": "MIT",
5
- "description": "A multi-framework Composer library installer",
6
- "keywords": [
7
- "installer",
8
- "Aimeos",
9
- "AGL",
10
- "AnnotateCms",
11
- "Attogram",
12
- "Bitrix",
13
- "CakePHP",
14
- "Chef",
15
- "Cockpit",
16
- "CodeIgniter",
17
- "concrete5",
18
- "Craft",
19
- "Croogo",
20
- "DokuWiki",
21
- "Dolibarr",
22
- "Drupal",
23
- "Elgg",
24
- "Eliasis",
25
- "ExpressionEngine",
26
- "eZ Platform",
27
- "FuelPHP",
28
- "Grav",
29
- "Hurad",
30
- "ImageCMS",
31
- "iTop",
32
- "Joomla",
33
- "Kanboard",
34
- "Kohana",
35
- "Lan Management System",
36
- "Laravel",
37
- "Lavalite",
38
- "Lithium",
39
- "Magento",
40
- "majima",
41
- "Mako",
42
- "Mautic",
43
- "Maya",
44
- "MODX",
45
- "MODX Evo",
46
- "MediaWiki",
47
- "OXID",
48
- "osclass",
49
- "MODULEWork",
50
- "Moodle",
51
- "Piwik",
52
- "pxcms",
53
- "phpBB",
54
- "Plentymarkets",
55
- "PPI",
56
- "Puppet",
57
- "Porto",
58
- "RadPHP",
59
- "ReIndex",
60
- "Roundcube",
61
- "shopware",
62
- "SilverStripe",
63
- "SMF",
64
- "SyDES",
65
- "symfony",
66
- "Thelia",
67
- "TYPO3",
68
- "WolfCMS",
69
- "WordPress",
70
- "YAWIK",
71
- "Zend",
72
- "Zikula"
73
- ],
74
- "homepage": "https://composer.github.io/installers/",
75
- "authors": [
76
- {
77
- "name": "Kyle Robinson Young",
78
- "email": "kyle@dontkry.com",
79
- "homepage": "https://github.com/shama"
80
- }
81
- ],
82
- "autoload": {
83
- "psr-4": { "Composer\\Installers\\": "src/Composer/Installers" }
84
- },
85
- "extra": {
86
- "class": "Composer\\Installers\\Plugin",
87
- "branch-alias": {
88
- "dev-master": "1.0-dev"
89
- }
90
- },
91
- "replace": {
92
- "shama/baton": "*",
93
- "roundcube/plugin-installer": "*"
94
- },
95
- "require": {
96
- "composer-plugin-api": "^1.0"
97
- },
98
- "require-dev": {
99
- "composer/composer": "1.0.*@dev",
100
- "phpunit/phpunit": "^4.8.36"
101
- },
102
- "scripts": {
103
- "test": "phpunit"
104
- }
105
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/AglInstaller.php DELETED
@@ -1,21 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class AglInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'More/{$name}/',
8
- );
9
-
10
- /**
11
- * Format package name to CamelCase
12
- */
13
- public function inflectPackageVars($vars)
14
- {
15
- $vars['name'] = preg_replace_callback('/(?:^|_|-)(.?)/', function ($matches) {
16
- return strtoupper($matches[1]);
17
- }, $vars['name']);
18
-
19
- return $vars;
20
- }
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/AimeosInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class AimeosInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'extension' => 'ext/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class AnnotateCmsInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'addons/modules/{$name}/',
8
- 'component' => 'addons/components/{$name}/',
9
- 'service' => 'addons/services/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/AsgardInstaller.php DELETED
@@ -1,49 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class AsgardInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'Modules/{$name}/',
8
- 'theme' => 'Themes/{$name}/'
9
- );
10
-
11
- /**
12
- * Format package name.
13
- *
14
- * For package type asgard-module, cut off a trailing '-plugin' if present.
15
- *
16
- * For package type asgard-theme, cut off a trailing '-theme' if present.
17
- *
18
- */
19
- public function inflectPackageVars($vars)
20
- {
21
- if ($vars['type'] === 'asgard-module') {
22
- return $this->inflectPluginVars($vars);
23
- }
24
-
25
- if ($vars['type'] === 'asgard-theme') {
26
- return $this->inflectThemeVars($vars);
27
- }
28
-
29
- return $vars;
30
- }
31
-
32
- protected function inflectPluginVars($vars)
33
- {
34
- $vars['name'] = preg_replace('/-module$/', '', $vars['name']);
35
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
36
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
37
-
38
- return $vars;
39
- }
40
-
41
- protected function inflectThemeVars($vars)
42
- {
43
- $vars['name'] = preg_replace('/-theme$/', '', $vars['name']);
44
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
45
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
46
-
47
- return $vars;
48
- }
49
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/AttogramInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class AttogramInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/BaseInstaller.php DELETED
@@ -1,136 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- use Composer\IO\IOInterface;
5
- use Composer\Composer;
6
- use Composer\Package\PackageInterface;
7
-
8
- abstract class BaseInstaller
9
- {
10
- protected $locations = array();
11
- protected $composer;
12
- protected $package;
13
- protected $io;
14
-
15
- /**
16
- * Initializes base installer.
17
- *
18
- * @param PackageInterface $package
19
- * @param Composer $composer
20
- * @param IOInterface $io
21
- */
22
- public function __construct(PackageInterface $package = null, Composer $composer = null, IOInterface $io = null)
23
- {
24
- $this->composer = $composer;
25
- $this->package = $package;
26
- $this->io = $io;
27
- }
28
-
29
- /**
30
- * Return the install path based on package type.
31
- *
32
- * @param PackageInterface $package
33
- * @param string $frameworkType
34
- * @return string
35
- */
36
- public function getInstallPath(PackageInterface $package, $frameworkType = '')
37
- {
38
- $type = $this->package->getType();
39
-
40
- $prettyName = $this->package->getPrettyName();
41
- if (strpos($prettyName, '/') !== false) {
42
- list($vendor, $name) = explode('/', $prettyName);
43
- } else {
44
- $vendor = '';
45
- $name = $prettyName;
46
- }
47
-
48
- $availableVars = $this->inflectPackageVars(compact('name', 'vendor', 'type'));
49
-
50
- $extra = $package->getExtra();
51
- if (!empty($extra['installer-name'])) {
52
- $availableVars['name'] = $extra['installer-name'];
53
- }
54
-
55
- if ($this->composer->getPackage()) {
56
- $extra = $this->composer->getPackage()->getExtra();
57
- if (!empty($extra['installer-paths'])) {
58
- $customPath = $this->mapCustomInstallPaths($extra['installer-paths'], $prettyName, $type, $vendor);
59
- if ($customPath !== false) {
60
- return $this->templatePath($customPath, $availableVars);
61
- }
62
- }
63
- }
64
-
65
- $packageType = substr($type, strlen($frameworkType) + 1);
66
- $locations = $this->getLocations();
67
- if (!isset($locations[$packageType])) {
68
- throw new \InvalidArgumentException(sprintf('Package type "%s" is not supported', $type));
69
- }
70
-
71
- return $this->templatePath($locations[$packageType], $availableVars);
72
- }
73
-
74
- /**
75
- * For an installer to override to modify the vars per installer.
76
- *
77
- * @param array $vars
78
- * @return array
79
- */
80
- public function inflectPackageVars($vars)
81
- {
82
- return $vars;
83
- }
84
-
85
- /**
86
- * Gets the installer's locations
87
- *
88
- * @return array
89
- */
90
- public function getLocations()
91
- {
92
- return $this->locations;
93
- }
94
-
95
- /**
96
- * Replace vars in a path
97
- *
98
- * @param string $path
99
- * @param array $vars
100
- * @return string
101
- */
102
- protected function templatePath($path, array $vars = array())
103
- {
104
- if (strpos($path, '{') !== false) {
105
- extract($vars);
106
- preg_match_all('@\{\$([A-Za-z0-9_]*)\}@i', $path, $matches);
107
- if (!empty($matches[1])) {
108
- foreach ($matches[1] as $var) {
109
- $path = str_replace('{$' . $var . '}', $$var, $path);
110
- }
111
- }
112
- }
113
-
114
- return $path;
115
- }
116
-
117
- /**
118
- * Search through a passed paths array for a custom install path.
119
- *
120
- * @param array $paths
121
- * @param string $name
122
- * @param string $type
123
- * @param string $vendor = NULL
124
- * @return string
125
- */
126
- protected function mapCustomInstallPaths(array $paths, $name, $type, $vendor = NULL)
127
- {
128
- foreach ($paths as $path => $names) {
129
- if (in_array($name, $names) || in_array('type:' . $type, $names) || in_array('vendor:' . $vendor, $names)) {
130
- return $path;
131
- }
132
- }
133
-
134
- return false;
135
- }
136
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/BitrixInstaller.php DELETED
@@ -1,126 +0,0 @@
1
- <?php
2
-
3
- namespace Composer\Installers;
4
-
5
- use Composer\Util\Filesystem;
6
-
7
- /**
8
- * Installer for Bitrix Framework. Supported types of extensions:
9
- * - `bitrix-d7-module` — copy the module to directory `bitrix/modules/<vendor>.<name>`.
10
- * - `bitrix-d7-component` — copy the component to directory `bitrix/components/<vendor>/<name>`.
11
- * - `bitrix-d7-template` — copy the template to directory `bitrix/templates/<vendor>_<name>`.
12
- *
13
- * You can set custom path to directory with Bitrix kernel in `composer.json`:
14
- *
15
- * ```json
16
- * {
17
- * "extra": {
18
- * "bitrix-dir": "s1/bitrix"
19
- * }
20
- * }
21
- * ```
22
- *
23
- * @author Nik Samokhvalov <nik@samokhvalov.info>
24
- * @author Denis Kulichkin <onexhovia@gmail.com>
25
- */
26
- class BitrixInstaller extends BaseInstaller
27
- {
28
- protected $locations = array(
29
- 'module' => '{$bitrix_dir}/modules/{$name}/', // deprecated, remove on the major release (Backward compatibility will be broken)
30
- 'component' => '{$bitrix_dir}/components/{$name}/', // deprecated, remove on the major release (Backward compatibility will be broken)
31
- 'theme' => '{$bitrix_dir}/templates/{$name}/', // deprecated, remove on the major release (Backward compatibility will be broken)
32
- 'd7-module' => '{$bitrix_dir}/modules/{$vendor}.{$name}/',
33
- 'd7-component' => '{$bitrix_dir}/components/{$vendor}/{$name}/',
34
- 'd7-template' => '{$bitrix_dir}/templates/{$vendor}_{$name}/',
35
- );
36
-
37
- /**
38
- * @var array Storage for informations about duplicates at all the time of installation packages.
39
- */
40
- private static $checkedDuplicates = array();
41
-
42
- /**
43
- * {@inheritdoc}
44
- */
45
- public function inflectPackageVars($vars)
46
- {
47
- if ($this->composer->getPackage()) {
48
- $extra = $this->composer->getPackage()->getExtra();
49
-
50
- if (isset($extra['bitrix-dir'])) {
51
- $vars['bitrix_dir'] = $extra['bitrix-dir'];
52
- }
53
- }
54
-
55
- if (!isset($vars['bitrix_dir'])) {
56
- $vars['bitrix_dir'] = 'bitrix';
57
- }
58
-
59
- return parent::inflectPackageVars($vars);
60
- }
61
-
62
- /**
63
- * {@inheritdoc}
64
- */
65
- protected function templatePath($path, array $vars = array())
66
- {
67
- $templatePath = parent::templatePath($path, $vars);
68
- $this->checkDuplicates($templatePath, $vars);
69
-
70
- return $templatePath;
71
- }
72
-
73
- /**
74
- * Duplicates search packages.
75
- *
76
- * @param string $path
77
- * @param array $vars
78
- */
79
- protected function checkDuplicates($path, array $vars = array())
80
- {
81
- $packageType = substr($vars['type'], strlen('bitrix') + 1);
82
- $localDir = explode('/', $vars['bitrix_dir']);
83
- array_pop($localDir);
84
- $localDir[] = 'local';
85
- $localDir = implode('/', $localDir);
86
-
87
- $oldPath = str_replace(
88
- array('{$bitrix_dir}', '{$name}'),
89
- array($localDir, $vars['name']),
90
- $this->locations[$packageType]
91
- );
92
-
93
- if (in_array($oldPath, static::$checkedDuplicates)) {
94
- return;
95
- }
96
-
97
- if ($oldPath !== $path && file_exists($oldPath) && $this->io && $this->io->isInteractive()) {
98
-
99
- $this->io->writeError(' <error>Duplication of packages:</error>');
100
- $this->io->writeError(' <info>Package ' . $oldPath . ' will be called instead package ' . $path . '</info>');
101
-
102
- while (true) {
103
- switch ($this->io->ask(' <info>Delete ' . $oldPath . ' [y,n,?]?</info> ', '?')) {
104
- case 'y':
105
- $fs = new Filesystem();
106
- $fs->removeDirectory($oldPath);
107
- break 2;
108
-
109
- case 'n':
110
- break 2;
111
-
112
- case '?':
113
- default:
114
- $this->io->writeError(array(
115
- ' y - delete package ' . $oldPath . ' and to continue with the installation',
116
- ' n - don\'t delete and to continue with the installation',
117
- ));
118
- $this->io->writeError(' ? - print help');
119
- break;
120
- }
121
- }
122
- }
123
-
124
- static::$checkedDuplicates[] = $oldPath;
125
- }
126
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/BonefishInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class BonefishInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'package' => 'Packages/{$vendor}/{$name}/'
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php DELETED
@@ -1,82 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- use Composer\DependencyResolver\Pool;
5
-
6
- class CakePHPInstaller extends BaseInstaller
7
- {
8
- protected $locations = array(
9
- 'plugin' => 'Plugin/{$name}/',
10
- );
11
-
12
- /**
13
- * Format package name to CamelCase
14
- */
15
- public function inflectPackageVars($vars)
16
- {
17
- if ($this->matchesCakeVersion('>=', '3.0.0')) {
18
- return $vars;
19
- }
20
-
21
- $nameParts = explode('/', $vars['name']);
22
- foreach ($nameParts as &$value) {
23
- $value = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $value));
24
- $value = str_replace(array('-', '_'), ' ', $value);
25
- $value = str_replace(' ', '', ucwords($value));
26
- }
27
- $vars['name'] = implode('/', $nameParts);
28
-
29
- return $vars;
30
- }
31
-
32
- /**
33
- * Change the default plugin location when cakephp >= 3.0
34
- */
35
- public function getLocations()
36
- {
37
- if ($this->matchesCakeVersion('>=', '3.0.0')) {
38
- $this->locations['plugin'] = $this->composer->getConfig()->get('vendor-dir') . '/{$vendor}/{$name}/';
39
- }
40
- return $this->locations;
41
- }
42
-
43
- /**
44
- * Check if CakePHP version matches against a version
45
- *
46
- * @param string $matcher
47
- * @param string $version
48
- * @return bool
49
- */
50
- protected function matchesCakeVersion($matcher, $version)
51
- {
52
- if (class_exists('Composer\Semver\Constraint\MultiConstraint')) {
53
- $multiClass = 'Composer\Semver\Constraint\MultiConstraint';
54
- $constraintClass = 'Composer\Semver\Constraint\Constraint';
55
- } else {
56
- $multiClass = 'Composer\Package\LinkConstraint\MultiConstraint';
57
- $constraintClass = 'Composer\Package\LinkConstraint\VersionConstraint';
58
- }
59
-
60
- $repositoryManager = $this->composer->getRepositoryManager();
61
- if ($repositoryManager) {
62
- $repos = $repositoryManager->getLocalRepository();
63
- if (!$repos) {
64
- return false;
65
- }
66
- $cake3 = new $multiClass(array(
67
- new $constraintClass($matcher, $version),
68
- new $constraintClass('!=', '9999999-dev'),
69
- ));
70
- $pool = new Pool('dev');
71
- $pool->addRepository($repos);
72
- $packages = $pool->whatProvides('cakephp/cakephp');
73
- foreach ($packages as $package) {
74
- $installed = new $constraintClass('=', $package->getVersion());
75
- if ($cake3->matches($installed)) {
76
- return true;
77
- }
78
- }
79
- }
80
- return false;
81
- }
82
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ChefInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ChefInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'cookbook' => 'Chef/{$vendor}/{$name}/',
8
- 'role' => 'Chef/roles/{$name}/',
9
- );
10
- }
11
-
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/CiviCrmInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class CiviCrmInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'ext' => 'ext/{$name}/'
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ClanCatsFrameworkInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'ship' => 'CCF/orbit/{$name}/',
8
- 'theme' => 'CCF/app/themes/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/CockpitInstaller.php DELETED
@@ -1,34 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class CockpitInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'cockpit/modules/addons/{$name}/',
8
- );
9
-
10
- /**
11
- * Format module name.
12
- *
13
- * Strip `module-` prefix from package name.
14
- *
15
- * @param array @vars
16
- *
17
- * @return array
18
- */
19
- public function inflectPackageVars($vars)
20
- {
21
- if ($vars['type'] == 'cockpit-module') {
22
- return $this->inflectModuleVars($vars);
23
- }
24
-
25
- return $vars;
26
- }
27
-
28
- public function inflectModuleVars($vars)
29
- {
30
- $vars['name'] = ucfirst(preg_replace('/cockpit-/i', '', $vars['name']));
31
-
32
- return $vars;
33
- }
34
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class CodeIgniterInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'library' => 'application/libraries/{$name}/',
8
- 'third-party' => 'application/third_party/{$name}/',
9
- 'module' => 'application/modules/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/Concrete5Installer.php DELETED
@@ -1,13 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class Concrete5Installer extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'core' => 'concrete/',
8
- 'block' => 'application/blocks/{$name}/',
9
- 'package' => 'packages/{$name}/',
10
- 'theme' => 'application/themes/{$name}/',
11
- 'update' => 'updates/{$name}/',
12
- );
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/CraftInstaller.php DELETED
@@ -1,35 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Installer for Craft Plugins
6
- */
7
- class CraftInstaller extends BaseInstaller
8
- {
9
- const NAME_PREFIX = 'craft';
10
- const NAME_SUFFIX = 'plugin';
11
-
12
- protected $locations = array(
13
- 'plugin' => 'craft/plugins/{$name}/',
14
- );
15
-
16
- /**
17
- * Strip `craft-` prefix and/or `-plugin` suffix from package names
18
- *
19
- * @param array $vars
20
- *
21
- * @return array
22
- */
23
- final public function inflectPackageVars($vars)
24
- {
25
- return $this->inflectPluginVars($vars);
26
- }
27
-
28
- private function inflectPluginVars($vars)
29
- {
30
- $vars['name'] = preg_replace('/-' . self::NAME_SUFFIX . '$/i', '', $vars['name']);
31
- $vars['name'] = preg_replace('/^' . self::NAME_PREFIX . '-/i', '', $vars['name']);
32
-
33
- return $vars;
34
- }
35
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/CroogoInstaller.php DELETED
@@ -1,21 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class CroogoInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'Plugin/{$name}/',
8
- 'theme' => 'View/Themed/{$name}/',
9
- );
10
-
11
- /**
12
- * Format package name to CamelCase
13
- */
14
- public function inflectPackageVars($vars)
15
- {
16
- $vars['name'] = strtolower(str_replace(array('-', '_'), ' ', $vars['name']));
17
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
18
-
19
- return $vars;
20
- }
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/DecibelInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class DecibelInstaller extends BaseInstaller
5
- {
6
- /** @var array */
7
- protected $locations = array(
8
- 'app' => 'app/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/DokuWikiInstaller.php DELETED
@@ -1,50 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class DokuWikiInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'lib/plugins/{$name}/',
8
- 'template' => 'lib/tpl/{$name}/',
9
- );
10
-
11
- /**
12
- * Format package name.
13
- *
14
- * For package type dokuwiki-plugin, cut off a trailing '-plugin',
15
- * or leading dokuwiki_ if present.
16
- *
17
- * For package type dokuwiki-template, cut off a trailing '-template' if present.
18
- *
19
- */
20
- public function inflectPackageVars($vars)
21
- {
22
-
23
- if ($vars['type'] === 'dokuwiki-plugin') {
24
- return $this->inflectPluginVars($vars);
25
- }
26
-
27
- if ($vars['type'] === 'dokuwiki-template') {
28
- return $this->inflectTemplateVars($vars);
29
- }
30
-
31
- return $vars;
32
- }
33
-
34
- protected function inflectPluginVars($vars)
35
- {
36
- $vars['name'] = preg_replace('/-plugin$/', '', $vars['name']);
37
- $vars['name'] = preg_replace('/^dokuwiki_?-?/', '', $vars['name']);
38
-
39
- return $vars;
40
- }
41
-
42
- protected function inflectTemplateVars($vars)
43
- {
44
- $vars['name'] = preg_replace('/-template$/', '', $vars['name']);
45
- $vars['name'] = preg_replace('/^dokuwiki_?-?/', '', $vars['name']);
46
-
47
- return $vars;
48
- }
49
-
50
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/DolibarrInstaller.php DELETED
@@ -1,16 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Class DolibarrInstaller
6
- *
7
- * @package Composer\Installers
8
- * @author Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
9
- */
10
- class DolibarrInstaller extends BaseInstaller
11
- {
12
- //TODO: Add support for scripts and themes
13
- protected $locations = array(
14
- 'module' => 'htdocs/custom/{$name}/',
15
- );
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php DELETED
@@ -1,16 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class DrupalInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'core' => 'core/',
8
- 'module' => 'modules/{$name}/',
9
- 'theme' => 'themes/{$name}/',
10
- 'library' => 'libraries/{$name}/',
11
- 'profile' => 'profiles/{$name}/',
12
- 'drush' => 'drush/{$name}/',
13
- 'custom-theme' => 'themes/custom/{$name}/',
14
- 'custom-module' => 'modules/custom/{$name}/',
15
- );
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ElggInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ElggInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'mod/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/EliasisInstaller.php DELETED
@@ -1,12 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class EliasisInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'component' => 'components/{$name}/',
8
- 'module' => 'modules/{$name}/',
9
- 'plugin' => 'plugins/{$name}/',
10
- 'template' => 'templates/{$name}/',
11
- );
12
- }
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php DELETED
@@ -1,29 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- use Composer\Package\PackageInterface;
5
-
6
- class ExpressionEngineInstaller extends BaseInstaller
7
- {
8
-
9
- protected $locations = array();
10
-
11
- private $ee2Locations = array(
12
- 'addon' => 'system/expressionengine/third_party/{$name}/',
13
- 'theme' => 'themes/third_party/{$name}/',
14
- );
15
-
16
- private $ee3Locations = array(
17
- 'addon' => 'system/user/addons/{$name}/',
18
- 'theme' => 'themes/user/{$name}/',
19
- );
20
-
21
- public function getInstallPath(PackageInterface $package, $frameworkType = '')
22
- {
23
-
24
- $version = "{$frameworkType}Locations";
25
- $this->locations = $this->$version;
26
-
27
- return parent::getInstallPath($package, $frameworkType);
28
- }
29
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/EzPlatformInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class EzPlatformInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'meta-assets' => 'web/assets/ezplatform/',
8
- 'assets' => 'web/assets/ezplatform/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/FuelInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class FuelInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'fuel/app/modules/{$name}/',
8
- 'package' => 'fuel/packages/{$name}/',
9
- 'theme' => 'fuel/app/themes/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/FuelphpInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class FuelphpInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'component' => 'components/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/GravInstaller.php DELETED
@@ -1,30 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class GravInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'user/plugins/{$name}/',
8
- 'theme' => 'user/themes/{$name}/',
9
- );
10
-
11
- /**
12
- * Format package name
13
- *
14
- * @param array $vars
15
- *
16
- * @return array
17
- */
18
- public function inflectPackageVars($vars)
19
- {
20
- $restrictedWords = implode('|', array_keys($this->locations));
21
-
22
- $vars['name'] = strtolower($vars['name']);
23
- $vars['name'] = preg_replace('/^(?:grav-)?(?:(?:'.$restrictedWords.')-)?(.*?)(?:-(?:'.$restrictedWords.'))?$/ui',
24
- '$1',
25
- $vars['name']
26
- );
27
-
28
- return $vars;
29
- }
30
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/HuradInstaller.php DELETED
@@ -1,25 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class HuradInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'plugins/{$name}/',
8
- 'theme' => 'plugins/{$name}/',
9
- );
10
-
11
- /**
12
- * Format package name to CamelCase
13
- */
14
- public function inflectPackageVars($vars)
15
- {
16
- $nameParts = explode('/', $vars['name']);
17
- foreach ($nameParts as &$value) {
18
- $value = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $value));
19
- $value = str_replace(array('-', '_'), ' ', $value);
20
- $value = str_replace(' ', '', ucwords($value));
21
- }
22
- $vars['name'] = implode('/', $nameParts);
23
- return $vars;
24
- }
25
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ImageCMSInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ImageCMSInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'template' => 'templates/{$name}/',
8
- 'module' => 'application/modules/{$name}/',
9
- 'library' => 'application/libraries/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/Installer.php DELETED
@@ -1,274 +0,0 @@
1
- <?php
2
-
3
- namespace Composer\Installers;
4
-
5
- use Composer\Composer;
6
- use Composer\Installer\BinaryInstaller;
7
- use Composer\Installer\LibraryInstaller;
8
- use Composer\IO\IOInterface;
9
- use Composer\Package\PackageInterface;
10
- use Composer\Repository\InstalledRepositoryInterface;
11
- use Composer\Util\Filesystem;
12
-
13
- class Installer extends LibraryInstaller
14
- {
15
-
16
- /**
17
- * Package types to installer class map
18
- *
19
- * @var array
20
- */
21
- private $supportedTypes = array(
22
- 'aimeos' => 'AimeosInstaller',
23
- 'asgard' => 'AsgardInstaller',
24
- 'attogram' => 'AttogramInstaller',
25
- 'agl' => 'AglInstaller',
26
- 'annotatecms' => 'AnnotateCmsInstaller',
27
- 'bitrix' => 'BitrixInstaller',
28
- 'bonefish' => 'BonefishInstaller',
29
- 'cakephp' => 'CakePHPInstaller',
30
- 'chef' => 'ChefInstaller',
31
- 'civicrm' => 'CiviCrmInstaller',
32
- 'ccframework' => 'ClanCatsFrameworkInstaller',
33
- 'cockpit' => 'CockpitInstaller',
34
- 'codeigniter' => 'CodeIgniterInstaller',
35
- 'concrete5' => 'Concrete5Installer',
36
- 'craft' => 'CraftInstaller',
37
- 'croogo' => 'CroogoInstaller',
38
- 'dokuwiki' => 'DokuWikiInstaller',
39
- 'dolibarr' => 'DolibarrInstaller',
40
- 'decibel' => 'DecibelInstaller',
41
- 'drupal' => 'DrupalInstaller',
42
- 'elgg' => 'ElggInstaller',
43
- 'eliasis' => 'EliasisInstaller',
44
- 'ee3' => 'ExpressionEngineInstaller',
45
- 'ee2' => 'ExpressionEngineInstaller',
46
- 'ezplatform' => 'EzPlatformInstaller',
47
- 'fuel' => 'FuelInstaller',
48
- 'fuelphp' => 'FuelphpInstaller',
49
- 'grav' => 'GravInstaller',
50
- 'hurad' => 'HuradInstaller',
51
- 'imagecms' => 'ImageCMSInstaller',
52
- 'itop' => 'ItopInstaller',
53
- 'joomla' => 'JoomlaInstaller',
54
- 'kanboard' => 'KanboardInstaller',
55
- 'kirby' => 'KirbyInstaller',
56
- 'kodicms' => 'KodiCMSInstaller',
57
- 'kohana' => 'KohanaInstaller',
58
- 'lms' => 'LanManagementSystemInstaller',
59
- 'laravel' => 'LaravelInstaller',
60
- 'lavalite' => 'LavaLiteInstaller',
61
- 'lithium' => 'LithiumInstaller',
62
- 'magento' => 'MagentoInstaller',
63
- 'majima' => 'MajimaInstaller',
64
- 'mako' => 'MakoInstaller',
65
- 'maya' => 'MayaInstaller',
66
- 'mautic' => 'MauticInstaller',
67
- 'mediawiki' => 'MediaWikiInstaller',
68
- 'microweber' => 'MicroweberInstaller',
69
- 'modulework' => 'MODULEWorkInstaller',
70
- 'modx' => 'ModxInstaller',
71
- 'modxevo' => 'MODXEvoInstaller',
72
- 'moodle' => 'MoodleInstaller',
73
- 'october' => 'OctoberInstaller',
74
- 'ontowiki' => 'OntoWikiInstaller',
75
- 'oxid' => 'OxidInstaller',
76
- 'osclass' => 'OsclassInstaller',
77
- 'pxcms' => 'PxcmsInstaller',
78
- 'phpbb' => 'PhpBBInstaller',
79
- 'pimcore' => 'PimcoreInstaller',
80
- 'piwik' => 'PiwikInstaller',
81
- 'plentymarkets'=> 'PlentymarketsInstaller',
82
- 'ppi' => 'PPIInstaller',
83
- 'puppet' => 'PuppetInstaller',
84
- 'radphp' => 'RadPHPInstaller',
85
- 'phifty' => 'PhiftyInstaller',
86
- 'porto' => 'PortoInstaller',
87
- 'redaxo' => 'RedaxoInstaller',
88
- 'reindex' => 'ReIndexInstaller',
89
- 'roundcube' => 'RoundcubeInstaller',
90
- 'shopware' => 'ShopwareInstaller',
91
- 'sitedirect' => 'SiteDirectInstaller',
92
- 'silverstripe' => 'SilverStripeInstaller',
93
- 'smf' => 'SMFInstaller',
94
- 'sydes' => 'SyDESInstaller',
95
- 'symfony1' => 'Symfony1Installer',
96
- 'thelia' => 'TheliaInstaller',
97
- 'tusk' => 'TuskInstaller',
98
- 'typo3-cms' => 'TYPO3CmsInstaller',
99
- 'typo3-flow' => 'TYPO3FlowInstaller',
100
- 'userfrosting' => 'UserFrostingInstaller',
101
- 'vanilla' => 'VanillaInstaller',
102
- 'whmcs' => 'WHMCSInstaller',
103
- 'wolfcms' => 'WolfCMSInstaller',
104
- 'wordpress' => 'WordPressInstaller',
105
- 'yawik' => 'YawikInstaller',
106
- 'zend' => 'ZendInstaller',
107
- 'zikula' => 'ZikulaInstaller',
108
- 'prestashop' => 'PrestashopInstaller'
109
- );
110
-
111
- /**
112
- * Installer constructor.
113
- *
114
- * Disables installers specified in main composer extra installer-disable
115
- * list
116
- *
117
- * @param IOInterface $io
118
- * @param Composer $composer
119
- * @param string $type
120
- * @param Filesystem|null $filesystem
121
- * @param BinaryInstaller|null $binaryInstaller
122
- */
123
- public function __construct(
124
- IOInterface $io,
125
- Composer $composer,
126
- $type = 'library',
127
- Filesystem $filesystem = null,
128
- BinaryInstaller $binaryInstaller = null
129
- ) {
130
- parent::__construct($io, $composer, $type, $filesystem,
131
- $binaryInstaller);
132
- $this->removeDisabledInstallers();
133
- }
134
-
135
- /**
136
- * {@inheritDoc}
137
- */
138
- public function getInstallPath(PackageInterface $package)
139
- {
140
- $type = $package->getType();
141
- $frameworkType = $this->findFrameworkType($type);
142
-
143
- if ($frameworkType === false) {
144
- throw new \InvalidArgumentException(
145
- 'Sorry the package type of this package is not yet supported.'
146
- );
147
- }
148
-
149
- $class = 'Composer\\Installers\\' . $this->supportedTypes[$frameworkType];
150
- $installer = new $class($package, $this->composer, $this->getIO());
151
-
152
- return $installer->getInstallPath($package, $frameworkType);
153
- }
154
-
155
- public function uninstall(InstalledRepositoryInterface $repo, PackageInterface $package)
156
- {
157
- parent::uninstall($repo, $package);
158
- $installPath = $this->getPackageBasePath($package);
159
- $this->io->write(sprintf('Deleting %s - %s', $installPath, !file_exists($installPath) ? '<comment>deleted</comment>' : '<error>not deleted</error>'));
160
- }
161
-
162
- /**
163
- * {@inheritDoc}
164
- */
165
- public function supports($packageType)
166
- {
167
- $frameworkType = $this->findFrameworkType($packageType);
168
-
169
- if ($frameworkType === false) {
170
- return false;
171
- }
172
-
173
- $locationPattern = $this->getLocationPattern($frameworkType);
174
-
175
- return preg_match('#' . $frameworkType . '-' . $locationPattern . '#', $packageType, $matches) === 1;
176
- }
177
-
178
- /**
179
- * Finds a supported framework type if it exists and returns it
180
- *
181
- * @param string $type
182
- * @return string
183
- */
184
- protected function findFrameworkType($type)
185
- {
186
- $frameworkType = false;
187
-
188
- krsort($this->supportedTypes);
189
-
190
- foreach ($this->supportedTypes as $key => $val) {
191
- if ($key === substr($type, 0, strlen($key))) {
192
- $frameworkType = substr($type, 0, strlen($key));
193
- break;
194
- }
195
- }
196
-
197
- return $frameworkType;
198
- }
199
-
200
- /**
201
- * Get the second part of the regular expression to check for support of a
202
- * package type
203
- *
204
- * @param string $frameworkType
205
- * @return string
206
- */
207
- protected function getLocationPattern($frameworkType)
208
- {
209
- $pattern = false;
210
- if (!empty($this->supportedTypes[$frameworkType])) {
211
- $frameworkClass = 'Composer\\Installers\\' . $this->supportedTypes[$frameworkType];
212
- /** @var BaseInstaller $framework */
213
- $framework = new $frameworkClass(null, $this->composer, $this->getIO());
214
- $locations = array_keys($framework->getLocations());
215
- $pattern = $locations ? '(' . implode('|', $locations) . ')' : false;
216
- }
217
-
218
- return $pattern ? : '(\w+)';
219
- }
220
-
221
- /**
222
- * Get I/O object
223
- *
224
- * @return IOInterface
225
- */
226
- private function getIO()
227
- {
228
- return $this->io;
229
- }
230
-
231
- /**
232
- * Look for installers set to be disabled in composer's extra config and
233
- * remove them from the list of supported installers.
234
- *
235
- * Globals:
236
- * - true, "all", and "*" - disable all installers.
237
- * - false - enable all installers (useful with
238
- * wikimedia/composer-merge-plugin or similar)
239
- *
240
- * @return void
241
- */
242
- protected function removeDisabledInstallers()
243
- {
244
- $extra = $this->composer->getPackage()->getExtra();
245
-
246
- if (!isset($extra['installer-disable']) || $extra['installer-disable'] === false) {
247
- // No installers are disabled
248
- return;
249
- }
250
-
251
- // Get installers to disable
252
- $disable = $extra['installer-disable'];
253
-
254
- // Ensure $disabled is an array
255
- if (!is_array($disable)) {
256
- $disable = array($disable);
257
- }
258
-
259
- // Check which installers should be disabled
260
- $all = array(true, "all", "*");
261
- $intersect = array_intersect($all, $disable);
262
- if (!empty($intersect)) {
263
- // Disable all installers
264
- $this->supportedTypes = array();
265
- } else {
266
- // Disable specified installers
267
- foreach ($disable as $key => $installer) {
268
- if (is_string($installer) && key_exists($installer, $this->supportedTypes)) {
269
- unset($this->supportedTypes[$installer]);
270
- }
271
- }
272
- }
273
- }
274
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ItopInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ItopInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'extension' => 'extensions/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/JoomlaInstaller.php DELETED
@@ -1,15 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class JoomlaInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'component' => 'components/{$name}/',
8
- 'module' => 'modules/{$name}/',
9
- 'template' => 'templates/{$name}/',
10
- 'plugin' => 'plugins/{$name}/',
11
- 'library' => 'libraries/{$name}/',
12
- );
13
-
14
- // TODO: Add inflector for mod_ and com_ names
15
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/KanboardInstaller.php DELETED
@@ -1,18 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- *
6
- * Installer for kanboard plugins
7
- *
8
- * kanboard.net
9
- *
10
- * Class KanboardInstaller
11
- * @package Composer\Installers
12
- */
13
- class KanboardInstaller extends BaseInstaller
14
- {
15
- protected $locations = array(
16
- 'plugin' => 'plugins/{$name}/',
17
- );
18
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/KirbyInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class KirbyInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'site/plugins/{$name}/',
8
- 'field' => 'site/fields/{$name}/',
9
- 'tag' => 'site/tags/{$name}/'
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/KodiCMSInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class KodiCMSInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'cms/plugins/{$name}/',
8
- 'media' => 'cms/media/vendor/{$name}/'
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/KohanaInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class KohanaInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php DELETED
@@ -1,27 +0,0 @@
1
- <?php
2
-
3
- namespace Composer\Installers;
4
-
5
- class LanManagementSystemInstaller extends BaseInstaller
6
- {
7
-
8
- protected $locations = array(
9
- 'plugin' => 'plugins/{$name}/',
10
- 'template' => 'templates/{$name}/',
11
- 'document-template' => 'documents/templates/{$name}/',
12
- 'userpanel-module' => 'userpanel/modules/{$name}/',
13
- );
14
-
15
- /**
16
- * Format package name to CamelCase
17
- */
18
- public function inflectPackageVars($vars)
19
- {
20
- $vars['name'] = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name']));
21
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
22
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
23
-
24
- return $vars;
25
- }
26
-
27
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/LaravelInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class LaravelInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'library' => 'libraries/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/LavaLiteInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class LavaLiteInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'package' => 'packages/{$vendor}/{$name}/',
8
- 'theme' => 'public/themes/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/LithiumInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class LithiumInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'library' => 'libraries/{$name}/',
8
- 'source' => 'libraries/_source/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MODULEWorkInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MODXEvoInstaller.php DELETED
@@ -1,16 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * An installer to handle MODX Evolution specifics when installing packages.
6
- */
7
- class MODXEvoInstaller extends BaseInstaller
8
- {
9
- protected $locations = array(
10
- 'snippet' => 'assets/snippets/{$name}/',
11
- 'plugin' => 'assets/plugins/{$name}/',
12
- 'module' => 'assets/modules/{$name}/',
13
- 'template' => 'assets/templates/{$name}/',
14
- 'lib' => 'assets/lib/{$name}/'
15
- );
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MagentoInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MagentoInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'theme' => 'app/design/frontend/{$name}/',
8
- 'skin' => 'skin/frontend/default/{$name}/',
9
- 'library' => 'lib/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MajimaInstaller.php DELETED
@@ -1,37 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Plugin/theme installer for majima
6
- * @author David Neustadt
7
- */
8
- class MajimaInstaller extends BaseInstaller
9
- {
10
- protected $locations = array(
11
- 'plugin' => 'plugins/{$name}/',
12
- );
13
-
14
- /**
15
- * Transforms the names
16
- * @param array $vars
17
- * @return array
18
- */
19
- public function inflectPackageVars($vars)
20
- {
21
- return $this->correctPluginName($vars);
22
- }
23
-
24
- /**
25
- * Change hyphenated names to camelcase
26
- * @param array $vars
27
- * @return array
28
- */
29
- private function correctPluginName($vars)
30
- {
31
- $camelCasedName = preg_replace_callback('/(-[a-z])/', function ($matches) {
32
- return strtoupper($matches[0][1]);
33
- }, $vars['name']);
34
- $vars['name'] = ucfirst($camelCasedName);
35
- return $vars;
36
- }
37
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MakoInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MakoInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'package' => 'app/packages/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MauticInstaller.php DELETED
@@ -1,25 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MauticInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'plugins/{$name}/',
8
- 'theme' => 'themes/{$name}/',
9
- );
10
-
11
- /**
12
- * Format package name of mautic-plugins to CamelCase
13
- */
14
- public function inflectPackageVars($vars)
15
- {
16
- if ($vars['type'] == 'mautic-plugin') {
17
- $vars['name'] = preg_replace_callback('/(-[a-z])/', function ($matches) {
18
- return strtoupper($matches[0][1]);
19
- }, ucfirst($vars['name']));
20
- }
21
-
22
- return $vars;
23
- }
24
-
25
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MayaInstaller.php DELETED
@@ -1,33 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MayaInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- );
9
-
10
- /**
11
- * Format package name.
12
- *
13
- * For package type maya-module, cut off a trailing '-module' if present.
14
- *
15
- */
16
- public function inflectPackageVars($vars)
17
- {
18
- if ($vars['type'] === 'maya-module') {
19
- return $this->inflectModuleVars($vars);
20
- }
21
-
22
- return $vars;
23
- }
24
-
25
- protected function inflectModuleVars($vars)
26
- {
27
- $vars['name'] = preg_replace('/-module$/', '', $vars['name']);
28
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
29
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
30
-
31
- return $vars;
32
- }
33
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MediaWikiInstaller.php DELETED
@@ -1,51 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MediaWikiInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'core' => 'core/',
8
- 'extension' => 'extensions/{$name}/',
9
- 'skin' => 'skins/{$name}/',
10
- );
11
-
12
- /**
13
- * Format package name.
14
- *
15
- * For package type mediawiki-extension, cut off a trailing '-extension' if present and transform
16
- * to CamelCase keeping existing uppercase chars.
17
- *
18
- * For package type mediawiki-skin, cut off a trailing '-skin' if present.
19
- *
20
- */
21
- public function inflectPackageVars($vars)
22
- {
23
-
24
- if ($vars['type'] === 'mediawiki-extension') {
25
- return $this->inflectExtensionVars($vars);
26
- }
27
-
28
- if ($vars['type'] === 'mediawiki-skin') {
29
- return $this->inflectSkinVars($vars);
30
- }
31
-
32
- return $vars;
33
- }
34
-
35
- protected function inflectExtensionVars($vars)
36
- {
37
- $vars['name'] = preg_replace('/-extension$/', '', $vars['name']);
38
- $vars['name'] = str_replace('-', ' ', $vars['name']);
39
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
40
-
41
- return $vars;
42
- }
43
-
44
- protected function inflectSkinVars($vars)
45
- {
46
- $vars['name'] = preg_replace('/-skin$/', '', $vars['name']);
47
-
48
- return $vars;
49
- }
50
-
51
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MicroweberInstaller.php DELETED
@@ -1,111 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MicroweberInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'userfiles/modules/{$name}/',
8
- 'module-skin' => 'userfiles/modules/{$name}/templates/',
9
- 'template' => 'userfiles/templates/{$name}/',
10
- 'element' => 'userfiles/elements/{$name}/',
11
- 'vendor' => 'vendor/{$name}/',
12
- 'components' => 'components/{$name}/'
13
- );
14
-
15
- /**
16
- * Format package name.
17
- *
18
- * For package type microweber-module, cut off a trailing '-module' if present
19
- *
20
- * For package type microweber-template, cut off a trailing '-template' if present.
21
- *
22
- */
23
- public function inflectPackageVars($vars)
24
- {
25
- if ($vars['type'] === 'microweber-template') {
26
- return $this->inflectTemplateVars($vars);
27
- }
28
- if ($vars['type'] === 'microweber-templates') {
29
- return $this->inflectTemplatesVars($vars);
30
- }
31
- if ($vars['type'] === 'microweber-core') {
32
- return $this->inflectCoreVars($vars);
33
- }
34
- if ($vars['type'] === 'microweber-adapter') {
35
- return $this->inflectCoreVars($vars);
36
- }
37
- if ($vars['type'] === 'microweber-module') {
38
- return $this->inflectModuleVars($vars);
39
- }
40
- if ($vars['type'] === 'microweber-modules') {
41
- return $this->inflectModulesVars($vars);
42
- }
43
- if ($vars['type'] === 'microweber-skin') {
44
- return $this->inflectSkinVars($vars);
45
- }
46
- if ($vars['type'] === 'microweber-element' or $vars['type'] === 'microweber-elements') {
47
- return $this->inflectElementVars($vars);
48
- }
49
-
50
- return $vars;
51
- }
52
-
53
- protected function inflectTemplateVars($vars)
54
- {
55
- $vars['name'] = preg_replace('/-template$/', '', $vars['name']);
56
- $vars['name'] = preg_replace('/template-$/', '', $vars['name']);
57
-
58
- return $vars;
59
- }
60
-
61
- protected function inflectTemplatesVars($vars)
62
- {
63
- $vars['name'] = preg_replace('/-templates$/', '', $vars['name']);
64
- $vars['name'] = preg_replace('/templates-$/', '', $vars['name']);
65
-
66
- return $vars;
67
- }
68
-
69
- protected function inflectCoreVars($vars)
70
- {
71
- $vars['name'] = preg_replace('/-providers$/', '', $vars['name']);
72
- $vars['name'] = preg_replace('/-provider$/', '', $vars['name']);
73
- $vars['name'] = preg_replace('/-adapter$/', '', $vars['name']);
74
-
75
- return $vars;
76
- }
77
-
78
- protected function inflectModuleVars($vars)
79
- {
80
- $vars['name'] = preg_replace('/-module$/', '', $vars['name']);
81
- $vars['name'] = preg_replace('/module-$/', '', $vars['name']);
82
-
83
- return $vars;
84
- }
85
-
86
- protected function inflectModulesVars($vars)
87
- {
88
- $vars['name'] = preg_replace('/-modules$/', '', $vars['name']);
89
- $vars['name'] = preg_replace('/modules-$/', '', $vars['name']);
90
-
91
- return $vars;
92
- }
93
-
94
- protected function inflectSkinVars($vars)
95
- {
96
- $vars['name'] = preg_replace('/-skin$/', '', $vars['name']);
97
- $vars['name'] = preg_replace('/skin-$/', '', $vars['name']);
98
-
99
- return $vars;
100
- }
101
-
102
- protected function inflectElementVars($vars)
103
- {
104
- $vars['name'] = preg_replace('/-elements$/', '', $vars['name']);
105
- $vars['name'] = preg_replace('/elements-$/', '', $vars['name']);
106
- $vars['name'] = preg_replace('/-element$/', '', $vars['name']);
107
- $vars['name'] = preg_replace('/element-$/', '', $vars['name']);
108
-
109
- return $vars;
110
- }
111
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ModxInstaller.php DELETED
@@ -1,12 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * An installer to handle MODX specifics when installing packages.
6
- */
7
- class ModxInstaller extends BaseInstaller
8
- {
9
- protected $locations = array(
10
- 'extra' => 'core/packages/{$name}/'
11
- );
12
- }
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MoodleInstaller.php DELETED
@@ -1,57 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MoodleInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'mod' => 'mod/{$name}/',
8
- 'admin_report' => 'admin/report/{$name}/',
9
- 'atto' => 'lib/editor/atto/plugins/{$name}/',
10
- 'tool' => 'admin/tool/{$name}/',
11
- 'assignment' => 'mod/assignment/type/{$name}/',
12
- 'assignsubmission' => 'mod/assign/submission/{$name}/',
13
- 'assignfeedback' => 'mod/assign/feedback/{$name}/',
14
- 'auth' => 'auth/{$name}/',
15
- 'availability' => 'availability/condition/{$name}/',
16
- 'block' => 'blocks/{$name}/',
17
- 'booktool' => 'mod/book/tool/{$name}/',
18
- 'cachestore' => 'cache/stores/{$name}/',
19
- 'cachelock' => 'cache/locks/{$name}/',
20
- 'calendartype' => 'calendar/type/{$name}/',
21
- 'format' => 'course/format/{$name}/',
22
- 'coursereport' => 'course/report/{$name}/',
23
- 'datafield' => 'mod/data/field/{$name}/',
24
- 'datapreset' => 'mod/data/preset/{$name}/',
25
- 'editor' => 'lib/editor/{$name}/',
26
- 'enrol' => 'enrol/{$name}/',
27
- 'filter' => 'filter/{$name}/',
28
- 'gradeexport' => 'grade/export/{$name}/',
29
- 'gradeimport' => 'grade/import/{$name}/',
30
- 'gradereport' => 'grade/report/{$name}/',
31
- 'gradingform' => 'grade/grading/form/{$name}/',
32
- 'local' => 'local/{$name}/',
33
- 'logstore' => 'admin/tool/log/store/{$name}/',
34
- 'ltisource' => 'mod/lti/source/{$name}/',
35
- 'ltiservice' => 'mod/lti/service/{$name}/',
36
- 'message' => 'message/output/{$name}/',
37
- 'mnetservice' => 'mnet/service/{$name}/',
38
- 'plagiarism' => 'plagiarism/{$name}/',
39
- 'portfolio' => 'portfolio/{$name}/',
40
- 'qbehaviour' => 'question/behaviour/{$name}/',
41
- 'qformat' => 'question/format/{$name}/',
42
- 'qtype' => 'question/type/{$name}/',
43
- 'quizaccess' => 'mod/quiz/accessrule/{$name}/',
44
- 'quiz' => 'mod/quiz/report/{$name}/',
45
- 'report' => 'report/{$name}/',
46
- 'repository' => 'repository/{$name}/',
47
- 'scormreport' => 'mod/scorm/report/{$name}/',
48
- 'search' => 'search/engine/{$name}/',
49
- 'theme' => 'theme/{$name}/',
50
- 'tinymce' => 'lib/editor/tinymce/plugins/{$name}/',
51
- 'profilefield' => 'user/profile/field/{$name}/',
52
- 'webservice' => 'webservice/{$name}/',
53
- 'workshopallocation' => 'mod/workshop/allocation/{$name}/',
54
- 'workshopeval' => 'mod/workshop/eval/{$name}/',
55
- 'workshopform' => 'mod/workshop/form/{$name}/'
56
- );
57
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php DELETED
@@ -1,47 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class OctoberInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- 'plugin' => 'plugins/{$vendor}/{$name}/',
9
- 'theme' => 'themes/{$name}/'
10
- );
11
-
12
- /**
13
- * Format package name.
14
- *
15
- * For package type october-plugin, cut off a trailing '-plugin' if present.
16
- *
17
- * For package type october-theme, cut off a trailing '-theme' if present.
18
- *
19
- */
20
- public function inflectPackageVars($vars)
21
- {
22
- if ($vars['type'] === 'october-plugin') {
23
- return $this->inflectPluginVars($vars);
24
- }
25
-
26
- if ($vars['type'] === 'october-theme') {
27
- return $this->inflectThemeVars($vars);
28
- }
29
-
30
- return $vars;
31
- }
32
-
33
- protected function inflectPluginVars($vars)
34
- {
35
- $vars['name'] = preg_replace('/^oc-|-plugin$/', '', $vars['name']);
36
- $vars['vendor'] = preg_replace('/[^a-z0-9_]/i', '', $vars['vendor']);
37
-
38
- return $vars;
39
- }
40
-
41
- protected function inflectThemeVars($vars)
42
- {
43
- $vars['name'] = preg_replace('/^oc-|-theme$/', '', $vars['name']);
44
-
45
- return $vars;
46
- }
47
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/OntoWikiInstaller.php DELETED
@@ -1,24 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class OntoWikiInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'extension' => 'extensions/{$name}/',
8
- 'theme' => 'extensions/themes/{$name}/',
9
- 'translation' => 'extensions/translations/{$name}/',
10
- );
11
-
12
- /**
13
- * Format package name to lower case and remove ".ontowiki" suffix
14
- */
15
- public function inflectPackageVars($vars)
16
- {
17
- $vars['name'] = strtolower($vars['name']);
18
- $vars['name'] = preg_replace('/.ontowiki$/', '', $vars['name']);
19
- $vars['name'] = preg_replace('/-theme$/', '', $vars['name']);
20
- $vars['name'] = preg_replace('/-translation$/', '', $vars['name']);
21
-
22
- return $vars;
23
- }
24
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/OsclassInstaller.php DELETED
@@ -1,14 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
-
5
- class OsclassInstaller extends BaseInstaller
6
- {
7
-
8
- protected $locations = array(
9
- 'plugin' => 'oc-content/plugins/{$name}/',
10
- 'theme' => 'oc-content/themes/{$name}/',
11
- 'language' => 'oc-content/languages/{$name}/',
12
- );
13
-
14
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/OxidInstaller.php DELETED
@@ -1,59 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- use Composer\Package\PackageInterface;
5
-
6
- class OxidInstaller extends BaseInstaller
7
- {
8
- const VENDOR_PATTERN = '/^modules\/(?P<vendor>.+)\/.+/';
9
-
10
- protected $locations = array(
11
- 'module' => 'modules/{$name}/',
12
- 'theme' => 'application/views/{$name}/',
13
- 'out' => 'out/{$name}/',
14
- );
15
-
16
- /**
17
- * getInstallPath
18
- *
19
- * @param PackageInterface $package
20
- * @param string $frameworkType
21
- * @return void
22
- */
23
- public function getInstallPath(PackageInterface $package, $frameworkType = '')
24
- {
25
- $installPath = parent::getInstallPath($package, $frameworkType);
26
- $type = $this->package->getType();
27
- if ($type === 'oxid-module') {
28
- $this->prepareVendorDirectory($installPath);
29
- }
30
- return $installPath;
31
- }
32
-
33
- /**
34
- * prepareVendorDirectory
35
- *
36
- * Makes sure there is a vendormetadata.php file inside
37
- * the vendor folder if there is a vendor folder.
38
- *
39
- * @param string $installPath
40
- * @return void
41
- */
42
- protected function prepareVendorDirectory($installPath)
43
- {
44
- $matches = '';
45
- $hasVendorDirectory = preg_match(self::VENDOR_PATTERN, $installPath, $matches);
46
- if (!$hasVendorDirectory) {
47
- return;
48
- }
49
-
50
- $vendorDirectory = $matches['vendor'];
51
- $vendorPath = getcwd() . '/modules/' . $vendorDirectory;
52
- if (!file_exists($vendorPath)) {
53
- mkdir($vendorPath, 0755, true);
54
- }
55
-
56
- $vendorMetaDataPath = $vendorPath . '/vendormetadata.php';
57
- touch($vendorMetaDataPath);
58
- }
59
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PPIInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PPIInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PhiftyInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PhiftyInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'bundle' => 'bundles/{$name}/',
8
- 'library' => 'libraries/{$name}/',
9
- 'framework' => 'frameworks/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PhpBBInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PhpBBInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'extension' => 'ext/{$vendor}/{$name}/',
8
- 'language' => 'language/{$name}/',
9
- 'style' => 'styles/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PimcoreInstaller.php DELETED
@@ -1,21 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PimcoreInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'plugins/{$name}/',
8
- );
9
-
10
- /**
11
- * Format package name to CamelCase
12
- */
13
- public function inflectPackageVars($vars)
14
- {
15
- $vars['name'] = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name']));
16
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
17
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
18
-
19
- return $vars;
20
- }
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PiwikInstaller.php DELETED
@@ -1,32 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Class PiwikInstaller
6
- *
7
- * @package Composer\Installers
8
- */
9
- class PiwikInstaller extends BaseInstaller
10
- {
11
- /**
12
- * @var array
13
- */
14
- protected $locations = array(
15
- 'plugin' => 'plugins/{$name}/',
16
- );
17
-
18
- /**
19
- * Format package name to CamelCase
20
- * @param array $vars
21
- *
22
- * @return array
23
- */
24
- public function inflectPackageVars($vars)
25
- {
26
- $vars['name'] = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name']));
27
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
28
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
29
-
30
- return $vars;
31
- }
32
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php DELETED
@@ -1,29 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PlentymarketsInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => '{$name}/'
8
- );
9
-
10
- /**
11
- * Remove hyphen, "plugin" and format to camelcase
12
- * @param array $vars
13
- *
14
- * @return array
15
- */
16
- public function inflectPackageVars($vars)
17
- {
18
- $vars['name'] = explode("-", $vars['name']);
19
- foreach ($vars['name'] as $key => $name) {
20
- $vars['name'][$key] = ucfirst($vars['name'][$key]);
21
- if (strcasecmp($name, "Plugin") == 0) {
22
- unset($vars['name'][$key]);
23
- }
24
- }
25
- $vars['name'] = implode("",$vars['name']);
26
-
27
- return $vars;
28
- }
29
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/Plugin.php DELETED
@@ -1,17 +0,0 @@
1
- <?php
2
-
3
- namespace Composer\Installers;
4
-
5
- use Composer\Composer;
6
- use Composer\IO\IOInterface;
7
- use Composer\Plugin\PluginInterface;
8
-
9
- class Plugin implements PluginInterface
10
- {
11
-
12
- public function activate(Composer $composer, IOInterface $io)
13
- {
14
- $installer = new Installer($io, $composer);
15
- $composer->getInstallationManager()->addInstaller($installer);
16
- }
17
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PortoInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PortoInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'container' => 'app/Containers/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PrestashopInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PrestashopInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- 'theme' => 'themes/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PuppetInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
-
3
- namespace Composer\Installers;
4
-
5
- class PuppetInstaller extends BaseInstaller
6
- {
7
-
8
- protected $locations = array(
9
- 'module' => 'modules/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PxcmsInstaller.php DELETED
@@ -1,63 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PxcmsInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'app/Modules/{$name}/',
8
- 'theme' => 'themes/{$name}/',
9
- );
10
-
11
- /**
12
- * Format package name.
13
- *
14
- * @param array $vars
15
- *
16
- * @return array
17
- */
18
- public function inflectPackageVars($vars)
19
- {
20
- if ($vars['type'] === 'pxcms-module') {
21
- return $this->inflectModuleVars($vars);
22
- }
23
-
24
- if ($vars['type'] === 'pxcms-theme') {
25
- return $this->inflectThemeVars($vars);
26
- }
27
-
28
- return $vars;
29
- }
30
-
31
- /**
32
- * For package type pxcms-module, cut off a trailing '-plugin' if present.
33
- *
34
- * return string
35
- */
36
- protected function inflectModuleVars($vars)
37
- {
38
- $vars['name'] = str_replace('pxcms-', '', $vars['name']); // strip out pxcms- just incase (legacy)
39
- $vars['name'] = str_replace('module-', '', $vars['name']); // strip out module-
40
- $vars['name'] = preg_replace('/-module$/', '', $vars['name']); // strip out -module
41
- $vars['name'] = str_replace('-', '_', $vars['name']); // make -'s be _'s
42
- $vars['name'] = ucwords($vars['name']); // make module name camelcased
43
-
44
- return $vars;
45
- }
46
-
47
-
48
- /**
49
- * For package type pxcms-module, cut off a trailing '-plugin' if present.
50
- *
51
- * return string
52
- */
53
- protected function inflectThemeVars($vars)
54
- {
55
- $vars['name'] = str_replace('pxcms-', '', $vars['name']); // strip out pxcms- just incase (legacy)
56
- $vars['name'] = str_replace('theme-', '', $vars['name']); // strip out theme-
57
- $vars['name'] = preg_replace('/-theme$/', '', $vars['name']); // strip out -theme
58
- $vars['name'] = str_replace('-', '_', $vars['name']); // make -'s be _'s
59
- $vars['name'] = ucwords($vars['name']); // make module name camelcased
60
-
61
- return $vars;
62
- }
63
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/RadPHPInstaller.php DELETED
@@ -1,24 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class RadPHPInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'bundle' => 'src/{$name}/'
8
- );
9
-
10
- /**
11
- * Format package name to CamelCase
12
- */
13
- public function inflectPackageVars($vars)
14
- {
15
- $nameParts = explode('/', $vars['name']);
16
- foreach ($nameParts as &$value) {
17
- $value = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $value));
18
- $value = str_replace(array('-', '_'), ' ', $value);
19
- $value = str_replace(' ', '', ucwords($value));
20
- }
21
- $vars['name'] = implode('/', $nameParts);
22
- return $vars;
23
- }
24
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ReIndexInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ReIndexInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'theme' => 'themes/{$name}/',
8
- 'plugin' => 'plugins/{$name}/'
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/RedaxoInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class RedaxoInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'addon' => 'redaxo/include/addons/{$name}/',
8
- 'bestyle-plugin' => 'redaxo/include/addons/be_style/plugins/{$name}/'
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/RoundcubeInstaller.php DELETED
@@ -1,22 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class RoundcubeInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'plugins/{$name}/',
8
- );
9
-
10
- /**
11
- * Lowercase name and changes the name to a underscores
12
- *
13
- * @param array $vars
14
- * @return array
15
- */
16
- public function inflectPackageVars($vars)
17
- {
18
- $vars['name'] = strtolower(str_replace('-', '_', $vars['name']));
19
-
20
- return $vars;
21
- }
22
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/SMFInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class SMFInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'Sources/{$name}/',
8
- 'theme' => 'Themes/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ShopwareInstaller.php DELETED
@@ -1,60 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Plugin/theme installer for shopware
6
- * @author Benjamin Boit
7
- */
8
- class ShopwareInstaller extends BaseInstaller
9
- {
10
- protected $locations = array(
11
- 'backend-plugin' => 'engine/Shopware/Plugins/Local/Backend/{$name}/',
12
- 'core-plugin' => 'engine/Shopware/Plugins/Local/Core/{$name}/',
13
- 'frontend-plugin' => 'engine/Shopware/Plugins/Local/Frontend/{$name}/',
14
- 'theme' => 'templates/{$name}/',
15
- 'plugin' => 'custom/plugins/{$name}/',
16
- 'frontend-theme' => 'themes/Frontend/{$name}/',
17
- );
18
-
19
- /**
20
- * Transforms the names
21
- * @param array $vars
22
- * @return array
23
- */
24
- public function inflectPackageVars($vars)
25
- {
26
- if ($vars['type'] === 'shopware-theme') {
27
- return $this->correctThemeName($vars);
28
- }
29
-
30
- return $this->correctPluginName($vars);
31
- }
32
-
33
- /**
34
- * Changes the name to a camelcased combination of vendor and name
35
- * @param array $vars
36
- * @return array
37
- */
38
- private function correctPluginName($vars)
39
- {
40
- $camelCasedName = preg_replace_callback('/(-[a-z])/', function ($matches) {
41
- return strtoupper($matches[0][1]);
42
- }, $vars['name']);
43
-
44
- $vars['name'] = ucfirst($vars['vendor']) . ucfirst($camelCasedName);
45
-
46
- return $vars;
47
- }
48
-
49
- /**
50
- * Changes the name to a underscore separated name
51
- * @param array $vars
52
- * @return array
53
- */
54
- private function correctThemeName($vars)
55
- {
56
- $vars['name'] = str_replace('-', '_', $vars['name']);
57
-
58
- return $vars;
59
- }
60
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/SilverStripeInstaller.php DELETED
@@ -1,35 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- use Composer\Package\PackageInterface;
5
-
6
- class SilverStripeInstaller extends BaseInstaller
7
- {
8
- protected $locations = array(
9
- 'module' => '{$name}/',
10
- 'theme' => 'themes/{$name}/',
11
- );
12
-
13
- /**
14
- * Return the install path based on package type.
15
- *
16
- * Relies on built-in BaseInstaller behaviour with one exception: silverstripe/framework
17
- * must be installed to 'sapphire' and not 'framework' if the version is <3.0.0
18
- *
19
- * @param PackageInterface $package
20
- * @param string $frameworkType
21
- * @return string
22
- */
23
- public function getInstallPath(PackageInterface $package, $frameworkType = '')
24
- {
25
- if (
26
- $package->getName() == 'silverstripe/framework'
27
- && preg_match('/^\d+\.\d+\.\d+/', $package->getVersion())
28
- && version_compare($package->getVersion(), '2.999.999') < 0
29
- ) {
30
- return $this->templatePath($this->locations['module'], array('name' => 'sapphire'));
31
- }
32
-
33
- return parent::getInstallPath($package, $frameworkType);
34
- }
35
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/SiteDirectInstaller.php DELETED
@@ -1,25 +0,0 @@
1
- <?php
2
-
3
- namespace Composer\Installers;
4
-
5
- class SiteDirectInstaller extends BaseInstaller
6
- {
7
- protected $locations = array(
8
- 'module' => 'modules/{$vendor}/{$name}/',
9
- 'plugin' => 'plugins/{$vendor}/{$name}/'
10
- );
11
-
12
- public function inflectPackageVars($vars)
13
- {
14
- return $this->parseVars($vars);
15
- }
16
-
17
- protected function parseVars($vars)
18
- {
19
- $vars['vendor'] = strtolower($vars['vendor']) == 'sitedirect' ? 'SiteDirect' : $vars['vendor'];
20
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
21
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
22
-
23
- return $vars;
24
- }
25
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/SyDESInstaller.php DELETED
@@ -1,49 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class SyDESInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'app/modules/{$name}/',
8
- 'theme' => 'themes/{$name}/',
9
- );
10
-
11
- /**
12
- * Format module name.
13
- *
14
- * Strip `sydes-` prefix and a trailing '-theme' or '-module' from package name if present.
15
- *
16
- * @param array @vars
17
- *
18
- * @return array
19
- */
20
- public function inflectPackageVars($vars)
21
- {
22
- if ($vars['type'] == 'sydes-module') {
23
- return $this->inflectModuleVars($vars);
24
- }
25
-
26
- if ($vars['type'] === 'sydes-theme') {
27
- return $this->inflectThemeVars($vars);
28
- }
29
-
30
- return $vars;
31
- }
32
-
33
- public function inflectModuleVars($vars)
34
- {
35
- $vars['name'] = preg_replace('/(^sydes-|-module$)/i', '', $vars['name']);
36
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
37
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
38
-
39
- return $vars;
40
- }
41
-
42
- protected function inflectThemeVars($vars)
43
- {
44
- $vars['name'] = preg_replace('/(^sydes-|-theme$)/', '', $vars['name']);
45
- $vars['name'] = strtolower($vars['name']);
46
-
47
- return $vars;
48
- }
49
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/Symfony1Installer.php DELETED
@@ -1,26 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Plugin installer for symfony 1.x
6
- *
7
- * @author Jérôme Tamarelle <jerome@tamarelle.net>
8
- */
9
- class Symfony1Installer extends BaseInstaller
10
- {
11
- protected $locations = array(
12
- 'plugin' => 'plugins/{$name}/',
13
- );
14
-
15
- /**
16
- * Format package name to CamelCase
17
- */
18
- public function inflectPackageVars($vars)
19
- {
20
- $vars['name'] = preg_replace_callback('/(-[a-z])/', function ($matches) {
21
- return strtoupper($matches[0][1]);
22
- }, $vars['name']);
23
-
24
- return $vars;
25
- }
26
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php DELETED
@@ -1,16 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Extension installer for TYPO3 CMS
6
- *
7
- * @deprecated since 1.0.25, use https://packagist.org/packages/typo3/cms-composer-installers instead
8
- *
9
- * @author Sascha Egerer <sascha.egerer@dkd.de>
10
- */
11
- class TYPO3CmsInstaller extends BaseInstaller
12
- {
13
- protected $locations = array(
14
- 'extension' => 'typo3conf/ext/{$name}/',
15
- );
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php DELETED
@@ -1,38 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * An installer to handle TYPO3 Flow specifics when installing packages.
6
- */
7
- class TYPO3FlowInstaller extends BaseInstaller
8
- {
9
- protected $locations = array(
10
- 'package' => 'Packages/Application/{$name}/',
11
- 'framework' => 'Packages/Framework/{$name}/',
12
- 'plugin' => 'Packages/Plugins/{$name}/',
13
- 'site' => 'Packages/Sites/{$name}/',
14
- 'boilerplate' => 'Packages/Boilerplates/{$name}/',
15
- 'build' => 'Build/{$name}/',
16
- );
17
-
18
- /**
19
- * Modify the package name to be a TYPO3 Flow style key.
20
- *
21
- * @param array $vars
22
- * @return array
23
- */
24
- public function inflectPackageVars($vars)
25
- {
26
- $autoload = $this->package->getAutoload();
27
- if (isset($autoload['psr-0']) && is_array($autoload['psr-0'])) {
28
- $namespace = key($autoload['psr-0']);
29
- $vars['name'] = str_replace('\\', '.', $namespace);
30
- }
31
- if (isset($autoload['psr-4']) && is_array($autoload['psr-4'])) {
32
- $namespace = key($autoload['psr-4']);
33
- $vars['name'] = rtrim(str_replace('\\', '.', $namespace), '.');
34
- }
35
-
36
- return $vars;
37
- }
38
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/TheliaInstaller.php DELETED
@@ -1,12 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class TheliaInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'local/modules/{$name}/',
8
- 'frontoffice-template' => 'templates/frontOffice/{$name}/',
9
- 'backoffice-template' => 'templates/backOffice/{$name}/',
10
- 'email-template' => 'templates/email/{$name}/',
11
- );
12
- }
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/TuskInstaller.php DELETED
@@ -1,14 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
- /**
4
- * Composer installer for 3rd party Tusk utilities
5
- * @author Drew Ewing <drew@phenocode.com>
6
- */
7
- class TuskInstaller extends BaseInstaller
8
- {
9
- protected $locations = array(
10
- 'task' => '.tusk/tasks/{$name}/',
11
- 'command' => '.tusk/commands/{$name}/',
12
- 'asset' => 'assets/tusk/{$name}/',
13
- );
14
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/UserFrostingInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class UserFrostingInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'sprinkle' => 'app/sprinkles/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/VanillaInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class VanillaInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'plugins/{$name}/',
8
- 'theme' => 'themes/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/VgmcpInstaller.php DELETED
@@ -1,49 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class VgmcpInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'bundle' => 'src/{$vendor}/{$name}/',
8
- 'theme' => 'themes/{$name}/'
9
- );
10
-
11
- /**
12
- * Format package name.
13
- *
14
- * For package type vgmcp-bundle, cut off a trailing '-bundle' if present.
15
- *
16
- * For package type vgmcp-theme, cut off a trailing '-theme' if present.
17
- *
18
- */
19
- public function inflectPackageVars($vars)
20
- {
21
- if ($vars['type'] === 'vgmcp-bundle') {
22
- return $this->inflectPluginVars($vars);
23
- }
24
-
25
- if ($vars['type'] === 'vgmcp-theme') {
26
- return $this->inflectThemeVars($vars);
27
- }
28
-
29
- return $vars;
30
- }
31
-
32
- protected function inflectPluginVars($vars)
33
- {
34
- $vars['name'] = preg_replace('/-bundle$/', '', $vars['name']);
35
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
36
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
37
-
38
- return $vars;
39
- }
40
-
41
- protected function inflectThemeVars($vars)
42
- {
43
- $vars['name'] = preg_replace('/-theme$/', '', $vars['name']);
44
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
45
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
46
-
47
- return $vars;
48
- }
49
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/WHMCSInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
-
3
- namespace Composer\Installers;
4
-
5
- class WHMCSInstaller extends BaseInstaller
6
- {
7
- protected $locations = array(
8
- 'gateway' => 'modules/gateways/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/WolfCMSInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class WolfCMSInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'wolf/plugins/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/WordPressInstaller.php DELETED
@@ -1,12 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class WordPressInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'wp-content/plugins/{$name}/',
8
- 'theme' => 'wp-content/themes/{$name}/',
9
- 'muplugin' => 'wp-content/mu-plugins/{$name}/',
10
- 'dropin' => 'wp-content/{$name}/',
11
- );
12
- }
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/YawikInstaller.php DELETED
@@ -1,32 +0,0 @@
1
- <?php
2
- /**
3
- * Created by PhpStorm.
4
- * User: cbleek
5
- * Date: 25.03.16
6
- * Time: 20:55
7
- */
8
-
9
- namespace Composer\Installers;
10
-
11
-
12
- class YawikInstaller extends BaseInstaller
13
- {
14
- protected $locations = array(
15
- 'module' => 'module/{$name}/',
16
- );
17
-
18
- /**
19
- * Format package name to CamelCase
20
- * @param array $vars
21
- *
22
- * @return array
23
- */
24
- public function inflectPackageVars($vars)
25
- {
26
- $vars['name'] = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name']));
27
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
28
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
29
-
30
- return $vars;
31
- }
32
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ZendInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ZendInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'library' => 'library/{$name}/',
8
- 'extra' => 'extras/library/{$name}/',
9
- 'module' => 'module/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ZikulaInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ZikulaInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$vendor}-{$name}/',
8
- 'theme' => 'themes/{$vendor}-{$name}/'
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/bootstrap.php DELETED
@@ -1,13 +0,0 @@
1
- <?php
2
- function includeIfExists($file)
3
- {
4
- if (file_exists($file)) {
5
- return include $file;
6
- }
7
- }
8
- if ((!$loader = includeIfExists(__DIR__ . '/../vendor/autoload.php')) && (!$loader = includeIfExists(__DIR__ . '/../../../autoload.php'))) {
9
- die('You must set up the project dependencies, run the following commands:'.PHP_EOL.
10
- 'curl -s http://getcomposer.org/installer | php'.PHP_EOL.
11
- 'php composer.phar install'.PHP_EOL);
12
- }
13
- return $loader;
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/.editorconfig DELETED
@@ -1,29 +0,0 @@
1
- # This file is for unifying the coding style for different editors and IDEs
2
- # editorconfig.org
3
-
4
- # WordPress Coding Standards
5
- # https://make.wordpress.org/core/handbook/coding-standards/
6
-
7
- # Based from https://github.com/ntwb/wp.editorconfig/blob/master/.editorconfig
8
- #
9
- # Need an IDE plugin? http://editorconfig.org/#download
10
-
11
- root = true
12
-
13
- [*]
14
- charset = utf-8
15
- end_of_line = lf
16
- insert_final_newline = true
17
- trim_trailing_whitespace = true
18
- indent_style = tab
19
-
20
- [*.json]
21
- indent_style = space
22
- indent_size = 2
23
-
24
- [*.yml]
25
- indent_style = space
26
- indent_size = 4
27
-
28
- [*.txt,wp-config-sample.php]
29
- end_of_line = crlf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/.gitattributes DELETED
@@ -1,2 +0,0 @@
1
- * text=auto
2
- /tests export-ignore
 
 
vendor/wpdesk/wp-settings/.gitignore DELETED
@@ -1,36 +0,0 @@
1
- # Windows image file caches
2
- Thumbs.db
3
- ehthumbs.db
4
-
5
- # Folder config file
6
- Desktop.ini
7
-
8
- # Recycle Bin used on file shares
9
- $RECYCLE.BIN/
10
-
11
- # Mac crap
12
- .DS_Store
13
-
14
- # Sublime
15
- *.sublime-project
16
- *.sublime-workspace
17
-
18
- # PhpStorm
19
- .idea
20
-
21
- # Eclipse
22
- *.pydevproject
23
- .project
24
- .metadata
25
- build/
26
- tmp/
27
- tests/clover.xml
28
-
29
- # Grunt
30
- node_modules
31
-
32
- # Vendor
33
- vendor
34
-
35
- # Temporary files
36
- *~
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/.gitlab-ci.yml DELETED
@@ -1,310 +0,0 @@
1
- variables:
2
- WPDESK_CI_VERSION: 1.10.19
3
- MYSQL_ROOT_PASSWORD: mysql
4
- MYSQL_DATABASE: wptest
5
- MYSQL_USER: mysql
6
- MYSQL_PASSWORD: mysql
7
- MYSQL_INNODB_LOG_BUFFER_SIZE: 32M
8
- PHP_ERROR_REPORTING: E_ALL
9
- COMPOSER_ALLOW_SUPERUSER: 1
10
- GIT_STRATEGY: fetch
11
- ACCEPTANCE_ERROR_PATH: ${CI_PROJECT_DIR}/acceptance
12
-
13
- stages:
14
- - tools
15
- - tests
16
- - pre-deploy
17
- - deploy
18
-
19
- .template: &job-test-template
20
- stage: tests
21
- coverage: '/^\s*Lines:\s*\d+.\d+\%/'
22
-
23
- .template: &job-test-integration-template
24
- <<: *job-test-template
25
- services:
26
- - mysql:5.6
27
- script:
28
- - echo ${WPDESK_CI_VERSION}
29
- - ls -l
30
- - php --version
31
- - cat /tmp/wordpress-develop/src/wp-includes/version.php
32
- - cat /tmp/woocommerce/woocommerce.php
33
- - composer update --no-progress
34
- - if [[ -f tests/integration/prepare.sh ]]; then sh tests/integration/prepare.sh; fi
35
- - vendor/bin/phpunit --configuration phpunit-integration.xml --coverage-text --colors=never
36
- only:
37
- - tags
38
-
39
- .template: &job-test-integration-template-fast
40
- <<: *job-test-integration-template
41
- script:
42
- - echo ${WPDESK_CI_VERSION}
43
- - ls -l
44
- - php --version
45
- - cat /tmp/wordpress-develop/src/wp-includes/version.php
46
- - cat /tmp/woocommerce/woocommerce.php
47
- - composer update --no-progress
48
- - if [[ -f tests/integration/prepare.sh ]]; then sh tests/integration/prepare.sh; fi
49
- - vendor/bin/phpunit --configuration phpunit-integration.xml --no-coverage
50
- except:
51
- - tags
52
- only:
53
-
54
- .template: &job-test-unit-template
55
- <<: *job-test-template
56
- script:
57
- - echo ${WPDESK_CI_VERSION}
58
- - ls -l
59
- - php --version
60
- - cat /tmp/wordpress-develop/src/wp-includes/version.php
61
- - cat /tmp/woocommerce/woocommerce.php
62
- - composer update --no-progress
63
- - vendor/bin/phpunit --configuration phpunit-unit.xml --coverage-text --colors=never
64
- only:
65
- - tags
66
-
67
- .template: &job-test-unit-template-fast
68
- <<: *job-test-unit-template
69
- script:
70
- - echo ${WPDESK_CI_VERSION}
71
- - ls -l
72
- - php --version
73
- - cat /tmp/wordpress-develop/src/wp-includes/version.php
74
- - cat /tmp/woocommerce/woocommerce.php
75
- - composer update --no-progress
76
- - vendor/bin/phpunit --configuration phpunit-unit.xml --no-coverage
77
- except:
78
- - tags
79
- only:
80
-
81
- .template: &job-deploy-template
82
- image: wpdesknet/amazon-svn-deploy
83
- stage: deploy
84
- dependencies:
85
- - build to deploy
86
- - unit test lastest coverage
87
- - integration test lastest coverage
88
- retry: 2
89
- when: manual
90
- only:
91
- - tags
92
-
93
- before_script:
94
- - cd ${CI_PROJECT_DIR}
95
-
96
- phpmetric metrics:
97
- stage: tools
98
- image: wpdesknet/phpunit-woocommerce:0-0
99
- allow_failure: true
100
- when: manual
101
- artifacts:
102
- when: always
103
- expire_in: 1 month
104
- name: "metrics"
105
- paths:
106
- - ${CI_PROJECT_DIR}/phpmetric
107
- script:
108
- - echo ${WPDESK_CI_VERSION}
109
- - composer require phpmetrics/phpmetrics
110
- - composer update --no-progress
111
- - php ./vendor/bin/phpmetrics --report-html=phpmetric .
112
-
113
- churn metrics:
114
- stage: tools
115
- image: wpdesknet/phpunit-woocommerce:0-0
116
- allow_failure: true
117
- when: manual
118
- script:
119
- - echo ${WPDESK_CI_VERSION}
120
- - composer require bmitch/churn-php
121
- - composer update --no-progress
122
- - vendor/bin/churn run classes inc
123
-
124
- #code style test:
125
- # stage: tests
126
- # image: wpdesknet/phpunit-woocommerce:0-0
127
- # allow_failure: true
128
- # script:
129
- # - echo ${WPDESK_CI_VERSION}
130
- # - composer update --no-progress
131
- # - vendor/bin/phpcs
132
-
133
- unit test lastest:
134
- <<: *job-test-unit-template-fast
135
- image: wpdesknet/phpunit-woocommerce:0-0
136
-
137
- integration test lastest:
138
- <<: *job-test-integration-template-fast
139
- image: wpdesknet/phpunit-woocommerce:0-0
140
-
141
- unit test lastest coverage:
142
- <<: *job-test-unit-template
143
- image: wpdesknet/phpunit-woocommerce:0-0
144
-
145
- integration test lastest coverage:
146
- <<: *job-test-integration-template
147
- image: wpdesknet/phpunit-woocommerce:0-0
148
-
149
- integration test php7-1 wc-1:
150
- <<: *job-test-integration-template-fast
151
- image: wpdesknet/phpunit-woocommerce:1-1
152
-
153
- integration test php7 wc-2:
154
- <<: *job-test-integration-template-fast
155
- image: wpdesknet/phpunit-woocommerce:2-2
156
-
157
- integration test php-7 wc-3:
158
- <<: *job-test-integration-template-fast
159
- image: wpdesknet/phpunit-woocommerce:2-3
160
-
161
- integration test php5-6:
162
- <<: *job-test-integration-template-fast
163
- image: wpdesknet/phpunit-woocommerce:3-0
164
-
165
- integration test php5-5:
166
- <<: *job-test-integration-template-fast
167
- image: wpdesknet/phpunit-woocommerce:4-0
168
-
169
- integration test current woocommerce:
170
- <<: *job-test-integration-template-fast
171
- image: wpdesknet/phpunit-woocommerce:0-0
172
- allow_failure: true
173
- before_script:
174
- - cd /tmp
175
- - rm -rf woocommerce
176
- - git clone https://github.com/woocommerce/woocommerce.git
177
- - cd ${CI_PROJECT_DIR}
178
-
179
- acceptance test:
180
- image: wpdesknet/node
181
- variables:
182
- CI_DEBUG_SERVICES: trace
183
- services:
184
- - name: mysql:5.6
185
- alias: mysqltests
186
- - name: wpdesknet/apache-woocommerce:latest
187
- alias: wootests
188
- - name: selenium/standalone-chrome
189
- alias: selenium
190
- artifacts:
191
- when: always
192
- expire_in: 1 day
193
- name: "error logs"
194
- paths:
195
- - ${CI_PROJECT_DIR}/acceptance
196
- stage: tests
197
- allow_failure: true
198
- script:
199
- - cd ${CI_PROJECT_DIR}
200
- - composer update --no-progress --no-dev
201
- - if [[ -f ${CI_PROJECT_DIR}/tests/acceptance/prepare.sh ]]; then sh ${CI_PROJECT_DIR}/tests/acceptance/prepare.sh; fi
202
-
203
- - export MYSQL_IP=$(awk '/^[[:space:]]*($|#)/{next} /mysqltests/{print $1; exit}' /etc/hosts)
204
- - export WOOTESTS_IP=$(awk '/^[[:space:]]*($|#)/{next} /wootests/{print $1; exit}' /etc/hosts)
205
- - echo "http://wootests/wpdesk_init.php?mysql_ip=${MYSQL_IP}&wootests_ip=${WOOTESTS_IP}"
206
- - wget -O /tmp/wpdesk_init.txt "http://wootests/wpdesk_init.php?mysql_ip=${MYSQL_IP}&wootests_ip=${WOOTESTS_IP}"
207
- - tail -50 /tmp/wpdesk_init.txt
208
-
209
- - sh /tmp/clone.sh git@gitlab.com:wpdesk/plugins-tests.git /tmp/tests headless
210
- - cd /tmp/tests
211
- - npm install
212
- - npm install -g grunt-cli
213
- - cd node_modules/.bin
214
- - ./webdriver-manager update
215
- - cd ../
216
- - mkdir -p ${CI_PROJECT_DIR}/acceptance/reports/html/screenshot
217
- - grunt chrome-${CI_PROJECT_NAME}
218
-
219
-
220
- apigen docs:
221
- image:
222
- name: wpdesknet/apigen
223
- stage: pre-deploy
224
- artifacts:
225
- expire_in: 1 day
226
- name: "docs"
227
- paths:
228
- - docs/
229
- script:
230
- - echo ${WPDESK_CI_VERSION}
231
- - ls -l
232
- - /app/vendor/bin/apigen generate
233
- - php /app/hooks-docs.php ${CI_PROJECT_DIR}
234
- only:
235
- - tags
236
-
237
- pages:
238
- stage: deploy
239
- dependencies:
240
- - apigen docs
241
- script:
242
- - rm -rf public
243
- - mv docs/ public/
244
- - 'curl -X POST --data-urlencode "payload={\"text\": \"Dokumentacja projektu ${CI_PROJECT_NAME} w wersji ${CI_COMMIT_REF_NAME} umieszczona w <https://gitlab.com/wpdesk/${CI_PROJECT_NAME}/pages|pages> \", }" https://hooks.slack.com/services/${SLACK_AUTH}'
245
- artifacts:
246
- expire_in: 1 day
247
- paths:
248
- - public
249
- only:
250
- - tags
251
-
252
- build to deploy:
253
- image: wpdesknet/phpunit-woocommerce:4-0
254
- stage: pre-deploy
255
- artifacts:
256
- expire_in: 1 month
257
- name: "production release"
258
- paths:
259
- - release
260
- - release.zip
261
- script:
262
- - echo ${WPDESK_CI_VERSION}
263
- - php --version
264
- - ls -l
265
- - /tmp/set_version.sh ${CI_COMMIT_REF_NAME}
266
- - rm -rf ${CI_PROJECT_DIR}/release ${CI_PROJECT_DIR}/release.zip /tmp/release
267
- - mkdir /tmp/release
268
- - mkdir -p ${CI_PROJECT_DIR}/release/${CI_PROJECT_NAME}
269
- - cp -rf ${CI_PROJECT_DIR}/* /tmp/release
270
- - cp -rf /tmp/release/* ${CI_PROJECT_DIR}/release/${CI_PROJECT_NAME}
271
- - cd ${CI_PROJECT_DIR}/release/${CI_PROJECT_NAME}
272
- - composer install --no-dev --no-progress --optimize-autoloader
273
- - rm -rf build-coverage release tests docs .git .editorconfig .gitignore .gitlab-ci.yml apigen.neon phpunit.xml acceptance test_soap.php .gitlab
274
- - rm -rf composer.json composer.lock phpcs.xml.dist phpunit-integration.xml phpunit-unit.xml composer.phar wp-cli.phar
275
- - cd ../
276
- - zip -r -q ../release.zip ./
277
- only:
278
- - tags
279
-
280
- deploy to shop:
281
- <<: *job-deploy-template
282
- script:
283
- - echo ${WPDESK_CI_VERSION}
284
- - /tmp/deploy_shop.sh ${CI_PROJECT_NAME} release.zip ${CI_PROJECT_NAME}.zip
285
- - 'curl -X POST --data-urlencode "payload={\"text\": \"Projekt <https://gitlab.com/wpdesk/${CI_PROJECT_NAME}|${CI_PROJECT_NAME}> zdeployowany do sklepu w wersji ${CI_COMMIT_REF_NAME}\", }" https://hooks.slack.com/services/${SLACK_AUTH}'
286
- environment:
287
- name: wpdesk shop
288
- url: https://wpdeskplugin.s3.amazonaws.com/${CI_PROJECT_NAME}.zip
289
-
290
- deploy to demo:
291
- <<: *job-deploy-template
292
- script:
293
- - echo ${WPDESK_CI_VERSION}
294
- - /tmp/deploy_demo.sh release/${CI_PROJECT_NAME} ${CI_PROJECT_NAME}
295
- - 'curl -X POST --data-urlencode "payload={\"text\": \"Projekt <https://gitlab.com/wpdesk/${CI_PROJECT_NAME}|${CI_PROJECT_NAME}> zdeployowany do demo w wersji ${CI_COMMIT_REF_NAME}\", }" https://hooks.slack.com/services/${SLACK_AUTH}'
296
- environment:
297
- name: wpdesk demo
298
- url: https://demo.wpdesk.org
299
-
300
- deploy to repository:
301
- <<: *job-deploy-template
302
- script:
303
- - echo ${WPDESK_CI_VERSION}
304
- - rm -rf /tmp/svn-repository
305
- - mkdir /tmp/svn-repository
306
- - /tmp/deploy_repository.sh ${CI_PROJECT_NAME} ${CI_PROJECT_DIR}/release/${CI_PROJECT_NAME} /tmp/svn-repository
307
- - 'curl -X POST --data-urlencode "payload={\"text\": \"Projekt <https://gitlab.com/wpdesk/${CI_PROJECT_NAME}|${CI_PROJECT_NAME}> zdeployowany do repozytorium WP w wersji ${CI_COMMIT_REF_NAME}\", }" https://hooks.slack.com/services/${SLACK_AUTH}'
308
- environment:
309
- name: wordpress repository
310
- url: https://downloads.wordpress.org/plugin/${CI_PROJECT_NAME}.${CI_COMMIT_REF_NAME}.zip
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/.gitlab/issue_templates/Bug.md DELETED
@@ -1,32 +0,0 @@
1
- ### Select WooCommerce version e.g: [x] 2.6
2
- <!--- Select the WooCommerce version on which the error occurred -->
3
-
4
- - [ ] [2.6](http://woo26.tests.wpdesk.org)
5
- - [ ] [2.7](http://woo27.tests.wpdesk.org)
6
- - [ ] [3.0](http://woo30.tests.wpdesk.org)
7
- - [ ] [3.1](http://woo31.tests.wpdesk.org)
8
- - [ ] [3.2](http://woo32.tests.wpdesk.org)
9
- - [ ] [3.3](http://woo33.tests.wpdesk.org)
10
- - [ ] [3.4](http://woo34.tests.wpdesk.org)
11
- - [ ] [Stable](https://stable.wpdesk.org/)
12
-
13
- ### Select PHP version e.g: [x] 5.6
14
- <!--- Select the PHP version on which the error occurred -->
15
-
16
- - [ ] 5.3
17
- - [ ] 5.5
18
- - [ ] 5.6
19
- - [ ] 7.1
20
- - [ ] 7.2
21
-
22
- ## Steps to Reproduce
23
- <!--- Provide a link to a live example, or an unambiguous set of steps to -->
24
-
25
- 1.
26
- 2.
27
-
28
-
29
- ## Expected Behavior
30
- <!--- Tell what should happen -->
31
-
32
- 1.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/.jshintrc DELETED
@@ -1,14 +0,0 @@
1
- {
2
- "boss": true,
3
- "curly": true,
4
- "eqeqeq": true,
5
- "immed": true,
6
- "noarg": true,
7
- "quotmark": "single",
8
- "undef": true,
9
- "unused": true,
10
- "browser": true,
11
- "globals": {
12
- "jQuery": false
13
- }
14
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/CONTRIBUTING.md DELETED
@@ -1,6 +0,0 @@
1
- # Contribute To The Library
2
-
3
- Community made patches, bug reports and contributions are always welcome!
4
-
5
- When contributing please ensure you follow the guidelines below so that we can keep on top of things.
6
-
 
 
 
 
 
 
vendor/wpdesk/wp-settings/README.md DELETED
@@ -1,5 +0,0 @@
1
- # WP Desk Settings Library
2
-
3
- ## What Is This?
4
-
5
- Settings library for Wordpress
 
 
 
 
 
vendor/wpdesk/wp-settings/apigen.neon DELETED
@@ -1,4 +0,0 @@
1
- source:
2
- - ./
3
-
4
- destination: codex
 
 
 
 
vendor/wpdesk/wp-settings/composer.json DELETED
@@ -1,34 +0,0 @@
1
- {
2
- "name": "wpdesk/wp-settings",
3
- "type": "library",
4
- "description": "A PHP library for implementing a simple, transparent WordPress settings panel.",
5
- "keywords": ["wpdesk", "settings", "options"],
6
- "homepage": "https://wpdesk.net/",
7
- "license": "GPL-2.0+",
8
- "authors": [
9
- {
10
- "name": "WP Desk",
11
- "email": "wpdesk@wpdesk.net"
12
- }
13
- ],
14
- "support": {
15
- "issues": "https://gitlab.com/wpdesk/wp-settings/issues"
16
- },
17
- "autoload": {
18
- "classmap": ["source/"]
19
- },
20
- "require": {
21
- "php": ">=5.3.0",
22
- "composer/installers": "~1.0"
23
- },
24
- "require-dev": {
25
- "satooshi/php-coveralls": "dev-master",
26
- "phpunit/phpunit": "3.7.31",
27
- "phpunit/php-invoker": "1.1.3"
28
- },
29
- "config": {
30
- "preferred-install": "dist",
31
- "sort-packages": true
32
- },
33
- "minimum-stability": "dev"
34
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/license.txt DELETED
@@ -1,281 +0,0 @@
1
- GNU GENERAL PUBLIC LICENSE
2
- Version 2, June 1991
3
-
4
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5
- 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
6
-
7
- Everyone is permitted to copy and distribute verbatim copies
8
- of this license document, but changing it is not allowed.
9
-
10
- Preamble
11
-
12
- The licenses for most software are designed to take away your
13
- freedom to share and change it. By contrast, the GNU General Public
14
- License is intended to guarantee your freedom to share and change free
15
- software--to make sure the software is free for all its users. This
16
- General Public License applies to most of the Free Software
17
- Foundation's software and to any other program whose authors commit to
18
- using it. (Some other Free Software Foundation software is covered by
19
- the GNU Library General Public License instead.) You can apply it to
20
- your programs, too.
21
-
22
- When we speak of free software, we are referring to freedom, not
23
- price. Our General Public Licenses are designed to make sure that you
24
- have the freedom to distribute copies of free software (and charge for
25
- this service if you wish), that you receive source code or can get it
26
- if you want it, that you can change the software or use pieces of it
27
- in new free programs; and that you know you can do these things.
28
-
29
- To protect your rights, we need to make restrictions that forbid
30
- anyone to deny you these rights or to ask you to surrender the rights.
31
- These restrictions translate to certain responsibilities for you if you
32
- distribute copies of the software, or if you modify it.
33
-
34
- For example, if you distribute copies of such a program, whether
35
- gratis or for a fee, you must give the recipients all the rights that
36
- you have. You must make sure that they, too, receive or can get the
37
- source code. And you must show them these terms so they know their
38
- rights.
39
-
40
- We protect your rights with two steps: (1) copyright the software, and
41
- (2) offer you this license which gives you legal permission to copy,
42
- distribute and/or modify the software.
43
-
44
- Also, for each author's protection and ours, we want to make certain
45
- that everyone understands that there is no warranty for this free
46
- software. If the software is modified by someone else and passed on, we
47
- want its recipients to know that what they have is not the original, so
48
- that any problems introduced by others will not reflect on the original
49
- authors' reputations.
50
-
51
- Finally, any free program is threatened constantly by software
52
- patents. We wish to avoid the danger that redistributors of a free
53
- program will individually obtain patent licenses, in effect making the
54
- program proprietary. To prevent this, we have made it clear that any
55
- patent must be licensed for everyone's free use or not licensed at all.
56
-
57
- The precise terms and conditions for copying, distribution and
58
- modification follow.
59
-
60
- GNU GENERAL PUBLIC LICENSE
61
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
62
-
63
- 0. This License applies to any program or other work which contains
64
- a notice placed by the copyright holder saying it may be distributed
65
- under the terms of this General Public License. The "Program", below,
66
- refers to any such program or work, and a "work based on the Program"
67
- means either the Program or any derivative work under copyright law:
68
- that is to say, a work containing the Program or a portion of it,
69
- either verbatim or with modifications and/or translated into another
70
- language. (Hereinafter, translation is included without limitation in
71
- the term "modification".) Each licensee is addressed as "you".
72
-
73
- Activities other than copying, distribution and modification are not
74
- covered by this License; they are outside its scope. The act of
75
- running the Program is not restricted, and the output from the Program
76
- is covered only if its contents constitute a work based on the
77
- Program (independent of having been made by running the Program).
78
- Whether that is true depends on what the Program does.
79
-
80
- 1. You may copy and distribute verbatim copies of the Program's
81
- source code as you receive it, in any medium, provided that you
82
- conspicuously and appropriately publish on each copy an appropriate
83
- copyright notice and disclaimer of warranty; keep intact all the
84
- notices that refer to this License and to the absence of any warranty;
85
- and give any other recipients of the Program a copy of this License
86
- along with the Program.
87
-
88
- You may charge a fee for the physical act of transferring a copy, and
89
- you may at your option offer warranty protection in exchange for a fee.
90
-
91
- 2. You may modify your copy or copies of the Program or any portion
92
- of it, thus forming a work based on the Program, and copy and
93
- distribute such modifications or work under the terms of Section 1
94
- above, provided that you also meet all of these conditions:
95
-
96
- a) You must cause the modified files to carry prominent notices
97
- stating that you changed the files and the date of any change.
98
-
99
- b) You must cause any work that you distribute or publish, that in
100
- whole or in part contains or is derived from the Program or any
101
- part thereof, to be licensed as a whole at no charge to all third
102
- parties under the terms of this License.
103
-
104
- c) If the modified program normally reads commands interactively
105
- when run, you must cause it, when started running for such
106
- interactive use in the most ordinary way, to print or display an
107
- announcement including an appropriate copyright notice and a
108
- notice that there is no warranty (or else, saying that you provide
109
- a warranty) and that users may redistribute the program under
110
- these conditions, and telling the user how to view a copy of this
111
- License. (Exception: if the Program itself is interactive but
112
- does not normally print such an announcement, your work based on
113
- the Program is not required to print an announcement.)
114
-
115
- These requirements apply to the modified work as a whole. If
116
- identifiable sections of that work are not derived from the Program,
117
- and can be reasonably considered independent and separate works in
118
- themselves, then this License, and its terms, do not apply to those
119
- sections when you distribute them as separate works. But when you
120
- distribute the same sections as part of a whole which is a work based
121
- on the Program, the distribution of the whole must be on the terms of
122
- this License, whose permissions for other licensees extend to the
123
- entire whole, and thus to each and every part regardless of who wrote it.
124
- Thus, it is not the intent of this section to claim rights or contest
125
- your rights to work written entirely by you; rather, the intent is to
126
- exercise the right to control the distribution of derivative or
127
- collective works based on the Program.
128
-
129
- In addition, mere aggregation of another work not based on the Program
130
- with the Program (or with a work based on the Program) on a volume of
131
- a storage or distribution medium does not bring the other work under
132
- the scope of this License.
133
-
134
- 3. You may copy and distribute the Program (or a work based on it,
135
- under Section 2) in object code or executable form under the terms of
136
- Sections 1 and 2 above provided that you also do one of the following:
137
-
138
- a) Accompany it with the complete corresponding machine-readable
139
- source code, which must be distributed under the terms of Sections
140
- 1 and 2 above on a medium customarily used for software interchange; or,
141
-
142
- b) Accompany it with a written offer, valid for at least three
143
- years, to give any third party, for a charge no more than your
144
- cost of physically performing source distribution, a complete
145
- machine-readable copy of the corresponding source code, to be
146
- distributed under the terms of Sections 1 and 2 above on a medium
147
- customarily used for software interchange; or,
148
-
149
- c) Accompany it with the information you received as to the offer
150
- to distribute corresponding source code. (This alternative is
151
- allowed only for noncommercial distribution and only if you
152
- received the program in object code or executable form with such
153
- an offer, in accord with Subsection b above.)
154
-
155
- The source code for a work means the preferred form of the work for
156
- making modifications to it. For an executable work, complete source
157
- code means all the source code for all modules it contains, plus any
158
- associated interface definition files, plus the scripts used to
159
- control compilation and installation of the executable. However, as a
160
- special exception, the source code distributed need not include
161
- anything that is normally distributed (in either source or binary
162
- form) with the major components (compiler, kernel, and so on) of the
163
- operating system on which the executable runs, unless that component
164
- itself accompanies the executable.
165
-
166
- If distribution of executable or object code is made by offering
167
- access to copy from a designated place, then offering equivalent
168
- access to copy the source code from the same place counts as
169
- distribution of the source code, even though third parties are not
170
- compelled to copy the source along with the object code.
171
-
172
- 4. You may not copy, modify, sublicense, or distribute the Program
173
- except as expressly provided under this License. Any attempt
174
- otherwise to copy, modify, sublicense or distribute the Program is
175
- void, and will automatically terminate your rights under this License.
176
- However, parties who have received copies, or rights, from you under
177
- this License will not have their licenses terminated so long as such
178
- parties remain in full compliance.
179
-
180
- 5. You are not required to accept this License, since you have not
181
- signed it. However, nothing else grants you permission to modify or
182
- distribute the Program or its derivative works. These actions are
183
- prohibited by law if you do not accept this License. Therefore, by
184
- modifying or distributing the Program (or any work based on the
185
- Program), you indicate your acceptance of this License to do so, and
186
- all its terms and conditions for copying, distributing or modifying
187
- the Program or works based on it.
188
-
189
- 6. Each time you redistribute the Program (or any work based on the
190
- Program), the recipient automatically receives a license from the
191
- original licensor to copy, distribute or modify the Program subject to
192
- these terms and conditions. You may not impose any further
193
- restrictions on the recipients' exercise of the rights granted herein.
194
- You are not responsible for enforcing compliance by third parties to
195
- this License.
196
-
197
- 7. If, as a consequence of a court judgment or allegation of patent
198
- infringement or for any other reason (not limited to patent issues),
199
- conditions are imposed on you (whether by court order, agreement or
200
- otherwise) that contradict the conditions of this License, they do not
201
- excuse you from the conditions of this License. If you cannot
202
- distribute so as to satisfy simultaneously your obligations under this
203
- License and any other pertinent obligations, then as a consequence you
204
- may not distribute the Program at all. For example, if a patent
205
- license would not permit royalty-free redistribution of the Program by
206
- all those who receive copies directly or indirectly through you, then
207
- the only way you could satisfy both it and this License would be to
208
- refrain entirely from distribution of the Program.
209
-
210
- If any portion of this section is held invalid or unenforceable under
211
- any particular circumstance, the balance of the section is intended to
212
- apply and the section as a whole is intended to apply in other
213
- circumstances.
214
-
215
- It is not the purpose of this section to induce you to infringe any
216
- patents or other property right claims or to contest validity of any
217
- such claims; this section has the sole purpose of protecting the
218
- integrity of the free software distribution system, which is
219
- implemented by public license practices. Many people have made
220
- generous contributions to the wide range of software distributed
221
- through that system in reliance on consistent application of that
222
- system; it is up to the author/donor to decide if he or she is willing
223
- to distribute software through any other system and a licensee cannot
224
- impose that choice.
225
-
226
- This section is intended to make thoroughly clear what is believed to
227
- be a consequence of the rest of this License.
228
-
229
- 8. If the distribution and/or use of the Program is restricted in
230
- certain countries either by patents or by copyrighted interfaces, the
231
- original copyright holder who places the Program under this License
232
- may add an explicit geographical distribution limitation excluding
233
- those countries, so that distribution is permitted only in or among
234
- countries not thus excluded. In such case, this License incorporates
235
- the limitation as if written in the body of this License.
236
-
237
- 9. The Free Software Foundation may publish revised and/or new versions
238
- of the General Public License from time to time. Such new versions will
239
- be similar in spirit to the present version, but may differ in detail to
240
- address new problems or concerns.
241
-
242
- Each version is given a distinguishing version number. If the Program
243
- specifies a version number of this License which applies to it and "any
244
- later version", you have the option of following the terms and conditions
245
- either of that version or of any later version published by the Free
246
- Software Foundation. If the Program does not specify a version number of
247
- this License, you may choose any version ever published by the Free Software
248
- Foundation.
249
-
250
- 10. If you wish to incorporate parts of the Program into other free
251
- programs whose distribution conditions are different, write to the author
252
- to ask for permission. For software which is copyrighted by the Free
253
- Software Foundation, write to the Free Software Foundation; we sometimes
254
- make exceptions for this. Our decision will be guided by the two goals
255
- of preserving the free status of all derivatives of our free software and
256
- of promoting the sharing and reuse of software generally.
257
-
258
- NO WARRANTY
259
-
260
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
- FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262
- OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
- PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
- OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266
- TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267
- PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
- REPAIR OR CORRECTION.
269
-
270
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
- WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
- REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
- INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
- OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
- TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
- YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
- PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
- POSSIBILITY OF SUCH DAMAGES.
279
-
280
- END OF TERMS AND CONDITIONS
281
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/source/assets/css/admin-settings.css DELETED
@@ -1,82 +0,0 @@
1
- /* Added by WP Desk - Reset some default WP styles
2
- -------------------------------------------------------------- */
3
- .select2-container li {
4
- margin-bottom: 0;
5
- }
6
-
7
- /* Added by WP Desk - Select2 Columns Draggable/Sortable
8
- -------------------------------------------------------------- */
9
- .select-2-columns .available-column,
10
- .select-2-columns .selected-column {
11
- background-color: #fff;
12
- border: 1px solid #e5e5e5;
13
- float: left;
14
- margin-right: 20px;
15
- padding: 12px 14px;
16
- max-width: 450px;
17
- }
18
-
19
- .select-2-columns > div > strong {
20
- display: block;
21
- margin-bottom: 10px;
22
- }
23
-
24
- .select-2-columns ul {
25
- margin: 0;
26
- min-height: 50px;
27
- min-width: 200px;
28
- }
29
-
30
- .select-2-columns li {
31
- background-color: #fafafa;
32
- border: 1px solid #e5e5e5;
33
- cursor: move;
34
- padding: 5px 10px;
35
- }
36
-
37
- .select-2-columns li:hover {
38
- border-color: #999;
39
- }
40
-
41
- .select-2-columns .ui-sortable-placeholder {
42
- background-color: transparent;
43
- border:1px dashed #b4b9be;
44
- visibility: visible !important;
45
- }
46
-
47
-
48
- /* Fix color picker label alignment
49
- -------------------------------------------------------------- */
50
- .s214-color-picker-label {
51
- position: absolute;
52
- display: inline-block;
53
- padding-top: 4px;
54
- }
55
-
56
- /* System info styles
57
- -------------------------------------------------------------- */
58
- #system-info-textarea {
59
- width: 800px;
60
- height: 400px;
61
- font-family: Menlo, Monaco, monospace;
62
- background: none;
63
- white-space: pre;
64
- overflow: auto;
65
- display: block;
66
- }
67
-
68
- /* Tooltips
69
- -------------------------------------------------------------- */
70
- .s214-help-tip {
71
- cursor: help;
72
- }
73
-
74
- .ui-tooltip {
75
- background: #333 !important;
76
- border-radius: 3px !important;
77
- box-shadow: 1px 1px 2px 1px rgba(214,214,214,0.5);
78
- color: #dedede !important;
79
- max-width: 300px;
80
- padding: 7px;
81
- text-rendering: optimizeLegibility;
82
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/source/assets/css/admin-settings.min.css DELETED
@@ -1 +0,0 @@
1
- .select2-container li{margin-bottom:0}.select-2-columns .available-column,.select-2-columns .selected-column{background-color:#fff;border:1px solid #e5e5e5;float:left;margin-right:20px;padding:12px 14px;max-width:450px}.select-2-columns > div > strong{display:block;margin-bottom:10px}.select-2-columns ul{margin:0;min-height:50px;min-width:200px}.select-2-columns li{background-color:#fafafa;border:1px solid #e5e5e5;cursor:move;padding:5px 10px}.select-2-columns li:hover{border-color:#999}.select-2-columns .ui-sortable-placeholder{background-color:transparent;border:1px dashed #b4b9be;visibility:visible !important}.s214-color-picker-label{position:absolute;display:inline-block;padding-top:4px}#system-info-textarea{width:800px;height:400px;font-family:Menlo, Monaco, monospace;background:none;white-space:pre;overflow:auto;display:block}.s214-help-tip{cursor:help}.ui-tooltip{background:#333 !important;border-radius:3px !important;box-shadow:1px 1px 2px 1px rgba(214,214,214,0.5);color:#dedede !important;max-width:300px;padding:7px;text-rendering:optimizeLegibility}
 
vendor/wpdesk/wp-settings/source/assets/css/admin.css DELETED
@@ -1,35 +0,0 @@
1
- /* Fix color picker label alignment
2
- -------------------------------------------------------------- */
3
- .s214-color-picker-label {
4
- position: absolute;
5
- display: inline-block;
6
- padding-top: 4px;
7
- }
8
-
9
- /* System info styles
10
- -------------------------------------------------------------- */
11
- #system-info-textarea {
12
- width: 800px;
13
- height: 400px;
14
- font-family: Menlo, Monaco, monospace;
15
- background: none;
16
- white-space: pre;
17
- overflow: auto;
18
- display: block;
19
- }
20
-
21
- /* Tooltips
22
- -------------------------------------------------------------- */
23
- .s214-help-tip {
24
- cursor: help;
25
- }
26
-
27
- .ui-tooltip {
28
- background: #333 !important;
29
- border-radius: 3px !important;
30
- box-shadow: 1px 1px 2px 1px rgba(214,214,214,0.5);
31
- color: #dedede !important;
32
- max-width: 300px;
33
- padding: 7px;
34
- text-rendering: optimizeLegibility;
35
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/source/assets/css/admin.min.css DELETED
@@ -1 +0,0 @@
1
- .s214-color-picker-label{position:absolute;display:inline-block;padding-top:4px}#system-info-textarea{width:800px;height:400px;font-family:Menlo,Monaco,monospace;background:0 0;white-space:pre;overflow:auto;display:block}.s214-help-tip{cursor:help}.ui-tooltip{background:#333!important;border-radius:3px!important;box-shadow:1px 1px 2px 1px rgba(214,214,214,.5);color:#dedede!important;max-width:300px;padding:7px;text-rendering:optimizeLegibility}
 
vendor/wpdesk/wp-settings/source/assets/css/jquery-ui-classic.min.css DELETED
@@ -1 +0,0 @@
1
- .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui-helper-clearfix{display:inline-block}/*\*/* html .ui-helper-clearfix{height:1%}.ui-helper-clearfix{display:block}/**/.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ui-widget{font-family:sans-serif;font-size:12px}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:sans-serif;font-size:1em}.ui-widget-content{border:1px solid #d1e5ee;background:#fff;color:#333}.ui-widget-header{border:1px solid #d1e5ee;background-color:#f5fafd;background-image:-ms-linear-gradient(top,#f7fcfe,#eff8ff);background-image:-moz-linear-gradient(top,#f7fcfe,#eff8ff);background-image:-o-linear-gradient(top,#f7fcfe,#eff8ff);background-image:-webkit-gradient(linear,left top,left bottom,from(#f7fcfe),to(#eff8ff));background-image:-webkit-linear-gradient(top,#f7fcfe,#eff8ff);background-image:linear-gradient(top,#f7fcfe,#eff8ff);color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d1e5ee;background-color:#f5fafd;background-image:-ms-linear-gradient(top,#f7fcfe,#eff8ff);background-image:-moz-linear-gradient(top,#f7fcfe,#eff8ff);background-image:-o-linear-gradient(top,#f7fcfe,#eff8ff);background-image:-webkit-gradient(linear,left top,left bottom,from(#f7fcfe),to(#eff8ff));background-image:-webkit-linear-gradient(top,#f7fcfe,#eff8ff);background-image:linear-gradient(top,#f7fcfe,#eff8ff);font-weight:normal;color:#333}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#333;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #b8d7e5;background-color:#f7fcfe;background-image:-ms-linear-gradient(top,#eff8ff,#f7fcfe);background-image:-moz-linear-gradient(top,#eff8ff,#f7fcfe);background-image:-o-linear-gradient(top,#eff8ff,#f7fcfe);background-image:-webkit-gradient(linear,left top,left bottom,from(#eff8ff),to(#f7fcfe));background-image:-webkit-linear-gradient(top,#eff8ff,#f7fcfe);background-image:linear-gradient(top,#eff8ff,#f7fcfe);font-weight:normal;color:#000}.ui-state-hover a,.ui-state-hover a:hover{color:#000;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #d1e5ee;background:#fff;font-weight:normal;color:#333}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#333;text-decoration:none}.ui-widget :active{outline:0}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #e6db55;background:#ffffe0;color:#333}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#333}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #c00;background:#ffebe8;color:#c00}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#c00}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#c00}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-icon{width:16px;height:16px;background-image:url(../images/ui-icons_333333_256x240.png)}.ui-widget-content .ui-icon{background-image:url(../images/ui-icons_333333_256x240.png)}.ui-widget-header .ui-icon{background-image:url(../images/ui-icons_999999_256x240.png)}.ui-state-default .ui-icon{background-image:url(../images/ui-icons_333333_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(../images/ui-icons_333333_256x240.png)}.ui-state-active .ui-icon{background-image:url(../images/ui-icons_333333_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(../images/ui-icons_21759b_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(../images/ui-icons_cc0000_256x240.png)}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-off{background-position:-96px -144px}.ui-icon-radio-on{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:3px;-webkit-border-bottom-left-radius:3px;-khtml-border-bottom-left-radius:3px;border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:3px;-webkit-border-bottom-right-radius:3px;-khtml-border-bottom-right-radius:3px;border-bottom-right-radius:3px}.ui-widget-overlay{background:#000;opacity:.6;filter:Alpha(Opacity=60)}.ui-widget-shadow{box-shadow:0 0 16px rgba(0,0,0,0.3)}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-accordion{width:100%}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1}.ui-accordion .ui-accordion-li-fix{display:inline}.ui-accordion .ui-accordion-header-active{border-bottom:0!important}.ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em}.ui-accordion-icons .ui-accordion-header a{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1}.ui-accordion .ui-accordion-content-active{display:block}.ui-autocomplete{position:absolute;cursor:default}* html .ui-autocomplete{width:1px}.ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left}.ui-menu .ui-menu{margin-top:-3px}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1}.ui-menu .ui-menu-item a.ui-state-hover,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:1.4}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:0;overflow:auto;zoom:1}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-tabs{position:relative;padding:.2em;zoom:1}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:0}.ui-tabs .ui-tabs-hide{display:none!important}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right}.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px}.ui-progressbar{height:2em;text-align:left}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-widget-header{background-color:#83b4d8;background-image:linear-gradient(bottom,#72a7cf 0,#90c5ee 100%);background-image:-o-linear-gradient(bottom,#72a7cf 0,#90c5ee 100%);background-image:-moz-linear-gradient(bottom,#72a7cf 0,#90c5ee 100%);background-image:-webkit-linear-gradient(bottom,#72a7cf 0,#90c5ee 100%);background-image:-ms-linear-gradient(bottom,#72a7cf 0,#90c5ee 100%)}
 
vendor/wpdesk/wp-settings/source/assets/css/jquery-ui-fresh.min.css DELETED
@@ -1 +0,0 @@
1
- .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui-helper-clearfix{display:inline-block}/*\*/* html .ui-helper-clearfix{height:1%}.ui-helper-clearfix{display:block}/**/.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ui-widget{font-family:sans-serif;font-size:12px}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:sans-serif;font-size:1em}.ui-widget-content{border:1px solid #dfdfdf;background:#fff;color:#333}.ui-widget-header{border:1px solid #dfdfdf;color:#333;font-weight:bold;background-color:#f1f1f1;background-image:-ms-linear-gradient(top,#f9f9f9,#ececec);background-image:-moz-linear-gradient(top,#f9f9f9,#ececec);background-image:-o-linear-gradient(top,#f9f9f9,#ececec);background-image:-webkit-gradient(linear,left top,left bottom,from(#f9f9f9),to(#ececec));background-image:-webkit-linear-gradient(top,#f9f9f9,#ececec);background-image:linear-gradient(top,#f9f9f9,#ececec)}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #dfdfdf;background-color:#f1f1f1;background-image:-ms-linear-gradient(top,#f9f9f9,#ececec);background-image:-moz-linear-gradient(top,#f9f9f9,#ececec);background-image:-o-linear-gradient(top,#f9f9f9,#ececec);background-image:-webkit-gradient(linear,left top,left bottom,from(#f9f9f9),to(#ececec));background-image:-webkit-linear-gradient(top,#f9f9f9,#ececec);background-image:linear-gradient(top,#f9f9f9,#ececec);font-weight:normal;color:#333}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#333;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #ccc;background-color:#ececec;background-image:-ms-linear-gradient(top,#ececec,#f9f9f9);background-image:-moz-linear-gradient(top,#ececec,#f9f9f9);background-image:-o-linear-gradient(top,#ececec,#f9f9f9);background-image:-webkit-gradient(linear,left top,left bottom,from(#ececec),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#ececec,#f9f9f9);background-image:linear-gradient(top,#ececec,#f9f9f9);font-weight:normal;color:#000}.ui-state-hover a,.ui-state-hover a:hover{color:#000;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #dfdfdf;background:#fff;font-weight:normal;color:#333}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#333;text-decoration:none}.ui-widget :active{outline:0}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #e6db55;background:#ffffe0;color:#333}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#333}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #c00;background:#ffebe8;color:#c00}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#c00}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#c00}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-icon{width:16px;height:16px;background-image:url(../images/ui-icons_333333_256x240.png)}.ui-widget-content .ui-icon{background-image:url(../images/ui-icons_333333_256x240.png)}.ui-widget-header .ui-icon{background-image:url(../images/ui-icons_999999_256x240.png)}.ui-state-default .ui-icon{background-image:url(../images/ui-icons_333333_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(../images/ui-icons_333333_256x240.png)}.ui-state-active .ui-icon{background-image:url(../images/ui-icons_333333_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(../images/ui-icons_21759b_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(../images/ui-icons_cc0000_256x240.png)}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-off{background-position:-96px -144px}.ui-icon-radio-on{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px}.ui-widget-overlay{background:#000;opacity:.6;filter:Alpha(Opacity=60)}.ui-widget-shadow{box-shadow:0 0 16px rgba(0,0,0,0.3)}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-accordion{width:100%}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1}.ui-accordion .ui-accordion-li-fix{display:inline}.ui-accordion .ui-accordion-header-active{border-bottom:0!important}.ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em}.ui-accordion-icons .ui-accordion-header a{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1}.ui-accordion .ui-accordion-content-active{display:block}.ui-autocomplete{position:absolute;cursor:default}* html .ui-autocomplete{width:1px}.ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left}.ui-menu .ui-menu{margin-top:-3px}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1}.ui-menu .ui-menu-item a.ui-state-hover,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:1.4}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-dialog{position:fixed;padding:.2em;width:300px;overflow:hidden}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:0;overflow:auto;zoom:1}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-tabs{position:relative;padding:.2em;zoom:1}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:0}.ui-tabs .ui-tabs-hide{display:none!important}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right}.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px}.ui-progressbar{height:2em;text-align:left}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-widget-header{background-color:#83b4d8;background-image:linear-gradient(bottom,#72a7cf 0,#90c5ee 100%);background-image:-o-linear-gradient(bottom,#72a7cf 0,#90c5ee 100%);background-image:-moz-linear-gradient(bottom,#72a7cf 0,#90c5ee 100%);background-image:-webkit-linear-gradient(bottom,#72a7cf 0,#90c5ee 100%);background-image:-ms-linear-gradient(bottom,#72a7cf 0,#90c5ee 100%)}
 
vendor/wpdesk/wp-settings/source/assets/js/admin-settings.js DELETED
@@ -1,104 +0,0 @@
1
- /*global jQuery, document, window, wp, CodeMirror, s214_settings_vars*/
2
- jQuery(document).ready(function ($) {
3
- 'use strict';
4
-
5
- // Setup color picker
6
- if ($('.s214-color-picker').length) {
7
- $('.s214-color-picker').wpColorPicker();
8
- }
9
-
10
- // Setup select2
11
- if ($('.s214-select2').length) {
12
- $('.s214-select2').select2();
13
- }
14
-
15
- // Setup CodeMirror
16
- if ($('.s214-html').length) {
17
- $('.s214-html').each(function (index, elem) {
18
- CodeMirror.fromTextArea(elem, {
19
- lineNumbers: true,
20
- mode: 'text/html',
21
- showCursorWhenSelecting: true
22
- });
23
- });
24
- }
25
-
26
- // Setup tooltips
27
- $('.s214-help-tip').tooltip({
28
- content: function () {
29
- return $(this).prop('title');
30
- },
31
- position: {
32
- my: 'center top',
33
- at: 'center bottom+10',
34
- collision: 'flipfit'
35
- },
36
- hide: {
37
- duration: 200
38
- },
39
- show: {
40
- duration: 200
41
- }
42
- });
43
-
44
- // Setup uploaders
45
- if ($('.' + s214_settings_vars.func + '_settings_upload_button').length) {
46
- var file_frame;
47
-
48
- $('body').on('click', '.' + s214_settings_vars.func + '_settings_upload_button', function (e) {
49
- e.preventDefault();
50
-
51
- var button = $(this);
52
-
53
- window.formfield = $(this).parent().prev();
54
-
55
- // If the media frame already exists, reopen it
56
- if (file_frame) {
57
- file_frame.open();
58
- return;
59
- }
60
-
61
- // Create the media frame
62
- wp.media.frames.file_frame = wp.media({
63
- frame: 'post',
64
- state: 'insert',
65
- title: button.data('uploader_title'),
66
- button: {
67
- text: button.data('uploader_button_text')
68
- },
69
- multiple: false
70
- });
71
-
72
- file_frame = wp.media.frames.file_frame;
73
-
74
- file_frame.on('menu:render:default', function (view) {
75
- // Store our views in an object
76
- var views = {};
77
-
78
- // Unset default menu items
79
- view.unset('library-separator');
80
- view.unset('gallery');
81
- view.unset('featured-image');
82
- view.unset('embed');
83
-
84
- // Initialize the views in our object
85
- view.set(views);
86
- });
87
-
88
- // Run a callback on select
89
- file_frame.on('insert', function () {
90
- var selection = file_frame.state().get('selection');
91
-
92
- selection.each(function (attachment) {
93
- attachment = attachment.toJSON();
94
- window.formfield.val(attachment.url);
95
- });
96
- });
97
-
98
- // Open the modal
99
- file_frame.open();
100
- });
101
-
102
- window.formfield = '';
103
- }
104
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/source/assets/js/admin-settings.min.js DELETED
@@ -1 +0,0 @@
1
- jQuery(document).ready(function(t){"use strict";if(t(".s214-color-picker").length&&t(".s214-color-picker").wpColorPicker(),t(".s214-select2").length&&t(".s214-select2").select2(),t(".s214-html").length&&t(".s214-html").each(function(t,e){CodeMirror.fromTextArea(e,{lineNumbers:!0,mode:"text/html",showCursorWhenSelecting:!0})}),t(".s214-help-tip").tooltip({content:function(){return t(this).prop("title")},position:{my:"center top",at:"center bottom+10",collision:"flipfit"},hide:{duration:200},show:{duration:200}}),t("."+s214_settings_vars.func+"_settings_upload_button").length){var e;t("body").on("click","."+s214_settings_vars.func+"_settings_upload_button",function(n){n.preventDefault();var o=t(this);return window.formfield=t(this).parent().prev(),e?void e.open():(wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:o.data("uploader_title"),button:{text:o.data("uploader_button_text")},multiple:!1}),e=wp.media.frames.file_frame,e.on("menu:render:default",function(t){var e={};t.unset("library-separator"),t.unset("gallery"),t.unset("featured-image"),t.unset("embed"),t.set(e)}),e.on("insert",function(){var t=e.state().get("selection");t.each(function(t){t=t.toJSON(),window.formfield.val(t.url)})}),void e.open())}),window.formfield=""}});
 
vendor/wpdesk/wp-settings/source/assets/js/admin.js DELETED
@@ -1,104 +0,0 @@
1
- /*global jQuery, document, window, wp, CodeMirror, s214_settings_vars*/
2
- jQuery(document).ready(function ($) {
3
- 'use strict';
4
-
5
- // Setup color picker
6
- if ($('.s214-color-picker').length) {
7
- $('.s214-color-picker').wpColorPicker();
8
- }
9
-
10
- // Setup select2
11
- if ($('.s214-select2').length) {
12
- $('.s214-select2').select2();
13
- }
14
-
15
- // Setup CodeMirror
16
- if ($('.s214-html').length) {
17
- $('.s214-html').each(function (index, elem) {
18
- CodeMirror.fromTextArea(elem, {
19
- lineNumbers: true,
20
- mode: 'text/html',
21
- showCursorWhenSelecting: true
22
- });
23
- });
24
- }
25
-
26
- // Setup tooltips
27
- $('.s214-help-tip').tooltip({
28
- content: function () {
29
- return $(this).prop('title');
30
- },
31
- position: {
32
- my: 'center top',
33
- at: 'center bottom+10',
34
- collision: 'flipfit'
35
- },
36
- hide: {
37
- duration: 200
38
- },
39
- show: {
40
- duration: 200
41
- }
42
- });
43
-
44
- // Setup uploaders
45
- if ($('.' + s214_settings_vars.func + '_settings_upload_button').length) {
46
- var file_frame;
47
-
48
- $('body').on('click', '.' + s214_settings_vars.func + '_settings_upload_button', function (e) {
49
- e.preventDefault();
50
-
51
- var button = $(this);
52
-
53
- window.formfield = $(this).parent().prev();
54
-
55
- // If the media frame already exists, reopen it
56
- if (file_frame) {
57
- file_frame.open();
58
- return;
59
- }
60
-
61
- // Create the media frame
62
- wp.media.frames.file_frame = wp.media({
63
- frame: 'post',
64
- state: 'insert',
65
- title: button.data('uploader_title'),
66
- button: {
67
- text: button.data('uploader_button_text')
68
- },
69
- multiple: false
70
- });
71
-
72
- file_frame = wp.media.frames.file_frame;
73
-
74
- file_frame.on('menu:render:default', function (view) {
75
- // Store our views in an object
76
- var views = {};
77
-
78
- // Unset default menu items
79
- view.unset('library-separator');
80
- view.unset('gallery');
81
- view.unset('featured-image');
82
- view.unset('embed');
83
-
84
- // Initialize the views in our object
85
- view.set(views);
86
- });
87
-
88
- // Run a callback on select
89
- file_frame.on('insert', function () {
90
- var selection = file_frame.state().get('selection');
91
-
92
- selection.each(function (attachment) {
93
- attachment = attachment.toJSON();
94
- window.formfield.val(attachment.url);
95
- });
96
- });
97
-
98
- // Open the modal
99
- file_frame.open();
100
- });
101
-
102
- window.formfield = '';
103
- }
104
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/source/assets/js/admin.min.js DELETED
@@ -1 +0,0 @@
1
- jQuery(document).ready(function(t){"use strict";if(t(".s214-color-picker").length&&t(".s214-color-picker").wpColorPicker(),t(".s214-select2").length&&t(".s214-select2").select2(),t(".s214-html").length&&t(".s214-html").each(function(t,e){CodeMirror.fromTextArea(e,{lineNumbers:!0,mode:"text/html",showCursorWhenSelecting:!0})}),t(".s214-help-tip").tooltip({content:function(){return t(this).prop("title")},position:{my:"center top",at:"center bottom+10",collision:"flipfit"},hide:{duration:200},show:{duration:200}}),t("."+s214_settings_vars.func+"_settings_upload_button").length){var e;t("body").on("click","."+s214_settings_vars.func+"_settings_upload_button",function(n){n.preventDefault();var o=t(this);return window.formfield=t(this).parent().prev(),e?void e.open():(wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:o.data("uploader_title"),button:{text:o.data("uploader_button_text")},multiple:!1}),e=wp.media.frames.file_frame,e.on("menu:render:default",function(t){var e={};t.unset("library-separator"),t.unset("gallery"),t.unset("featured-image"),t.unset("embed"),t.set(e)}),e.on("insert",function(){var t=e.state().get("selection");t.each(function(t){t=t.toJSON(),window.formfield.val(t.url)})}),void e.open())}),window.formfield=""}});
 
vendor/wpdesk/wp-settings/source/class.s214-settings.php DELETED
@@ -1,1233 +0,0 @@
1
- <?php
2
- /**
3
- * Section214 Settings Class
4
- *
5
- * @package S214\Settings
6
- * @since 1.0.0
7
- */
8
-
9
-
10
- // Exit if accessed directly
11
- if( ! defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
-
15
-
16
- /**
17
- * Section214 settings handler class
18
- *
19
- * @since 1.0.0
20
- */
21
- class S214_Settings {
22
-
23
-
24
- /**
25
- * @var string $version The settings class version
26
- * @since 1.0.0
27
- */
28
- protected $version = '1.2.2';
29
-
30
-
31
- /**
32
- * @var string $slug The plugin slug
33
- * @since 1.0.0
34
- */
35
- protected $slug;
36
-
37
-
38
- /**
39
- * @var string $func The plugin slug for names
40
- * @since 1.0.0
41
- */
42
- protected $func;
43
-
44
-
45
- /**
46
- * @var string $default_tab The default tab to display
47
- * @since 1.0.0
48
- */
49
- protected $default_tab;
50
-
51
-
52
- /**
53
- * @var bool $show_title Whether or not to display the page title
54
- * @since 1.0.3
55
- */
56
- protected $show_title;
57
-
58
-
59
- /**
60
- * @var bool page_title The page title
61
- * @since 1.2.1
62
- */
63
- protected $page_title;
64
-
65
-
66
- /**
67
- * @var object $sysinfo The sysinfo object
68
- * @since 1.1.0
69
- */
70
- protected $sysinfo;
71
-
72
-
73
- /**
74
- * Get things started
75
- *
76
- * @access public
77
- * @since 1.0.1
78
- * @param string $slug The plugin slug
79
- * @param string $default_tab The default settings tab to display
80
- * @return void
81
- */
82
- public function __construct( $slug = false, $default_tab = 'general' ) {
83
- // Bail if no slug is specified
84
- if( ! $slug ) {
85
- return;
86
- }
87
-
88
- // Setup plugin variables
89
- $this->slug = $slug;
90
- $this->func = str_replace( '-', '_', $slug );
91
- $this->default_tab = $default_tab;
92
-
93
- // Run action and filter hooks
94
- $this->hooks();
95
-
96
- // Setup the Sysinfo class
97
- if( ! class_exists( 'S214_Sysinfo' ) ) {
98
- require_once 'modules/sysinfo/class.s214-sysinfo.php';
99
- }
100
- $this->sysinfo = new S214_Sysinfo( $this->slug, $this->func, $this->version );
101
- }
102
-
103
-
104
- /**
105
- * Run action and filter hooks
106
- *
107
- * @access private
108
- * @since 1.0.0
109
- * @return void
110
- */
111
- private function hooks() {
112
- // Add the plugin setting page
113
- add_action( 'admin_menu', array( $this, 'add_settings_page' ), 10 );
114
-
115
- // Register the plugin settings
116
- add_action( 'admin_init', array( $this, 'register_settings' ) );
117
- add_filter( $this->func . '_settings_sanitize_text', array( $this, 'sanitize_text_field' ) );
118
-
119
- // Add styles and scripts
120
- add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 100 );
121
-
122
- // Process actions
123
- add_action( 'admin_init', array( $this, 'process_actions' ) );
124
-
125
- // Handle tooltips
126
- add_filter( $this->func . '_after_setting_output', array( $this, 'add_setting_tooltip' ), 10, 2 );
127
- }
128
-
129
-
130
- /**
131
- * Add settings pages
132
- *
133
- * @access public
134
- * @since 1.0.0
135
- * @global string ${this->func . '_settings_page'} The settings page slug
136
- * @return void
137
- */
138
- public function add_settings_page() {
139
- global ${$this->func . '_settings_page'};
140
-
141
- $menu = apply_filters( $this->func . '_menu', array(
142
- 'type' => 'menu',
143
- 'parent' => 'options-general.php',
144
- 'page_title' => __( 'Section214 Settings', 's214' ),
145
- 'show_title' => false,
146
- 'menu_title' => __( 'Section214 Settings', 's214' ),
147
- 'capability' => 'manage_options',
148
- 'icon' => '',
149
- 'position' => null
150
- ) );
151
-
152
- $this->show_title = $menu['show_title'];
153
- $this->page_title = $menu['page_title'];
154
-
155
- if( $menu['type'] == 'submenu' ) {
156
- ${$this->func . '_settings_page'} = add_submenu_page( $menu['parent'], $menu['page_title'], $menu['menu_title'], $menu['capability'], $this->slug . '-settings', array( $this, 'render_settings_page' ) );
157
- } else {
158
- ${$this->func . '_settings_page'} = add_menu_page( $menu['page_title'], $menu['menu_title'], $menu['capability'], $this->slug . '-settings', array( $this, 'render_settings_page' ), $menu['icon'], $menu['position'] );
159
- }
160
- }
161
-
162
-
163
- /**
164
- * Render settings page
165
- *
166
- * @access public
167
- * @since 1.0.0
168
- * @return void
169
- */
170
- public function render_settings_page() {
171
- $active_tab = isset( $_GET['tab'] ) && array_key_exists( $_GET['tab'], $this->get_settings_tabs() ) ? $_GET['tab'] : $this->default_tab;
172
- $sections = $registered_sections = $this->get_settings_tab_sections( $active_tab );
173
- $key = 'main';
174
-
175
- if( is_array( $sections ) ) {
176
- $key = key( $sections );
177
- }
178
-
179
- $section = isset( $_GET['section'] ) && ! empty( $registered_sections ) && array_key_exists( $_GET['section'], $registered_sections ) ? $_GET['section'] : $key;
180
-
181
- ob_start();
182
- ?>
183
- <div class="wrap">
184
- <?php if( $this->show_title ) { ?>
185
- <h2><?php echo $this->page_title; ?></h2>
186
- <?php } ?>
187
- <h2 class="nav-tab-wrapper">
188
- <?php
189
- foreach( $this->get_settings_tabs() as $tab_id => $tab_name ) {
190
- $tab_url = add_query_arg( array(
191
- 'settings-updated' => false,
192
- 'tab' => $tab_id
193
- ) );
194
-
195
- // Remove the section from the tabs so we always end up at the main section
196
- $tab_url = remove_query_arg( 'section', $tab_url );
197
-
198
- $active = $active_tab == $tab_id ? ' nav-tab-active' : '';
199
-
200
- echo '<a href="' . esc_url( $tab_url ) . '" title="' . esc_attr( $tab_name ) . '" class="nav-tab' . $active . '">' . esc_html( $tab_name ) . '</a>';
201
- }
202
- ?>
203
- </h2>
204
- <?php
205
- $number_of_sections = count( $sections );
206
- $number = 0;
207
-
208
- if( $number_of_sections > 1 ) {
209
- echo '<div><ul class="subsubsub">';
210
-
211
- foreach( $sections as $section_id => $section_name ) {
212
- echo '<li>';
213
-
214
- $number++;
215
- $tab_url = add_query_arg( array(
216
- 'settings-updated' => false,
217
- 'tab' => $active_tab,
218
- 'section' => $section_id
219
- ) );
220
- $class = '';
221
-
222
- if( $section == $section_id ) {
223
- $class = 'current';
224
- }
225
-
226
- echo '<a class="' . $class . '" href="' . esc_url( $tab_url ) . '">' . $section_name . '</a>';
227
-
228
- if( $number != $number_of_sections ) {
229
- echo ' | ';
230
- }
231
-
232
- echo '</li>';
233
- }
234
-
235
- echo '</ul></div>';
236
- }
237
- ?>
238
- <div id="tab_container">
239
- <form method="post" action="options.php">
240
- <table class="form-table">
241
- <?php
242
- settings_fields( $this->func . '_settings' );
243
-
244
- do_action( $this->func . '_settings_tab_top_' . $active_tab . '_' . $section );
245
-
246
- do_settings_sections( $this->func . '_settings_' . $active_tab . '_' . $section );
247
-
248
- do_action( $this->func . '_settings_tab_bottom_' . $active_tab . '_' . $section );
249
- ?>
250
- </table>
251
- <?php
252
- if( ! in_array( $active_tab, apply_filters( $this->func . '_unsavable_tabs', array() ) ) ) {
253
- submit_button();
254
- }
255
- ?>
256
- </form>
257
- </div>
258
- </div>
259
- <?php
260
- echo ob_get_clean();
261
- }
262
-
263
-
264
- /**
265
- * Retrieve the settings tabs
266
- *
267
- * @access private
268
- * @since 1.0.0
269
- * @return array $tabs The registered tabs for this plugin
270
- */
271
- private function get_settings_tabs() {
272
- return apply_filters( $this->func . '_settings_tabs', array() );
273
- }
274
-
275
-
276
- /**
277
- * Retrieve settings tab sections
278
- *
279
- * @access public
280
- * @since 1.0.1
281
- * @param string $tab The current tab
282
- * @return array $section The section items
283
- */
284
- public function get_settings_tab_sections( $tab = false ) {
285
- $tabs = false;
286
- $sections = $this->get_registered_settings_sections();
287
-
288
- if( $tab && ! empty( $sections[$tab] ) ) {
289
- $tabs = $sections[$tab];
290
- } elseif( $tab ) {
291
- $tabs = false;
292
- }
293
-
294
- return $tabs;
295
- }
296
-
297
-
298
- /**
299
- * Retrieve the plugin settings
300
- *
301
- * @access public
302
- * @since 1.0.0
303
- * @return array $settings The plugin settings
304
- */
305
- public function get_registered_settings() {
306
- return apply_filters( $this->func . '_registered_settings', array() );
307
- }
308
-
309
-
310
- /**
311
- * Retrieve the plugin settings sections
312
- *
313
- * @access private
314
- * @since 1.0.1
315
- * @return array $sections The registered sections
316
- */
317
- private function get_registered_settings_sections() {
318
- global ${$this->func . '_sections'};
319
-
320
- if ( !empty( ${$this->func . '_sections'} ) ) {
321
- return ${$this->func . '_sections'};
322
- }
323
-
324
- ${$this->func . '_sections'} = apply_filters( $this->func . '_registered_settings_sections', array() );
325
-
326
- return ${$this->func . '_sections'};
327
- }
328
-
329
-
330
- /**
331
- * Retrieve an option
332
- *
333
- * @access public
334
- * @since 1.0.0
335
- * @param string $key The key to retrieve
336
- * @param mixed $default The default value if key doesn't exist
337
- * @global array ${$this->func . '_options'} The options array
338
- * @return mixed $value The value to return
339
- */
340
- public function get_option( $key = '', $default = false ) {
341
- global ${$this->func . '_options'};
342
-
343
- $value = ! empty( ${$this->func . '_options'}[$key] ) ? ${$this->func . '_options'}[$key] : $default;
344
- $value = apply_filters( $this->func . '_get_option', $value, $key, $default );
345
-
346
- return apply_filters( $this->func . '_get_option_' . $key, $value, $key, $default );
347
- }
348
-
349
-
350
- /**
351
- * Update an option
352
- *
353
- * @access public
354
- * @since 1.0.0
355
- * @param string $key The key to update
356
- * @param mixed $value The value to set key to
357
- * @return bool true if updated, false otherwise
358
- */
359
- public function update_option( $key = '', $value = false ) {
360
- // Bail if no key is set
361
- if( empty( $key ) ) {
362
- return false;
363
- }
364
-
365
- if( empty( $value ) ) {
366
- $remove_option = $this->delete_option( $key );
367
- return $remove_option;
368
- }
369
-
370
- // Fetch a clean copy of the options array
371
- $options = get_option( $this->func . '_settings' );
372
-
373
- // Allow devs to modify the value
374
- $value = apply_filters( $this->func . '_update_option', $value, $key );
375
-
376
- // Try to update the option
377
- $options[$key] = $value;
378
- $did_update = update_option( $this->func . '_settings', $options );
379
-
380
- // Update the global
381
- if( $did_update ) {
382
- global ${$this->func . '_options'};
383
- ${$this->func . '_options'}[$key] = $value;
384
- }
385
-
386
- return $did_update;
387
- }
388
-
389
-
390
- /**
391
- * Delete an option
392
- *
393
- * @access public
394
- * @since 1.0.0
395
- * @param string $key The key to delete
396
- * @return bool true if deleted, false otherwise
397
- */
398
- public function delete_option( $key = '' ) {
399
- // Bail if no key is set
400
- if( empty( $key ) ) {
401
- return false;
402
- }
403
-
404
- // Fetch a clean copy of the options array
405
- $options = get_option( $this->func . '_settings' );
406
-
407
- // Try to unset the option
408
- if( isset( $options[$key] ) ) {
409
- unset( $options[$key] );
410
- }
411
-
412
- $did_update = update_option( $this->func . '_settings', $options );
413
-
414
- // Update the global
415
- if( $did_update ) {
416
- global ${$this->func . '_options'};
417
- ${$this->func . '_options'} = $options;
418
- }
419
-
420
- return $did_update;
421
- }
422
-
423
-
424
- /**
425
- * Retrieve all options
426
- *
427
- * @access public
428
- * @since 1.0.0
429
- * @return array $settings The options array
430
- */
431
- public function get_settings() {
432
- $settings = get_option( $this->func . '_settings' );
433
-
434
- if( empty( $settings ) ) {
435
- $settings = array();
436
-
437
- update_option( $this->func . '_settings', $settings );
438
- }
439
-
440
- return apply_filters( $this->func . '_get_settings', $settings );
441
- }
442
-
443
-
444
- /**
445
- * Add settings sections and fields
446
- *
447
- * @access public
448
- * @since 1.0.0
449
- * @return void
450
- */
451
- function register_settings() {
452
- if( get_option( $this->func . '_settings' ) == false ) {
453
- add_option( $this->func . '_settings' );
454
- }
455
-
456
- foreach( $this->get_registered_settings() as $tab => $sections ) {
457
- foreach( $sections as $section => $settings ) {
458
- // Check for backwards compatibility
459
- $section_tabs = $this->get_settings_tab_sections( $tab );
460
-
461
- if( ! is_array( $section_tabs ) || ! array_key_exists( $section, $section_tabs ) ) {
462
- $section = 'main';
463
- $settings = $sections;
464
- }
465
-
466
- add_settings_section(
467
- $this->func . '_settings_' . $tab . '_' . $section,
468
- __return_null(),
469
- '__return_false',
470
- $this->func . '_settings_' . $tab . '_' . $section
471
- );
472
-
473
- foreach( $settings as $option ) {
474
- // For backwards compatibility
475
- if( empty( $option['id'] ) ) {
476
- continue;
477
- }
478
-
479
- $name = isset( $option['name'] ) ? $option['name'] : '';
480
-
481
- add_settings_field(
482
- $this->func . '_settings[' . $option['id'] . ']',
483
- $name,
484
- function_exists( $this->func . '_' . $option['type'] . '_callback' ) ? $this->func . '_' . $option['type'] . '_callback' : ( method_exists( $this, $option['type'] . '_callback' ) ? array( $this, $option['type'] . '_callback' ) : array( $this, 'missing_callback' ) ),
485
- $this->func . '_settings_' . $tab . '_' . $section,
486
- $this->func . '_settings_' . $tab . '_' . $section,
487
- array(
488
- 'section' => $section,
489
- 'id' => isset( $option['id'] ) ? $option['id'] : null,
490
- 'desc' => ! empty( $option['desc'] ) ? $option['desc'] : '',
491
- 'name' => isset( $option['name'] ) ? $option['name'] : null,
492
- 'size' => isset( $option['size'] ) ? $option['size'] : null,
493
- 'options' => isset( $option['options'] ) ? $option['options'] : '',
494
- 'std' => isset( $option['std'] ) ? $option['std'] : '',
495
- 'min' => isset( $option['min'] ) ? $option['min'] : null,
496
- 'max' => isset( $option['max'] ) ? $option['max'] : null,
497
- 'step' => isset( $option['step'] ) ? $option['step'] : null,
498
- 'select2' => isset( $option['select2'] ) ? $option['select2'] : null,
499
- 'placeholder' => isset( $option['placeholder'] ) ? $option['placeholder'] : null,
500
- 'multiple' => isset( $option['multiple'] ) ? $option['multiple'] : null,
501
- 'allow_blank' => isset( $option['allow_blank'] ) ? $option['allow_blank'] : true,
502
- 'readonly' => isset( $option['readonly'] ) ? $option['readonly'] : false,
503
- 'buttons' => isset( $option['buttons'] ) ? $option['buttons'] : null,
504
- 'wpautop' => isset( $option['wpautop'] ) ? $option['wpautop'] : null,
505
- 'teeny' => isset( $option['teeny'] ) ? $option['teeny'] : null,
506
- 'tab' => isset( $option['tab'] ) ? $option['tab'] : null,
507
- 'tooltip_title' => isset( $option['tooltip_title'] ) ? $option['tooltip_title'] : false,
508
- 'tooltip_desc' => isset( $option['tooltip_desc'] ) ? $option['tooltip_desc'] : false
509
- )
510
- );
511
- }
512
- }
513
- }
514
-
515
- register_setting( $this->func . '_settings', $this->func . '_settings', array( $this, 'settings_sanitize' ) );
516
- }
517
-
518
-
519
- /**
520
- * Settings sanitization
521
- *
522
- * @access public
523
- * @since 1.0.0
524
- * @param array $input The value entered in the field
525
- * @global array ${$this->func . '_options'} The options array
526
- * @return string $input The sanitized value
527
- */
528
- public function settings_sanitize( $input = array() ) {
529
- global ${$this->func . '_options'};
530
-
531
- $doing_section = false;
532
-
533
- if( ! empty( $_POST['_wp_http_referer'] ) ) {
534
- $doing_section = true;
535
- }
536
-
537
- $setting_types = $this->get_registered_settings_types();
538
- $input = $input ? $input : array();
539
-
540
- if( $doing_section ) {
541
- parse_str( $_POST['_wp_http_referer'], $referrer );
542
-
543
- $tab = isset( $referrer['tab'] ) ? $referrer['tab'] : $this->default_tab;
544
- $section = isset( $referrer['section'] ) ? $referrer['section'] : 'main';
545
- $input = apply_filters( $this->func . '_settings_' . $tab . '_sanitize', $input );
546
- $input = apply_filters( $this->func . '_settings_' . $tab . '-' . $section . '_sanitize', $input );
547
- }
548
-
549
- $output = array_merge( ${$this->func . '_options'}, $input );
550
-
551
- foreach( $setting_types as $key => $type ) {
552
- if( empty( $type ) ) {
553
- continue;
554
- }
555
-
556
- // Bypass non-setting settings
557
- $non_setting_types = apply_filters( $this->func . '_non_setting_types', array(
558
- 'header', 'descriptive_text', 'hook'
559
- ) );
560
-
561
- if( in_array( $type, $non_setting_types ) ) {
562
- continue;
563
- }
564
-
565
- if( array_key_exists( $key, $output ) ) {
566
- $output[$key] = apply_filters( $this->func . '_settings_sanitize_' . $type, $output[$key], $key );
567
- $output[$key] = apply_filters( $this->func . '_settings_sanitize', $output[$key], $key );
568
- }
569
-
570
- if( $doing_section ) {
571
- switch( $type ) {
572
- case 'checkbox':
573
- if( array_key_exists( $key, $input ) && $output[$key] === '-1' ) {
574
- unset( $output[$key] );
575
- }
576
- break;
577
- default:
578
- if( array_key_exists( $key, $input ) && empty( $input[$key] ) ) {
579
- unset( $output[$key] );
580
- }
581
- break;
582
- }
583
- } else {
584
- if( empty( $input[$key] ) ) {
585
- unset( $output[$key] );
586
- }
587
- }
588
- }
589
-
590
- if( $doing_section ) {
591
- add_settings_error( $this->slug . '-notices', '', __( 'Your settings have been saved.', 's214-settings' ), 'updated' );
592
- }
593
-
594
- return $output;
595
- }
596
-
597
-
598
- /**
599
- * Flattens the set of registered settings and their type so we can easily sanitize all settings
600
- *
601
- * @since 1.2.0
602
- * @return array Key is the setting ID, value is the type of setting it is registered as
603
- */
604
- function get_registered_settings_types() {
605
- $settings = $this->get_registered_settings();
606
- $setting_types = array();
607
-
608
- foreach( $settings as $tab ) {
609
- foreach( $tab as $section_or_setting ) {
610
- // See if we have a setting registered at the tab level for backwards compatibility
611
- if( is_array( $section_or_setting ) && array_key_exists( 'type', $section_or_setting ) ) {
612
- $setting_types[$section_or_setting['id']] = $section_or_setting['type'];
613
- continue;
614
- }
615
-
616
- foreach( $section_or_setting as $section => $section_settings ) {
617
- $setting_types[$section_settings['id']] = $section_settings['type'];
618
- }
619
- }
620
- }
621
-
622
- return $setting_types;
623
- }
624
-
625
-
626
- /**
627
- * Sanitize text fields
628
- *
629
- * @access public
630
- * @since 1.0.0
631
- * @param array $input The value entered in the field
632
- * @return string $input The sanitized value
633
- */
634
- public function sanitize_text_field( $input ) {
635
- return trim( wp_strip_all_tags( $input, true ) );
636
- }
637
-
638
-
639
- /**
640
- * Header callback
641
- *
642
- * @access public
643
- * @since 1.0.0
644
- * @param array $args Arguments passed by the setting
645
- * @return void
646
- */
647
- public function header_callback( $args ) {
648
- echo '<hr />';
649
- }
650
-
651
-
652
- /**
653
- * Checkbox callback
654
- *
655
- * @access public
656
- * @since 1.0.0
657
- * @param array $args Arguments passed by the setting
658
- * @global array ${$this->func . '_options'} The plugin options
659
- * @return void
660
- */
661
- public function checkbox_callback( $args ) {
662
- global ${$this->func . '_options'};
663
-
664
- $name = ' name="' . $this->func . '_settings[' . $args['id'] . ']"';
665
- $checked = isset( ${$this->func . '_options'}[$args['id']] ) ? checked( 1, ${$this->func . '_options'}[$args['id']], false ) : '';
666
-
667
- $html = '<input type="hidden"' . $name . ' value="-1" />';
668
- $html .= '<input type="checkbox" id="' . $this->func . '_settings[' . $args['id'] . ']"' . $name . ' value="1" ' . $checked . '/>&nbsp;';
669
- $html .= '<span class="description"><label for="' . $this->func . '_settings[' . $args['id'] . ']">' . $args['desc'] . '</label></span>';
670
-
671
- echo apply_filters( $this->func . '_after_setting_output', $html, $args );
672
- }
673
-
674
-
675
- /**
676
- * Color callback
677
- *
678
- * @access public
679
- * @since 1.0.0
680
- * @param array $args Arguments passed by the settings
681
- * @global array ${$this->func . '_options'} The Beacon options
682
- * @return void
683
- */
684
- public function color_callback( $args ) {
685
- global ${$this->func . '_options'};
686
-
687
- if( isset( ${$this->func . '_options'}[$args['id']] ) ) {
688
- $value = ${$this->func . '_options'}[$args['id']];
689
- } else {
690
- $value = isset( $args['std'] ) ? $args['std'] : '';
691
- }
692
-
693
- $default = isset( $args['std'] ) ? $args['std'] : '';
694
- $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
695
-
696
- $html = '<input type="text" class="s214-color-picker" id="' . $this->func . '_settings[' . $args['id'] . ']" name="' . $this->func . '_settings[' . $args['id'] . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $default ) . '" />&nbsp;';
697
- $html .= '<span class="s214-color-picker-label description"><label for="' . $this->func . '_settings[' . $args['id'] . ']">' . $args['desc'] . '</label></span>';
698
-
699
- echo apply_filters( $this->func . '_after_setting_output', $html, $args );
700
- }
701
-
702
-
703
- /**
704
- * Descriptive text callback
705
- *
706
- * @access public
707
- * @since 1.0.0
708
- * @param array $args Arguments passed by the setting
709
- * @return void
710
- */
711
- public function descriptive_text_callback( $args ) {
712
- $html = wp_kses_post( $args['desc'] );
713
-
714
- echo apply_filters( $this->func . '_after_setting_output', $html, $args );
715
- }
716
-
717
-
718
- /**
719
- * Editor callback
720
- *
721
- * @access public
722
- * @since 1.0.0
723
- * @param array $args Arguments passed by the setting
724
- * @global array ${$this->func . '_options'} The Beacon options
725
- * @return void
726
- */
727
- public function editor_callback( $args ) {
728
- global ${$this->func . '_options'};
729
-
730
- if( isset( ${$this->func . '_options'}[$args['id']] ) ) {
731
- $value = ${$this->func . '_options'}[$args['id']];
732
-
733
- if( empty( $args['allow_blank'] ) && empty( $value ) ) {
734
- $value = isset( $args['std'] ) ? $args['std'] : '';
735
- }
736
- } else {
737
- $value = isset( $args['std'] ) ? $args['std'] : '';
738
- }
739
-
740
- $rows = isset( $args['size'] ) ? $args['size'] : '10';
741
- $wpautop = isset( $args['wpautop'] ) ? $args['wpautop'] : true;
742
- $buttons = isset( $args['buttons'] ) ? $args['buttons'] : true;
743
- $teeny = isset( $args['teeny'] ) ? $args['teeny'] : false;
744
-
745
- wp_editor(
746
- $value,
747
- $this->func . '_settings_' . $args['id'],
748
- array(
749
- 'wpautop' => $wpautop,
750
- 'media_buttons' => $buttons,
751
- 'textarea_name' => $this->func . '_settings[' . $args['id'] . ']',
752
- 'textarea_rows' => $rows,
753
- 'teeny' => $teeny
754
- )
755
- );
756
- $html = '<br /><span class="description"><label for="' . $this->func . '_settings[' . $args['id'] . ']">' . $args['desc'] . '</label></span>';
757
-
758
- echo apply_filters( $this->func . '_after_setting_output', $html, $args );
759
- }
760
-
761
-
762
- /**
763
- * HTML callback
764
- *
765
- * @since 1.0.0
766
- * @param array $args Arguments passed by the setting
767
- * @global array ${$this->func . '_options'} The Beacon options
768
- * @return void
769
- */
770
- public function html_callback( $args ) {
771
- global ${$this->func . '_options'};
772
-
773
- if( isset( ${$this->func . '_options'}[$args['id']] ) ) {
774
- $value = ${$this->func . '_options'}[$args['id']];
775
- } else {
776
- $value = isset( $args['std'] ) ? $args['std'] : '';
777
- }
778
-
779
- $html = '<textarea class="large-text s214-html" cols="50" rows="5" id="' . $this->func . '_settings[' . $args['id'] . ']" name="' . $this->func . '_settings[' . $args['id'] . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>&nbsp;';
780
- $html .= '<span class="description"><label for="' . $this->func . '_settings[' . $args['id'] . ']">' . $args['desc'] . '</label></span>';
781
-
782
- echo apply_filters( $this->func . '_after_setting_output', $html, $args );
783
- }
784
-
785
-
786
- /**
787
- * Multicheck callback
788
- *
789
- * @access public
790
- * @since 1.0.0
791
- * @param array $args Arguments passed by the setting
792
- * @global array ${$this->func . '_options'} The Beacon options
793
- * @return void
794
- */
795
- public function multicheck_callback( $args ) {
796
- global ${$this->func . '_options'};
797
-
798
- if( ! empty( $args['options'] ) ) {
799
- $html = '';
800
-
801
- foreach( $args['options'] as $key => $option ) {
802
- if( isset( ${$this->func . '_options'}[$args['id']][$key] ) ) {
803
- $enabled = $option;
804
- } else {
805
- $enabled = isset( $args['std'][$key] ) ? $args['std'][$key] : NULL;
806
- }
807
-
808
- $html .= '<input name="' . $this->func . '_settings[' . $args['id'] . '][' . $key . ']" id="' . $this->func . '_settings[' . $args['id'] . '][' . $key . ']" type="checkbox" value="' . $option . '" ' . checked( $option, $enabled, false ) . ' />&nbsp;';
809
- $html .= '<label for="' . $this->func . '_settings[' . $args['id'] . '][' . $key . ']">' . $option . '</label><br />';
810
- }
811
- $html .= '<p class="description">' . $args['desc'] . '</p>';
812
-
813
- echo apply_filters( $this->func . '_after_setting_output', $html, $args );
814
- }
815
- }
816
-
817
-
818
- /**
819
- * Number callback
820
- *
821
- * @access public
822
- * @since 1.0.0
823
- * @param array $args Arguments passed by the setting
824
- * @global array ${$this->func . '_options'} The Beacon options
825
- * @return void
826
- */
827
- public function number_callback( $args ) {
828
- global ${$this->func . '_options'};
829
-
830
- if( isset( ${$this->func . '_options'}[$args['id']] ) ) {
831
- $value = ${$this->func . '_options'}[$args['id']];
832
- } else {
833
- $value = isset( $args['std'] ) ? $args['std'] : '';
834
- }
835
-
836
- $name = ' name="' . $this->func . '_settings[' . $args['id'] . ']"';
837
- $max = isset( $args['max'] ) ? $args['max'] : 999999;
838
- $min = isset( $args['min'] ) ? $args['min'] : 0;
839
- $step = isset( $args['step'] ) ? $args['step'] : 1;
840
- $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
841
- $readonly = $args['readonly'] === true ? ' readonly="readonly"' : '';
842
-
843
- $html = '<input type="number" step="' . esc_attr( $step ) . '" max="' . esc_attr( $max ) . '" min="' . esc_attr( $min ) . '" class="' . $size . '-text" id="' . $this->func . '_settings[' . $args['id'] . ']"' . $name . ' value="' . esc_attr( stripslashes( $value ) ) . '"' . $readonly . '/>&nbsp;';
844
- $html .= '<span class="description"><label for="' . $this->func . '_settings[' . $args['id'] . ']">' . $args['desc'] . '</label></span>';
845
-
846
- echo apply_filters( $this->func . '_after_setting_output', $html, $args );
847
- }
848
-
849
-
850
- /**
851
- * Password callback
852
- *
853
- * @access public
854
- * @since 1.0.0
855
- * @param array $args Arguments passed by the settings
856
- * @global array ${$this->func . '_options'} The Beacon options
857
- * @return void
858
- */
859
- public function password_callback( $args ) {
860
- global ${$this->func . '_options'};
861
-
862
- if( isset( ${$this->func . '_options'}[$args['id']] ) ) {
863
- $value = ${$this->func . '_options'}[$args['id']];
864
- } else {
865
- $value = isset( $args['std'] ) ? $args['std'] : '';
866
- }
867
-
868
- $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
869
-
870
- $html = '<input type="password" class="' . $size . '-text" id="' . $this->func . '_settings[' . $args['id'] . ']" name="' . $this->func . '_settings[' . $args['id'] . ']" value="' . esc_attr( $value ) . '" />&nbsp;';
871
- $html .= '<span class="description"><label for="' . $this->func . '_settings[' . $args['id'] . ']">' . $args['desc'] . '</label></span>';
872
-
873
- echo apply_filters( $this->func . '_after_setting_output', $html, $args );
874
- }
875
-
876
-
877
- /**
878
- * Radio callback
879
- *
880
- * @access public
881
- * @since 1.0.0
882
- * @param array $args Arguments passed by the setting
883
- * @global array ${$this->func . '_options'} The Beacon options
884
- * @return void
885
- */
886
- public function radio_callback( $args ) {
887
- global ${$this->func . '_options'};
888
-
889
- if( ! empty( $args['options'] ) ) {
890
- $html = '';
891
-
892
- foreach( $args['options'] as $key => $option ) {
893
- $checked = false;
894
-
895
- if( isset( ${$this->func . '_options'}[$args['id']] ) && ${$this->func . '_options'}[$args['id']] == $key ) {
896
- $checked = true;
897
- } elseif( isset( $args['std'] ) && $args['std'] == $key && ! isset( ${$this->func . '_options'}[$args['id']] ) ) {
898
- $checked = true;
899
- }
900
-
901
- $html .= '<input name="' . $this->func . '_settings[' . $args['id'] . ']" id="' . $this->func . '_settings[' . $args['id'] . '][' . $key . ']" type="radio" value="' . $key . '" ' . checked( true, $checked, false ) . '/>&nbsp;';
902
- $html .= '<label for="' . $this->func . '_settings[' . $args['id'] . '][' . $key . ']">' . $option . '</label><br />';
903
- }
904
-
905
- $html .= '<p class="description">' . $args['desc'] . '</p>';
906
-
907
- echo apply_filters( $this->func . '_after_setting_output', $html, $args );
908
- }
909
- }
910
-
911
-
912
- /**
913
- * Select callback
914
- *
915
- * @access public
916
- * @since 1.0.0
917
- * @param array $args Arguments passed by the setting
918
- * @global array ${$this->func . '_options'} The Beacon options
919
- * @return void
920
- */
921
- public function select_callback( $args ) {
922
- global ${$this->func . '_options'};
923
-
924
- if( isset( ${$this->func . '_options'}[$args['id']] ) ) {
925
- $value = ${$this->func . '_options'}[$args['id']];
926
- } else {
927
- $value = isset( $args['std'] ) ? $args['std'] : '';
928
- }
929
-
930
- $placeholder = isset( $args['placeholder'] ) ? $args['placeholder'] : '';
931
- $select2 = isset( $args['select2'] ) ? ' class="s214-select2"' : '';
932
- $width = isset( $args['size'] ) ? ' style="width: ' . $args['size'] . '"' : '';
933
-
934
- if( isset( $args['multiple'] ) && $args['multiple'] === true ) {
935
- $html = '<select id="' . $this->func . '_settings[' . $args['id'] . ']" name="' . $this->func . '_settings[' . $args['id'] . '][]"' . $select2 . ' data-placeholder="' . $placeholder . '" multiple="multiple"' . $width . ' />';
936
- } else {
937
- $html = '<select id="' . $this->func . '_settings[' . $args['id'] . ']" name="' . $this->func . '_settings[' . $args['id'] . ']"' . $select2 . ' data-placeholder="' . $placeholder . '"' . $width . ' />';
938
- }
939
-
940
- foreach( $args['options'] as $option => $name ) {
941
- if( isset( $args['multiple'] ) && $args['multiple'] === true ) {
942
- if( is_array( $value ) ) {
943
- $selected = ( in_array( $option, $value ) ? 'selected="selected"' : '' );
944
- } else {
945
- $selected = '';
946
- }
947
- } else {
948
- if( is_string( $value ) ) {
949
- $selected = selected( $option, $value, false );
950
- } else {
951
- $selected = '';
952
- }
953
- }
954
-
955
- $html .= '<option value="' . $option . '" ' . $selected . '>' . $name . '</option>';
956
- }
957
-
958
- $html .= '</select>&nbsp;';
959
- $html .= '<span class="description"><label for="' . $this->func . '_settings[' . $args['id'] . ']">' . $args['desc'] . '</label></span>';
960
-
961
- echo apply_filters( $this->func . '_after_setting_output', $html, $args );
962
- }
963
-
964
-
965
- /**
966
- * Sysinfo callback
967
- *
968
- * @since 1.1.0
969
- * @param array $args Arguements passed by the settings
970
- * @return void
971
- */
972
- public function sysinfo_callback( $args ) {
973
- global ${$this->func . '_options'};
974
-
975
- if( ! isset( ${$this->func . '_options'}[$args['tab']] ) || ( isset( ${$this->func . '_options'}[$args['tab']] ) && isset( $_GET['tab'] ) && $_GET['tab'] == ${$this->func . '_options'}[$args['tab']] ) ) {
976
- $html = '<textarea readonly="readonly" onclick="this.focus(); this.select()" id="system-info-textarea" name="' . $this->func . '-system-info" title="' . __( 'To copy the system info, click below then press Ctrl + C (PC) or Cmd + C (Mac).', 's214-settings' ) . '">' . $this->sysinfo->get_system_info() . '</textarea>';
977
- $html .= '<p class="submit">';
978
- $html .= '<input type="hidden" name="' . $this->slug . '-settings-action" value="download_system_info" />';
979
- $html .= '<a class="button button-primary" href="' . add_query_arg( $this->slug . '-settings-action', 'download_system_info' ) . '">' . __( 'Download System Info File', 's214-settings' ) . '</a>';
980
- $html .= '</p>';
981
-
982
- echo apply_filters( $this->func . '_after_setting_output', $html, $args );
983
- }
984
- }
985
-
986
-
987
- /**
988
- * Text callback
989
- *
990
- * @since 1.0.0
991
- * @param array $args Arguments passed by the setting
992
- * @global array ${$this->func . '_options'} The Beacon options
993
- * @return void
994
- */
995
- public function text_callback( $args ) {
996
- global ${$this->func . '_options'};
997
-
998
- if( isset( ${$this->func . '_options'}[$args['id']] ) ) {
999
- $value = ${$this->func . '_options'}[$args['id']];
1000
- } else {
1001
- $value = isset( $args['std'] ) ? $args['std'] : '';
1002
- }
1003
-
1004
- $name = ' name="' . $this->func . '_settings[' . $args['id'] . ']"';
1005
- $readonly = $args['readonly'] === true ? ' readonly="readonly"' : '';
1006
- $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1007
-
1008
- $html = '<input type="text" class="' . $size . '-text" id="' . $this->func . '_settings[' . $args['id'] . ']"' . $name . ' value="' . esc_attr( stripslashes( $value ) ) . '"' . $readonly . '/>&nbsp;';
1009
- $html .= '<span class="description"><label for="' . $this->func . '_settings[' . $args['id'] . ']">' . $args['desc'] . '</label></span>';
1010
-
1011
- echo apply_filters( $this->func . '_after_setting_output', $html, $args );
1012
- }
1013
-
1014
-
1015
- /**
1016
- * Textarea callback
1017
- *
1018
- * @since 1.0.0
1019
- * @param array $args Arguments passed by the setting
1020
- * @global array ${$this->func . '_options'} The Beacon options
1021
- * @return void
1022
- */
1023
- public function textarea_callback( $args ) {
1024
- global ${$this->func . '_options'};
1025
-
1026
- if( isset( ${$this->func . '_options'}[$args['id']] ) ) {
1027
- $value = ${$this->func . '_options'}[$args['id']];
1028
- } else {
1029
- $value = isset( $args['std'] ) ? $args['std'] : '';
1030
- }
1031
-
1032
- $html = '<textarea class="large-text" cols="50" rows="5" id="' . $this->func . '_settings[' . $args['id'] . ']" name="' . $this->func . '_settings[' . $args['id'] . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>&nbsp;';
1033
- $html .= '<span class="description"><label for="' . $this->func . '_settings[' . $args['id'] . ']">' . $args['desc'] . '</label></span>';
1034
-
1035
- echo apply_filters( $this->func . '_after_setting_output', $html, $args );
1036
- }
1037
-
1038
-
1039
- /**
1040
- * Upload callback
1041
- *
1042
- * @since 1.0.0
1043
- * @param array $args Arguments passed by the setting
1044
- * @global array ${$this->func . '_options'} The Beacon options
1045
- * @return void
1046
- */
1047
- public function upload_callback( $args ) {
1048
- global ${$this->func . '_options'};
1049
-
1050
- if( isset( ${$this->func . '_options'}[$args['id']] ) ) {
1051
- $value = ${$this->func . '_options'}[$args['id']];
1052
- } else {
1053
- $value = isset( $args['std'] ) ? $args['std'] : '';
1054
- }
1055
-
1056
- $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1057
-
1058
- $html = '<input type="text" class="' . $size . '-text" id="' . $this->func . '_settings[' . $args['id'] . ']" name="' . $this->func . '_settings[' . $args['id'] . ']" value="' . esc_attr( stripslashes( $value ) ) . '" />&nbsp;';
1059
- $html .= '<span><input type="button" class="' . $this->func . '_settings_upload_button button-secondary" value="' . __( 'Upload File', 's214-settings' ) . '" /></span>&nbsp;';
1060
- $html .= '<span class="description"><label for="' . $this->func . '_settings[' . $args['id'] . ']">' . $args['desc'] . '</label></span>';
1061
-
1062
- echo apply_filters( $this->func . '_after_setting_output', $html, $args );
1063
- }
1064
-
1065
-
1066
- /**
1067
- * License field callback
1068
- *
1069
- * @access public
1070
- * @since 1.0.0
1071
- * @param array $args Arguments passed by the setting
1072
- * @global array ${$this->func . '_options'} The Beacon options
1073
- * @return void
1074
- */
1075
- public function license_key_callback( $args ) {
1076
- global ${$this->func . '_options'};
1077
-
1078
- if( isset( ${$this->func . '_options'}[$args['id']] ) ) {
1079
- $value = ${$this->func . '_options'}[$args['id']];
1080
- } else {
1081
- $value = isset( $args['std'] ) ? $args['std'] : '';
1082
- }
1083
-
1084
- $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1085
-
1086
- $html = '<input type="text" class="' . $size . '-text" id="' . $this->func . '_settings[' . $args['id'] . ']" name="' . $this->func . '_settings[' . $args['id'] . ']" value="' . esc_attr( $value ) . '" />&nbsp;';
1087
-
1088
- if( get_option( $args['options']['is_valid_license_option'] ) ) {
1089
- $html .= '<input type="submit" class="button-secondary" name="' . $args['id'] . '_deactivate" value="' . __( 'Deactivate License', 's214-settings' ) . '"/>';
1090
- }
1091
- $html .= '<span class="description"><label for="' . $this->func . '_settings[' . $args['id'] . ']"> ' . $args['desc'] . '</label></span>';
1092
-
1093
- wp_nonce_field( $args['id'] . '-nonce', $args['id'] . '-nonce' );
1094
-
1095
- echo apply_filters( $this->func . '_after_setting_output', $html, $args );
1096
- }
1097
-
1098
-
1099
- /**
1100
- * Hook callback
1101
- *
1102
- * @since 1.0.0
1103
- * @param array $args Arguments passed by the setting
1104
- * @return void
1105
- */
1106
- public function hook_callback( $args ) {
1107
- do_action( $this->func . '_' . $args['id'] );
1108
- }
1109
-
1110
-
1111
- /**
1112
- * Missing callback
1113
- *
1114
- * @access public
1115
- * @since 1.0.0
1116
- * @param array $args Arguments passed by the setting
1117
- * @return void
1118
- */
1119
- public function missing_callback( $args ) {
1120
- printf( __( 'The callback function used for the <strong>%s</strong> setting is missing.', 's214-settings' ), $args['id'] );
1121
- }
1122
-
1123
-
1124
- /**
1125
- * Check if we should load admin scripts
1126
- *
1127
- * @access public
1128
- * @since 1.0.0
1129
- * @param string $hook The hook for the current page
1130
- * @return bool true if we should load scripts, false otherwise
1131
- */
1132
- public function load_scripts( $hook ) {
1133
- global $typenow, $pagenow, ${$this->func . '_settings_page'};
1134
-
1135
- $ret = false;
1136
- $pages = apply_filters( $this->func . '_admin_pages', array( ${$this->func . '_settings_page'} ) );
1137
-
1138
- if( in_array( $hook, $pages ) ) {
1139
- $ret = true;
1140
- }
1141
-
1142
- return (bool) apply_filters( $this->func . 'load_scripts', $ret );
1143
- }
1144
-
1145
-
1146
- /**
1147
- * Processes all actions sent via POST and GET by looking for the '$func-settings-action'
1148
- * request and running do_action() to call the function
1149
- *
1150
- * @since 1.1.0
1151
- * @return void
1152
- */
1153
- function process_actions() {
1154
- if( ! isset( $_POST['submit'] ) ) {
1155
- if( isset( $_POST[$this->slug . '-settings-action'] ) ) {
1156
- do_action( $this->func . '_settings_' . $_POST[$this->slug . '-settings-action'], $_POST );
1157
- }
1158
-
1159
- if( isset( $_GET[$this->slug . '-settings-action'] ) ) {
1160
- do_action( $this->func . '_settings_' . $_GET[$this->slug . '-settings-action'], $_GET );
1161
- }
1162
- }
1163
- }
1164
-
1165
-
1166
- /**
1167
- * Enqueue scripts
1168
- *
1169
- * @access public
1170
- * @since 1.0.0
1171
- * @param string $hook The current page hook
1172
- * @return void
1173
- */
1174
- public function enqueue_scripts( $hook ) {
1175
- if( ! apply_filters( $this->func . '_load_admin_scripts', $this->load_scripts( $hook ), $hook ) ) {
1176
- return;
1177
- }
1178
-
1179
- // Use minified libraries if SCRIPT_DEBUG is turned off
1180
- $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
1181
- $ui_style = ( get_user_option( 'admin_color' ) == 'classic' ) ? 'classic' : 'fresh';
1182
- $url_path = str_replace( WP_CONTENT_DIR, WP_CONTENT_URL, dirname( __FILE__ ) );
1183
- $select2_cdn = 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.2/';
1184
- $cm_cdn = 'https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.14.2/';
1185
-
1186
- wp_enqueue_style( 'wp-color-picker' );
1187
- wp_enqueue_script( 'wp-color-picker' );
1188
- wp_enqueue_script( 'jquery-ui-tooltip' );
1189
- wp_enqueue_media();
1190
- wp_enqueue_style( 'jquery-ui-css', $url_path . '/assets/css/jquery-ui-' . $ui_style . '.min.css' );
1191
- wp_enqueue_script( 'media-upload' );
1192
- wp_enqueue_style( 'thickbox' );
1193
- wp_enqueue_script( 'thickbox' );
1194
- wp_enqueue_style( 'select2', $select2_cdn . 'css/select2.min.css', array(), '4.0.2' );
1195
- wp_enqueue_script( 'select2', $select2_cdn . 'js/select2.min.js', array( 'jquery' ), '4.0.2' );
1196
-
1197
- wp_enqueue_style( $this->slug . '-cm', $cm_cdn . 'codemirror.css', array(), '5.10' );
1198
- wp_enqueue_script( $this->slug . '-cm', $cm_cdn . 'codemirror.js', array( 'jquery' ), '5.14.2' );
1199
- wp_enqueue_script( $this->slug . '-cm-html', $cm_cdn . 'mode/htmlmixed/htmlmixed.js', array( 'jquery', $this->slug . '-cm' ), '5.14.2' );
1200
- wp_enqueue_script( $this->slug . '-cm-xml', $cm_cdn . 'mode/xml/xml.js', array( 'jquery', $this->slug . '-cm' ), '5.14.2' );
1201
- wp_enqueue_script( $this->slug . '-cm-js', $cm_cdn . 'mode/javascript/javascript.js', array( 'jquery', $this->slug . '-cm' ), '5.14.2' );
1202
- wp_enqueue_script( $this->slug . '-cm-css', $cm_cdn . 'mode/css/css.js', array( 'jquery', $this->slug . '-cm' ), '5.14.2' );
1203
- wp_enqueue_script( $this->slug . '-cm-php', $cm_cdn . 'mode/php/php.js', array( 'jquery', $this->slug . '-cm' ), '5.14.2' );
1204
- wp_enqueue_script( $this->slug . '-cm-clike', $cm_cdn . 'mode/clike/clike.js', array( 'jquery', $this->slug . '-cm' ), '5.14.2' );
1205
-
1206
- wp_enqueue_style( $this->slug . '-s214-settings', $url_path . '/assets/css/admin' . $suffix . '.css', array(), $this->version );
1207
- wp_enqueue_script( $this->slug . '-s214-settings', $url_path . '/assets/js/admin' . $suffix . '.js', array( 'jquery' ), $this->version );
1208
- wp_localize_script( $this->slug . '-s214-settings', 's214_settings_vars', apply_filters( $this->func . 'localize_script', array(
1209
- 'func' => $this->func,
1210
- 'image_media_button' => __( 'Insert Image', 's214-settings' ),
1211
- 'image_media_title' => __( 'Select Image', 's214-settings' ),
1212
- ) ) );
1213
- }
1214
-
1215
-
1216
- /**
1217
- * Add tooltips
1218
- *
1219
- * @access public
1220
- * @since 1.2.0
1221
- * @param string $html The current field HTML
1222
- * @param array $args Arguments passed to the field
1223
- * @return string $html The updated field HTML
1224
- */
1225
- function add_setting_tooltip( $html, $args ) {
1226
- if( ! empty( $args['tooltip_title'] ) && ! empty( $args['tooltip_desc'] ) ) {
1227
- $tooltip = '<span alt="f223" class="s214-help-tip dashicons dashicons-editor-help" title="<strong>' . $args['tooltip_title'] . '</strong>: ' . $args['tooltip_desc'] . '"></span>';
1228
- $html .= $tooltip;
1229
- }
1230
-
1231
- return $html;
1232
- }
1233
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/source/class.wpdesk-s214-settings.php DELETED
@@ -1,1198 +0,0 @@
1
- <?php
2
-
3
- // Exit if accessed directly
4
- if ( ! defined( 'ABSPATH' ) ) {
5
- exit;
6
- }
7
-
8
-
9
- /**
10
- * WP Desk Section214 settings handler class
11
- *
12
- * @since 1.0.0
13
- */
14
- class WPDesk_S214_Settings extends S214_Settings {
15
-
16
- const CUSTOM_ATTRIBUTES_KEY = 'custom_attributes';
17
- const CLASS_KEY = 'class';
18
-
19
- /**
20
- * @var string $version The settings class version
21
- * @since 1.0.0
22
- */
23
- public $version = '1.3';
24
-
25
-
26
- /**
27
- * @var string
28
- */
29
- private $text_domain;
30
-
31
-
32
- /**
33
- * Get things started
34
- *
35
- * @access public
36
- * @since 1.0.1
37
- *
38
- * @param string $slug The plugin slug
39
- * @param string $default_tab The default settings tab to display
40
- *
41
- * @return void
42
- */
43
- public function __construct( $url_path, $slug = 'wpdesk-settings', $default_tab = 'general' ) {
44
- parent::__construct( $slug, $default_tab );
45
- $this->url_path = $url_path;
46
- global ${$this->func . '_options'};
47
- ${$this->func . '_options'} = $this->get_settings();
48
-
49
-
50
- }
51
-
52
- /**
53
- * Add settings pages
54
- *
55
- * @access public
56
- * @since 1.0.0
57
- * @global string ${this->func . '_settings_page'} The settings page slug
58
- * @return void
59
- */
60
- public function add_settings_page() {
61
- global ${$this->func . '_settings_page'};
62
-
63
- $menu = apply_filters( $this->func . '_menu', array(
64
- 'type' => 'menu',
65
- 'parent' => 'options-general.php',
66
- 'page_title' => __( 'Section214 Settings', 's214' ),
67
- 'show_title' => false,
68
- 'menu_title' => __( 'Section214 Settings', 's214' ),
69
- 'capability' => 'manage_options',
70
- 'icon' => '',
71
- 'position' => null
72
- ) );
73
-
74
- $this->show_title = $menu['show_title'];
75
- $this->page_title = $menu['page_title'];
76
-
77
- if ( $menu['type'] === 'submenu' ) {
78
- ${$this->func . '_settings_page'} = add_submenu_page( $menu['parent'], $menu['page_title'],
79
- $menu['menu_title'], $menu['capability'], $this->slug . '-settings',
80
- array( $this, 'render_settings_page' ) );
81
- } else {
82
- ${$this->func . '_settings_page'} = add_menu_page( $menu['page_title'], $menu['menu_title'],
83
- $menu['capability'], $this->slug . '-settings', array( $this, 'render_settings_page' ), $menu['icon'],
84
- $menu['position'] );
85
- }
86
- }
87
-
88
-
89
- /**
90
- * Render settings page
91
- *
92
- * @access public
93
- * @since 1.0.0
94
- * @return void
95
- */
96
- public function render_settings_page() {
97
- $active_tab = isset( $_GET['tab'] ) && array_key_exists( $_GET['tab'],
98
- $this->get_settings_tabs() ) ? $_GET['tab'] : $this->default_tab;
99
- $sections = $registered_sections = $this->get_settings_tab_sections( $active_tab );
100
- $key = 'main';
101
-
102
- if ( is_array( $sections ) ) {
103
- $key = key( $sections );
104
- }
105
-
106
- $section = isset( $_GET['section'] ) && ! empty( $registered_sections ) && array_key_exists( $_GET['section'],
107
- $registered_sections ) ? $_GET['section'] : $key;
108
-
109
- ob_start();
110
- ?>
111
- <div class="wrap">
112
- <?php if ( $this->show_title ) { ?>
113
- <h2><?php echo $this->page_title; ?></h2>
114
- <?php } ?>
115
- <h2 class="nav-tab-wrapper">
116
- <?php
117
- foreach ( $this->get_settings_tabs() as $tab_id => $tab_name ) {
118
- $tab_url = add_query_arg( array(
119
- 'settings-updated' => false,
120
- 'tab' => $tab_id
121
- ) );
122
-
123
- // Remove the section from the tabs so we always end up at the main section
124
- $tab_url = remove_query_arg( 'section', $tab_url );
125
-
126
- $active = $active_tab === $tab_id ? ' nav-tab-active' : '';
127
-
128
- echo '<a href="' . esc_url( $tab_url ) . '" title="' . esc_attr( $tab_name ) . '" class="nav-tab' . $active . '">' . esc_html( $tab_name ) . '</a>';
129
- }
130
- ?>
131
- </h2>
132
- <?php
133
- $number_of_sections = count( $sections );
134
- $number = 0;
135
-
136
- if ( $number_of_sections > 1 ) {
137
- echo '<div><ul class="subsubsub">';
138
-
139
- foreach ( $sections as $section_id => $section_name ) {
140
- echo '<li>';
141
-
142
- $number ++;
143
- $tab_url = add_query_arg( array(
144
- 'settings-updated' => false,
145
- 'tab' => $active_tab,
146
- 'section' => $section_id
147
- ) );
148
- $class = '';
149
-
150
- if ( $section === $section_id ) {
151
- $class = 'current';
152
- }
153
-
154
- echo '<a class="' . $class . '" href="' . esc_url( $tab_url ) . '">' . $section_name . '</a>';
155
-
156
- if ( $number != $number_of_sections ) {
157
- echo ' | ';
158
- }
159
-
160
- echo '</li>';
161
- }
162
-
163
- echo '</ul></div>';
164
- }
165
- ?>
166
- <div id="tab_container">
167
- <form method="post" action="options.php">
168
- <table class="form-table">
169
- <?php
170
- settings_fields( $this->func . '_settings' );
171
-
172
- do_action( $this->func . '_settings_tab_top_' . $active_tab . '_' . $section );
173
- do_settings_sections( $this->func . '_settings_' . $active_tab . '_' . $section );
174
- do_action( $this->func . '_settings_tab_bottom_' . $active_tab . '_' . $section );
175
- ?>
176
- </table>
177
- <?php
178
- if ( ! in_array( $active_tab, apply_filters( $this->func . '_unsavable_tabs', array() ) ) ) {
179
- submit_button();
180
- }
181
- ?>
182
- </form>
183
- </div>
184
- </div>
185
- <?php
186
- echo ob_get_clean();
187
- }
188
-
189
-
190
- /**
191
- * Retrieve the settings tabs
192
- *
193
- * @access private
194
- * @since 1.0.0
195
- * @return array $tabs The registered tabs for this plugin
196
- */
197
- private function get_settings_tabs() {
198
- return apply_filters( $this->func . '_settings_tabs', array() );
199
- }
200
-
201
- /**
202
- * Retrieve an option
203
- *
204
- * @access public
205
- * @since 1.0.0
206
- *
207
- * @param string $key The key to retrieve
208
- * @param mixed $default The default value if key doesn't exist
209
- *
210
- * @return mixed $value The value to return
211
- */
212
- public function get_option( $key = '', $default = false ) {
213
- $option = $this->get_global_options();
214
-
215
- $value = ! empty( $option[ $key ] ) ? $option[ $key ] : $default;
216
- $value = apply_filters( $this->func . '_get_option', $value, $key, $default );
217
-
218
- return apply_filters( $this->func . '_get_option_' . $key, $value, $key, $default );
219
- }
220
-
221
- /**
222
- * Get shared options
223
- *
224
- * @global array ${$this->func . '_options'} The plugin options
225
- * @return mixed
226
- */
227
- private function get_global_options() {
228
- global ${$this->func . '_options'};
229
-
230
- return ${$this->func . '_options'};
231
- }
232
-
233
- /**
234
- * Update an option
235
- *
236
- * @access public
237
- * @since 1.0.0
238
- *
239
- * @param string $key The key to update
240
- * @param mixed $value The value to set key to
241
- *
242
- * @return bool true if updated, false otherwise
243
- */
244
- public function update_option( $key = '', $value = false ) {
245
- // Bail if no key is set
246
- if ( empty( $key ) ) {
247
- return false;
248
- }
249
-
250
- if ( empty( $value ) ) {
251
- $remove_option = $this->delete_option( $key );
252
-
253
- return $remove_option;
254
- }
255
-
256
- // Fetch a clean copy of the options array
257
- $options = get_option( $this->func . '_settings' );
258
-
259
- // Allow devs to modify the value
260
- $value = apply_filters( $this->func . '_update_option', $value, $key );
261
-
262
- // Try to update the option
263
- $options[ $key ] = $value;
264
- $did_update = update_option( $this->func . '_settings', $options );
265
-
266
- // Update the global
267
- if ( $did_update ) {
268
- $global_option = $this->get_global_options();
269
- $global_option[ $key ] = $value;
270
- $this->set_global_options( $global_option );
271
- }
272
-
273
- return $did_update;
274
- }
275
-
276
-
277
- /**
278
- * Delete an option
279
- *
280
- * @access public
281
- * @since 1.0.0
282
- *
283
- * @param string $key The key to delete
284
- *
285
- * @return bool true if deleted, false otherwise
286
- */
287
- public function delete_option( $key = '' ) {
288
- // Bail if no key is set
289
- if ( empty( $key ) ) {
290
- return false;
291
- }
292
-
293
- // Fetch a clean copy of the options array
294
- $options = get_option( $this->func . '_settings' );
295
-
296
- // Try to unset the option
297
- if ( isset( $options[ $key ] ) ) {
298
- unset( $options[ $key ] );
299
- }
300
-
301
- $did_update = update_option( $this->func . '_settings', $options );
302
-
303
- // Update the global
304
- if ( $did_update ) {
305
- $this->set_global_options( $options );
306
- }
307
-
308
- return $did_update;
309
- }
310
-
311
- /**
312
- * @param array $option
313
- *
314
- * @global array ${$this->func . '_options'} The plugin options
315
- */
316
- private function set_global_options( $option ) {
317
- global ${$this->func . '_options'};
318
- ${$this->func . '_options'} = $option;
319
- }
320
-
321
- /**
322
- * Retrieve all options
323
- *
324
- * @access public
325
- * @since 1.0.0
326
- * @return array $settings The options array
327
- */
328
- public function get_settings() {
329
- $settings = get_option( $this->func . '_settings' );
330
-
331
- if ( empty( $settings ) ) {
332
- $settings = array();
333
-
334
- update_option( $this->func . '_settings', $settings );
335
- }
336
-
337
- return apply_filters( $this->func . '_get_settings', $settings );
338
- }
339
-
340
- /**
341
- * Add settings sections and fields
342
- *
343
- * @access public
344
- * @since 1.0.0
345
- * @return void
346
- */
347
- function register_settings() {
348
- if ( get_option( $this->func . '_settings' ) === false ) {
349
- add_option( $this->func . '_settings' );
350
- }
351
-
352
- foreach ( $this->get_registered_settings() as $tab => $sections ) {
353
- foreach ( $sections as $section => $settings ) {
354
- // Check for backwards compatibility
355
- $section_tabs = $this->get_settings_tab_sections( $tab );
356
-
357
- if ( ! is_array( $section_tabs ) || ! array_key_exists( $section, $section_tabs ) ) {
358
- $section = 'main';
359
- $settings = $sections;
360
- }
361
-
362
- add_settings_section(
363
- $this->func . '_settings_' . $tab . '_' . $section,
364
- __return_null(),
365
- '__return_false',
366
- $this->func . '_settings_' . $tab . '_' . $section
367
- );
368
-
369
- foreach ( $settings as $option ) {
370
- // For backwards compatibility
371
- if ( empty( $option['id'] ) ) {
372
- continue;
373
- }
374
-
375
- $name = isset( $option['name'] ) ? $option['name'] : '';
376
-
377
- add_settings_field(
378
- $this->func . '_settings[' . $option['id'] . ']',
379
- $name,
380
- function_exists( $this->func . '_' . $option['type'] . '_callback' ) ? $this->func . '_' . $option['type'] . '_callback' : ( method_exists( $this,
381
- $option['type'] . '_callback' ) ? array(
382
- $this,
383
- $option['type'] . '_callback'
384
- ) : array( $this, 'missing_callback' ) ),
385
- $this->func . '_settings_' . $tab . '_' . $section,
386
- $this->func . '_settings_' . $tab . '_' . $section,
387
- $this->prepare_setting_args( $section, $option )
388
- );
389
- }
390
- }
391
- }
392
-
393
- register_setting( $this->func . '_settings', $this->func . '_settings', array( $this, 'settings_sanitize' ) );
394
- }
395
-
396
- /**
397
- * Retrieve the plugin settings
398
- *
399
- * @access public
400
- * @since 1.0.0
401
- * @return array $settings The plugin settings
402
- */
403
- public function get_registered_settings() {
404
- return apply_filters( $this->func . '_registered_settings', array() );
405
- }
406
-
407
- /**
408
- * Parses html parameters from $option
409
- *
410
- * @param string $section
411
- * @param array $option
412
- *
413
- * @return array
414
- */
415
- private function prepare_setting_args( $section, array $option ) {
416
- $args = array(
417
- 'section' => $section,
418
- 'id' => isset( $option['id'] ) ? $option['id'] : null,
419
- 'desc' => ! empty( $option['desc'] ) ? $option['desc'] : '',
420
- 'name' => isset( $option['name'] ) ? $option['name'] : null,
421
- 'size' => isset( $option['size'] ) ? $option['size'] : null,
422
- 'options' => isset( $option['options'] ) ? $option['options'] : '',
423
- 'std' => isset( $option['std'] ) ? $option['std'] : '',
424
- 'min' => isset( $option['min'] ) ? $option['min'] : null,
425
- 'max' => isset( $option['max'] ) ? $option['max'] : null,
426
- 'step' => isset( $option['step'] ) ? $option['step'] : null,
427
- 'select2' => isset( $option['select2'] ) ? $option['select2'] : null,
428
- 'placeholder' => isset( $option['placeholder'] ) ? $option['placeholder'] : null,
429
- 'multiple' => isset( $option['multiple'] ) ? $option['multiple'] : null,
430
- 'allow_blank' => isset( $option['allow_blank'] ) ? $option['allow_blank'] : true,
431
- 'readonly' => isset( $option['readonly'] ) ? $option['readonly'] : false,
432
- 'buttons' => isset( $option['buttons'] ) ? $option['buttons'] : null,
433
- 'wpautop' => isset( $option['wpautop'] ) ? $option['wpautop'] : null,
434
- 'teeny' => isset( $option['teeny'] ) ? $option['teeny'] : null,
435
- 'tab' => isset( $option['tab'] ) ? $option['tab'] : null,
436
- 'tooltip_title' => isset( $option['tooltip_title'] ) ? $option['tooltip_title'] : false,
437
- 'tooltip_desc' => isset( $option['tooltip_desc'] ) ? $option['tooltip_desc'] : false,
438
-
439
- 'available_header' => isset( $option['available_header'] ) ? $option['available_header'] : null,
440
- 'selected_header' => isset( $option['selected_header'] ) ? $option['selected_header'] : null,
441
- );
442
-
443
- if ( isset( $option[ self::CUSTOM_ATTRIBUTES_KEY ] ) ) {
444
- $args[ self::CUSTOM_ATTRIBUTES_KEY ] = $option[ self::CUSTOM_ATTRIBUTES_KEY ];
445
- }
446
-
447
- if ( isset( $option[ self::CLASS_KEY ] ) ) {
448
- $args[ self::CLASS_KEY ] = $this->prepare_class_arg( $option[ self::CLASS_KEY ], $args['id'] );
449
- }
450
-
451
- return $args;
452
- }
453
-
454
- /**
455
- * Prepare class arg.
456
- *
457
- * @param string|array $class_option Class option.
458
- * @param null|string $id id.
459
- *
460
- * @return string
461
- */
462
- private function prepare_class_arg( $class_option, $id ) {
463
- $class_arg = '';
464
- if ( $id != null ) {
465
- $class_arg .= $id . ' ';
466
- }
467
- if ( is_array( $class_option ) ) {
468
- $class_arg .= implode( ' ', $class_option );
469
- } else {
470
- $class_arg .= $class_option;
471
- }
472
-
473
- return trim( $class_arg );
474
- }
475
-
476
- /**
477
- * Checkbox callback
478
- *
479
- * @access public
480
- * @since 1.0.0
481
- *
482
- * @param array $args Arguments passed by the setting
483
- *
484
- * @return void
485
- */
486
- public function checkbox_callback( $args ) {
487
- $options = $this->get_global_options();
488
- $custom_attributes_html = $this->get_custom_attribute_html( $args );
489
- $class_html = $this->get_class_html( $args );
490
-
491
- $name = ' name="' . $this->func . '_settings[' . $args['id'] . ']"';
492
- $checked = isset( $options[ $args['id'] ] ) ? checked( 1, $options[ $args['id'] ], false ) : '';
493
-
494
- $html = '<input type="hidden"' . $name . ' value="-1" />';
495
- $html .= '<input ' . $custom_attributes_html . $class_html . ' type="checkbox" id="' . $this->func . '_settings[' . $args['id'] . ']"' . $name . ' value="1" ' . $checked . '/>&nbsp;';
496
- $html = $this->append_description_html( $html, $args );
497
- echo $this->apply_after_setting_output( $html, $args );
498
- }
499
-
500
- /**
501
- * Get custom attributes.
502
- *
503
- * @param array $args Field data.
504
- *
505
- * @return string
506
- *
507
- * @see https://github.com/woocommerce/woocommerce/blob/master/includes/abstracts/abstract-wc-settings-api.php
508
- */
509
- private function get_custom_attribute_html( $args ) {
510
- $custom_attributes = array();
511
- if ( ! empty( $args[ self::CUSTOM_ATTRIBUTES_KEY ] ) && is_array( $args[ self::CUSTOM_ATTRIBUTES_KEY ] ) ) {
512
- foreach ( $args[ self::CUSTOM_ATTRIBUTES_KEY ] as $attribute => $attribute_value ) {
513
-
514
- $custom_attributes[] = esc_attr( $attribute ) . '="' . esc_attr( $attribute_value ) . '"';
515
- }
516
- }
517
-
518
- return implode( ' ', $custom_attributes );
519
- }
520
-
521
-
522
- /**
523
- * Get class attribute.
524
- *
525
- * @param array $args Field data.
526
- * @param string $additional_class Additional class.
527
- *
528
- * @return string
529
- */
530
- private function get_class_html( $args, $additional_class = '' ) {
531
- $class_attribute_value = '';
532
- if ( ! empty( $args[ self::CLASS_KEY ] ) ) {
533
- $class_attribute_value = $args[ self::CLASS_KEY ];
534
- }
535
- if ( $additional_class !== '' ) {
536
- $class_attribute_value .= ' ' . $additional_class;
537
- }
538
- if ( $class_attribute_value !== '' ) {
539
- return ' class="' . trim( $class_attribute_value ) . '" ';
540
- } else {
541
- return '';
542
- }
543
- }
544
-
545
- /**
546
- * @param string $html
547
- * @param array $args
548
- *
549
- * @return string
550
- */
551
- private function append_description_html( $html, $args ) {
552
- return $html . '<span class="description"><label for="' . $this->func . '_settings[' . $args['id'] . ']">' . $args['desc'] . '</label></span>';
553
- }
554
-
555
- /**
556
- * @param string $html
557
- * @param array $args
558
- *
559
- * @return string
560
- */
561
- private function apply_after_setting_output( $html, $args ) {
562
- return apply_filters( $this->func . '_after_setting_output', $html, $args );
563
- }
564
-
565
- /**
566
- * Color callback
567
- *
568
- * @access public
569
- * @since 1.0.0
570
- *
571
- * @param array $args Arguments passed by the settings
572
- *
573
- * @return void
574
- */
575
- public function color_callback( $args ) {
576
- $custom_attributes_html = $this->get_custom_attribute_html( $args );
577
- $class_html = $this->get_class_html( $args );
578
- $value = $this->get_std_input_value( $args );
579
-
580
- $default = isset( $args['std'] ) ? $args['std'] : '';
581
-
582
- $html = '<input ' . $custom_attributes_html . $class_html . ' type="text" class="s214-color-picker" id="' . $this->func . '_settings[' . $args['id'] . ']" name="' . $this->func . '_settings[' . $args['id'] . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $default ) . '" />&nbsp;';
583
- $html .= '<span class="s214-color-picker-label description"><label for="' . $this->func . '_settings[' . $args['id'] . ']">' . $args['desc'] . '</label></span>';
584
-
585
- echo $this->apply_after_setting_output( $html, $args );
586
- }
587
-
588
- /**
589
- * @param array $args
590
- *
591
- * @return string
592
- */
593
- private function get_std_input_value( $args ) {
594
- $options = $this->get_global_options();
595
- if ( isset( $options[ $args['id'] ] ) ) {
596
- return $options[ $args['id'] ];
597
- } else {
598
- return isset( $args['std'] ) ? $args['std'] : '';
599
- }
600
- }
601
-
602
- /**
603
- * Descriptive text callback
604
- *
605
- * @access public
606
- * @since 1.0.0
607
- *
608
- * @param array $args Arguments passed by the setting
609
- *
610
- * @return void
611
- */
612
- public function descriptive_text_callback( $args ) {
613
- $html = wp_kses_post( $args['desc'] );
614
-
615
- echo $this->apply_after_setting_output( $html, $args );
616
- }
617
-
618
- /**
619
- * HTML callback
620
- *
621
- * @since 1.0.0
622
- *
623
- * @param array $args Arguments passed by the setting
624
- *
625
- * @return void
626
- */
627
- public function html_callback( $args ) {
628
- $custom_attributes_html = $this->get_custom_attribute_html( $args );
629
- $class_html = $this->get_class_html( $args, 'large-text s214-html' );
630
- $value = $this->get_std_input_value( $args );
631
-
632
- $html = '<textarea ' . $custom_attributes_html . $class_html . ' cols="50" rows="5" id="' . $this->func . '_settings[' . $args['id'] . ']" name="' . $this->func . '_settings[' . $args['id'] . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>&nbsp;';
633
- $html = $this->append_description_html( $html, $args );
634
- echo $this->apply_after_setting_output( $html, $args );
635
- }
636
-
637
- /**
638
- * Multicheck callback
639
- *
640
- * @access public
641
- * @since 1.0.0
642
- *
643
- * @param array $args Arguments passed by the setting
644
- *
645
- * @return void
646
- */
647
- public function multicheck_callback( $args ) {
648
- $options = $this->get_global_options();
649
-
650
- $custom_attributes_html = $this->get_custom_attribute_html( $args );
651
- $class_html = $this->get_class_html( $args );
652
-
653
- if ( ! empty( $args['options'] ) ) {
654
- $html = '';
655
-
656
- foreach ( $args['options'] as $key => $option ) {
657
- if ( isset( $options[ $args['id'] ][ $key ] ) ) {
658
- $enabled = $option;
659
- } else {
660
- $enabled = isset( $args['std'][ $key ] ) ? $args['std'][ $key ] : null;
661
- }
662
-
663
- $html .= '<input ' . $custom_attributes_html . $class_html . ' name="' . $this->func . '_settings[' . $args['id'] . '][' . $key . ']" id="' . $this->func . '_settings[' . $args['id'] . '][' . $key . ']" type="checkbox" value="' . $option . '" ' . checked( $option,
664
- $enabled, false ) . ' />&nbsp;';
665
- $html .= '<label for="' . $this->func . '_settings[' . $args['id'] . '][' . $key . ']">' . $option . '</label><br />';
666
- }
667
- $html .= '<p class="description">' . $args['desc'] . '</p>';
668
-
669
- echo $this->apply_after_setting_output( $html, $args );
670
- }
671
- }
672
-
673
- /**
674
- * Number callback
675
- *
676
- * @access public
677
- * @since 1.0.0
678
- *
679
- * @param array $args Arguments passed by the setting
680
- *
681
- * @return void
682
- */
683
- public function number_callback( $args ) {
684
- $custom_attributes_html = $this->get_custom_attribute_html( $args );
685
- $class_html = $this->get_class_html( $args );
686
- $value = $this->get_std_input_value( $args );
687
-
688
- $name = ' name="' . $this->func . '_settings[' . $args['id'] . ']"';
689
- $max = isset( $args['max'] ) ? $args['max'] : 999999;
690
- $min = isset( $args['min'] ) ? $args['min'] : 0;
691
- $step = isset( $args['step'] ) ? $args['step'] : 1;
692
- $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
693
- $readonly = $args['readonly'] === true ? ' readonly="readonly"' : '';
694
-
695
- $html = '<input ' . $custom_attributes_html . $class_html . ' type="number" step="' . esc_attr( $step ) . '" max="' . esc_attr( $max ) . '" min="' . esc_attr( $min ) . '" class="' . $size . '-text" id="' . $this->func . '_settings[' . $args['id'] . ']"' . $name . ' value="' . esc_attr( stripslashes( $value ) ) . '"' . $readonly . '/>&nbsp;';
696
- $html = $this->append_description_html( $html, $args );
697
- echo $this->apply_after_setting_output( $html, $args );
698
- }
699
-
700
- /**
701
- * Password callback
702
- *
703
- * @access public
704
- * @since 1.0.0
705
- *
706
- * @param array $args Arguments passed by the settings
707
- *
708
- * @return void
709
- */
710
- public function password_callback( $args ) {
711
- $custom_attributes_html = $this->get_custom_attribute_html( $args );
712
- $size = $this->get_size_attr( $args );
713
- $class_html = $this->get_class_html( $args, $size . '-text' );
714
- $value = $this->get_std_input_value( $args );
715
-
716
- $html = '<input ' . $custom_attributes_html . $class_html . ' type="password" id="' . $this->func . '_settings[' . $args['id'] . ']" name="' . $this->func . '_settings[' . $args['id'] . ']" value="' . esc_attr( $value ) . '" />&nbsp;';
717
- $html = $this->append_description_html( $html, $args );
718
- echo $this->apply_after_setting_output( $html, $args );
719
- }
720
-
721
- /**
722
- * @param array $args
723
- *
724
- * @return string
725
- */
726
- private function get_size_attr( $args ) {
727
- return ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
728
- }
729
-
730
- /**
731
- * Radio callback
732
- *
733
- * @access public
734
- * @since 1.0.0
735
- *
736
- * @param array $args Arguments passed by the setting
737
- *
738
- * @return void
739
- */
740
- public function radio_callback( $args ) {
741
- $options = $this->get_global_options();
742
-
743
- $custom_attributes_html = $this->get_custom_attribute_html( $args );
744
- $class_html = $this->get_class_html( $args );
745
-
746
- if ( ! empty( $args['options'] ) ) {
747
- $html = '';
748
-
749
- foreach ( $args['options'] as $key => $option ) {
750
- $checked = false;
751
-
752
- if ( isset( $options[ $args['id'] ] ) && $options[ $args['id'] ] === $key ) {
753
- $checked = true;
754
- } elseif ( isset( $args['std'] ) && $args['std'] === $key && ! isset( $options[ $args['id'] ] ) ) {
755
- $checked = true;
756
- }
757
-
758
- $html .= '<input ' . $custom_attributes_html . $class_html . ' name="' . $this->func . '_settings[' . $args['id'] . ']" id="' . $this->func . '_settings[' . $args['id'] . '][' . $key . ']" type="radio" value="' . $key . '" ' . checked( true,
759
- $checked, false ) . '/>&nbsp;';
760
- $html .= '<label for="' . $this->func . '_settings[' . $args['id'] . '][' . $key . ']">' . $option . '</label><br />';
761
- }
762
-
763
- $html .= '<p class="description">' . $args['desc'] . '</p>';
764
-
765
- echo $this->apply_after_setting_output( $html, $args );
766
- }
767
- }
768
-
769
-
770
- /**
771
- * Select callback
772
- *
773
- * @access public
774
- * @since 1.0.0
775
- *
776
- * @param array $args Arguments passed by the setting
777
- *
778
- * @return void
779
- */
780
- public function select_callback( $args ) {
781
- $custom_attributes_html = $this->get_custom_attribute_html( $args );
782
- $class_html = $this->get_class_html( $args );
783
- $value = $this->get_std_input_value( $args );
784
-
785
- $placeholder = isset( $args['placeholder'] ) ? $args['placeholder'] : '';
786
- $select2 = isset( $args['select2'] ) ? ' class="s214-select2"' : '';
787
- $width = isset( $args['size'] ) ? ' style="width: ' . $args['size'] . '"' : '';
788
-
789
- if ( isset( $args['multiple'] ) && $args['multiple'] === true ) {
790
- $html = '<input type="hidden" name="' . $this->func . '_settings[' . $args['id'] . '][]" value="" />';
791
- $html .= '<select ' . $custom_attributes_html . $class_html . ' id="' . $this->func . '_settings[' . $args['id'] . ']" name="' . $this->func . '_settings[' . $args['id'] . '][]"' . $select2 . ' data-placeholder="' . $placeholder . '" multiple="multiple"' . $width . ' />';
792
- } else {
793
- $html = '<select ' . $custom_attributes_html . $class_html . ' id="' . $this->func . '_settings[' . $args['id'] . ']" name="' . $this->func . '_settings[' . $args['id'] . ']"' . $select2 . ' data-placeholder="' . $placeholder . '"' . $width . ' />';
794
- }
795
-
796
- foreach ( $args['options'] as $option => $name ) {
797
- if ( isset( $args['multiple'] ) && $args['multiple'] === true ) {
798
- if ( is_array( $value ) ) {
799
- $selected = ( in_array( $option, $value ) ? 'selected="selected"' : '' );
800
- } else {
801
- $selected = '';
802
- }
803
- } else {
804
- if ( is_string( $value ) ) {
805
- $selected = selected( $option, $value, false );
806
- } else {
807
- $selected = '';
808
- }
809
- }
810
-
811
- $html .= '<option value="' . $option . '" ' . $selected . '>' . $name . '</option>';
812
- }
813
-
814
- $html .= '</select>&nbsp;';
815
- $html = $this->append_description_html( $html, $args );
816
- echo $this->apply_after_setting_output( $html, $args );
817
- }
818
-
819
-
820
- /**
821
- * Sysinfo callback
822
- *
823
- * @since 1.1.0
824
- *
825
- * @param array $args Arguements passed by the settings
826
- *
827
- * @return void
828
- */
829
- public function sysinfo_callback( $args ) {
830
- $options = $this->get_global_options();
831
-
832
- $custom_attributes_html = $this->get_custom_attribute_html( $args );
833
- $class_html = $this->get_class_html( $args );
834
-
835
- if ( ! isset( $options[ $args['tab'] ] ) || ( isset( $options[ $args['tab'] ] ) && isset( $_GET['tab'] ) && $_GET['tab'] === $options[ $args['tab'] ] ) ) {
836
- $html = '<textarea ' . $custom_attributes_html . $class_html . ' readonly="readonly" onclick="this.focus(); this.select()" id="system-info-textarea" name="' . $this->func . '-system-info" title="' . __( 'To copy the system info, click below then press Ctrl + C (PC) or Cmd + C (Mac).',
837
- 's214-settings' ) . '">' . $this->sysinfo->get_system_info() . '</textarea>';
838
- $html .= '<p class="submit">';
839
- $html .= '<input type="hidden" name="' . $this->slug . '-settings-action" value="download_system_info" />';
840
- $html .= '<a class="button button-primary" href="' . add_query_arg( $this->slug . '-settings-action',
841
- 'download_system_info' ) . '">' . __( 'Download System Info File', 's214-settings' ) . '</a>';
842
- $html .= '</p>';
843
-
844
- echo $this->apply_after_setting_output( $html, $args );
845
- }
846
- }
847
-
848
-
849
- /**
850
- * Text callback
851
- *
852
- * @since 1.0.0
853
- *
854
- * @param array $args Arguments passed by the setting
855
- *
856
- * @return void
857
- */
858
- public function text_callback( $args ) {
859
- $custom_attributes_html = $this->get_custom_attribute_html( $args );
860
- $value = $this->get_std_input_value( $args );
861
-
862
- $name = ' name="' . $this->func . '_settings[' . $args['id'] . ']"';
863
- $readonly = $args['readonly'] === true ? ' readonly="readonly"' : '';
864
- $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
865
- $class_html = $this->get_class_html( $args, $size . '-text' );
866
-
867
- $html = '<input ' . $custom_attributes_html . $class_html . ' type="text" id="' . $this->func . '_settings[' . $args['id'] . ']"' . $name . ' value="' . esc_attr( stripslashes( $value ) ) . '"' . $readonly . '/>&nbsp;';
868
- $html = $this->append_description_html( $html, $args );
869
- echo $this->apply_after_setting_output( $html, $args );
870
- }
871
-
872
-
873
- /**
874
- * Textarea callback
875
- *
876
- * @since 1.0.0
877
- *
878
- * @param array $args Arguments passed by the setting
879
- *
880
- * @return void
881
- */
882
- public function textarea_callback( $args ) {
883
- $custom_attributes_html = $this->get_custom_attribute_html( $args );
884
- $class_html = $this->get_class_html( $args, 'large-text' );
885
- $value = $this->get_std_input_value( $args );
886
-
887
- $html = '<textarea ' . $custom_attributes_html . $class_html . ' cols="50" rows="5" id="' . $this->func . '_settings[' . $args['id'] . ']" name="' . $this->func . '_settings[' . $args['id'] . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>&nbsp;';
888
- $html = $this->append_description_html( $html, $args );
889
- echo $this->apply_after_setting_output( $html, $args );
890
- }
891
-
892
-
893
- /**
894
- * Upload callback
895
- *
896
- * @since 1.0.0
897
- *
898
- * @param array $args Arguments passed by the setting
899
- *
900
- * @return void
901
- */
902
- public function upload_callback( $args ) {
903
- $custom_attributes_html = $this->get_custom_attribute_html( $args );
904
- $value = $this->get_std_input_value( $args );
905
- $size = $this->get_size_attr( $args );
906
- $class_html = $this->get_class_html( $args, $size . '-text' );
907
-
908
- $html = '<input ' . $custom_attributes_html . $class_html . ' type="text" id="' . $this->func . '_settings[' . $args['id'] . ']" name="' . $this->func . '_settings[' . $args['id'] . ']" value="' . esc_attr( stripslashes( $value ) ) . '" />&nbsp;';
909
- $html .= '<span><input type="button" class="' . $this->func . '_settings_upload_button button-secondary" value="' . __( 'Upload File',
910
- 's214-settings' ) . '" /></span>&nbsp;';
911
- $html = $this->append_description_html( $html, $args );
912
- echo $this->apply_after_setting_output( $html, $args );
913
- }
914
-
915
-
916
- /**
917
- * License field callback
918
- *
919
- * @access public
920
- * @since 1.0.0
921
- *
922
- * @param array $args Arguments passed by the setting
923
- *
924
- * @return void
925
- */
926
- public function license_key_callback( $args ) {
927
- $custom_attributes_html = $this->get_custom_attribute_html( $args );
928
- $value = $this->get_std_input_value( $args );
929
- $size = $this->get_size_attr( $args );
930
- $class_html = $this->get_class_html( $args, $size . '-text' );
931
-
932
- $html = '<input ' . $custom_attributes_html . $class_html . ' type="text" id="' . $this->func . '_settings[' . $args['id'] . ']" name="' . $this->func . '_settings[' . $args['id'] . ']" value="' . esc_attr( $value ) . '" />&nbsp;';
933
-
934
- if ( get_option( $args['options']['is_valid_license_option'] ) ) {
935
- $html .= '<input type="submit" class="button-secondary" name="' . $args['id'] . '_deactivate" value="' . __( 'Deactivate License',
936
- 's214-settings' ) . '"/>';
937
- }
938
- $html .= '<span class="description"><label for="' . $this->func . '_settings[' . $args['id'] . ']"> ' . $args['desc'] . '</label></span>';
939
-
940
- wp_nonce_field( $args['id'] . '-nonce', $args['id'] . '-nonce' );
941
-
942
- echo $this->apply_after_setting_output( $html, $args );
943
- }
944
-
945
-
946
- /**
947
- * Check if we should load admin scripts
948
- *
949
- * @access public
950
- * @since 1.0.0
951
- *
952
- * @param string $hook The hook for the current page
953
- *
954
- * @return bool true if we should load scripts, false otherwise
955
- */
956
- public function load_scripts( $hook ) {
957
- global ${$this->func . '_settings_page'};
958
-
959
- $ret = false;
960
- $pages = apply_filters( $this->func . '_admin_pages', array( ${$this->func . '_settings_page'} ) );
961
-
962
- if ( in_array( $hook, $pages ) ) {
963
- $ret = true;
964
- }
965
-
966
- return (bool) apply_filters( $this->func . 'load_scripts', $ret );
967
- }
968
-
969
- /**
970
- * Add tooltips
971
- *
972
- * @access public
973
- * @since 1.2.0
974
- *
975
- * @param string $html The current field HTML
976
- * @param array $args Arguments passed to the field
977
- *
978
- * @return string $html The updated field HTML
979
- */
980
- function add_setting_tooltip( $html, $args ) {
981
- if ( ! empty( $args['tooltip_title'] ) && ! empty( $args['tooltip_desc'] ) ) {
982
- $tooltip = '<span alt="f223" class="s214-help-tip dashicons dashicons-editor-help" title="<strong>' . $args['tooltip_title'] . '</strong>: ' . $args['tooltip_desc'] . '"></span>';
983
- $html .= $tooltip;
984
- }
985
-
986
- return $html;
987
- }
988
-
989
- private $url_path;
990
-
991
-
992
- public function enqueue_scripts( $hook ) {
993
- if ( ! apply_filters( $this->func . '_load_admin_scripts', $this->load_scripts( $hook ), $hook ) ) {
994
- return;
995
- }
996
-
997
- global $wp_scripts;
998
-
999
- // Use minified libraries if SCRIPT_DEBUG is turned off
1000
- $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
1001
- //$url_path = str_replace( WP_CONTENT_DIR, WP_CONTENT_URL, dirname( __FILE__ ) );
1002
- //$url_path = $this->plugin->get_plugin_url() . 'classes/wpdesk';
1003
- $url_path = $this->url_path . '/vendor/wpdesk/wp-settings/source';
1004
- $select2_cdn = 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/';
1005
- $cm_cdn = 'https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.14.2/';
1006
- $jquery_version = isset( $wp_scripts->registered['jquery-ui-core']->ver ) ? $wp_scripts->registered['jquery-ui-core']->ver : '1.11.4';
1007
-
1008
- wp_enqueue_style( 'wp-color-picker' );
1009
- wp_enqueue_script( 'wp-color-picker' );
1010
- wp_enqueue_script( 'jquery-ui-tooltip' );
1011
- wp_enqueue_media();
1012
- wp_enqueue_style( 'jquery-ui-style', '//code.jquery.com/ui/' . $jquery_version . '/themes/smoothness/jquery-ui' . $suffix . '.css', array(), $jquery_version );
1013
-
1014
- wp_enqueue_script( 'media-upload' );
1015
- wp_enqueue_style( 'thickbox' );
1016
- wp_enqueue_script( 'thickbox' );
1017
- wp_enqueue_style( 's14-select2', $select2_cdn . 'css/select2' . $suffix . '.css', array(), '4.0.5' );
1018
- wp_enqueue_script( 's14-select2', $select2_cdn . 'js/select2' . $suffix . '.js', array( 'jquery' ), '4.0.5' );
1019
-
1020
- wp_enqueue_style( $this->slug . '-cm', $cm_cdn . 'codemirror.css', array(), '5.10' );
1021
- wp_enqueue_script( $this->slug . '-cm', $cm_cdn . 'codemirror.js', array( 'jquery' ), '5.14.2' );
1022
- wp_enqueue_script( $this->slug . '-cm-html', $cm_cdn . 'mode/htmlmixed/htmlmixed.js', array(
1023
- 'jquery',
1024
- $this->slug . '-cm'
1025
- ), '5.14.2' );
1026
- wp_enqueue_script( $this->slug . '-cm-xml', $cm_cdn . 'mode/xml/xml.js', array(
1027
- 'jquery',
1028
- $this->slug . '-cm'
1029
- ), '5.14.2' );
1030
- wp_enqueue_script( $this->slug . '-cm-js', $cm_cdn . 'mode/javascript/javascript.js', array(
1031
- 'jquery',
1032
- $this->slug . '-cm'
1033
- ), '5.14.2' );
1034
- wp_enqueue_script( $this->slug . '-cm-css', $cm_cdn . 'mode/css/css.js', array(
1035
- 'jquery',
1036
- $this->slug . '-cm'
1037
- ), '5.14.2' );
1038
- wp_enqueue_script( $this->slug . '-cm-php', $cm_cdn . 'mode/php/php.js', array(
1039
- 'jquery',
1040
- $this->slug . '-cm'
1041
- ), '5.14.2' );
1042
- wp_enqueue_script( $this->slug . '-cm-clike', $cm_cdn . 'mode/clike/clike.js', array(
1043
- 'jquery',
1044
- $this->slug . '-cm'
1045
- ), '5.14.2' );
1046
-
1047
- wp_enqueue_style( $this->slug, $url_path . '/assets/css/admin' . $suffix . '.css', array(), $this->version );
1048
- wp_enqueue_style( $this->slug . '-settings', $url_path . '/assets/css/admin-settings' . $suffix . '.css', array(), $this->version );
1049
- wp_enqueue_script( $this->slug . '-js', $url_path . '/assets/js/admin-settings' . $suffix . '.js', array( 'jquery' ), $this->version );
1050
- wp_localize_script( $this->slug . '-js', 's214_settings_vars', apply_filters( $this->func . 'localize_script', array(
1051
- 'func' => $this->func,
1052
- 'image_media_button' => __( 'Insert Image', 'wpdesk-plugin' ),
1053
- 'image_media_title' => __( 'Select Image', 'wpdesk-plugin' ),
1054
- ) ) );
1055
- }
1056
-
1057
- /**
1058
- * Date callback
1059
- *
1060
- * @access public
1061
- * @since 1.0.0
1062
- *
1063
- * @param array $args Arguments passed by the setting
1064
- *
1065
- * @global array ${$this->func . '_options'} The Beacon options
1066
- * @return void
1067
- */
1068
- public function date_callback( $args ) {
1069
- global ${$this->func . '_options'};
1070
-
1071
- $custom_attributes_html = $this->get_custom_attribute_html( $args );
1072
-
1073
- if ( isset( ${$this->func . '_options'}[ $args['id'] ] ) ) {
1074
- $value = ${$this->func . '_options'}[ $args['id'] ];
1075
- } else {
1076
- $value = isset( $args['std'] ) ? $args['std'] : '';
1077
- }
1078
-
1079
- $name = ' name="' . $this->func . '_settings[' . $args['id'] . ']"';
1080
- $max = isset( $args['max'] ) ? $args['max'] : 999999;
1081
- $min = isset( $args['min'] ) ? $args['min'] : 0;
1082
- $step = isset( $args['step'] ) ? $args['step'] : 1;
1083
- $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'date';
1084
- $readonly = $args['readonly'] === true ? ' readonly="readonly"' : '';
1085
- $class_html = $this->get_class_html( $args, $size . '-text' );
1086
-
1087
- $html = '<input ' . $custom_attributes_html . $class_html . ' type="date" ' . '" id="' . $this->func . '_settings[' . $args['id'] . ']"' . $name . ' value="' . esc_attr( stripslashes( $value ) ) . '"' . $readonly . '/>&nbsp;';
1088
- $html .= '<span class="description"><label for="' . $this->func . '_settings[' . $args['id'] . ']">' . $args['desc'] . '</label></span>';
1089
-
1090
- echo apply_filters( $this->func . '_after_setting_output', $html, $args );
1091
- }
1092
-
1093
-
1094
- /**
1095
- * select 2 columns
1096
- *
1097
- * @access public
1098
- * @since 1.0.0
1099
- *
1100
- * @param array $args Arguments passed by the setting
1101
- *
1102
- * @global array ${$this->func . '_options'} The Beacon options
1103
- * @return void
1104
- */
1105
- public function select_2_columns_callback( $args ) {
1106
- global ${$this->func . '_options'};
1107
-
1108
- $custom_attributes_html = $this->get_custom_attribute_html( $args );
1109
- $class_html = $this->get_class_html( $args, 'select-2-columns' );
1110
-
1111
- if ( isset( ${$this->func . '_options'}[ $args['id'] ] ) ) {
1112
- $value = ${$this->func . '_options'}[ $args['id'] ];
1113
- } else {
1114
- $value = isset( $args['std'] ) ? $args['std'] : '';
1115
- }
1116
-
1117
- $value_array = explode( ',', $value );
1118
-
1119
- $placeholder = isset( $args['placeholder'] ) ? $args['placeholder'] : '';
1120
- $width = isset( $args['size'] ) ? ' style="width: ' . $args['size'] . '"' : '';
1121
-
1122
- $available_header = isset( $args['available_header'] ) ? $args['available_header'] : '';
1123
-
1124
- $selected_header = isset( $args['selected_header'] ) ? $args['selected_header'] : '';
1125
-
1126
- $html = '<input type="hidden" value="' . esc_attr( $value ) . '" id="' . $this->func . '_settings[' . $args['id'] . ']" name="' . $this->func . '_settings[' . $args['id'] . ']"' . ' />';
1127
-
1128
- $html_list_available = '<div class="available-column">';
1129
- $html_list_available .= '<strong>' . $available_header . '</strong>';
1130
- $html_list_available .= '<ul id="' . $this->func . '_settings[' . $args['id'] . '][available]" class="available connectedSortable">';
1131
-
1132
- $html_list_selected = '<div class="selected-column">';
1133
- $html_list_selected .= '<strong>' . $selected_header . '</strong>';
1134
- $html_list_selected .= '<ul id="' . $this->func . '_settings[' . $args['id'] . '][selected]" class="selected connectedSortable">';
1135
-
1136
- foreach ( $value_array as $value ) {
1137
- if ( isset( $args['options'][ $value ] ) ) {
1138
- $option = $value;
1139
- $name = $args['options'][ $value ];
1140
- $html_list_selected .= '<li data-value="' . esc_attr( $option ) . '">' . $name . '</li>';
1141
- }
1142
- }
1143
-
1144
- foreach ( $args['options'] as $option => $name ) {
1145
- if ( ! is_array( $value_array ) || ! in_array( $option, $value_array ) ) {
1146
- $html_list_available .= '<li data-value="' . esc_attr( $option ) . '">' . $name . '</li>';
1147
- }
1148
- }
1149
-
1150
- $html_list_available .= '</ul></div>';
1151
- $html_list_selected .= '</ul></div>';
1152
-
1153
- $html .= '<div ' . $custom_attributes_html . $class_html . '>';
1154
- $html .= $html_list_available;
1155
- $html .= $html_list_selected;
1156
-
1157
- $html .= '<div style="clear:both;">';
1158
-
1159
- $html .= '<script type="text/javascript">';
1160
- $html .= "\n";
1161
- $html .= '
1162
- jQuery( function() {
1163
- jQuery( "#' . $this->func . '_settings\\\\[' . $args['id'] . '\\\\]\\\\[available\\\\], #' . $this->func . '_settings\\\\[' . $args['id'] . '\\\\]\\\\[selected\\\\]" ).sortable({
1164
- connectWith: ".connectedSortable",
1165
- deactivate: function( event, ui ) {
1166
- jQuery("#' . $this->func . '_settings\\\\[' . $args['id'] . '\\\\]").val("");
1167
- var val = "";
1168
- jQuery("#' . $this->func . '_settings\\\\[' . $args['id'] . '\\\\]\\\\[selected\\\\] > li").each( function () {
1169
- if ( val != "" ) {
1170
- val = val + ",";
1171
- }
1172
- val = val + jQuery(this).attr("data-value");
1173
- });
1174
- jQuery("#' . $this->func . '_settings\\\\[' . $args['id'] . '\\\\]").val(val);
1175
- }
1176
- }).disableSelection();
1177
- } );
1178
- ';
1179
- $html .= "\n";
1180
- $html .= '</script>';
1181
-
1182
- $html .= '</div>';
1183
-
1184
- $html .= '<span class="description"><label for="' . $this->func . '_settings[' . $args['id'] . ']">' . $args['desc'] . '</label></span>';
1185
-
1186
- echo apply_filters( $this->func . '_after_setting_output', $html, $args );
1187
- }
1188
-
1189
- public function set_text_domain( $text_domain ) {
1190
- $this->text_domain = $text_domain;
1191
- }
1192
-
1193
- public function get_text_domain() {
1194
- return $this->text_domain;
1195
- }
1196
-
1197
- }
1198
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/source/class.wpdesk-wp-settings.php DELETED
@@ -1,48 +0,0 @@
1
- <?php
2
- /**
3
- * WP Desk Wordpress Settings class
4
- *
5
- * @package wpdesk\wp-settings
6
- * @since 1.0.0
7
- */
8
-
9
-
10
- // Exit if accessed directly
11
- if( ! defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
-
15
-
16
- /**
17
- * WP Desk Wordpress Settings class
18
- *
19
- */
20
- class WPDesk_WP_Settings {
21
-
22
- private $settings;
23
-
24
- /**
25
- * WPDesk_WP_Settings constructor.
26
- *
27
- * @param string $url_path
28
- * @param string $slug
29
- * @param string $default_tab
30
- */
31
- public function __construct( $url_path = '', $slug = 'wpdesk-settings', $default_tab = 'general' ) {
32
- $this->settings = new WPDesk_S214_Settings( $url_path, $slug, $default_tab );
33
- }
34
-
35
- /**
36
- * Get single option from settings.
37
- *
38
- * @param string $key
39
- * @param bool $default
40
- *
41
- * @return mixed
42
- */
43
- public function get_option( $key = '', $default = false ) {
44
- return $this->settings->get_option( $key, $default );
45
- }
46
-
47
- }
48
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/source/modules/licensing/S214_Plugin_Updater.php DELETED
@@ -1,382 +0,0 @@
1
- <?php
2
-
3
- // uncomment this line for testing
4
- //set_site_transient( 'update_plugins', null );
5
-
6
- // Exit if accessed directly
7
- if ( ! defined( 'ABSPATH' ) ) exit;
8
-
9
- /**
10
- * Allows plugins to use their own update API.
11
- *
12
- * @author Pippin Williamson
13
- * @version 1.6
14
- */
15
- class S214_Plugin_Updater {
16
- private $api_url = '';
17
- private $api_data = array();
18
- private $name = '';
19
- private $slug = '';
20
- private $version = '';
21
-
22
- /**
23
- * Class constructor.
24
- *
25
- * @uses plugin_basename()
26
- * @uses hook()
27
- *
28
- * @param string $_api_url The URL pointing to the custom API endpoint.
29
- * @param string $_plugin_file Path to the plugin file.
30
- * @param array $_api_data Optional data to send with API calls.
31
- */
32
- function __construct( $_api_url, $_plugin_file, $_api_data = null ) {
33
- global $s214_plugin_data;
34
-
35
- $this->api_url = trailingslashit( $_api_url );
36
- $this->api_data = $_api_data;
37
- $this->name = plugin_basename( $_plugin_file );
38
- $this->slug = basename( $_plugin_file, '.php' );
39
- $this->version = $_api_data['version'];
40
-
41
- $s214_plugin_data[$this->slug] = $this->api_data;
42
-
43
- // Set up hooks.
44
- $this->init();
45
- }
46
-
47
- /**
48
- * Set up WordPress filters to hook into WP's update process.
49
- *
50
- * @uses add_filter()
51
- *
52
- * @return void
53
- */
54
- public function init() {
55
-
56
- add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
57
- add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 );
58
-
59
- remove_action( 'after_plugin_row_' . $this->name, 'wp_plugin_update_row', 10, 2 );
60
- add_action( 'after_plugin_row_' . $this->name, array( $this, 'show_update_notification' ), 10, 2 );
61
- add_action( 'admin_init', array( $this, 'show_changelog' ) );
62
- }
63
-
64
- /**
65
- * Check for Updates at the defined API endpoint and modify the update array.
66
- *
67
- * This function dives into the update API just when WordPress creates its update array,
68
- * then adds a custom API call and injects the custom plugin data retrieved from the API.
69
- * It is reassembled from parts of the native WordPress plugin update code.
70
- * See wp-includes/update.php line 121 for the original wp_update_plugins() function.
71
- *
72
- * @uses api_request()
73
- *
74
- * @param array $_transient_data Update array build by WordPress.
75
- * @return array Modified update array with custom plugin data.
76
- */
77
- function check_update( $_transient_data ) {
78
-
79
- global $pagenow;
80
-
81
- if( ! is_object( $_transient_data ) ) {
82
- $_transient_data = new stdClass;
83
- }
84
-
85
- if( 'plugins.php' == $pagenow && is_multisite() ) {
86
- return $_transient_data;
87
- }
88
-
89
- if ( empty( $_transient_data->response ) || empty( $_transient_data->response[ $this->name ] ) ) {
90
-
91
- $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug ) );
92
-
93
- if ( false !== $version_info && is_object( $version_info ) && isset( $version_info->new_version ) ) {
94
-
95
- if( version_compare( $this->version, $version_info->new_version, '<' ) ) {
96
-
97
- if ( empty( $version_info->plugin ) ) {
98
- $version_info->plugin = $this->name;
99
- }
100
-
101
- $_transient_data->response[ $this->name ] = $version_info;
102
-
103
- }
104
-
105
- $_transient_data->last_checked = time();
106
- $_transient_data->checked[ $this->name ] = $this->version;
107
-
108
- }
109
-
110
- }
111
-
112
- return $_transient_data;
113
- }
114
-
115
- /**
116
- * show update nofication row -- needed for multisite subsites, because WP won't tell you otherwise!
117
- *
118
- * @param string $file
119
- * @param array $plugin
120
- */
121
- public function show_update_notification( $file, $plugin ) {
122
-
123
- if( ! current_user_can( 'update_plugins' ) ) {
124
- return;
125
- }
126
-
127
- if( ! is_multisite() ) {
128
- return;
129
- }
130
-
131
- if ( $this->name != $file ) {
132
- return;
133
- }
134
-
135
- // Remove our filter on the site transient
136
- remove_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ), 10 );
137
-
138
- $update_cache = get_site_transient( 'update_plugins' );
139
- $update_cache = is_object( $update_cache ) ? $update_cache : new stdClass();
140
-
141
- if ( empty( $update_cache->response ) || empty( $update_cache->response[$this->name] ) ) {
142
-
143
- $cache_key = md5( 'edd_plugin_' . sanitize_key( $this->name ) . '_version_info' );
144
- $version_info = get_transient( $cache_key );
145
-
146
- if( false === $version_info ) {
147
-
148
- $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug ) );
149
-
150
- set_transient( $cache_key, $version_info, 3600 );
151
- }
152
-
153
-
154
- if( ! is_object( $version_info ) ) {
155
- return;
156
- }
157
-
158
- if( version_compare( $this->version, $version_info->new_version, '<' ) ) {
159
-
160
- $update_cache->response[ $this->name ] = $version_info;
161
-
162
- }
163
-
164
- $update_cache->last_checked = time();
165
- $update_cache->checked[ $this->name ] = $this->version;
166
-
167
- set_site_transient( 'update_plugins', $update_cache );
168
-
169
- } else {
170
-
171
- $version_info = $update_cache->response[ $this->name ];
172
-
173
- }
174
-
175
- // Restore our filter
176
- add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
177
-
178
- if ( ! empty( $update_cache->response[ $this->name ] ) && version_compare( $this->version, $version_info->new_version, '<' ) ) {
179
-
180
- // build a plugin list row, with update notification
181
- $wp_list_table = _get_list_table( 'WP_Plugins_List_Table' );
182
- echo '<tr class="plugin-update-tr"><td colspan="' . $wp_list_table->get_column_count() . '" class="plugin-update colspanchange"><div class="update-message">';
183
-
184
- $changelog_link = self_admin_url( 'index.php?edd_sl_action=view_plugin_changelog&plugin=' . $this->name . '&slug=' . $this->slug . '&TB_iframe=true&width=772&height=911' );
185
-
186
- if ( empty( $version_info->download_link ) ) {
187
- printf(
188
- __( 'There is a new version of %1$s available. %2$sView version %3$s details%4$s.', 'easy-digital-downloads' ),
189
- esc_html( $version_info->name ),
190
- '<a target="_blank" class="thickbox" href="' . esc_url( $changelog_link ) . '">',
191
- esc_html( $version_info->new_version ),
192
- '</a>'
193
- );
194
- } else {
195
- printf(
196
- __( 'There is a new version of %1$s available. %2$sView version %3$s details%4$s or %5$supdate now%6$s.', 'easy-digital-downloads' ),
197
- esc_html( $version_info->name ),
198
- '<a target="_blank" class="thickbox" href="' . esc_url( $changelog_link ) . '">',
199
- esc_html( $version_info->new_version ),
200
- '</a>',
201
- '<a href="' . esc_url( wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin&plugin=' ) . $this->name, 'upgrade-plugin_' . $this->name ) ) . '">',
202
- '</a>'
203
- );
204
- }
205
-
206
- do_action( "in_plugin_update_message-{$file}", $plugin, $version_info );
207
-
208
- echo '</div></td></tr>';
209
- }
210
- }
211
-
212
-
213
- /**
214
- * Updates information on the "View version x.x details" page with custom data.
215
- *
216
- * @uses api_request()
217
- *
218
- * @param mixed $_data
219
- * @param string $_action
220
- * @param object $_args
221
- * @return object $_data
222
- */
223
- function plugins_api_filter( $_data, $_action = '', $_args = null ) {
224
-
225
-
226
- if ( $_action != 'plugin_information' ) {
227
-
228
- return $_data;
229
-
230
- }
231
-
232
- if ( ! isset( $_args->slug ) || ( $_args->slug != $this->slug ) ) {
233
-
234
- return $_data;
235
-
236
- }
237
-
238
- $to_send = array(
239
- 'slug' => $this->slug,
240
- 'is_ssl' => is_ssl(),
241
- 'fields' => array(
242
- 'banners' => false, // These will be supported soon hopefully
243
- 'reviews' => false
244
- )
245
- );
246
-
247
- $api_response = $this->api_request( 'plugin_information', $to_send );
248
-
249
- if ( false !== $api_response ) {
250
- $_data = $api_response;
251
- }
252
-
253
- return $_data;
254
- }
255
-
256
-
257
- /**
258
- * Disable SSL verification in order to prevent download update failures
259
- *
260
- * @param array $args
261
- * @param string $url
262
- * @return object $array
263
- */
264
- function http_request_args( $args, $url ) {
265
- // If it is an https request and we are performing a package download, disable ssl verification
266
- if ( strpos( $url, 'https://' ) !== false && strpos( $url, 'edd_action=package_download' ) ) {
267
- $args['sslverify'] = false;
268
- }
269
- return $args;
270
- }
271
-
272
- /**
273
- * Calls the API and, if successfull, returns the object delivered by the API.
274
- *
275
- * @uses get_bloginfo()
276
- * @uses wp_remote_post()
277
- * @uses is_wp_error()
278
- *
279
- * @param string $_action The requested action.
280
- * @param array $_data Parameters for the API action.
281
- * @return false|object
282
- */
283
- private function api_request( $_action, $_data ) {
284
-
285
- global $wp_version;
286
-
287
- $data = array_merge( $this->api_data, $_data );
288
-
289
- if ( $data['slug'] != $this->slug )
290
- return;
291
-
292
- if ( empty( $data['license'] ) )
293
- return;
294
-
295
- if( $this->api_url == home_url() ) {
296
- return false; // Don't allow a plugin to ping itself
297
- }
298
-
299
- $api_params = array(
300
- 'edd_action' => 'get_version',
301
- 'license' => ! empty( $data['license'] ) ? $data['license'] : '',
302
- 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false,
303
- 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false,
304
- 'slug' => $data['slug'],
305
- 'author' => $data['author'],
306
- 'url' => home_url()
307
- );
308
-
309
- $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
310
-
311
- if ( ! is_wp_error( $request ) ) {
312
- $request = json_decode( wp_remote_retrieve_body( $request ) );
313
- }
314
-
315
- if ( $request && isset( $request->sections ) ) {
316
- $request->sections = maybe_unserialize( $request->sections );
317
- } else {
318
- $request = false;
319
- }
320
-
321
- return $request;
322
- }
323
-
324
- public function show_changelog() {
325
-
326
-
327
- if( empty( $_REQUEST['edd_sl_action'] ) || 'view_plugin_changelog' != $_REQUEST['edd_sl_action'] ) {
328
- return;
329
- }
330
-
331
- if( empty( $_REQUEST['plugin'] ) ) {
332
- return;
333
- }
334
-
335
- if( empty( $_REQUEST['slug'] ) ) {
336
- return;
337
- }
338
-
339
- if( ! current_user_can( 'update_plugins' ) ) {
340
- wp_die( __( 'You do not have permission to install plugin updates', 'easy-digital-downloads' ), __( 'Error', 'easy-digital-downloads' ), array( 'response' => 403 ) );
341
- }
342
-
343
- global $s214_plugin_data;
344
-
345
- $data = $s214_plugin_data[$_REQUEST['slug']];
346
- $cache_key = md5( 'edd_plugin_' . sanitize_key( $_REQUEST['plugin'] ) . '_version_info' );
347
- $version_info = get_transient( $cache_key );
348
-
349
- if( false === $version_info ) {
350
- $api_params = array(
351
- 'edd_action' => 'get_version',
352
- 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false,
353
- 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false,
354
- 'slug' => $_REQUEST['slug'],
355
- 'author' => $data['author'],
356
- 'url' => home_url()
357
- );
358
-
359
- $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
360
-
361
- if( ! is_wp_error( $request ) ) {
362
- $version_info = json_decode( wp_remote_retrieve_body( $request ) );
363
- }
364
-
365
- if( ! empty( $version_info ) && isset( $version_info->sections ) ) {
366
- $version_info->sections = maybe_unserialize( $version_info->sections );
367
- } else {
368
- $version_info = false;
369
- }
370
-
371
- set_transient( $cache_key, $version_info, 3600 );
372
- }
373
-
374
- if( ! empty( $version_info ) && isset( $version_info->sections['changelog'] ) ) {
375
- echo '<div style="background:#fff;padding:10px;">' . $response->sections['changelog'] . '</div>';
376
- }
377
-
378
-
379
- exit;
380
- }
381
-
382
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/source/modules/licensing/class.s214-license.php DELETED
@@ -1,385 +0,0 @@
1
- <?php
2
- /**
3
- * License handler for Section214
4
- *
5
- * @package S214\License
6
- * @since 1.0.2
7
- */
8
-
9
- // Exit if accessed directly
10
- if( ! defined( 'ABSPATH' ) ) {
11
- exit;
12
- }
13
-
14
-
15
- /**
16
- * Section214 license handler class
17
- *
18
- * @since 1.0.2
19
- */
20
- class S214_License {
21
- private $file;
22
- private $license;
23
- private $item_name;
24
- private $item_id;
25
- private $item_shortname;
26
- private $version;
27
- private $author;
28
- private $slug;
29
- private $api_url = '';
30
-
31
- /**
32
- * Class constructor
33
- *
34
- * @param string $_file
35
- * @param string $_slug
36
- * @param string $_item_name
37
- * @param string $_version
38
- * @param string $_author
39
- * @param string $_api_url
40
- */
41
- function __construct( $_file, $_slug, $_item, $_version, $_author, $_api_url = null ) {
42
-
43
- $this->file = $_file;
44
-
45
- if( is_numeric( $_item ) ) {
46
- $this->item_id = absint( $_item );
47
- } else {
48
- $this->item_name = $_item;
49
- }
50
-
51
- $this->item_shortname = preg_replace( '/[^a-zA-Z0-9_\s]/', '', str_replace( ' ', '_', strtolower( $this->item_name ) ) );
52
- $this->item_slug = $_slug;
53
-
54
- $options = get_option( $this->item_shortname . '_settings', '' );
55
-
56
- $this->version = $_version;
57
- $this->license = ( isset( $options['license_key'] ) ? trim( $options['license_key'] ) : '' );
58
- $this->author = $_author;
59
- $this->api_url = is_null( $_api_url ) ? $this->api_url : $_api_url;
60
-
61
- // Setup hooks
62
- $this->includes();
63
- $this->hooks();
64
- //$this->auto_updater();
65
- }
66
-
67
- /**
68
- * Include the updater class
69
- *
70
- * @access private
71
- * @return void
72
- */
73
- private function includes() {
74
- if ( ! class_exists( 'S214_Plugin_Updater' ) ) require_once 'S214_Plugin_Updater.php';
75
- }
76
-
77
- /**
78
- * Setup hooks
79
- *
80
- * @access private
81
- * @return void
82
- */
83
- private function hooks() {
84
-
85
- // Register settings
86
- add_filter( $this->item_shortname . '_settings_tabs', array( $this, 'tabs' ) );
87
- add_filter( $this->item_shortname . '_registered_settings', array( $this, 'settings' ) );
88
-
89
- // Activate license key on settings save
90
- add_action( 'admin_init', array( $this, 'activate_license' ) );
91
-
92
- // Deactivate license key
93
- add_action( 'admin_init', array( $this, 'deactivate_license' ) );
94
-
95
- // Updater
96
- add_action( 'admin_init', array( $this, 'auto_updater' ), 0 );
97
-
98
- add_action( 'admin_notices', array( $this, 'notices' ) );
99
- }
100
-
101
- /**
102
- * Auto updater
103
- *
104
- * @access private
105
- * @return void
106
- */
107
- public function auto_updater() {
108
-
109
- if ( 'valid' !== get_option( $this->item_shortname . '_license_active' ) )
110
- return;
111
-
112
- $args = array(
113
- 'version' => $this->version,
114
- 'license' => $this->license,
115
- 'author' => $this->author
116
- );
117
-
118
- if( ! empty( $this->item_id ) ) {
119
- $args['item_id'] = $this->item_id;
120
- } else {
121
- $args['item_name'] = $this->item_name;
122
- }
123
-
124
- // Setup the updater
125
- $edd_updater = new S214_Plugin_Updater(
126
- $this->api_url,
127
- $this->file,
128
- $args
129
- );
130
- }
131
-
132
-
133
- /**
134
- * Add license tab to settings
135
- *
136
- * @access public
137
- * @param array $tabs
138
- * @return array $tabs
139
- */
140
- public function tabs( $tabs ) {
141
- $tabs['license'] = __( 'Licensing', 's214-settings' );
142
-
143
- return $tabs;
144
- }
145
-
146
-
147
- /**
148
- * Add license field to settings
149
- *
150
- * @access public
151
- * @param array $settings
152
- * @return array
153
- */
154
- public function settings( $settings ) {
155
- $license_settings = array(
156
- 'license' => array(
157
- array(
158
- 'id' => $this->item_shortname . '_license_key',
159
- 'name' => sprintf( __( '%1$s License Key', 's214-settings' ), $this->item_name ),
160
- 'desc' => __( 'Please enter your license key to enable automatic updates and support.', 's214-settings' ),
161
- 'type' => 'license_key',
162
- 'options' => array( 'is_valid_license_option' => $this->item_shortname . '_license_active' ),
163
- 'size' => 'regular'
164
- )
165
- )
166
- );
167
-
168
- return array_merge( $settings, $license_settings );
169
- }
170
-
171
-
172
- /**
173
- * Activate the license key
174
- *
175
- * @access public
176
- * @return void
177
- */
178
- public function activate_license() {
179
-
180
- if ( ! isset( $_POST[$this->item_shortname . '_settings'] ) ) {
181
- return;
182
- }
183
-
184
- if ( ! isset( $_POST[$this->item_shortname . '_settings'][ $this->item_shortname . '_license_key'] ) ) {
185
- return;
186
- }
187
-
188
- foreach( $_POST as $key => $value ) {
189
- if( false !== strpos( $key, 'license_key_deactivate' ) ) {
190
- // Don't activate a key when deactivating a different key
191
- return;
192
- }
193
- }
194
-
195
- if( ! wp_verify_nonce( $_REQUEST[ $this->item_shortname . '_license_key-nonce'], $this->item_shortname . '_license_key-nonce' ) ) {
196
-
197
- wp_die( __( 'Nonce verification failed', 's214-settings' ), __( 'Error', 's214-settings' ), array( 'response' => 403 ) );
198
-
199
- }
200
-
201
- if( ! current_user_can( 'manage_options' ) ) {
202
- return;
203
- }
204
-
205
- if ( 'valid' === get_option( $this->item_shortname . '_license_active' ) ) {
206
- return;
207
- }
208
-
209
- $license = sanitize_text_field( $_POST[$this->item_shortname . '_settings'][ $this->item_shortname . '_license_key'] );
210
-
211
- if( empty( $license ) ) {
212
- return;
213
- }
214
-
215
- // Data to send to the API
216
- $api_params = array(
217
- 'edd_action' => 'activate_license',
218
- 'license' => $license,
219
- 'item_name' => urlencode( $this->item_name ),
220
- 'url' => home_url()
221
- );
222
-
223
- // Call the API
224
- $response = wp_remote_post(
225
- $this->api_url,
226
- array(
227
- 'timeout' => 15,
228
- 'sslverify' => false,
229
- 'body' => $api_params
230
- )
231
- );
232
-
233
- // Make sure there are no errors
234
- if ( is_wp_error( $response ) ) {
235
- return;
236
- }
237
-
238
- // Tell WordPress to look for updates
239
- set_site_transient( 'update_plugins', null );
240
-
241
- // Decode license data
242
- $license_data = json_decode( wp_remote_retrieve_body( $response ) );
243
-
244
- update_option( $this->item_shortname . '_license_active', $license_data->license );
245
-
246
- if( ! (bool) $license_data->success ) {
247
- set_transient( $this->item_shortname . '_license_error', $license_data, 1000 );
248
- } else {
249
- delete_transient( $this->item_shortname . '_license_error' );
250
- }
251
- }
252
-
253
-
254
- /**
255
- * Deactivate the license key
256
- *
257
- * @access public
258
- * @return void
259
- */
260
- public function deactivate_license() {
261
-
262
- if ( ! isset( $_POST[$this->item_shortname . '_settings'] ) )
263
- return;
264
-
265
- if ( ! isset( $_POST[$this->item_shortname . '_settings'][ $this->item_shortname . '_license_key'] ) )
266
- return;
267
-
268
- if( ! wp_verify_nonce( $_REQUEST[ $this->item_shortname . '_license_key-nonce'], $this->item_shortname . '_license_key-nonce' ) ) {
269
-
270
- wp_die( __( 'Nonce verification failed', 's214-settings' ), __( 'Error', 's214-settings' ), array( 'response' => 403 ) );
271
-
272
- }
273
-
274
- if( ! current_user_can( 'manage_options' ) ) {
275
- return;
276
- }
277
-
278
- // Run on deactivate button press
279
- if ( isset( $_POST[ $this->item_shortname . '_license_key_deactivate'] ) ) {
280
-
281
- $license = sanitize_text_field( $_POST[$this->item_shortname . '_settings'][ $this->item_shortname . '_license_key'] );
282
-
283
- if( empty( $license ) ) {
284
- return;
285
- }
286
-
287
- // Data to send to the API
288
- $api_params = array(
289
- 'edd_action' => 'deactivate_license',
290
- 'license' => $license,
291
- 'item_name' => urlencode( $this->item_name ),
292
- 'url' => home_url()
293
- );
294
-
295
- // Call the API
296
- $response = wp_remote_post(
297
- $this->api_url,
298
- array(
299
- 'timeout' => 15,
300
- 'sslverify' => false,
301
- 'body' => $api_params
302
- )
303
- );
304
-
305
- // Make sure there are no errors
306
- if ( is_wp_error( $response ) ) {
307
- return;
308
- }
309
-
310
- // Decode the license data
311
- $license_data = json_decode( wp_remote_retrieve_body( $response ) );
312
-
313
- delete_option( $this->item_shortname . '_license_active' );
314
-
315
- if( ! (bool) $license_data->success ) {
316
- set_transient( $this->item_shortname . '_license_error', $license_data, 1000 );
317
- } else {
318
- delete_transient( $this->item_shortname . '_license_error' );
319
- }
320
- }
321
- }
322
-
323
-
324
- /**
325
- * Admin notices for errors
326
- *
327
- * @access public
328
- * @return void
329
- */
330
- public function notices() {
331
-
332
- if( ! isset( $_GET['page'] ) || $this->item_slug . '-settings' !== $_GET['page'] ) {
333
- return;
334
- }
335
-
336
- if( ! isset( $_GET['tab'] ) || 'license' !== $_GET['tab'] ) {
337
- return;
338
- }
339
-
340
- $license_error = get_transient( $this->item_shortname . '_license_error' );
341
-
342
- if( false === $license_error ) {
343
- return;
344
- }
345
-
346
- if( ! empty( $license_error->error ) ) {
347
-
348
- switch( $license_error->error ) {
349
-
350
- case 'item_name_mismatch' :
351
-
352
- $message = __( 'This license does not belong to the product you have entered it for.', 's214-settings' );
353
- break;
354
-
355
- case 'no_activations_left' :
356
-
357
- $message = __( 'This license does not have any activations left', 's214-settings' );
358
- break;
359
-
360
- case 'expired' :
361
-
362
- $message = __( 'This license key is expired. Please renew it.', 's214-settings' );
363
- break;
364
-
365
- default :
366
-
367
- $message = sprintf( __( 'There was a problem activating your license key, please try again or contact support. Error code: %s', 's214-settings' ), $license_error->error );
368
- break;
369
-
370
- }
371
-
372
- }
373
-
374
- if( ! empty( $message ) ) {
375
-
376
- echo '<div class="error">';
377
- echo '<p>' . $message . '</p>';
378
- echo '</div>';
379
-
380
- }
381
-
382
- delete_transient( $this->item_shortname . '_license_error' );
383
-
384
- }
385
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/source/modules/sysinfo/browser.php DELETED
@@ -1,1103 +0,0 @@
1
- <?php
2
-
3
- // Exit if accessed directly
4
- if ( ! defined( 'ABSPATH' ) ) exit;
5
-
6
- /**
7
- * Modified to remove var
8
- * Chris Christoff on 12/26/2012
9
- * Changes: Changes vars to publics
10
- *
11
- * Modified to work for EDD by
12
- * Chris Christoff on 12/23/2012
13
- * Changes: Removed the browser string return and added spacing. Also removed return HTML formatting.
14
- *
15
- * Modified to add formatted User Agent string for EDD System Info by
16
- * Chris Christoff on 12/23/2012
17
- * Changes: Split user string and add formatting so we can print a nicely
18
- * formatted user agent string on the EDD System Info
19
- *
20
- * File: Browser.php
21
- * Author: Chris Schuld (http://chrisschuld.com/)
22
- * Last Modified: August 20th, 2010
23
- *
24
- * @version 1.9
25
- * @package PegasusPHP
26
- *
27
- * Copyright (C) 2008-2010 Chris Schuld (chris@chrisschuld.com)
28
- *
29
- * This program is free software; you can redistribute it and/or
30
- * modify it under the terms of the GNU General Public License as
31
- * published by the Free Software Foundation; either version 2 of
32
- * the License, or (at your option) any later version.
33
- *
34
- * This program is distributed in the hope that it will be useful,
35
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
36
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
37
- * GNU General Public License for more details at:
38
- * http://www.gnu.org/copyleft/gpl.html
39
- *
40
- *
41
- * Typical Usage:
42
- *
43
- * $browser = new Browser();
44
- * if( $browser->getBrowser() == Browser::BROWSER_FIREFOX && $browser->getVersion() >= 2 ) {
45
- * echo 'You have FireFox version 2 or greater';
46
- * }
47
- *
48
- * User Agents Sampled from: http://www.useragentstring.com/
49
- *
50
- * This implementation is based on the original work from Gary White
51
- * http://apptools.com/phptools/browser/
52
- *
53
- * UPDATES:
54
- *
55
- * 2010-08-20 (v1.9):
56
- * + Added MSN Explorer Browser (legacy)
57
- * + Added Bing/MSN Robot (Thanks Rob MacDonald)
58
- * + Added the Android Platform (PLATFORM_ANDROID)
59
- * + Fixed issue with Android 1.6/2.2 (Thanks Tom Hirashima)
60
- *
61
- * 2010-04-27 (v1.8):
62
- * + Added iPad Support
63
- *
64
- * 2010-03-07 (v1.7):
65
- * + *MAJOR* Rebuild (preg_match and other "slow" routine removal(s))
66
- * + Almost allof Gary's original code has been replaced
67
- * + Large PHPUNIT testing environment created to validate new releases and additions
68
- * + Added FreeBSD Platform
69
- * + Added OpenBSD Platform
70
- * + Added NetBSD Platform
71
- * + Added SunOS Platform
72
- * + Added OpenSolaris Platform
73
- * + Added support of the Iceweazel Browser
74
- * + Added isChromeFrame() call to check if chromeframe is in use
75
- * + Moved the Opera check in front of the Firefox check due to legacy Opera User Agents
76
- * + Added the __toString() method (Thanks Deano)
77
- *
78
- * 2009-11-15:
79
- * + Updated the checkes for Firefox
80
- * + Added the NOKIA platform
81
- * + Added Checks for the NOKIA brower(s)
82
- *
83
- * 2009-11-08:
84
- * + PHP 5.3 Support
85
- * + Added support for BlackBerry OS and BlackBerry browser
86
- * + Added support for the Opera Mini browser
87
- * + Added additional documenation
88
- * + Added support for isRobot() and isMobile()
89
- * + Added support for Opera version 10
90
- * + Added support for deprecated Netscape Navigator version 9
91
- * + Added support for IceCat
92
- * + Added support for Shiretoko
93
- *
94
- * 2010-04-27 (v1.8):
95
- * + Added iPad Support
96
- *
97
- * 2009-08-18:
98
- * + Updated to support PHP 5.3 - removed all deprecated function calls
99
- * + Updated to remove all double quotes (") -- converted to single quotes (')
100
- *
101
- * 2009-04-27:
102
- * + Updated the IE check to remove a typo and bug (thanks John)
103
- *
104
- * 2009-04-22:
105
- * + Added detection for GoogleBot
106
- * + Added detection for the W3C Validator.
107
- * + Added detection for Yahoo! Slurp
108
- *
109
- * 2009-03-14:
110
- * + Added detection for iPods.
111
- * + Added Platform detection for iPhones
112
- * + Added Platform detection for iPods
113
- *
114
- * 2009-02-16: (Rick Hale)
115
- * + Added version detection for Android phones.
116
- *
117
- * 2008-12-09:
118
- * + Removed unused constant
119
- *
120
- * 2008-11-07:
121
- * + Added Google's Chrome to the detection list
122
- * + Added isBrowser(string) to the list of functions special thanks to
123
- * Daniel 'mavrick' Lang for the function concept (http://mavrick.id.au)
124
- *
125
- *
126
- * Gary White noted: "Since browser detection is so unreliable, I am
127
- * no longer maintaining this script. You are free to use and or
128
- * modify/update it as you want, however the author assumes no
129
- * responsibility for the accuracy of the detected values."
130
- *
131
- * Anyone experienced with Gary's script might be interested in these notes:
132
- *
133
- * Added class constants
134
- * Added detection and version detection for Google's Chrome
135
- * Updated the version detection for Amaya
136
- * Updated the version detection for Firefox
137
- * Updated the version detection for Lynx
138
- * Updated the version detection for WebTV
139
- * Updated the version detection for NetPositive
140
- * Updated the version detection for IE
141
- * Updated the version detection for OmniWeb
142
- * Updated the version detection for iCab
143
- * Updated the version detection for Safari
144
- * Updated Safari to remove mobile devices (iPhone)
145
- * Added detection for iPhone
146
- * Added detection for robots
147
- * Added detection for mobile devices
148
- * Added detection for BlackBerry
149
- * Removed Netscape checks (matches heavily with firefox & mozilla)
150
- *
151
- */
152
-
153
- class Browser {
154
- public $_agent = '';
155
- public $_browser_name = '';
156
- public $_version = '';
157
- public $_platform = '';
158
- public $_os = '';
159
- public $_is_aol = false;
160
- public $_is_mobile = false;
161
- public $_is_robot = false;
162
- public $_aol_version = '';
163
-
164
- public $BROWSER_UNKNOWN = 'unknown';
165
- public $VERSION_UNKNOWN = 'unknown';
166
-
167
- public $BROWSER_OPERA = 'Opera'; // Http://www.opera.com/
168
- public $BROWSER_OPERA_MINI = 'Opera Mini'; // Http://www.opera.com/mini/
169
- public $BROWSER_WEBTV = 'WebTV'; // Http://www.webtv.net/pc/
170
- public $BROWSER_IE = 'Internet Explorer'; // Http://www.microsoft.com/ie/
171
- public $BROWSER_POCKET_IE = 'Pocket Internet Explorer'; // Http://en.wikipedia.org/wiki/Internet_Explorer_Mobile
172
- public $BROWSER_KONQUEROR = 'Konqueror'; // Http://www.konqueror.org/
173
- public $BROWSER_ICAB = 'iCab'; // Http://www.icab.de/
174
- public $BROWSER_OMNIWEB = 'OmniWeb'; // Http://www.omnigroup.com/applications/omniweb/
175
- public $BROWSER_FIREBIRD = 'Firebird'; // Http://www.ibphoenix.com/
176
- public $BROWSER_FIREFOX = 'Firefox'; // Http://www.mozilla.com/en-US/firefox/firefox.html
177
- public $BROWSER_ICEWEASEL = 'Iceweasel'; // Http://www.geticeweasel.org/
178
- public $BROWSER_SHIRETOKO = 'Shiretoko'; // Http://wiki.mozilla.org/Projects/shiretoko
179
- public $BROWSER_MOZILLA = 'Mozilla'; // Http://www.mozilla.com/en-US/
180
- public $BROWSER_AMAYA = 'Amaya'; // Http://www.w3.org/Amaya/
181
- public $BROWSER_LYNX = 'Lynx'; // Http://en.wikipedia.org/wiki/Lynx
182
- public $BROWSER_SAFARI = 'Safari'; // Http://apple.com
183
- public $BROWSER_IPHONE = 'iPhone'; // Http://apple.com
184
- public $BROWSER_IPOD = 'iPod'; // Http://apple.com
185
- public $BROWSER_IPAD = 'iPad'; // Http://apple.com
186
- public $BROWSER_CHROME = 'Chrome'; // Http://www.google.com/chrome
187
- public $BROWSER_ANDROID = 'Android'; // Http://www.android.com/
188
- public $BROWSER_GOOGLEBOT = 'GoogleBot'; // Http://en.wikipedia.org/wiki/Googlebot
189
- public $BROWSER_SLURP = 'Yahoo! Slurp'; // Http://en.wikipedia.org/wiki/Yahoo!_Slurp
190
- public $BROWSER_W3CVALIDATOR = 'W3C Validator'; // Http://validator.w3.org/
191
- public $BROWSER_BLACKBERRY = 'BlackBerry'; // Http://www.blackberry.com/
192
- public $BROWSER_ICECAT = 'IceCat'; // Http://en.wikipedia.org/wiki/GNU_IceCat
193
- public $BROWSER_NOKIA_S60 = 'Nokia S60 OSS Browser'; // Http://en.wikipedia.org/wiki/Web_Browser_for_S60
194
- public $BROWSER_NOKIA = 'Nokia Browser'; // * all other WAP-based browsers on the Nokia Platform
195
- public $BROWSER_MSN = 'MSN Browser'; // Http://explorer.msn.com/
196
- public $BROWSER_MSNBOT = 'MSN Bot'; // Http://search.msn.com/msnbot.htm
197
- // Http://en.wikipedia.org/wiki/Msnbot (used for Bing as well)
198
-
199
- public $BROWSER_NETSCAPE_NAVIGATOR = 'Netscape Navigator'; // Http://browser.netscape.com/ (DEPRECATED)
200
- public $BROWSER_GALEON = 'Galeon'; // Http://galeon.sourceforge.net/ (DEPRECATED)
201
- public $BROWSER_NETPOSITIVE = 'NetPositive'; // Http://en.wikipedia.org/wiki/NetPositive (DEPRECATED)
202
- public $BROWSER_PHOENIX = 'Phoenix'; // Http://en.wikipedia.org/wiki/History_of_Mozilla_Firefox (DEPRECATED)
203
-
204
- public $PLATFORM_UNKNOWN = 'unknown';
205
- public $PLATFORM_WINDOWS = 'Windows';
206
- public $PLATFORM_WINDOWS_CE = 'Windows CE';
207
- public $PLATFORM_APPLE = 'Apple';
208
- public $PLATFORM_LINUX = 'Linux';
209
- public $PLATFORM_OS2 = 'OS/2';
210
- public $PLATFORM_BEOS = 'BeOS';
211
- public $PLATFORM_IPHONE = 'iPhone';
212
- public $PLATFORM_IPOD = 'iPod';
213
- public $PLATFORM_IPAD = 'iPad';
214
- public $PLATFORM_BLACKBERRY = 'BlackBerry';
215
- public $PLATFORM_NOKIA = 'Nokia';
216
- public $PLATFORM_FREEBSD = 'FreeBSD';
217
- public $PLATFORM_OPENBSD = 'OpenBSD';
218
- public $PLATFORM_NETBSD = 'NetBSD';
219
- public $PLATFORM_SUNOS = 'SunOS';
220
- public $PLATFORM_OPENSOLARIS = 'OpenSolaris';
221
- public $PLATFORM_ANDROID = 'Android';
222
-
223
- public $OPERATING_SYSTEM_UNKNOWN = 'unknown';
224
-
225
- function __construct( $useragent="" ) {
226
- $this->reset();
227
- if ( $useragent != "" ) {
228
- $this->setUserAgent( $useragent );
229
- } else {
230
- $this->determine();
231
- }
232
- }
233
-
234
- /**
235
- * Reset all properties
236
- */
237
- function reset() {
238
- $this->_agent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : "";
239
- $this->_browser_name = $this->BROWSER_UNKNOWN;
240
- $this->_version = $this->VERSION_UNKNOWN;
241
- $this->_platform = $this->PLATFORM_UNKNOWN;
242
- $this->_os = $this->OPERATING_SYSTEM_UNKNOWN;
243
- $this->_is_aol = false;
244
- $this->_is_mobile = false;
245
- $this->_is_robot = false;
246
- $this->_aol_version = $this->VERSION_UNKNOWN;
247
- }
248
-
249
- /**
250
- * Check to see if the specific browser is valid
251
- *
252
- * @param string $browserName
253
- * @return True if the browser is the specified browser
254
- */
255
- function isBrowser( $browserName ) { return 0 == strcasecmp( $this->_browser_name, trim( $browserName ) ); }
256
-
257
- /**
258
- * The name of the browser. All return types are from the class contants
259
- *
260
- * @return string Name of the browser
261
- */
262
- function getBrowser() { return $this->_browser_name; }
263
- /**
264
- * Set the name of the browser
265
- *
266
- * @param unknown $browser The name of the Browser
267
- */
268
- function setBrowser( $browser ) { return $this->_browser_name = $browser; }
269
- /**
270
- * The name of the platform. All return types are from the class contants
271
- *
272
- * @return string Name of the browser
273
- */
274
- function getPlatform() { return $this->_platform; }
275
- /**
276
- * Set the name of the platform
277
- *
278
- * @param unknown $platform The name of the Platform
279
- */
280
- function setPlatform( $platform ) { return $this->_platform = $platform; }
281
- /**
282
- * The version of the browser.
283
- *
284
- * @return string Version of the browser (will only contain alpha-numeric characters and a period)
285
- */
286
- function getVersion() { return $this->_version; }
287
- /**
288
- * Set the version of the browser
289
- *
290
- * @param unknown $version The version of the Browser
291
- */
292
- function setVersion( $version ) { $this->_version = preg_replace( '/[^0-9,.,a-z,A-Z-]/', '', $version ); }
293
- /**
294
- * The version of AOL.
295
- *
296
- * @return string Version of AOL (will only contain alpha-numeric characters and a period)
297
- */
298
- function getAolVersion() { return $this->_aol_version; }
299
- /**
300
- * Set the version of AOL
301
- *
302
- * @param unknown $version The version of AOL
303
- */
304
- function setAolVersion( $version ) { $this->_aol_version = preg_replace( '/[^0-9,.,a-z,A-Z]/', '', $version ); }
305
- /**
306
- * Is the browser from AOL?
307
- *
308
- * @return boolean True if the browser is from AOL otherwise false
309
- */
310
- function isAol() { return $this->_is_aol; }
311
- /**
312
- * Is the browser from a mobile device?
313
- *
314
- * @return boolean True if the browser is from a mobile device otherwise false
315
- */
316
- function isMobile() { return $this->_is_mobile; }
317
- /**
318
- * Is the browser from a robot (ex Slurp,GoogleBot)?
319
- *
320
- * @return boolean True if the browser is from a robot otherwise false
321
- */
322
- function isRobot() { return $this->_is_robot; }
323
- /**
324
- * Set the browser to be from AOL
325
- *
326
- * @param unknown $isAol
327
- */
328
- function setAol( $isAol ) { $this->_is_aol = $isAol; }
329
- /**
330
- * Set the Browser to be mobile
331
- *
332
- * @param boolean $value is the browser a mobile brower or not
333
- */
334
- function setMobile( $value=true ) { $this->_is_mobile = $value; }
335
- /**
336
- * Set the Browser to be a robot
337
- *
338
- * @param boolean $value is the browser a robot or not
339
- */
340
- function setRobot( $value=true ) { $this->_is_robot = $value; }
341
- /**
342
- * Get the user agent value in use to determine the browser
343
- *
344
- * @return string The user agent from the HTTP header
345
- */
346
- function getUserAgent() { return $this->_agent; }
347
- /**
348
- * Set the user agent value (the construction will use the HTTP header value - this will overwrite it)
349
- *
350
- * @param unknown $agent_string The value for the User Agent
351
- */
352
- function setUserAgent( $agent_string ) {
353
- $this->reset();
354
- $this->_agent = $agent_string;
355
- $this->determine();
356
- }
357
- /**
358
- * Used to determine if the browser is actually "chromeframe"
359
- *
360
- * @since 1.7
361
- * @return boolean True if the browser is using chromeframe
362
- */
363
- function isChromeFrame() {
364
- return strpos( $this->_agent, "chromeframe" ) !== false;
365
- }
366
- /**
367
- * Returns a formatted string with a summary of the details of the browser.
368
- *
369
- * @return string formatted string with a summary of the browser
370
- */
371
- function __toString() {
372
- $text1 = $this->getUserAgent(); //grabs the UA (user agent) string
373
- $UAline1 = substr( $text1, 0, 32 ); //the first line we print should only be the first 32 characters of the UA string
374
- $text2 = $this->getUserAgent();//now we grab it again and save it to a string
375
- $towrapUA = str_replace( $UAline1, '', $text2 );//the rest of the printoff (other than first line) is equivolent
376
- // To the whole string minus the part we printed off. IE
377
- // User Agent: thefirst32charactersfromUAline1
378
- // the rest of it is now stored in
379
- // $text2 to be printed off
380
- // But we need to add spaces before each line that is split other than line 1
381
- $space = '';
382
- for ( $i = 0; $i < 25; $i++ ) {
383
- $space .= ' ';
384
- }
385
- // Now we split the remaining string of UA ($text2) into lines that are prefixed by spaces for formatting
386
- $wordwrapped = chunk_split( $towrapUA, 32, "\n $space" );
387
- return "Platform: {$this->getPlatform()} \n".
388
- "Browser Name: {$this->getBrowser()} \n" .
389
- "Browser Version: {$this->getVersion()} \n" .
390
- "User Agent String: $UAline1 \n\t\t\t " .
391
- "$wordwrapped";
392
- }
393
- /**
394
- * Protected routine to calculate and determine what the browser is in use (including platform)
395
- */
396
- function determine() {
397
- $this->checkPlatform();
398
- $this->checkBrowsers();
399
- $this->checkForAol();
400
- }
401
- /**
402
- * Protected routine to determine the browser type
403
- *
404
- * @return boolean True if the browser was detected otherwise false
405
- */
406
- function checkBrowsers() {
407
- return (
408
- // Well-known, well-used
409
- // Special Notes:
410
- // (1) Opera must be checked before FireFox due to the odd
411
- // user agents used in some older versions of Opera
412
- // (2) WebTV is strapped onto Internet Explorer so we must
413
- // check for WebTV before IE
414
- // (3) (deprecated) Galeon is based on Firefox and needs to be
415
- // tested before Firefox is tested
416
- // (4) OmniWeb is based on Safari so OmniWeb check must occur
417
- // before Safari
418
- // (5) Netscape 9+ is based on Firefox so Netscape checks
419
- // before FireFox are necessary
420
- $this->checkBrowserWebTv() ||
421
- $this->checkBrowserInternetExplorer() ||
422
- $this->checkBrowserOpera() ||
423
- $this->checkBrowserGaleon() ||
424
- $this->checkBrowserNetscapeNavigator9Plus() ||
425
- $this->checkBrowserFirefox() ||
426
- $this->checkBrowserChrome() ||
427
- $this->checkBrowserOmniWeb() ||
428
-
429
- // Common mobile
430
- $this->checkBrowserAndroid() ||
431
- $this->checkBrowseriPad() ||
432
- $this->checkBrowseriPod() ||
433
- $this->checkBrowseriPhone() ||
434
- $this->checkBrowserBlackBerry() ||
435
- $this->checkBrowserNokia() ||
436
-
437
- // Common bots
438
- $this->checkBrowserGoogleBot() ||
439
- $this->checkBrowserMSNBot() ||
440
- $this->checkBrowserSlurp() ||
441
-
442
- // WebKit base check (post mobile and others)
443
- $this->checkBrowserSafari() ||
444
-
445
- // Everyone else
446
- $this->checkBrowserNetPositive() ||
447
- $this->checkBrowserFirebird() ||
448
- $this->checkBrowserKonqueror() ||
449
- $this->checkBrowserIcab() ||
450
- $this->checkBrowserPhoenix() ||
451
- $this->checkBrowserAmaya() ||
452
- $this->checkBrowserLynx() ||
453
-
454
- $this->checkBrowserShiretoko() ||
455
- $this->checkBrowserIceCat() ||
456
- $this->checkBrowserW3CValidator() ||
457
- $this->checkBrowserMozilla() /* Mozilla is such an open standard that you must check it last */
458
- );
459
- }
460
-
461
- /**
462
- * Determine if the user is using a BlackBerry (last updated 1.7)
463
- *
464
- * @return boolean True if the browser is the BlackBerry browser otherwise false
465
- */
466
- function checkBrowserBlackBerry() {
467
- if ( stripos( $this->_agent, 'blackberry' ) !== false ) {
468
- $aresult = explode( "/", stristr( $this->_agent, "BlackBerry" ) );
469
- $aversion = explode( ' ', $aresult[1] );
470
- $this->setVersion( $aversion[0] );
471
- $this->_browser_name = $this->BROWSER_BLACKBERRY;
472
- $this->setMobile( true );
473
- return true;
474
- }
475
- return false;
476
- }
477
-
478
- /**
479
- * Determine if the user is using an AOL User Agent (last updated 1.7)
480
- *
481
- * @return boolean True if the browser is from AOL otherwise false
482
- */
483
- function checkForAol() {
484
- $this->setAol( false );
485
- $this->setAolVersion( $this->VERSION_UNKNOWN );
486
-
487
- if ( stripos( $this->_agent, 'aol' ) !== false ) {
488
- $aversion = explode( ' ', stristr( $this->_agent, 'AOL' ) );
489
- $this->setAol( true );
490
- $this->setAolVersion( preg_replace( '/[^0-9\.a-z]/i', '', $aversion[1] ) );
491
- return true;
492
- }
493
- return false;
494
- }
495
-
496
- /**
497
- * Determine if the browser is the GoogleBot or not (last updated 1.7)
498
- *
499
- * @return boolean True if the browser is the GoogletBot otherwise false
500
- */
501
- function checkBrowserGoogleBot() {
502
- if ( stripos( $this->_agent, 'googlebot' ) !== false ) {
503
- $aresult = explode( '/', stristr( $this->_agent, 'googlebot' ) );
504
- $aversion = explode( ' ', $aresult[1] );
505
- $this->setVersion( str_replace( ';', '', $aversion[0] ) );
506
- $this->_browser_name = $this->BROWSER_GOOGLEBOT;
507
- $this->setRobot( true );
508
- return true;
509
- }
510
- return false;
511
- }
512
-
513
- /**
514
- * Determine if the browser is the MSNBot or not (last updated 1.9)
515
- *
516
- * @return boolean True if the browser is the MSNBot otherwise false
517
- */
518
- function checkBrowserMSNBot() {
519
- if ( stripos( $this->_agent, "msnbot" ) !== false ) {
520
- $aresult = explode( "/", stristr( $this->_agent, "msnbot" ) );
521
- $aversion = explode( " ", $aresult[1] );
522
- $this->setVersion( str_replace( ";", "", $aversion[0] ) );
523
- $this->_browser_name = $this->BROWSER_MSNBOT;
524
- $this->setRobot( true );
525
- return true;
526
- }
527
- return false;
528
- }
529
-
530
- /**
531
- * Determine if the browser is the W3C Validator or not (last updated 1.7)
532
- *
533
- * @return boolean True if the browser is the W3C Validator otherwise false
534
- */
535
- function checkBrowserW3CValidator() {
536
- if ( stripos( $this->_agent, 'W3C-checklink' ) !== false ) {
537
- $aresult = explode( '/', stristr( $this->_agent, 'W3C-checklink' ) );
538
- $aversion = explode( ' ', $aresult[1] );
539
- $this->setVersion( $aversion[0] );
540
- $this->_browser_name = $this->BROWSER_W3CVALIDATOR;
541
- return true;
542
- } else if ( stripos( $this->_agent, 'W3C_Validator' ) !== false ) {
543
- // Some of the Validator versions do not delineate w/ a slash - add it back in
544
- $ua = str_replace( "W3C_Validator ", "W3C_Validator/", $this->_agent );
545
- $aresult = explode( '/', stristr( $ua, 'W3C_Validator' ) );
546
- $aversion = explode( ' ', $aresult[1] );
547
- $this->setVersion( $aversion[0] );
548
- $this->_browser_name = $this->BROWSER_W3CVALIDATOR;
549
- return true;
550
- }
551
- return false;
552
- }
553
-
554
- /**
555
- * Determine if the browser is the Yahoo! Slurp Robot or not (last updated 1.7)
556
- *
557
- * @return boolean True if the browser is the Yahoo! Slurp Robot otherwise false
558
- */
559
- function checkBrowserSlurp() {
560
- if ( stripos( $this->_agent, 'slurp' ) !== false ) {
561
- $aresult = explode( '/', stristr( $this->_agent, 'Slurp' ) );
562
- $aversion = explode( ' ', $aresult[1] );
563
- $this->setVersion( $aversion[0] );
564
- $this->_browser_name = $this->BROWSER_SLURP;
565
- $this->setRobot( true );
566
- $this->setMobile( false );
567
- return true;
568
- }
569
- return false;
570
- }
571
-
572
- /**
573
- * Determine if the browser is Internet Explorer or not (last updated 1.7)
574
- *
575
- * @return boolean True if the browser is Internet Explorer otherwise false
576
- */
577
- function checkBrowserInternetExplorer() {
578
-
579
- // Test for v1 - v1.5 IE
580
- if ( stripos( $this->_agent, 'microsoft internet explorer' ) !== false ) {
581
- $this->setBrowser( $this->BROWSER_IE );
582
- $this->setVersion( '1.0' );
583
- $aresult = stristr( $this->_agent, '/' );
584
- if ( preg_match( '/308|425|426|474|0b1/i', $aresult ) ) {
585
- $this->setVersion( '1.5' );
586
- }
587
- return true;
588
- }
589
- // Test for versions > 1.5
590
- else if ( stripos( $this->_agent, 'msie' ) !== false && stripos( $this->_agent, 'opera' ) === false ) {
591
- // See if the browser is the odd MSN Explorer
592
- if ( stripos( $this->_agent, 'msnb' ) !== false ) {
593
- $aresult = explode( ' ', stristr( str_replace( ';', '; ', $this->_agent ), 'MSN' ) );
594
- $this->setBrowser( $this->BROWSER_MSN );
595
- $this->setVersion( str_replace( array( '(', ')', ';' ), '', $aresult[1] ) );
596
- return true;
597
- }
598
- $aresult = explode( ' ', stristr( str_replace( ';', '; ', $this->_agent ), 'msie' ) );
599
- $this->setBrowser( $this->BROWSER_IE );
600
- $this->setVersion( str_replace( array( '(', ')', ';' ), '', $aresult[1] ) );
601
- return true;
602
- }
603
- // Test for Pocket IE
604
- else if ( stripos( $this->_agent, 'mspie' ) !== false || stripos( $this->_agent, 'pocket' ) !== false ) {
605
- $aresult = explode( ' ', stristr( $this->_agent, 'mspie' ) );
606
- $this->setPlatform( $this->PLATFORM_WINDOWS_CE );
607
- $this->setBrowser( $this->BROWSER_POCKET_IE );
608
- $this->setMobile( true );
609
-
610
- if ( stripos( $this->_agent, 'mspie' ) !== false ) {
611
- $this->setVersion( $aresult[1] );
612
- } else {
613
- $aversion = explode( '/', $this->_agent );
614
- $this->setVersion( $aversion[1] );
615
- }
616
- return true;
617
- }
618
- return false;
619
- }
620
-
621
- /**
622
- * Determine if the browser is Opera or not (last updated 1.7)
623
- *
624
- * @return boolean True if the browser is Opera otherwise false
625
- */
626
- function checkBrowserOpera() {
627
- if ( stripos( $this->_agent, 'opera mini' ) !== false ) {
628
- $resultant = stristr( $this->_agent, 'opera mini' );
629
- if ( preg_match( '/\//', $resultant ) ) {
630
- $aresult = explode( '/', $resultant );
631
- $aversion = explode( ' ', $aresult[1] );
632
- $this->setVersion( $aversion[0] );
633
- } else {
634
- $aversion = explode( ' ', stristr( $resultant, 'opera mini' ) );
635
- $this->setVersion( $aversion[1] );
636
- }
637
- $this->_browser_name = $this->BROWSER_OPERA_MINI;
638
- $this->setMobile( true );
639
- return true;
640
- } else if ( stripos( $this->_agent, 'opera' ) !== false ) {
641
- $resultant = stristr( $this->_agent, 'opera' );
642
- if ( preg_match( '/Version\/(10.*)$/', $resultant, $matches ) ) {
643
- $this->setVersion( $matches[1] );
644
- } else if ( preg_match( '/\//', $resultant ) ) {
645
- $aresult = explode( '/', str_replace( "(", " ", $resultant ) );
646
- $aversion = explode( ' ', $aresult[1] );
647
- $this->setVersion( $aversion[0] );
648
- } else {
649
- $aversion = explode( ' ', stristr( $resultant, 'opera' ) );
650
- $this->setVersion( isset( $aversion[1] )?$aversion[1]:"" );
651
- }
652
- $this->_browser_name = $this->BROWSER_OPERA;
653
- return true;
654
- }
655
- return false;
656
- }
657
-
658
- /**
659
- * Determine if the browser is Chrome or not (last updated 1.7)
660
- *
661
- * @return boolean True if the browser is Chrome otherwise false
662
- */
663
- function checkBrowserChrome() {
664
- if ( stripos( $this->_agent, 'Chrome' ) !== false ) {
665
- $aresult = explode( '/', stristr( $this->_agent, 'Chrome' ) );
666
- $aversion = explode( ' ', $aresult[1] );
667
- $this->setVersion( $aversion[0] );
668
- $this->setBrowser( $this->BROWSER_CHROME );
669
- return true;
670
- }
671
- return false;
672
- }
673
-
674
-
675
- /**
676
- * Determine if the browser is WebTv or not (last updated 1.7)
677
- *
678
- * @return boolean True if the browser is WebTv otherwise false
679
- */
680
- function checkBrowserWebTv() {
681
- if ( stripos( $this->_agent, 'webtv' ) !== false ) {
682
- $aresult = explode( '/', stristr( $this->_agent, 'webtv' ) );
683
- $aversion = explode( ' ', $aresult[1] );
684
- $this->setVersion( $aversion[0] );
685
- $this->setBrowser( $this->BROWSER_WEBTV );
686
- return true;
687
- }
688
- return false;
689
- }
690
-
691
- /**
692
- * Determine if the browser is NetPositive or not (last updated 1.7)
693
- *
694
- * @return boolean True if the browser is NetPositive otherwise false
695
- */
696
- function checkBrowserNetPositive() {
697
- if ( stripos( $this->_agent, 'NetPositive' ) !== false ) {
698
- $aresult = explode( '/', stristr( $this->_agent, 'NetPositive' ) );
699
- $aversion = explode( ' ', $aresult[1] );
700
- $this->setVersion( str_replace( array( '(', ')', ';' ), '', $aversion[0] ) );
701
- $this->setBrowser( $this->BROWSER_NETPOSITIVE );
702
- return true;
703
- }
704
- return false;
705
- }
706
-
707
- /**
708
- * Determine if the browser is Galeon or not (last updated 1.7)
709
- *
710
- * @return boolean True if the browser is Galeon otherwise false
711
- */
712
- function checkBrowserGaleon() {
713
- if ( stripos( $this->_agent, 'galeon' ) !== false ) {
714
- $aresult = explode( ' ', stristr( $this->_agent, 'galeon' ) );
715
- $aversion = explode( '/', $aresult[0] );
716
- $this->setVersion( $aversion[1] );
717
- $this->setBrowser( $this->BROWSER_GALEON );
718
- return true;
719
- }
720
- return false;
721
- }
722
-
723
- /**
724
- * Determine if the browser is Konqueror or not (last updated 1.7)
725
- *
726
- * @return boolean True if the browser is Konqueror otherwise false
727
- */
728
- function checkBrowserKonqueror() {
729
- if ( stripos( $this->_agent, 'Konqueror' ) !== false ) {
730
- $aresult = explode( ' ', stristr( $this->_agent, 'Konqueror' ) );
731
- $aversion = explode( '/', $aresult[0] );
732
- $this->setVersion( $aversion[1] );
733
- $this->setBrowser( $this->BROWSER_KONQUEROR );
734
- return true;
735
- }
736
- return false;
737
- }
738
-
739
- /**
740
- * Determine if the browser is iCab or not (last updated 1.7)
741
- *
742
- * @return boolean True if the browser is iCab otherwise false
743
- */
744
- function checkBrowserIcab() {
745
- if ( stripos( $this->_agent, 'icab' ) !== false ) {
746
- $aversion = explode( ' ', stristr( str_replace( '/', ' ', $this->_agent ), 'icab' ) );
747
- $this->setVersion( $aversion[1] );
748
- $this->setBrowser( $this->BROWSER_ICAB );
749
- return true;
750
- }
751
- return false;
752
- }
753
-
754
- /**
755
- * Determine if the browser is OmniWeb or not (last updated 1.7)
756
- *
757
- * @return boolean True if the browser is OmniWeb otherwise false
758
- */
759
- function checkBrowserOmniWeb() {
760
- if ( stripos( $this->_agent, 'omniweb' ) !== false ) {
761
- $aresult = explode( '/', stristr( $this->_agent, 'omniweb' ) );
762
- $aversion = explode( ' ', isset( $aresult[1] )?$aresult[1]:"" );
763
- $this->setVersion( $aversion[0] );
764
- $this->setBrowser( $this->BROWSER_OMNIWEB );
765
- return true;
766
- }
767
- return false;
768
- }
769
-
770
- /**
771
- * Determine if the browser is Phoenix or not (last updated 1.7)
772
- *
773
- * @return boolean True if the browser is Phoenix otherwise false
774
- */
775
- function checkBrowserPhoenix() {
776
- if ( stripos( $this->_agent, 'Phoenix' ) !== false ) {
777
- $aversion = explode( '/', stristr( $this->_agent, 'Phoenix' ) );
778
- $this->setVersion( $aversion[1] );
779
- $this->setBrowser( $this->BROWSER_PHOENIX );
780
- return true;
781
- }
782
- return false;
783
- }
784
-
785
- /**
786
- * Determine if the browser is Firebird or not (last updated 1.7)
787
- *
788
- * @return boolean True if the browser is Firebird otherwise false
789
- */
790
- function checkBrowserFirebird() {
791
- if ( stripos( $this->_agent, 'Firebird' ) !== false ) {
792
- $aversion = explode( '/', stristr( $this->_agent, 'Firebird' ) );
793
- $this->setVersion( $aversion[1] );
794
- $this->setBrowser( $this->BROWSER_FIREBIRD );
795
- return true;
796
- }
797
- return false;
798
- }
799
-
800
- /**
801
- * Determine if the browser is Netscape Navigator 9+ or not (last updated 1.7)
802
- * NOTE: (http://browser.netscape.com/ - Official support ended on March 1st, 2008)
803
- *
804
- * @return boolean True if the browser is Netscape Navigator 9+ otherwise false
805
- */
806
- function checkBrowserNetscapeNavigator9Plus() {
807
- if ( stripos( $this->_agent, 'Firefox' ) !== false && preg_match( '/Navigator\/([^ ]*)/i', $this->_agent, $matches ) ) {
808
- $this->setVersion( $matches[1] );
809
- $this->setBrowser( $this->BROWSER_NETSCAPE_NAVIGATOR );
810
- return true;
811
- } else if ( stripos( $this->_agent, 'Firefox' ) === false && preg_match( '/Netscape6?\/([^ ]*)/i', $this->_agent, $matches ) ) {
812
- $this->setVersion( $matches[1] );
813
- $this->setBrowser( $this->BROWSER_NETSCAPE_NAVIGATOR );
814
- return true;
815
- }
816
- return false;
817
- }
818
-
819
- /**
820
- * Determine if the browser is Shiretoko or not (https://wiki.mozilla.org/Projects/shiretoko) (last updated 1.7)
821
- *
822
- * @return boolean True if the browser is Shiretoko otherwise false
823
- */
824
- function checkBrowserShiretoko() {
825
- if ( stripos( $this->_agent, 'Mozilla' ) !== false && preg_match( '/Shiretoko\/([^ ]*)/i', $this->_agent, $matches ) ) {
826
- $this->setVersion( $matches[1] );
827
- $this->setBrowser( $this->BROWSER_SHIRETOKO );
828
- return true;
829
- }
830
- return false;
831
- }
832
-
833
- /**
834
- * Determine if the browser is Ice Cat or not (http://en.wikipedia.org/wiki/GNU_IceCat) (last updated 1.7)
835
- *
836
- * @return boolean True if the browser is Ice Cat otherwise false
837
- */
838
- function checkBrowserIceCat() {
839
- if ( stripos( $this->_agent, 'Mozilla' ) !== false && preg_match( '/IceCat\/([^ ]*)/i', $this->_agent, $matches ) ) {
840
- $this->setVersion( $matches[1] );
841
- $this->setBrowser( $this->BROWSER_ICECAT );
842
- return true;
843
- }
844
- return false;
845
- }
846
-
847
- /**
848
- * Determine if the browser is Nokia or not (last updated 1.7)
849
- *
850
- * @return boolean True if the browser is Nokia otherwise false
851
- */
852
- function checkBrowserNokia() {
853
- if ( preg_match( "/Nokia([^\/]+)\/([^ SP]+)/i", $this->_agent, $matches ) ) {
854
- $this->setVersion( $matches[2] );
855
- if ( stripos( $this->_agent, 'Series60' ) !== false || strpos( $this->_agent, 'S60' ) !== false ) {
856
- $this->setBrowser( $this->BROWSER_NOKIA_S60 );
857
- } else {
858
- $this->setBrowser( $this->BROWSER_NOKIA );
859
- }
860
- $this->setMobile( true );
861
- return true;
862
- }
863
- return false;
864
- }
865
-
866
- /**
867
- * Determine if the browser is Firefox or not (last updated 1.7)
868
- *
869
- * @return boolean True if the browser is Firefox otherwise false
870
- */
871
- function checkBrowserFirefox() {
872
- if ( stripos( $this->_agent, 'safari' ) === false ) {
873
- if ( preg_match( "/Firefox[\/ \(]([^ ;\)]+)/i", $this->_agent, $matches ) ) {
874
- $this->setVersion( $matches[1] );
875
- $this->setBrowser( $this->BROWSER_FIREFOX );
876
- return true;
877
- } else if ( preg_match( "/Firefox$/i", $this->_agent, $matches ) ) {
878
- $this->setVersion( "" );
879
- $this->setBrowser( $this->BROWSER_FIREFOX );
880
- return true;
881
- }
882
- }
883
- return false;
884
- }
885
-
886
- /**
887
- * Determine if the browser is Firefox or not (last updated 1.7)
888
- *
889
- * @return boolean True if the browser is Firefox otherwise false
890
- */
891
- function checkBrowserIceweasel() {
892
- if ( stripos( $this->_agent, 'Iceweasel' ) !== false ) {
893
- $aresult = explode( '/', stristr( $this->_agent, 'Iceweasel' ) );
894
- $aversion = explode( ' ', $aresult[1] );
895
- $this->setVersion( $aversion[0] );
896
- $this->setBrowser( $this->BROWSER_ICEWEASEL );
897
- return true;
898
- }
899
- return false;
900
- }
901
- /**
902
- * Determine if the browser is Mozilla or not (last updated 1.7)
903
- *
904
- * @return boolean True if the browser is Mozilla otherwise false
905
- */
906
- function checkBrowserMozilla() {
907
- if ( stripos( $this->_agent, 'mozilla' ) !== false && preg_match( '/rv:[0-9].[0-9][a-b]?/i', $this->_agent ) && stripos( $this->_agent, 'netscape' ) === false ) {
908
- $aversion = explode( ' ', stristr( $this->_agent, 'rv:' ) );
909
- preg_match( '/rv:[0-9].[0-9][a-b]?/i', $this->_agent, $aversion );
910
- $this->setVersion( str_replace( 'rv:', '', $aversion[0] ) );
911
- $this->setBrowser( $this->BROWSER_MOZILLA );
912
- return true;
913
- } else if ( stripos( $this->_agent, 'mozilla' ) !== false && preg_match( '/rv:[0-9]\.[0-9]/i', $this->_agent ) && stripos( $this->_agent, 'netscape' ) === false ) {
914
- $aversion = explode( '', stristr( $this->_agent, 'rv:' ) );
915
- $this->setVersion( str_replace( 'rv:', '', $aversion[0] ) );
916
- $this->setBrowser( $this->BROWSER_MOZILLA );
917
- return true;
918
- } else if ( stripos( $this->_agent, 'mozilla' ) !== false && preg_match( '/mozilla\/([^ ]*)/i', $this->_agent, $matches ) && stripos( $this->_agent, 'netscape' ) === false ) {
919
- $this->setVersion( $matches[1] );
920
- $this->setBrowser( $this->BROWSER_MOZILLA );
921
- return true;
922
- }
923
- return false;
924
- }
925
-
926
- /**
927
- * Determine if the browser is Lynx or not (last updated 1.7)
928
- *
929
- * @return boolean True if the browser is Lynx otherwise false
930
- */
931
- function checkBrowserLynx() {
932
- if ( stripos( $this->_agent, 'lynx' ) !== false ) {
933
- $aresult = explode( '/', stristr( $this->_agent, 'Lynx' ) );
934
- $aversion = explode( ' ', ( isset( $aresult[1] )?$aresult[1]:"" ) );
935
- $this->setVersion( $aversion[0] );
936
- $this->setBrowser( $this->BROWSER_LYNX );
937
- return true;
938
- }
939
- return false;
940
- }
941
-
942
- /**
943
- * Determine if the browser is Amaya or not (last updated 1.7)
944
- *
945
- * @return boolean True if the browser is Amaya otherwise false
946
- */
947
- function checkBrowserAmaya() {
948
- if ( stripos( $this->_agent, 'amaya' ) !== false ) {
949
- $aresult = explode( '/', stristr( $this->_agent, 'Amaya' ) );
950
- $aversion = explode( ' ', $aresult[1] );
951
- $this->setVersion( $aversion[0] );
952
- $this->setBrowser( $this->BROWSER_AMAYA );
953
- return true;
954
- }
955
- return false;
956
- }
957
-
958
- /**
959
- * Determine if the browser is Safari or not (last updated 1.7)
960
- *
961
- * @return boolean True if the browser is Safari otherwise false
962
- */
963
- function checkBrowserSafari() {
964
- if ( stripos( $this->_agent, 'Safari' ) !== false && stripos( $this->_agent, 'iPhone' ) === false && stripos( $this->_agent, 'iPod' ) === false ) {
965
- $aresult = explode( '/', stristr( $this->_agent, 'Version' ) );
966
- if ( isset( $aresult[1] ) ) {
967
- $aversion = explode( ' ', $aresult[1] );
968
- $this->setVersion( $aversion[0] );
969
- } else {
970
- $this->setVersion( $this->VERSION_UNKNOWN );
971
- }
972
- $this->setBrowser( $this->BROWSER_SAFARI );
973
- return true;
974
- }
975
- return false;
976
- }
977
-
978
- /**
979
- * Determine if the browser is iPhone or not (last updated 1.7)
980
- *
981
- * @return boolean True if the browser is iPhone otherwise false
982
- */
983
- function checkBrowseriPhone() {
984
- if ( stripos( $this->_agent, 'iPhone' ) !== false ) {
985
- $aresult = explode( '/', stristr( $this->_agent, 'Version' ) );
986
- if ( isset( $aresult[1] ) ) {
987
- $aversion = explode( ' ', $aresult[1] );
988
- $this->setVersion( $aversion[0] );
989
- } else {
990
- $this->setVersion( $this->VERSION_UNKNOWN );
991
- }
992
- $this->setMobile( true );
993
- $this->setBrowser( $this->BROWSER_IPHONE );
994
- return true;
995
- }
996
- return false;
997
- }
998
-
999
- /**
1000
- * Determine if the browser is iPod or not (last updated 1.7)
1001
- *
1002
- * @return boolean True if the browser is iPod otherwise false
1003
- */
1004
- function checkBrowseriPad() {
1005
- if ( stripos( $this->_agent, 'iPad' ) !== false ) {
1006
- $aresult = explode( '/', stristr( $this->_agent, 'Version' ) );
1007
- if ( isset( $aresult[1] ) ) {
1008
- $aversion = explode( ' ', $aresult[1] );
1009
- $this->setVersion( $aversion[0] );
1010
- } else {
1011
- $this->setVersion( $this->VERSION_UNKNOWN );
1012
- }
1013
- $this->setMobile( true );
1014
- $this->setBrowser( $this->BROWSER_IPAD );
1015
- return true;
1016
- }
1017
- return false;
1018
- }
1019
-
1020
- /**
1021
- * Determine if the browser is iPod or not (last updated 1.7)
1022
- *
1023
- * @return boolean True if the browser is iPod otherwise false
1024
- */
1025
- function checkBrowseriPod() {
1026
- if ( stripos( $this->_agent, 'iPod' ) !== false ) {
1027
- $aresult = explode( '/', stristr( $this->_agent, 'Version' ) );
1028
- if ( isset( $aresult[1] ) ) {
1029
- $aversion = explode( ' ', $aresult[1] );
1030
- $this->setVersion( $aversion[0] );
1031
- } else {
1032
- $this->setVersion( $this->VERSION_UNKNOWN );
1033
- }
1034
- $this->setMobile( true );
1035
- $this->setBrowser( $this->BROWSER_IPOD );
1036
- return true;
1037
- }
1038
- return false;
1039
- }
1040
-
1041
- /**
1042
- * Determine if the browser is Android or not (last updated 1.7)
1043
- *
1044
- * @return boolean True if the browser is Android otherwise false
1045
- */
1046
- function checkBrowserAndroid() {
1047
- if ( stripos( $this->_agent, 'Android' ) !== false ) {
1048
- $aresult = explode( ' ', stristr( $this->_agent, 'Android' ) );
1049
- if ( isset( $aresult[1] ) ) {
1050
- $aversion = explode( ' ', $aresult[1] );
1051
- $this->setVersion( $aversion[0] );
1052
- } else {
1053
- $this->setVersion( $this->VERSION_UNKNOWN );
1054
- }
1055
- $this->setMobile( true );
1056
- $this->setBrowser( $this->BROWSER_ANDROID );
1057
- return true;
1058
- }
1059
- return false;
1060
- }
1061
-
1062
- /**
1063
- * Determine the user's platform (last updated 1.7)
1064
- */
1065
- function checkPlatform() {
1066
- if ( stripos( $this->_agent, 'windows' ) !== false ) {
1067
- $this->_platform = $this->PLATFORM_WINDOWS;
1068
- } else if ( stripos( $this->_agent, 'iPad' ) !== false ) {
1069
- $this->_platform = $this->PLATFORM_IPAD;
1070
- } else if ( stripos( $this->_agent, 'iPod' ) !== false ) {
1071
- $this->_platform = $this->PLATFORM_IPOD;
1072
- } else if ( stripos( $this->_agent, 'iPhone' ) !== false ) {
1073
- $this->_platform = $this->PLATFORM_IPHONE;
1074
- } elseif ( stripos( $this->_agent, 'mac' ) !== false ) {
1075
- $this->_platform = $this->PLATFORM_APPLE;
1076
- } elseif ( stripos( $this->_agent, 'android' ) !== false ) {
1077
- $this->_platform = $this->PLATFORM_ANDROID;
1078
- } elseif ( stripos( $this->_agent, 'linux' ) !== false ) {
1079
- $this->_platform = $this->PLATFORM_LINUX;
1080
- } else if ( stripos( $this->_agent, 'Nokia' ) !== false ) {
1081
- $this->_platform = $this->PLATFORM_NOKIA;
1082
- } else if ( stripos( $this->_agent, 'BlackBerry' ) !== false ) {
1083
- $this->_platform = $this->PLATFORM_BLACKBERRY;
1084
- } elseif ( stripos( $this->_agent, 'FreeBSD' ) !== false ) {
1085
- $this->_platform = $this->PLATFORM_FREEBSD;
1086
- } elseif ( stripos( $this->_agent, 'OpenBSD' ) !== false ) {
1087
- $this->_platform = $this->PLATFORM_OPENBSD;
1088
- } elseif ( stripos( $this->_agent, 'NetBSD' ) !== false ) {
1089
- $this->_platform = $this->PLATFORM_NETBSD;
1090
- } elseif ( stripos( $this->_agent, 'OpenSolaris' ) !== false ) {
1091
- $this->_platform = $this->PLATFORM_OPENSOLARIS;
1092
- } elseif ( stripos( $this->_agent, 'SunOS' ) !== false ) {
1093
- $this->_platform = $this->PLATFORM_SUNOS;
1094
- } elseif ( stripos( $this->_agent, 'OS\/2' ) !== false ) {
1095
- $this->_platform = $this->PLATFORM_OS2;
1096
- } elseif ( stripos( $this->_agent, 'BeOS' ) !== false ) {
1097
- $this->_platform = $this->PLATFORM_BEOS;
1098
- } elseif ( stripos( $this->_agent, 'win' ) !== false ) {
1099
- $this->_platform = $this->PLATFORM_WINDOWS;
1100
- }
1101
-
1102
- }
1103
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/wpdesk/wp-settings/source/modules/sysinfo/class.s214-sysinfo.php DELETED
@@ -1,442 +0,0 @@
1
- <?php
2
- /**
3
- * System Info handler for Section214
4
- *
5
- * @package S214\Sysinfo
6
- * @since 1.1.0
7
- */
8
-
9
- // Exit if accessed directly
10
- if( ! defined( 'ABSPATH' ) ) {
11
- exit;
12
- }
13
-
14
-
15
- /**
16
- * Section214 system info handler class
17
- *
18
- * @since 1.1.0
19
- */
20
- class S214_Sysinfo {
21
-
22
-
23
- /**
24
- * @var string $slug The plugin slug
25
- * @since 1.1.0
26
- */
27
- private $slug;
28
-
29
-
30
- /**
31
- * @var string $func The plugin slug for names
32
- * @since 1.1.0
33
- */
34
- private $func;
35
-
36
-
37
- /**
38
- * @var string $ver The library version
39
- * @since 1.1.0
40
- */
41
- private $version;
42
-
43
-
44
- /**
45
- * Class constructor
46
- *
47
- * @access public
48
- * @since 1.1.0
49
- * @param string $_slug
50
- * @param string $_func
51
- * @return void
52
- */
53
- public function __construct( $_slug, $_func, $_version ) {
54
- $this->slug = $_slug;
55
- $this->func = $_func;
56
- $this->version = $_version;
57
-
58
- // Run action and filter hooks
59
- $this->hooks();
60
- }
61
-
62
-
63
- /**
64
- * Run action and filter hooks
65
- *
66
- * @access private
67
- * @since 1.1.0
68
- * @return void
69
- */
70
- private function hooks() {
71
- // Process sysinfo download
72
- add_action( $this->func . '_settings_download_system_info', array( $this, 'download_system_info' ) );
73
- }
74
-
75
-
76
- /**
77
- * Get system info
78
- *
79
- * @access public
80
- * @since 1.1.0
81
- * @global object $wpdb The WordPress database object
82
- * @return string $return The system info to display
83
- */
84
- public function get_system_info() {
85
- global $wpdb;
86
-
87
- if( ! class_exists( 'Browser' ) ) {
88
- require_once 'browser.php';
89
- }
90
-
91
- $browser = new Browser();
92
-
93
- // Get theme info
94
- if( get_bloginfo( 'version' ) < '3.4' ) {
95
- $theme_data = get_theme_data( get_stylesheet_directory() . '/style.css' );
96
- $theme = $theme_data['Name'] . ' ' . $theme_data['Version'];
97
- } else {
98
- $theme_data = wp_get_theme();
99
- $theme = $theme_data->Name . ' ' . $theme_data->Version;
100
- }
101
-
102
- // Try to identify the hosting provider
103
- $host = $this->get_host();
104
-
105
- $return = '### Begin System Info ###' . "\n\n";
106
-
107
- // Start with the basics...
108
- $return .= '-- Site Info' . "\n\n";
109
- $return .= 'Site URL: ' . site_url() . "\n";
110
- $return .= 'Home URL: ' . home_url() . "\n";
111
- $return .= 'Multisite: ' . ( is_multisite() ? 'Yes' : 'No' ) . "\n";
112
-
113
- $return = apply_filters( $this->func . '_sysinfo_after_site_info', $return );
114
-
115
- // Can we determine the site's host?
116
- if( $host ) {
117
- $return .= "\n" . '-- Hosting Provider' . "\n\n";
118
- $return .= 'Host: ' . $host . "\n";
119
-
120
- $return = apply_filters( $this->func . '_sysinfo_after_host_info', $return );
121
- }
122
-
123
- // The local users' browser information, handled by the Browser class
124
- $return .= "\n" . '-- User Browser' . "\n\n";
125
- $return .= $browser;
126
-
127
- $return = apply_filters( $this->func . '_sysinfo_after_user_browser', $return );
128
-
129
- // WordPress configuration
130
- $return .= "\n" . '-- WordPress Configuration' . "\n\n";
131
- $return .= 'Version: ' . get_bloginfo( 'version' ) . "\n";
132
- $return .= 'Language: ' . ( defined( 'WPLANG' ) && WPLANG ? WPLANG : 'en_US' ) . "\n";
133
- $return .= 'Permalink Structure: ' . ( get_option( 'permalink_structure' ) ? get_option( 'permalink_structure' ) : 'Default' ) . "\n";
134
- $return .= 'Active Theme: ' . $theme . "\n";
135
- $return .= 'Show On Front: ' . get_option( 'show_on_front' ) . "\n";
136
-
137
- // Only show page specs if frontpage is set to 'page'
138
- if( get_option( 'show_on_front' ) == 'page' ) {
139
- $front_page_id = get_option( 'page_on_front' );
140
- $blog_page_id = get_option( 'page_for_posts' );
141
-
142
- $return .= 'Page On Front: ' . ( $front_page_id != 0 ? get_the_title( $front_page_id ) . ' (#' . $front_page_id . ')' : 'Unset' ) . "\n";
143
- $return .= 'Page For Posts: ' . ( $blog_page_id != 0 ? get_the_title( $blog_page_id ) . ' (#' . $blog_page_id . ')' : 'Unset' ) . "\n";
144
- }
145
-
146
- // Make sure wp_remote_post() is working
147
- $request['cmd'] = '_notify-validate';
148
-
149
- $params = array(
150
- 'sslverify' => false,
151
- 'timeout' => 60,
152
- 'user-agent' => 'S214-Settings/' . $this->version,
153
- 'body' => $request
154
- );
155
-
156
- $response = wp_remote_post( 'https://www.paypal.com/cgi-bin/webscr', $params );
157
-
158
- if( ! is_wp_error( $response ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 ) {
159
- $WP_REMOTE_POST = 'wp_remote_post() works';
160
- } else {
161
- $WP_REMOTE_POST = 'wp_remote_post() does not work';
162
- }
163
-
164
- $return .= 'Remote Post: ' . $WP_REMOTE_POST . "\n";
165
- $return .= 'Table Prefix: ' . 'Length: ' . strlen( $wpdb->prefix ) . ' Status: ' . ( strlen( $wpdb->prefix ) > 16 ? 'ERROR: Too long' : 'Acceptable' ) . "\n";
166
- $return .= 'WP_DEBUG: ' . ( defined( 'WP_DEBUG' ) ? WP_DEBUG ? 'Enabled' : 'Disabled' : 'Not set' ) . "\n";
167
- $return .= 'Memory Limit: ' . WP_MEMORY_LIMIT . "\n";
168
- $return .= 'Registered Post Stati: ' . implode( ', ', get_post_stati() ) . "\n";
169
-
170
- $return = apply_filters( $this->func . '_sysinfo_after_wordpress_config', $return );
171
-
172
- // Get plugins that have an update
173
- $updates = get_plugin_updates();
174
-
175
- // Must-use plugins
176
- // NOTE: MU plugins can't show updates!
177
- $muplugins = get_mu_plugins();
178
- if( count( $muplugins > 0 ) ) {
179
- $return .= "\n" . '-- Must-Use Plugins' . "\n\n";
180
-
181
- foreach( $muplugins as $plugin => $plugin_data ) {
182
- $return .= $plugin_data['Name'] . ': ' . $plugin_data['Version'] . "\n";
183
- }
184
-
185
- $return = apply_filters( $this->func . '_sysinfo_after_wordpress_mu_plugins', $return );
186
- }
187
-
188
- // WordPress active plugins
189
- $return .= "\n" . '-- WordPress Active Plugins' . "\n\n";
190
-
191
- $plugins = get_plugins();
192
- $active_plugins = get_option( 'active_plugins', array() );
193
-
194
- foreach( $plugins as $plugin_path => $plugin ) {
195
- if( ! in_array( $plugin_path, $active_plugins ) ) {
196
- continue;
197
- }
198
-
199
- $update = ( array_key_exists( $plugin_path, $updates ) ) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : '';
200
- $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
201
- }
202
-
203
- $return = apply_filters( $this->func . '_sysinfo_after_wordpress_plugins', $return );
204
-
205
- // WordPress inactive plugins
206
- $return .= "\n" . '-- WordPress Inactive Plugins' . "\n\n";
207
-
208
- foreach( $plugins as $plugin_path => $plugin ) {
209
- if( in_array( $plugin_path, $active_plugins ) ) {
210
- continue;
211
- }
212
-
213
- $update = ( array_key_exists( $plugin_path, $updates ) ) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : '';
214
- $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
215
- }
216
-
217
- $return = apply_filters( $this->func . '_sysinfo_after_wordpress_plugins_inactive', $return );
218
-
219
- if( is_multisite() ) {
220
- // WordPress Multisite active plugins
221
- $return .= "\n" . '-- Network Active Plugins' . "\n\n";
222
-
223
- $plugins = wp_get_active_network_plugins();
224
- $active_plugins = get_site_option( 'active_sitewide_plugins', array() );
225
-
226
- foreach( $plugins as $plugin_path ) {
227
- $plugin_base = plugin_basename( $plugin_path );
228
-
229
- if( ! array_key_exists( $plugin_base, $active_plugins ) ) {
230
- continue;
231
- }
232
-
233
- $update = ( array_key_exists( $plugin_path, $updates ) ) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : '';
234
- $plugin = get_plugin_data( $plugin_path );
235
- $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
236
- }
237
-
238
- $return = apply_filters( $this->func . '_sysinfo_after_wordpress_ms_plugins', $return );
239
- }
240
-
241
- // Server configuration (really just versioning)
242
- $return .= "\n" . '-- Webserver Configuration' . "\n\n";
243
- $return .= 'PHP Version: ' . PHP_VERSION . "\n";
244
- $return .= 'MySQL Version: ' . $wpdb->db_version() . "\n";
245
- $return .= 'Webserver Info: ' . $_SERVER['SERVER_SOFTWARE'] . "\n";
246
-
247
- $return = apply_filters( $this->func . '_sysinfo_after_webserver_config', $return );
248
-
249
- // PHP configs... now we're getting to the important stuff
250
- $return .= "\n" . '-- PHP Configuration' . "\n\n";
251
- $return .= 'Safe Mode: ' . ( ini_get( 'safe_mode' ) ? 'Enabled' : 'Disabled' . "\n" );
252
- $return .= 'Memory Limit: ' . ini_get( 'memory_limit' ) . "\n";
253
- $return .= 'Upload Max Size: ' . ini_get( 'upload_max_filesize' ) . "\n";
254
- $return .= 'Post Max Size: ' . ini_get( 'post_max_size' ) . "\n";
255
- $return .= 'Upload Max Filesize: ' . ini_get( 'upload_max_filesize' ) . "\n";
256
- $return .= 'Time Limit: ' . ini_get( 'max_execution_time' ) . "\n";
257
- $return .= 'Max Input Vars: ' . ini_get( 'max_input_vars' ) . "\n";
258
- $return .= 'Display Errors: ' . ( ini_get( 'display_errors' ) ? 'On (' . ini_get( 'display_errors' ) . ')' : 'N/A' ) . "\n";
259
-
260
- $return = apply_filters( $this->func . '_sysinfo_after_php_config', $return );
261
-
262
- // PHP extensions and such
263
- $return .= "\n" . '-- PHP Extensions' . "\n\n";
264
- $return .= 'cURL: ' . ( function_exists( 'curl_init' ) ? 'Supported' : 'Not Supported' ) . "\n";
265
- $return .= 'fsockopen: ' . ( function_exists( 'fsockopen' ) ? 'Supported' : 'Not Supported' ) . "\n";
266
- $return .= 'SOAP Client: ' . ( class_exists( 'SoapClient' ) ? 'Installed' : 'Not Installed' ) . "\n";
267
- $return .= 'Suhosin: ' . ( extension_loaded( 'suhosin' ) ? 'Installed' : 'Not Installed' ) . "\n";
268
-
269
- $return = apply_filters( $this->func . '_sysinfo_after_php_ext', $return );
270
-
271
- $return .= "\n" . '### End System Info ###';
272
-
273
- return $return;
274
- }
275
-
276
-
277
- /**
278
- * Generates a System Info download file
279
- *
280
- * @param public
281
- * @since 1.1.0
282
- * @return void
283
- */
284
- public function download_system_info() {
285
- nocache_headers();
286
-
287
- header( 'Content-Type: text/plain' );
288
- header( 'Content-Disposition: attachment; filename="' . $this->slug . '-system-info.txt"' );
289
-
290
- echo wp_strip_all_tags( $this->get_system_info() );
291
- die();
292
- }
293
-
294
-
295
- /**
296
- * Get AJAX URL
297
- *
298
- * @access public
299
- * @since 1.1.0
300
- * @return string URL to the AJAX file to call during AJAX requests.
301
- */
302
- function get_ajax_url() {
303
- $scheme = defined( 'FORCE_SSL_ADMIN' ) && FORCE_SSL_ADMIN ? 'https' : 'admin';
304
-
305
- $current_url = $this->get_current_page_url();
306
- $ajax_url = admin_url( 'admin-ajax.php', $scheme );
307
-
308
- if( preg_match( '/^https/', $current_url ) && ! preg_match( '/^https/', $ajax_url ) ) {
309
- $ajax_url = preg_replace( '/^http/', 'https', $ajax_url );
310
- }
311
-
312
- return apply_filters( $this->func . '_ajax_url', $ajax_url );
313
- }
314
-
315
-
316
- /**
317
- * Get the current page URL
318
- *
319
- * @access public
320
- * @since 1.1.0
321
- * @param bool $nocache If we should bust cache on the returned URL
322
- * @return string $page_url Current page URL
323
- */
324
- function get_current_page_url( $nocache = false ) {
325
- global $wp;
326
-
327
- if( get_option( 'permalink_structure' ) ) {
328
- $base = trailingslashit( home_url( $wp->request ) );
329
- } else {
330
- $base = add_query_arg( $wp->query_string, '', trailingslashit( home_url( $wp->request ) ) );
331
- $base = remove_query_arg( array( 'post_type', 'name' ), $base );
332
- }
333
-
334
- $scheme = is_ssl() ? 'https' : 'http';
335
- $uri = set_url_scheme( $base, $scheme );
336
-
337
- if( is_front_page() ) {
338
- $uri = home_url( '/' );
339
- }
340
-
341
- $uri = apply_filters( $this->func . '_get_current_page_url', $uri );
342
-
343
- if ( $nocache ) {
344
- $uri = $this->add_cache_busting( $uri );
345
- }
346
-
347
- return $uri;
348
- }
349
-
350
-
351
- /**
352
- * Adds the 'nocache' parameter to the provided URL
353
- *
354
- * @access public
355
- * @since 1.1.0
356
- * @param string $url The URL being requested
357
- * @return string The URL with cache busting added or not
358
- */
359
- function add_cache_busting( $url = '' ) {
360
- if( $this->is_caching_plugin_active() ) {
361
- $url = add_query_arg( 'nocache', 'true', $url );
362
- }
363
-
364
- return $url;
365
- }
366
-
367
-
368
- /**
369
- * Checks if a caching plugin is active
370
- *
371
- * @access public
372
- * @since 1.1.0
373
- * @return bool $caching True if caching plugin is enabled, false otherwise
374
- */
375
- function is_caching_plugin_active() {
376
- $caching = ( function_exists( 'wpsupercache_site_admin' ) || defined( 'W3TC' ) || function_exists( 'rocket_init' ) );
377
- return apply_filters( $this->func . '_is_caching_plugin_active', $caching );
378
- }
379
-
380
-
381
- /**
382
- * Get user host
383
- *
384
- * @access public
385
- * @since 1.1.0
386
- * @return mixed string $host if detected, fallback data otherwise
387
- */
388
- function get_host() {
389
- if( defined( 'WPE_APIKEY' ) ) {
390
- $host = 'WP Engine';
391
- } elseif( defined( 'PAGELYBIN' ) ) {
392
- $host = 'Pagely';
393
- } elseif( DB_HOST == 'localhost:/tmp/mysql5.sock' ) {
394
- $host = 'ICDSoft';
395
- } elseif( DB_HOST == 'mysqlv5' ) {
396
- $host = 'NetworkSolutions';
397
- } elseif( strpos( DB_HOST, 'ipagemysql.com' ) !== false ) {
398
- $host = 'iPage';
399
- } elseif( strpos( DB_HOST, 'ipowermysql.com' ) !== false ) {
400
- $host = 'IPower';
401
- } elseif( strpos( DB_HOST, '.gridserver.com' ) !== false ) {
402
- $host = 'MediaTemple Grid';
403
- } elseif( strpos( DB_HOST, '.pair.com' ) !== false ) {
404
- $host = 'pair Networks';
405
- } elseif( strpos( DB_HOST, '.stabletransit.com' ) !== false ) {
406
- $host = 'Rackspace Cloud';
407
- } elseif( strpos( DB_HOST, '.sysfix.eu' ) !== false ) {
408
- $host = 'SysFix.eu Power Hosting';
409
- } elseif( strpos( $_SERVER['SERVER_NAME'], 'Flywheel' ) !== false ) {
410
- $host = 'Flywheel';
411
- } else {
412
- // Adding a general fallback for data gathering
413
- $host = 'DBH: ' . DB_HOST . ', SRV: ' . $_SERVER['SERVER_NAME'];
414
- }
415
-
416
- return $host;
417
- }
418
-
419
-
420
- /**
421
- * Get user IP
422
- *
423
- * @access public
424
- * @since 1.1.0
425
- * @return string $ip User's IP address
426
- */
427
- function get_ip() {
428
- $ip = '127.0.0.1';
429
-
430
- if( ! empty( $_SERVER['HTTP_CLIENT_IP'] ) ) {
431
- // Check if IP is from share internet
432
- $ip = $_SERVER['HTTP_CLIENT_IP'];
433
- } elseif( ! empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
434
- // Check if IP is passed from proxy
435
- $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
436
- } elseif( ! empty( $_SERVER['REMOTE_ADDR'] ) ) {
437
- $ip = $_SERVER['REMOTE_ADDR'];
438
- }
439
-
440
- return apply_filters( $this->func . '_get_ip', $ip );
441
- }
442
- }