Version Description
- 2020-03-06 =
- Added additional request sanitization
- Tweaked remote calling css files
Download this release
Release Info
Developer | wpdesk |
Plugin | Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager |
Version | 2.4.0 |
Comparing to | |
See all releases |
Code changes from version 2.3.4 to 2.4.0
- assets/css/jquery-ui.css +474 -0
- assets/css/jquery-ui.min.css +4 -0
- classes/class-flexible-checkout-fields-plugin.php +15 -32
- classes/user-profile.php +1 -1
- composer.lock +405 -264
- flexible-checkout-fields.php +4 -4
- readme.txt +5 -1
- vendor/autoload.php +1 -1
- vendor/composer/autoload_classmap.php +12 -4
- vendor/composer/autoload_real.php +4 -4
- vendor/composer/autoload_static.php +16 -8
- vendor/composer/installed.json +7 -7
- vendor/psr/log/Psr/Log/LoggerInterface.php +2 -0
- vendor/psr/log/Psr/Log/LoggerTrait.php +2 -0
- vendor/psr/log/Psr/Log/NullLogger.php +2 -0
- vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php +3 -1
- vendor/psr/log/Psr/Log/Test/TestLogger.php +1 -0
- vendor/psr/log/composer.json +1 -1
- vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php +2 -1
- vendor_prefixed/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php +3 -2
- vendor_prefixed/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php +5 -2
- vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LineFormatter.php +1 -1
- vendor_prefixed/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php +1 -1
- vendor_prefixed/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php +4 -106
- vendor_prefixed/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php +5 -4
- vendor_prefixed/monolog/monolog/src/Monolog/Handler/BufferHandler.php +16 -0
- vendor_prefixed/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php +3 -2
- vendor_prefixed/monolog/monolog/src/Monolog/Handler/CubeHandler.php +3 -2
- vendor_prefixed/monolog/monolog/src/Monolog/Handler/FilterHandler.php +38 -10
- vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php +39 -13
- vendor_prefixed/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php +2 -1
- vendor_prefixed/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php +2 -1
- vendor_prefixed/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php +2 -1
- vendor_prefixed/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php +2 -1
- vendor_prefixed/monolog/monolog/src/Monolog/Handler/RedisHandler.php +2 -1
- vendor_prefixed/monolog/monolog/src/Monolog/Handler/SamplingHandler.php +36 -10
- vendor_prefixed/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php +6 -1
- vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackHandler.php +2 -1
- vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php +2 -1
- vendor_prefixed/monolog/monolog/src/Monolog/Logger.php +7 -2
- vendor_prefixed/monolog/monolog/src/Monolog/Utils.php +114 -0
- vendor_prefixed/wpdesk/wp-basic-requirements/composer.json +7 -0
- vendor_prefixed/wpdesk/wp-basic-requirements/lang/wp-basic-requirements-pl_PL.mo +0 -0
- vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker.php +108 -9
- vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker_Factory.php +5 -28
- vendor_prefixed/wpdesk/wp-builder/src/Plugin/AbstractPlugin.php +114 -45
- vendor_prefixed/wpdesk/wp-builder/src/Plugin/Activateable.php +20 -0
- vendor_prefixed/wpdesk/wp-builder/src/Plugin/ActivationAware.php +1 -1
- vendor_prefixed/wpdesk/wp-builder/src/Plugin/Conditional.php +20 -0
- vendor_prefixed/wpdesk/wp-builder/src/Plugin/Deactivateable.php +20 -0
- vendor_prefixed/wpdesk/wp-builder/src/Plugin/Hookable.php +1 -1
- vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookableParent.php +7 -1
- vendor_prefixed/wpdesk/wp-builder/src/Plugin/SlimPlugin.php +19 -0
- vendor_prefixed/wpdesk/wp-builder/src/Storage/StorageFactory.php +1 -1
- vendor_prefixed/wpdesk/wp-builder/src/Storage/WordpressFilterStorage.php +41 -0
- vendor_prefixed/wpdesk/wp-notice/src/WPDesk/Notice/AjaxHandler.php +2 -2
- vendor_prefixed/wpdesk/wp-plugin-flow/composer.json +12 -4
- vendor_prefixed/wpdesk/wp-plugin-flow/lang/wp-plugin-flow-pl_PL.mo +0 -0
- vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/BuilderTrait.php +69 -0
- vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/{HelperInstanceAsFilter.php → HelperInstanceAsFilterTrait.php} +11 -2
- vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/InitializationStrategy.php +15 -3
- vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/{PluginDisablerByFile.php → PluginDisablerByFileTrait.php} +1 -1
- vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/Simple/SimpleFactory.php +1 -1
- vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/Simple/SimpleFreeStrategy.php +32 -13
- vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/Simple/{SimpleStrategy.php → SimplePaidStrategy.php} +39 -16
- vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/{TrackerInstanceAsFilter.php → TrackerInstanceAsFilterTrait.php} +1 -1
- vendor_prefixed/wpdesk/wp-plugin-flow/src/PluginBootstrap.php +45 -37
- vendor_prefixed/wpdesk/wp-wpdesk-helper/composer.json +10 -2
- vendor_prefixed/wpdesk/wp-wpdesk-helper/lang/wpdesk-helper-pl_PL.mo +0 -0
- vendor_prefixed/wpdesk/wp-wpdesk-helper/lang/wpdesk-tracker-pl_PL.mo +0 -0
- vendor_prefixed/wpdesk/wp-wpdesk-helper/src/HelperRemoveNotice.php +58 -0
- vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/LogsIntegration.php +5 -5
- vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/TrackerIntegration.php +4 -4
- vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Page/LibraryDebugPage.php +1 -1
- vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Page/SettingsPage.php +2 -2
- vendor_prefixed/wpdesk/wp-wpdesk-helper/src/PrefixedHelperAsLibrary.php +14 -24
- vendor_prefixed/wpdesk/wp-wpdesk-license/composer.json +7 -0
- vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php +2 -17
- vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php +14 -2
- vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php +19 -14
- vendor_prefixed/wpdesk/wp-wpdesk-license/src/InstalledPlugins.php +2 -1
- vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/LicenseActivation.php +13 -16
- vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/LicenseDeactivation.php +1 -1
- vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/views/class-wpdesk-helper-list-table.php +4 -4
- vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/views/license-actions.php +6 -6
- vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/views/licenses.php +13 -2
- vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/LicensePage.php +5 -5
- vendor_prefixed/wpdesk/wp-wpdesk-license/src/ServerAddressRepository.php +77 -0
- vendor_prefixed/wpdesk/wp-wpdesk-tracker/composer.json +7 -0
- vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/class-wpdesk-tracker.php +11 -16
- vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/lang/wpdesk-tracker-pl_PL.mo +0 -0
assets/css/jquery-ui.css
ADDED
@@ -0,0 +1,474 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! jQuery UI - v1.9.2 - 2012-11-23
|
2 |
+
* http://jqueryui.com
|
3 |
+
* Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css
|
4 |
+
* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
|
5 |
+
|
6 |
+
/* Layout helpers
|
7 |
+
----------------------------------*/
|
8 |
+
.ui-helper-hidden { display: none; }
|
9 |
+
.ui-helper-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
|
10 |
+
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
11 |
+
.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
|
12 |
+
.ui-helper-clearfix:after { clear: both; }
|
13 |
+
.ui-helper-clearfix { zoom: 1; }
|
14 |
+
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
15 |
+
|
16 |
+
|
17 |
+
/* Interaction Cues
|
18 |
+
----------------------------------*/
|
19 |
+
.ui-state-disabled { cursor: default !important; }
|
20 |
+
|
21 |
+
|
22 |
+
/* Icons
|
23 |
+
----------------------------------*/
|
24 |
+
|
25 |
+
/* states and images */
|
26 |
+
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
27 |
+
|
28 |
+
|
29 |
+
/* Misc visuals
|
30 |
+
----------------------------------*/
|
31 |
+
|
32 |
+
/* Overlays */
|
33 |
+
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
34 |
+
|
35 |
+
.ui-accordion .ui-accordion-header { display: block; cursor: pointer; position: relative; margin-top: 2px; padding: .5em .5em .5em .7em; zoom: 1; }
|
36 |
+
.ui-accordion .ui-accordion-icons { padding-left: 2.2em; }
|
37 |
+
.ui-accordion .ui-accordion-noicons { padding-left: .7em; }
|
38 |
+
.ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }
|
39 |
+
.ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
|
40 |
+
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }
|
41 |
+
|
42 |
+
.ui-autocomplete {
|
43 |
+
position: absolute;
|
44 |
+
top: 0;
|
45 |
+
left: 0;
|
46 |
+
cursor: default;
|
47 |
+
}
|
48 |
+
|
49 |
+
/* workarounds */
|
50 |
+
* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
|
51 |
+
|
52 |
+
.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
|
53 |
+
.ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }
|
54 |
+
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
|
55 |
+
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
|
56 |
+
.ui-button-icons-only { width: 3.4em; }
|
57 |
+
button.ui-button-icons-only { width: 3.7em; }
|
58 |
+
|
59 |
+
/*button text element */
|
60 |
+
.ui-button .ui-button-text { display: block; line-height: 1.4; }
|
61 |
+
.ui-button-text-only .ui-button-text { padding: .4em 1em; }
|
62 |
+
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
|
63 |
+
.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
|
64 |
+
.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
|
65 |
+
.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
|
66 |
+
/* no icon support for input elements, provide padding by default */
|
67 |
+
input.ui-button { padding: .4em 1em; }
|
68 |
+
|
69 |
+
/*button icon element(s) */
|
70 |
+
.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; }
|
71 |
+
.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
|
72 |
+
.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; }
|
73 |
+
.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; }
|
74 |
+
.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
|
75 |
+
|
76 |
+
/*button sets*/
|
77 |
+
.ui-buttonset { margin-right: 7px; }
|
78 |
+
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
|
79 |
+
|
80 |
+
/* workarounds */
|
81 |
+
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
|
82 |
+
|
83 |
+
.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
|
84 |
+
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
|
85 |
+
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
|
86 |
+
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
|
87 |
+
.ui-datepicker .ui-datepicker-prev { left:2px; }
|
88 |
+
.ui-datepicker .ui-datepicker-next { right:2px; }
|
89 |
+
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
|
90 |
+
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
|
91 |
+
.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; }
|
92 |
+
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
|
93 |
+
.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
|
94 |
+
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
|
95 |
+
.ui-datepicker select.ui-datepicker-month,
|
96 |
+
.ui-datepicker select.ui-datepicker-year { width: 49%;}
|
97 |
+
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
|
98 |
+
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
|
99 |
+
.ui-datepicker td { border: 0; padding: 1px; }
|
100 |
+
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
|
101 |
+
.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; }
|
102 |
+
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
|
103 |
+
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
|
104 |
+
|
105 |
+
/* with multiple calendars */
|
106 |
+
.ui-datepicker.ui-datepicker-multi { width:auto; }
|
107 |
+
.ui-datepicker-multi .ui-datepicker-group { float:left; }
|
108 |
+
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
|
109 |
+
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
|
110 |
+
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
|
111 |
+
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
|
112 |
+
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
|
113 |
+
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
|
114 |
+
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
|
115 |
+
.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
|
116 |
+
|
117 |
+
/* RTL support */
|
118 |
+
.ui-datepicker-rtl { direction: rtl; }
|
119 |
+
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
|
120 |
+
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
|
121 |
+
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
|
122 |
+
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
|
123 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
|
124 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
|
125 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
|
126 |
+
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
|
127 |
+
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
128 |
+
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
129 |
+
|
130 |
+
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
|
131 |
+
.ui-datepicker-cover {
|
132 |
+
position: absolute; /*must have*/
|
133 |
+
z-index: -1; /*must have*/
|
134 |
+
filter: mask(); /*must have*/
|
135 |
+
top: -4px; /*must have*/
|
136 |
+
left: -4px; /*must have*/
|
137 |
+
width: 200px; /*must have*/
|
138 |
+
height: 200px; /*must have*/
|
139 |
+
}
|
140 |
+
.ui-dialog { position: absolute; top: 0; left: 0; padding: .2em; width: 300px; overflow: hidden; }
|
141 |
+
.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
|
142 |
+
.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
|
143 |
+
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
|
144 |
+
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
|
145 |
+
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
|
146 |
+
.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
|
147 |
+
.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; }
|
148 |
+
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
|
149 |
+
.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
|
150 |
+
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
|
151 |
+
.ui-draggable .ui-dialog-titlebar { cursor: move; }
|
152 |
+
|
153 |
+
.ui-menu { list-style:none; padding: 2px; margin: 0; display:block; outline: none; }
|
154 |
+
.ui-menu .ui-menu { margin-top: -3px; position: absolute; }
|
155 |
+
.ui-menu .ui-menu-item { margin: 0; padding: 0; zoom: 1; width: 100%; }
|
156 |
+
.ui-menu .ui-menu-divider { margin: 5px -2px 5px -2px; height: 0; font-size: 0; line-height: 0; border-width: 1px 0 0 0; }
|
157 |
+
.ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; zoom: 1; font-weight: normal; }
|
158 |
+
.ui-menu .ui-menu-item a.ui-state-focus,
|
159 |
+
.ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; }
|
160 |
+
|
161 |
+
.ui-menu .ui-state-disabled { font-weight: normal; margin: .4em 0 .2em; line-height: 1.5; }
|
162 |
+
.ui-menu .ui-state-disabled a { cursor: default; }
|
163 |
+
|
164 |
+
/* icon support */
|
165 |
+
.ui-menu-icons { position: relative; }
|
166 |
+
.ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; }
|
167 |
+
|
168 |
+
/* left-aligned */
|
169 |
+
.ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; }
|
170 |
+
|
171 |
+
/* right-aligned */
|
172 |
+
.ui-menu .ui-menu-icon { position: static; float: right; }
|
173 |
+
|
174 |
+
.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
|
175 |
+
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
|
176 |
+
.ui-resizable { position: relative;}
|
177 |
+
.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }
|
178 |
+
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
|
179 |
+
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
|
180 |
+
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
|
181 |
+
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
|
182 |
+
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
|
183 |
+
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
|
184 |
+
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
|
185 |
+
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
|
186 |
+
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
|
187 |
+
.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
|
188 |
+
|
189 |
+
.ui-slider { position: relative; text-align: left; }
|
190 |
+
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
|
191 |
+
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
|
192 |
+
|
193 |
+
.ui-slider-horizontal { height: .8em; }
|
194 |
+
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
|
195 |
+
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
|
196 |
+
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
|
197 |
+
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
|
198 |
+
|
199 |
+
.ui-slider-vertical { width: .8em; height: 100px; }
|
200 |
+
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
|
201 |
+
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
|
202 |
+
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
|
203 |
+
.ui-slider-vertical .ui-slider-range-max { top: 0; }
|
204 |
+
.ui-spinner { position:relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; }
|
205 |
+
.ui-spinner-input { border: none; background: none; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; }
|
206 |
+
.ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; text-align: center; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; }
|
207 |
+
.ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* more specificity required here to overide default borders */
|
208 |
+
.ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } /* vertical centre icon */
|
209 |
+
.ui-spinner-up { top: 0; }
|
210 |
+
.ui-spinner-down { bottom: 0; }
|
211 |
+
|
212 |
+
/* TR overrides */
|
213 |
+
.ui-spinner .ui-icon-triangle-1-s {
|
214 |
+
/* need to fix icons sprite */
|
215 |
+
background-position:-65px -16px;
|
216 |
+
}
|
217 |
+
|
218 |
+
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
219 |
+
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
|
220 |
+
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom: 0; padding: 0; white-space: nowrap; }
|
221 |
+
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
|
222 |
+
.ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; }
|
223 |
+
.ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; }
|
224 |
+
.ui-tabs .ui-tabs-nav li a, .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
225 |
+
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
|
226 |
+
|
227 |
+
.ui-tooltip {
|
228 |
+
padding: 8px;
|
229 |
+
position: absolute;
|
230 |
+
z-index: 9999;
|
231 |
+
max-width: 300px;
|
232 |
+
-webkit-box-shadow: 0 0 5px #aaa;
|
233 |
+
box-shadow: 0 0 5px #aaa;
|
234 |
+
}
|
235 |
+
/* Fades and background-images don't work well together in IE6, drop the image */
|
236 |
+
* html .ui-tooltip {
|
237 |
+
background-image: none;
|
238 |
+
}
|
239 |
+
body .ui-tooltip { border-width: 2px; }
|
240 |
+
|
241 |
+
/* Component containers
|
242 |
+
----------------------------------*/
|
243 |
+
.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
|
244 |
+
.ui-widget .ui-widget { font-size: 1em; }
|
245 |
+
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
|
246 |
+
.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
|
247 |
+
.ui-widget-content a { color: #222222; }
|
248 |
+
.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
|
249 |
+
.ui-widget-header a { color: #222222; }
|
250 |
+
|
251 |
+
/* Interaction states
|
252 |
+
----------------------------------*/
|
253 |
+
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
|
254 |
+
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
|
255 |
+
.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 #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
|
256 |
+
.ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited { color: #212121; text-decoration: none; }
|
257 |
+
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
|
258 |
+
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
|
259 |
+
|
260 |
+
/* Interaction Cues
|
261 |
+
----------------------------------*/
|
262 |
+
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
|
263 |
+
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
|
264 |
+
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
|
265 |
+
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
|
266 |
+
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
|
267 |
+
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
|
268 |
+
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
|
269 |
+
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
|
270 |
+
.ui-state-disabled .ui-icon { filter:Alpha(Opacity=35); } /* For IE8 - See #6059 */
|
271 |
+
|
272 |
+
/* Icons
|
273 |
+
----------------------------------*/
|
274 |
+
|
275 |
+
/* states and images */
|
276 |
+
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
|
277 |
+
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
|
278 |
+
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
|
279 |
+
.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
|
280 |
+
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
|
281 |
+
.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
|
282 |
+
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
|
283 |
+
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
|
284 |
+
|
285 |
+
/* positioning */
|
286 |
+
.ui-icon-carat-1-n { background-position: 0 0; }
|
287 |
+
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
288 |
+
.ui-icon-carat-1-e { background-position: -32px 0; }
|
289 |
+
.ui-icon-carat-1-se { background-position: -48px 0; }
|
290 |
+
.ui-icon-carat-1-s { background-position: -64px 0; }
|
291 |
+
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
292 |
+
.ui-icon-carat-1-w { background-position: -96px 0; }
|
293 |
+
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
294 |
+
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
295 |
+
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
296 |
+
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
297 |
+
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
298 |
+
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
299 |
+
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
300 |
+
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
301 |
+
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
302 |
+
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
303 |
+
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
304 |
+
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
305 |
+
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
306 |
+
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
307 |
+
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
308 |
+
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
309 |
+
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
310 |
+
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
311 |
+
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
312 |
+
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
313 |
+
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
314 |
+
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
315 |
+
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
316 |
+
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
317 |
+
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
318 |
+
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
319 |
+
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
320 |
+
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
321 |
+
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
322 |
+
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
323 |
+
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
324 |
+
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
325 |
+
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
326 |
+
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
327 |
+
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
328 |
+
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
329 |
+
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
330 |
+
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
331 |
+
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
332 |
+
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
333 |
+
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
334 |
+
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
335 |
+
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
336 |
+
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
337 |
+
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
338 |
+
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
339 |
+
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
340 |
+
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
341 |
+
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
342 |
+
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
343 |
+
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
344 |
+
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
345 |
+
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
346 |
+
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
347 |
+
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
348 |
+
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
349 |
+
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
350 |
+
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
351 |
+
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
352 |
+
.ui-icon-extlink { background-position: -32px -80px; }
|
353 |
+
.ui-icon-newwin { background-position: -48px -80px; }
|
354 |
+
.ui-icon-refresh { background-position: -64px -80px; }
|
355 |
+
.ui-icon-shuffle { background-position: -80px -80px; }
|
356 |
+
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
357 |
+
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
358 |
+
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
359 |
+
.ui-icon-folder-open { background-position: -16px -96px; }
|
360 |
+
.ui-icon-document { background-position: -32px -96px; }
|
361 |
+
.ui-icon-document-b { background-position: -48px -96px; }
|
362 |
+
.ui-icon-note { background-position: -64px -96px; }
|
363 |
+
.ui-icon-mail-closed { background-position: -80px -96px; }
|
364 |
+
.ui-icon-mail-open { background-position: -96px -96px; }
|
365 |
+
.ui-icon-suitcase { background-position: -112px -96px; }
|
366 |
+
.ui-icon-comment { background-position: -128px -96px; }
|
367 |
+
.ui-icon-person { background-position: -144px -96px; }
|
368 |
+
.ui-icon-print { background-position: -160px -96px; }
|
369 |
+
.ui-icon-trash { background-position: -176px -96px; }
|
370 |
+
.ui-icon-locked { background-position: -192px -96px; }
|
371 |
+
.ui-icon-unlocked { background-position: -208px -96px; }
|
372 |
+
.ui-icon-bookmark { background-position: -224px -96px; }
|
373 |
+
.ui-icon-tag { background-position: -240px -96px; }
|
374 |
+
.ui-icon-home { background-position: 0 -112px; }
|
375 |
+
.ui-icon-flag { background-position: -16px -112px; }
|
376 |
+
.ui-icon-calendar { background-position: -32px -112px; }
|
377 |
+
.ui-icon-cart { background-position: -48px -112px; }
|
378 |
+
.ui-icon-pencil { background-position: -64px -112px; }
|
379 |
+
.ui-icon-clock { background-position: -80px -112px; }
|
380 |
+
.ui-icon-disk { background-position: -96px -112px; }
|
381 |
+
.ui-icon-calculator { background-position: -112px -112px; }
|
382 |
+
.ui-icon-zoomin { background-position: -128px -112px; }
|
383 |
+
.ui-icon-zoomout { background-position: -144px -112px; }
|
384 |
+
.ui-icon-search { background-position: -160px -112px; }
|
385 |
+
.ui-icon-wrench { background-position: -176px -112px; }
|
386 |
+
.ui-icon-gear { background-position: -192px -112px; }
|
387 |
+
.ui-icon-heart { background-position: -208px -112px; }
|
388 |
+
.ui-icon-star { background-position: -224px -112px; }
|
389 |
+
.ui-icon-link { background-position: -240px -112px; }
|
390 |
+
.ui-icon-cancel { background-position: 0 -128px; }
|
391 |
+
.ui-icon-plus { background-position: -16px -128px; }
|
392 |
+
.ui-icon-plusthick { background-position: -32px -128px; }
|
393 |
+
.ui-icon-minus { background-position: -48px -128px; }
|
394 |
+
.ui-icon-minusthick { background-position: -64px -128px; }
|
395 |
+
.ui-icon-close { background-position: -80px -128px; }
|
396 |
+
.ui-icon-closethick { background-position: -96px -128px; }
|
397 |
+
.ui-icon-key { background-position: -112px -128px; }
|
398 |
+
.ui-icon-lightbulb { background-position: -128px -128px; }
|
399 |
+
.ui-icon-scissors { background-position: -144px -128px; }
|
400 |
+
.ui-icon-clipboard { background-position: -160px -128px; }
|
401 |
+
.ui-icon-copy { background-position: -176px -128px; }
|
402 |
+
.ui-icon-contact { background-position: -192px -128px; }
|
403 |
+
.ui-icon-image { background-position: -208px -128px; }
|
404 |
+
.ui-icon-video { background-position: -224px -128px; }
|
405 |
+
.ui-icon-script { background-position: -240px -128px; }
|
406 |
+
.ui-icon-alert { background-position: 0 -144px; }
|
407 |
+
.ui-icon-info { background-position: -16px -144px; }
|
408 |
+
.ui-icon-notice { background-position: -32px -144px; }
|
409 |
+
.ui-icon-help { background-position: -48px -144px; }
|
410 |
+
.ui-icon-check { background-position: -64px -144px; }
|
411 |
+
.ui-icon-bullet { background-position: -80px -144px; }
|
412 |
+
.ui-icon-radio-on { background-position: -96px -144px; }
|
413 |
+
.ui-icon-radio-off { background-position: -112px -144px; }
|
414 |
+
.ui-icon-pin-w { background-position: -128px -144px; }
|
415 |
+
.ui-icon-pin-s { background-position: -144px -144px; }
|
416 |
+
.ui-icon-play { background-position: 0 -160px; }
|
417 |
+
.ui-icon-pause { background-position: -16px -160px; }
|
418 |
+
.ui-icon-seek-next { background-position: -32px -160px; }
|
419 |
+
.ui-icon-seek-prev { background-position: -48px -160px; }
|
420 |
+
.ui-icon-seek-end { background-position: -64px -160px; }
|
421 |
+
.ui-icon-seek-start { background-position: -80px -160px; }
|
422 |
+
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
423 |
+
.ui-icon-seek-first { background-position: -80px -160px; }
|
424 |
+
.ui-icon-stop { background-position: -96px -160px; }
|
425 |
+
.ui-icon-eject { background-position: -112px -160px; }
|
426 |
+
.ui-icon-volume-off { background-position: -128px -160px; }
|
427 |
+
.ui-icon-volume-on { background-position: -144px -160px; }
|
428 |
+
.ui-icon-power { background-position: 0 -176px; }
|
429 |
+
.ui-icon-signal-diag { background-position: -16px -176px; }
|
430 |
+
.ui-icon-signal { background-position: -32px -176px; }
|
431 |
+
.ui-icon-battery-0 { background-position: -48px -176px; }
|
432 |
+
.ui-icon-battery-1 { background-position: -64px -176px; }
|
433 |
+
.ui-icon-battery-2 { background-position: -80px -176px; }
|
434 |
+
.ui-icon-battery-3 { background-position: -96px -176px; }
|
435 |
+
.ui-icon-circle-plus { background-position: 0 -192px; }
|
436 |
+
.ui-icon-circle-minus { background-position: -16px -192px; }
|
437 |
+
.ui-icon-circle-close { background-position: -32px -192px; }
|
438 |
+
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
439 |
+
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
440 |
+
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
441 |
+
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
442 |
+
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
443 |
+
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
444 |
+
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
445 |
+
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
446 |
+
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
447 |
+
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
448 |
+
.ui-icon-circle-check { background-position: -208px -192px; }
|
449 |
+
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
450 |
+
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
451 |
+
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
452 |
+
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
453 |
+
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
454 |
+
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
455 |
+
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
456 |
+
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
457 |
+
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
458 |
+
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
459 |
+
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
460 |
+
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
461 |
+
|
462 |
+
|
463 |
+
/* Misc visuals
|
464 |
+
----------------------------------*/
|
465 |
+
|
466 |
+
/* Corner radius */
|
467 |
+
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
|
468 |
+
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
|
469 |
+
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
|
470 |
+
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
|
471 |
+
|
472 |
+
/* Overlays */
|
473 |
+
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .3;filter:Alpha(Opacity=30); }
|
474 |
+
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .3;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }
|
assets/css/jquery-ui.min.css
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
/*! jQuery UI - v1.9.2 - 2012-11-23
|
2 |
+
* http://jqueryui.com
|
3 |
+
* Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css
|
4 |
+
* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{zoom:1}.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-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;zoom:1}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto;zoom:1}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}* html .ui-autocomplete{width:1px}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;cursor:pointer;text-align:center;zoom:1;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height: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-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{position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px}.ui-dialog{position:absolute;top:0;left:0;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-menu{list-style:none;padding:2px;margin:0;display:block;outline:0}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;width:100%}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;zoom:1;font-weight:normal}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;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-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-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:0;background:0;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:0;border-bottom:0;border-right:0}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em;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:0;margin:1px .2em 0 0;border-bottom:0;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-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:0}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}* html .ui-tooltip{background-image:none}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}
|
classes/class-flexible-checkout-fields-plugin.php
CHANGED
@@ -897,47 +897,31 @@ class Flexible_Checkout_Fields_Plugin extends \FcfVendor\WPDesk\PluginBuilder\Pl
|
|
897 |
return $this->getCheckoutUserFields( $fields, 'order' );
|
898 |
}
|
899 |
|
|
|
|
|
|
|
|
|
|
|
900 |
function updateCheckoutFields( $order_id ) {
|
901 |
-
$shippingNotOverwrite = array(
|
902 |
-
'shipping_address_1',
|
903 |
-
'shipping_address_2',
|
904 |
-
'shipping_address_2',
|
905 |
-
'shipping_city',
|
906 |
-
'shipping_company',
|
907 |
-
'shipping_country',
|
908 |
-
'shipping_first_name',
|
909 |
-
'shipping_last_name',
|
910 |
-
'shipping_postcode',
|
911 |
-
'shipping_state',
|
912 |
-
);
|
913 |
-
|
914 |
$settings = $this->get_settings();
|
915 |
if ( ! empty( $settings ) ) {
|
916 |
-
$
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
array_keys( isset( $settings['order'] ) ? $settings['order'] : array() )
|
921 |
-
)
|
922 |
);
|
923 |
|
924 |
-
|
925 |
foreach ( $_POST as $key => $value ) {
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
}
|
931 |
-
if ( $save ) {
|
932 |
-
if ( array_key_exists( $key, $keys ) ) {
|
933 |
-
update_post_meta( $order_id, '_' . $key, $value );
|
934 |
}
|
935 |
}
|
936 |
}
|
937 |
}
|
938 |
|
939 |
do_action( 'flexible_checkout_fields_checkout_update_order_meta', $order_id );
|
940 |
-
|
941 |
}
|
942 |
|
943 |
public static function flexible_checkout_fields_section_settings( $key, $settings ) {
|
@@ -985,8 +969,7 @@ class Flexible_Checkout_Fields_Plugin extends \FcfVendor\WPDesk\PluginBuilder\Pl
|
|
985 |
}
|
986 |
|
987 |
if ( isset( $current_screen ) && 'woocommerce_page_inspire_checkout_fields_settings' === $current_screen->id ) {
|
988 |
-
wp_enqueue_style( 'jquery-ui-style',
|
989 |
-
'//ajax.googleapis.com/ajax/libs/jqueryui/' . '1.9.2' . '/themes/smoothness/jquery-ui.css' );
|
990 |
wp_enqueue_script( 'jquery-tiptip' );
|
991 |
}
|
992 |
wp_enqueue_style( 'inspire_checkout_fields_admin_style', trailingslashit( $this->get_plugin_assets_url() ) . 'css/admin' . $suffix . '.css', array(), $this->scripts_version );
|
@@ -1010,7 +993,7 @@ class Flexible_Checkout_Fields_Plugin extends \FcfVendor\WPDesk\PluginBuilder\Pl
|
|
1010 |
$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
|
1011 |
if ( is_checkout() || is_account_page() ) {
|
1012 |
if ( $this->get_setting_value( 'css_disable' ) != 1 ) {
|
1013 |
-
wp_enqueue_style( 'jquery-ui-style',
|
1014 |
}
|
1015 |
|
1016 |
wp_enqueue_style( 'inspire_checkout_fields_public_style', trailingslashit( $this->get_plugin_assets_url() ) . 'css/front' . $suffix . '.css', array(), $this->scripts_version );
|
897 |
return $this->getCheckoutUserFields( $fields, 'order' );
|
898 |
}
|
899 |
|
900 |
+
/**
|
901 |
+
* Update fields on checkout.
|
902 |
+
*
|
903 |
+
* @param $order_id
|
904 |
+
*/
|
905 |
function updateCheckoutFields( $order_id ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
906 |
$settings = $this->get_settings();
|
907 |
if ( ! empty( $settings ) ) {
|
908 |
+
$fields = array_merge(
|
909 |
+
isset( $settings['billing'] ) ? $settings['billing'] : array(),
|
910 |
+
isset( $settings['shipping'] ) ? $settings['shipping'] : array(),
|
911 |
+
isset( $settings['order'] ) ? $settings['order'] : array()
|
|
|
|
|
912 |
);
|
913 |
|
|
|
914 |
foreach ( $_POST as $key => $value ) {
|
915 |
+
if ( isset( $fields[ $key ] ) ) {
|
916 |
+
$fcf_field = new Flexible_Checkout_Fields_Field( $fields[ $key ], $this );
|
917 |
+
if ( $fcf_field->is_custom_field() ) {
|
918 |
+
update_post_meta( $order_id, '_' . $key, sanitize_text_field( wp_unslash( $value ) ) );
|
|
|
|
|
|
|
|
|
919 |
}
|
920 |
}
|
921 |
}
|
922 |
}
|
923 |
|
924 |
do_action( 'flexible_checkout_fields_checkout_update_order_meta', $order_id );
|
|
|
925 |
}
|
926 |
|
927 |
public static function flexible_checkout_fields_section_settings( $key, $settings ) {
|
969 |
}
|
970 |
|
971 |
if ( isset( $current_screen ) && 'woocommerce_page_inspire_checkout_fields_settings' === $current_screen->id ) {
|
972 |
+
wp_enqueue_style( 'jquery-ui-style', trailingslashit( $this->get_plugin_assets_url() ) . 'css/jquery-ui' . $suffix . '.css', array(), $this->scripts_version );
|
|
|
973 |
wp_enqueue_script( 'jquery-tiptip' );
|
974 |
}
|
975 |
wp_enqueue_style( 'inspire_checkout_fields_admin_style', trailingslashit( $this->get_plugin_assets_url() ) . 'css/admin' . $suffix . '.css', array(), $this->scripts_version );
|
993 |
$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
|
994 |
if ( is_checkout() || is_account_page() ) {
|
995 |
if ( $this->get_setting_value( 'css_disable' ) != 1 ) {
|
996 |
+
wp_enqueue_style( 'jquery-ui-style', trailingslashit( $this->get_plugin_assets_url() ) . 'css/jquery-ui' . $suffix . '.css', array(), $this->scripts_version );
|
997 |
}
|
998 |
|
999 |
wp_enqueue_style( 'inspire_checkout_fields_public_style', trailingslashit( $this->get_plugin_assets_url() ) . 'css/front' . $suffix . '.css', array(), $this->scripts_version );
|
classes/user-profile.php
CHANGED
@@ -178,7 +178,7 @@ class Flexible_Checkout_Fields_User_Profile {
|
|
178 |
if ( ! $fcf_field->is_field_excluded_for_user() ) {
|
179 |
$value = '';
|
180 |
if ( isset( $_POST[ $field_name ] ) ) {
|
181 |
-
$value = wp_unslash( $_POST[ $field_name ] );
|
182 |
}
|
183 |
update_user_meta( $user_id, $field_name, $value );
|
184 |
}
|
178 |
if ( ! $fcf_field->is_field_excluded_for_user() ) {
|
179 |
$value = '';
|
180 |
if ( isset( $_POST[ $field_name ] ) ) {
|
181 |
+
$value = sanitize_text_field( wp_unslash( $_POST[ $field_name ] ) );
|
182 |
}
|
183 |
update_user_meta( $user_id, $field_name, $value );
|
184 |
}
|
composer.lock
CHANGED
@@ -8,16 +8,16 @@
|
|
8 |
"packages": [
|
9 |
{
|
10 |
"name": "psr/log",
|
11 |
-
"version": "1.1.
|
12 |
"source": {
|
13 |
"type": "git",
|
14 |
"url": "https://github.com/php-fig/log.git",
|
15 |
-
"reference": "
|
16 |
},
|
17 |
"dist": {
|
18 |
"type": "zip",
|
19 |
-
"url": "https://api.github.com/repos/php-fig/log/zipball/
|
20 |
-
"reference": "
|
21 |
"shasum": ""
|
22 |
},
|
23 |
"require": {
|
@@ -26,7 +26,7 @@
|
|
26 |
"type": "library",
|
27 |
"extra": {
|
28 |
"branch-alias": {
|
29 |
-
"dev-master": "1.
|
30 |
}
|
31 |
},
|
32 |
"autoload": {
|
@@ -51,7 +51,7 @@
|
|
51 |
"psr",
|
52 |
"psr-3"
|
53 |
],
|
54 |
-
"time": "
|
55 |
},
|
56 |
{
|
57 |
"name": "wpdesk/wp-wpdesk-helper-override",
|
@@ -175,16 +175,16 @@
|
|
175 |
},
|
176 |
{
|
177 |
"name": "behat/gherkin",
|
178 |
-
"version": "v4.6.
|
179 |
"source": {
|
180 |
"type": "git",
|
181 |
"url": "https://github.com/Behat/Gherkin.git",
|
182 |
-
"reference": "
|
183 |
},
|
184 |
"dist": {
|
185 |
"type": "zip",
|
186 |
-
"url": "https://api.github.com/repos/Behat/Gherkin/zipball/
|
187 |
-
"reference": "
|
188 |
"shasum": ""
|
189 |
},
|
190 |
"require": {
|
@@ -230,7 +230,7 @@
|
|
230 |
"gherkin",
|
231 |
"parser"
|
232 |
],
|
233 |
-
"time": "
|
234 |
},
|
235 |
{
|
236 |
"name": "codeception/codeception",
|
@@ -330,16 +330,16 @@
|
|
330 |
},
|
331 |
{
|
332 |
"name": "codeception/phpunit-wrapper",
|
333 |
-
"version": "6.0.
|
334 |
"source": {
|
335 |
"type": "git",
|
336 |
"url": "https://github.com/Codeception/phpunit-wrapper.git",
|
337 |
-
"reference": "
|
338 |
},
|
339 |
"dist": {
|
340 |
"type": "zip",
|
341 |
-
"url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/
|
342 |
-
"reference": "
|
343 |
"shasum": ""
|
344 |
},
|
345 |
"require": {
|
@@ -372,7 +372,7 @@
|
|
372 |
}
|
373 |
],
|
374 |
"description": "PHPUnit classes used by Codeception",
|
375 |
-
"time": "
|
376 |
},
|
377 |
{
|
378 |
"name": "codeception/stub",
|
@@ -406,16 +406,16 @@
|
|
406 |
},
|
407 |
{
|
408 |
"name": "composer/ca-bundle",
|
409 |
-
"version": "1.2.
|
410 |
"source": {
|
411 |
"type": "git",
|
412 |
"url": "https://github.com/composer/ca-bundle.git",
|
413 |
-
"reference": "
|
414 |
},
|
415 |
"dist": {
|
416 |
"type": "zip",
|
417 |
-
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/
|
418 |
-
"reference": "
|
419 |
"shasum": ""
|
420 |
},
|
421 |
"require": {
|
@@ -458,20 +458,20 @@
|
|
458 |
"ssl",
|
459 |
"tls"
|
460 |
],
|
461 |
-
"time": "
|
462 |
},
|
463 |
{
|
464 |
"name": "composer/composer",
|
465 |
-
"version": "1.9.
|
466 |
"source": {
|
467 |
"type": "git",
|
468 |
"url": "https://github.com/composer/composer.git",
|
469 |
-
"reference": "
|
470 |
},
|
471 |
"dist": {
|
472 |
"type": "zip",
|
473 |
-
"url": "https://api.github.com/repos/composer/composer/zipball/
|
474 |
-
"reference": "
|
475 |
"shasum": ""
|
476 |
},
|
477 |
"require": {
|
@@ -538,28 +538,27 @@
|
|
538 |
"dependency",
|
539 |
"package"
|
540 |
],
|
541 |
-
"time": "
|
542 |
},
|
543 |
{
|
544 |
"name": "composer/semver",
|
545 |
-
"version": "1.5.
|
546 |
"source": {
|
547 |
"type": "git",
|
548 |
"url": "https://github.com/composer/semver.git",
|
549 |
-
"reference": "
|
550 |
},
|
551 |
"dist": {
|
552 |
"type": "zip",
|
553 |
-
"url": "https://api.github.com/repos/composer/semver/zipball/
|
554 |
-
"reference": "
|
555 |
"shasum": ""
|
556 |
},
|
557 |
"require": {
|
558 |
"php": "^5.3.2 || ^7.0"
|
559 |
},
|
560 |
"require-dev": {
|
561 |
-
"phpunit/phpunit": "^4.5 || ^5.0.5"
|
562 |
-
"phpunit/phpunit-mock-objects": "2.3.0 || ^3.0"
|
563 |
},
|
564 |
"type": "library",
|
565 |
"extra": {
|
@@ -600,20 +599,20 @@
|
|
600 |
"validation",
|
601 |
"versioning"
|
602 |
],
|
603 |
-
"time": "
|
604 |
},
|
605 |
{
|
606 |
"name": "composer/spdx-licenses",
|
607 |
-
"version": "1.5.
|
608 |
"source": {
|
609 |
"type": "git",
|
610 |
"url": "https://github.com/composer/spdx-licenses.git",
|
611 |
-
"reference": "
|
612 |
},
|
613 |
"dist": {
|
614 |
"type": "zip",
|
615 |
-
"url": "https://api.github.com/repos/composer/spdx-licenses/zipball/
|
616 |
-
"reference": "
|
617 |
"shasum": ""
|
618 |
},
|
619 |
"require": {
|
@@ -660,20 +659,20 @@
|
|
660 |
"spdx",
|
661 |
"validator"
|
662 |
],
|
663 |
-
"time": "
|
664 |
},
|
665 |
{
|
666 |
"name": "composer/xdebug-handler",
|
667 |
-
"version": "1.4.
|
668 |
"source": {
|
669 |
"type": "git",
|
670 |
"url": "https://github.com/composer/xdebug-handler.git",
|
671 |
-
"reference": "
|
672 |
},
|
673 |
"dist": {
|
674 |
"type": "zip",
|
675 |
-
"url": "https://api.github.com/repos/composer/xdebug-handler/zipball/
|
676 |
-
"reference": "
|
677 |
"shasum": ""
|
678 |
},
|
679 |
"require": {
|
@@ -704,7 +703,7 @@
|
|
704 |
"Xdebug",
|
705 |
"performance"
|
706 |
],
|
707 |
-
"time": "
|
708 |
},
|
709 |
{
|
710 |
"name": "cweagans/composer-patches",
|
@@ -916,12 +915,12 @@
|
|
916 |
"version": "1.7.1",
|
917 |
"source": {
|
918 |
"type": "git",
|
919 |
-
"url": "https://github.com/
|
920 |
"reference": "e43de70f3c7166169d0f14a374505392734160e5"
|
921 |
},
|
922 |
"dist": {
|
923 |
"type": "zip",
|
924 |
-
"url": "https://api.github.com/repos/
|
925 |
"reference": "e43de70f3c7166169d0f14a374505392734160e5",
|
926 |
"shasum": ""
|
927 |
},
|
@@ -969,6 +968,7 @@
|
|
969 |
"selenium",
|
970 |
"webdriver"
|
971 |
],
|
|
|
972 |
"time": "2019-06-13T08:02:18+00:00"
|
973 |
},
|
974 |
{
|
@@ -1151,16 +1151,16 @@
|
|
1151 |
},
|
1152 |
{
|
1153 |
"name": "guzzlehttp/guzzle",
|
1154 |
-
"version": "6.5.
|
1155 |
"source": {
|
1156 |
"type": "git",
|
1157 |
"url": "https://github.com/guzzle/guzzle.git",
|
1158 |
-
"reference": "
|
1159 |
},
|
1160 |
"dist": {
|
1161 |
"type": "zip",
|
1162 |
-
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/
|
1163 |
-
"reference": "
|
1164 |
"shasum": ""
|
1165 |
},
|
1166 |
"require": {
|
@@ -1214,7 +1214,7 @@
|
|
1214 |
"rest",
|
1215 |
"web service"
|
1216 |
],
|
1217 |
-
"time": "2019-12-
|
1218 |
},
|
1219 |
{
|
1220 |
"name": "guzzlehttp/promises",
|
@@ -2145,16 +2145,16 @@
|
|
2145 |
},
|
2146 |
{
|
2147 |
"name": "lucatume/wp-browser",
|
2148 |
-
"version": "2.2.
|
2149 |
"source": {
|
2150 |
"type": "git",
|
2151 |
"url": "https://github.com/lucatume/wp-browser.git",
|
2152 |
-
"reference": "
|
2153 |
},
|
2154 |
"dist": {
|
2155 |
"type": "zip",
|
2156 |
-
"url": "https://api.github.com/repos/lucatume/wp-browser/zipball/
|
2157 |
-
"reference": "
|
2158 |
"shasum": ""
|
2159 |
},
|
2160 |
"require": {
|
@@ -2177,7 +2177,7 @@
|
|
2177 |
},
|
2178 |
"require-dev": {
|
2179 |
"erusev/parsedown": "^1.7",
|
2180 |
-
"lucatume/codeception-snapshot-assertions": "^0.2
|
2181 |
"mikey179/vfsstream": "^1.6",
|
2182 |
"phpstan/phpstan": "^0.11.15",
|
2183 |
"phpstan/phpstan-shim": "^0.11.15",
|
@@ -2215,20 +2215,129 @@
|
|
2215 |
"codeception",
|
2216 |
"wordpress"
|
2217 |
],
|
2218 |
-
"time": "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2219 |
},
|
2220 |
{
|
2221 |
"name": "mck89/peast",
|
2222 |
-
"version": "v1.10",
|
2223 |
"source": {
|
2224 |
"type": "git",
|
2225 |
"url": "https://github.com/mck89/peast.git",
|
2226 |
-
"reference": "
|
2227 |
},
|
2228 |
"dist": {
|
2229 |
"type": "zip",
|
2230 |
-
"url": "https://api.github.com/repos/mck89/peast/zipball/
|
2231 |
-
"reference": "
|
2232 |
"shasum": ""
|
2233 |
},
|
2234 |
"require": {
|
@@ -2240,7 +2349,7 @@
|
|
2240 |
"type": "library",
|
2241 |
"extra": {
|
2242 |
"branch-alias": {
|
2243 |
-
"dev-master": "1.10.
|
2244 |
}
|
2245 |
},
|
2246 |
"autoload": {
|
@@ -2260,7 +2369,7 @@
|
|
2260 |
}
|
2261 |
],
|
2262 |
"description": "Peast is PHP library that generates AST for JavaScript code",
|
2263 |
-
"time": "2019-
|
2264 |
},
|
2265 |
{
|
2266 |
"name": "mikemclin/laravel-wp-password",
|
@@ -2393,16 +2502,16 @@
|
|
2393 |
},
|
2394 |
{
|
2395 |
"name": "monolog/monolog",
|
2396 |
-
"version": "1.25.
|
2397 |
"source": {
|
2398 |
"type": "git",
|
2399 |
"url": "https://github.com/Seldaek/monolog.git",
|
2400 |
-
"reference": "
|
2401 |
},
|
2402 |
"dist": {
|
2403 |
"type": "zip",
|
2404 |
-
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/
|
2405 |
-
"reference": "
|
2406 |
"shasum": ""
|
2407 |
},
|
2408 |
"require": {
|
@@ -2467,7 +2576,7 @@
|
|
2467 |
"logging",
|
2468 |
"psr-3"
|
2469 |
],
|
2470 |
-
"time": "2019-
|
2471 |
},
|
2472 |
{
|
2473 |
"name": "mustache/mustache",
|
@@ -2852,33 +2961,33 @@
|
|
2852 |
},
|
2853 |
{
|
2854 |
"name": "phpspec/prophecy",
|
2855 |
-
"version": "
|
2856 |
"source": {
|
2857 |
"type": "git",
|
2858 |
"url": "https://github.com/phpspec/prophecy.git",
|
2859 |
-
"reference": "
|
2860 |
},
|
2861 |
"dist": {
|
2862 |
"type": "zip",
|
2863 |
-
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/
|
2864 |
-
"reference": "
|
2865 |
"shasum": ""
|
2866 |
},
|
2867 |
"require": {
|
2868 |
"doctrine/instantiator": "^1.0.2",
|
2869 |
"php": "^5.3|^7.0",
|
2870 |
-
"phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
|
2871 |
-
"sebastian/comparator": "^1.
|
2872 |
-
"sebastian/recursion-context": "^1.0|^2.0|^3.0"
|
2873 |
},
|
2874 |
"require-dev": {
|
2875 |
-
"phpspec/phpspec": "^2.5
|
2876 |
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
|
2877 |
},
|
2878 |
"type": "library",
|
2879 |
"extra": {
|
2880 |
"branch-alias": {
|
2881 |
-
"dev-master": "1.
|
2882 |
}
|
2883 |
},
|
2884 |
"autoload": {
|
@@ -2911,7 +3020,7 @@
|
|
2911 |
"spy",
|
2912 |
"stub"
|
2913 |
],
|
2914 |
-
"time": "
|
2915 |
},
|
2916 |
{
|
2917 |
"name": "phpunit/php-code-coverage",
|
@@ -4007,16 +4116,16 @@
|
|
4007 |
},
|
4008 |
{
|
4009 |
"name": "seld/phar-utils",
|
4010 |
-
"version": "1.0
|
4011 |
"source": {
|
4012 |
"type": "git",
|
4013 |
"url": "https://github.com/Seldaek/phar-utils.git",
|
4014 |
-
"reference": "
|
4015 |
},
|
4016 |
"dist": {
|
4017 |
"type": "zip",
|
4018 |
-
"url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/
|
4019 |
-
"reference": "
|
4020 |
"shasum": ""
|
4021 |
},
|
4022 |
"require": {
|
@@ -4045,22 +4154,22 @@
|
|
4045 |
],
|
4046 |
"description": "PHAR file format utilities, for when PHP phars you up",
|
4047 |
"keywords": [
|
4048 |
-
"
|
4049 |
],
|
4050 |
-
"time": "
|
4051 |
},
|
4052 |
{
|
4053 |
"name": "symfony/browser-kit",
|
4054 |
-
"version": "v3.4.
|
4055 |
"source": {
|
4056 |
"type": "git",
|
4057 |
"url": "https://github.com/symfony/browser-kit.git",
|
4058 |
-
"reference": "
|
4059 |
},
|
4060 |
"dist": {
|
4061 |
"type": "zip",
|
4062 |
-
"url": "https://api.github.com/repos/symfony/browser-kit/zipball/
|
4063 |
-
"reference": "
|
4064 |
"shasum": ""
|
4065 |
},
|
4066 |
"require": {
|
@@ -4104,20 +4213,20 @@
|
|
4104 |
],
|
4105 |
"description": "Symfony BrowserKit Component",
|
4106 |
"homepage": "https://symfony.com",
|
4107 |
-
"time": "
|
4108 |
},
|
4109 |
{
|
4110 |
"name": "symfony/console",
|
4111 |
-
"version": "v3.4.
|
4112 |
"source": {
|
4113 |
"type": "git",
|
4114 |
"url": "https://github.com/symfony/console.git",
|
4115 |
-
"reference": "
|
4116 |
},
|
4117 |
"dist": {
|
4118 |
"type": "zip",
|
4119 |
-
"url": "https://api.github.com/repos/symfony/console/zipball/
|
4120 |
-
"reference": "
|
4121 |
"shasum": ""
|
4122 |
},
|
4123 |
"require": {
|
@@ -4176,20 +4285,20 @@
|
|
4176 |
],
|
4177 |
"description": "Symfony Console Component",
|
4178 |
"homepage": "https://symfony.com",
|
4179 |
-
"time": "
|
4180 |
},
|
4181 |
{
|
4182 |
"name": "symfony/css-selector",
|
4183 |
-
"version": "v3.4.
|
4184 |
"source": {
|
4185 |
"type": "git",
|
4186 |
"url": "https://github.com/symfony/css-selector.git",
|
4187 |
-
"reference": "
|
4188 |
},
|
4189 |
"dist": {
|
4190 |
"type": "zip",
|
4191 |
-
"url": "https://api.github.com/repos/symfony/css-selector/zipball/
|
4192 |
-
"reference": "
|
4193 |
"shasum": ""
|
4194 |
},
|
4195 |
"require": {
|
@@ -4229,20 +4338,20 @@
|
|
4229 |
],
|
4230 |
"description": "Symfony CssSelector Component",
|
4231 |
"homepage": "https://symfony.com",
|
4232 |
-
"time": "
|
4233 |
},
|
4234 |
{
|
4235 |
"name": "symfony/debug",
|
4236 |
-
"version": "v3.4.
|
4237 |
"source": {
|
4238 |
"type": "git",
|
4239 |
"url": "https://github.com/symfony/debug.git",
|
4240 |
-
"reference": "
|
4241 |
},
|
4242 |
"dist": {
|
4243 |
"type": "zip",
|
4244 |
-
"url": "https://api.github.com/repos/symfony/debug/zipball/
|
4245 |
-
"reference": "
|
4246 |
"shasum": ""
|
4247 |
},
|
4248 |
"require": {
|
@@ -4285,20 +4394,20 @@
|
|
4285 |
],
|
4286 |
"description": "Symfony Debug Component",
|
4287 |
"homepage": "https://symfony.com",
|
4288 |
-
"time": "
|
4289 |
},
|
4290 |
{
|
4291 |
"name": "symfony/dom-crawler",
|
4292 |
-
"version": "v3.4.
|
4293 |
"source": {
|
4294 |
"type": "git",
|
4295 |
"url": "https://github.com/symfony/dom-crawler.git",
|
4296 |
-
"reference": "
|
4297 |
},
|
4298 |
"dist": {
|
4299 |
"type": "zip",
|
4300 |
-
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/
|
4301 |
-
"reference": "
|
4302 |
"shasum": ""
|
4303 |
},
|
4304 |
"require": {
|
@@ -4342,20 +4451,20 @@
|
|
4342 |
],
|
4343 |
"description": "Symfony DomCrawler Component",
|
4344 |
"homepage": "https://symfony.com",
|
4345 |
-
"time": "
|
4346 |
},
|
4347 |
{
|
4348 |
"name": "symfony/event-dispatcher",
|
4349 |
-
"version": "v3.4.
|
4350 |
"source": {
|
4351 |
"type": "git",
|
4352 |
"url": "https://github.com/symfony/event-dispatcher.git",
|
4353 |
-
"reference": "
|
4354 |
},
|
4355 |
"dist": {
|
4356 |
"type": "zip",
|
4357 |
-
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/
|
4358 |
-
"reference": "
|
4359 |
"shasum": ""
|
4360 |
},
|
4361 |
"require": {
|
@@ -4405,20 +4514,20 @@
|
|
4405 |
],
|
4406 |
"description": "Symfony EventDispatcher Component",
|
4407 |
"homepage": "https://symfony.com",
|
4408 |
-
"time": "
|
4409 |
},
|
4410 |
{
|
4411 |
"name": "symfony/filesystem",
|
4412 |
-
"version": "v3.4.
|
4413 |
"source": {
|
4414 |
"type": "git",
|
4415 |
"url": "https://github.com/symfony/filesystem.git",
|
4416 |
-
"reference": "
|
4417 |
},
|
4418 |
"dist": {
|
4419 |
"type": "zip",
|
4420 |
-
"url": "https://api.github.com/repos/symfony/filesystem/zipball/
|
4421 |
-
"reference": "
|
4422 |
"shasum": ""
|
4423 |
},
|
4424 |
"require": {
|
@@ -4455,20 +4564,20 @@
|
|
4455 |
],
|
4456 |
"description": "Symfony Filesystem Component",
|
4457 |
"homepage": "https://symfony.com",
|
4458 |
-
"time": "
|
4459 |
},
|
4460 |
{
|
4461 |
"name": "symfony/finder",
|
4462 |
-
"version": "v3.4.
|
4463 |
"source": {
|
4464 |
"type": "git",
|
4465 |
"url": "https://github.com/symfony/finder.git",
|
4466 |
-
"reference": "
|
4467 |
},
|
4468 |
"dist": {
|
4469 |
"type": "zip",
|
4470 |
-
"url": "https://api.github.com/repos/symfony/finder/zipball/
|
4471 |
-
"reference": "
|
4472 |
"shasum": ""
|
4473 |
},
|
4474 |
"require": {
|
@@ -4504,20 +4613,20 @@
|
|
4504 |
],
|
4505 |
"description": "Symfony Finder Component",
|
4506 |
"homepage": "https://symfony.com",
|
4507 |
-
"time": "
|
4508 |
},
|
4509 |
{
|
4510 |
"name": "symfony/polyfill-ctype",
|
4511 |
-
"version": "v1.
|
4512 |
"source": {
|
4513 |
"type": "git",
|
4514 |
"url": "https://github.com/symfony/polyfill-ctype.git",
|
4515 |
-
"reference": "
|
4516 |
},
|
4517 |
"dist": {
|
4518 |
"type": "zip",
|
4519 |
-
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/
|
4520 |
-
"reference": "
|
4521 |
"shasum": ""
|
4522 |
},
|
4523 |
"require": {
|
@@ -4529,7 +4638,7 @@
|
|
4529 |
"type": "library",
|
4530 |
"extra": {
|
4531 |
"branch-alias": {
|
4532 |
-
"dev-master": "1.
|
4533 |
}
|
4534 |
},
|
4535 |
"autoload": {
|
@@ -4562,20 +4671,20 @@
|
|
4562 |
"polyfill",
|
4563 |
"portable"
|
4564 |
],
|
4565 |
-
"time": "
|
4566 |
},
|
4567 |
{
|
4568 |
"name": "symfony/polyfill-mbstring",
|
4569 |
-
"version": "v1.
|
4570 |
"source": {
|
4571 |
"type": "git",
|
4572 |
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
4573 |
-
"reference": "
|
4574 |
},
|
4575 |
"dist": {
|
4576 |
"type": "zip",
|
4577 |
-
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/
|
4578 |
-
"reference": "
|
4579 |
"shasum": ""
|
4580 |
},
|
4581 |
"require": {
|
@@ -4587,7 +4696,7 @@
|
|
4587 |
"type": "library",
|
4588 |
"extra": {
|
4589 |
"branch-alias": {
|
4590 |
-
"dev-master": "1.
|
4591 |
}
|
4592 |
},
|
4593 |
"autoload": {
|
@@ -4621,20 +4730,20 @@
|
|
4621 |
"portable",
|
4622 |
"shim"
|
4623 |
],
|
4624 |
-
"time": "
|
4625 |
},
|
4626 |
{
|
4627 |
"name": "symfony/process",
|
4628 |
-
"version": "v3.4.
|
4629 |
"source": {
|
4630 |
"type": "git",
|
4631 |
"url": "https://github.com/symfony/process.git",
|
4632 |
-
"reference": "
|
4633 |
},
|
4634 |
"dist": {
|
4635 |
"type": "zip",
|
4636 |
-
"url": "https://api.github.com/repos/symfony/process/zipball/
|
4637 |
-
"reference": "
|
4638 |
"shasum": ""
|
4639 |
},
|
4640 |
"require": {
|
@@ -4670,20 +4779,20 @@
|
|
4670 |
],
|
4671 |
"description": "Symfony Process Component",
|
4672 |
"homepage": "https://symfony.com",
|
4673 |
-
"time": "
|
4674 |
},
|
4675 |
{
|
4676 |
"name": "symfony/yaml",
|
4677 |
-
"version": "v3.4.
|
4678 |
"source": {
|
4679 |
"type": "git",
|
4680 |
"url": "https://github.com/symfony/yaml.git",
|
4681 |
-
"reference": "
|
4682 |
},
|
4683 |
"dist": {
|
4684 |
"type": "zip",
|
4685 |
-
"url": "https://api.github.com/repos/symfony/yaml/zipball/
|
4686 |
-
"reference": "
|
4687 |
"shasum": ""
|
4688 |
},
|
4689 |
"require": {
|
@@ -4729,7 +4838,7 @@
|
|
4729 |
],
|
4730 |
"description": "Symfony Yaml Component",
|
4731 |
"homepage": "https://symfony.com",
|
4732 |
-
"time": "
|
4733 |
},
|
4734 |
{
|
4735 |
"name": "vlucas/phpdotenv",
|
@@ -4838,31 +4947,29 @@
|
|
4838 |
},
|
4839 |
{
|
4840 |
"name": "webmozart/assert",
|
4841 |
-
"version": "1.
|
4842 |
"source": {
|
4843 |
"type": "git",
|
4844 |
"url": "https://github.com/webmozart/assert.git",
|
4845 |
-
"reference": "
|
4846 |
},
|
4847 |
"dist": {
|
4848 |
"type": "zip",
|
4849 |
-
"url": "https://api.github.com/repos/webmozart/assert/zipball/
|
4850 |
-
"reference": "
|
4851 |
"shasum": ""
|
4852 |
},
|
4853 |
"require": {
|
4854 |
"php": "^5.3.3 || ^7.0",
|
4855 |
"symfony/polyfill-ctype": "^1.8"
|
4856 |
},
|
|
|
|
|
|
|
4857 |
"require-dev": {
|
4858 |
"phpunit/phpunit": "^4.8.36 || ^7.5.13"
|
4859 |
},
|
4860 |
"type": "library",
|
4861 |
-
"extra": {
|
4862 |
-
"branch-alias": {
|
4863 |
-
"dev-master": "1.3-dev"
|
4864 |
-
}
|
4865 |
-
},
|
4866 |
"autoload": {
|
4867 |
"psr-4": {
|
4868 |
"Webmozart\\Assert\\": "src/"
|
@@ -4884,7 +4991,7 @@
|
|
4884 |
"check",
|
4885 |
"validate"
|
4886 |
],
|
4887 |
-
"time": "
|
4888 |
},
|
4889 |
{
|
4890 |
"name": "wp-cli/cache-command",
|
@@ -5148,16 +5255,16 @@
|
|
5148 |
},
|
5149 |
{
|
5150 |
"name": "wp-cli/cron-command",
|
5151 |
-
"version": "v2.0.
|
5152 |
"source": {
|
5153 |
"type": "git",
|
5154 |
"url": "https://github.com/wp-cli/cron-command.git",
|
5155 |
-
"reference": "
|
5156 |
},
|
5157 |
"dist": {
|
5158 |
"type": "zip",
|
5159 |
-
"url": "https://api.github.com/repos/wp-cli/cron-command/zipball/
|
5160 |
-
"reference": "
|
5161 |
"shasum": ""
|
5162 |
},
|
5163 |
"require": {
|
@@ -5182,7 +5289,8 @@
|
|
5182 |
"cron event run",
|
5183 |
"cron event schedule",
|
5184 |
"cron schedule",
|
5185 |
-
"cron schedule list"
|
|
|
5186 |
]
|
5187 |
},
|
5188 |
"autoload": {
|
@@ -5206,20 +5314,20 @@
|
|
5206 |
],
|
5207 |
"description": "Tests, runs, and deletes WP-Cron events; manages WP-Cron schedules.",
|
5208 |
"homepage": "https://github.com/wp-cli/cron-command",
|
5209 |
-
"time": "2019-
|
5210 |
},
|
5211 |
{
|
5212 |
"name": "wp-cli/db-command",
|
5213 |
-
"version": "v2.0.
|
5214 |
"source": {
|
5215 |
"type": "git",
|
5216 |
"url": "https://github.com/wp-cli/db-command.git",
|
5217 |
-
"reference": "
|
5218 |
},
|
5219 |
"dist": {
|
5220 |
"type": "zip",
|
5221 |
-
"url": "https://api.github.com/repos/wp-cli/db-command/zipball/
|
5222 |
-
"reference": "
|
5223 |
"shasum": ""
|
5224 |
},
|
5225 |
"require": {
|
@@ -5276,7 +5384,7 @@
|
|
5276 |
],
|
5277 |
"description": "Performs basic database operations using credentials stored in wp-config.php.",
|
5278 |
"homepage": "https://github.com/wp-cli/db-command",
|
5279 |
-
"time": "
|
5280 |
},
|
5281 |
{
|
5282 |
"name": "wp-cli/embed-command",
|
@@ -5549,16 +5657,16 @@
|
|
5549 |
},
|
5550 |
{
|
5551 |
"name": "wp-cli/eval-command",
|
5552 |
-
"version": "v2.0.
|
5553 |
"source": {
|
5554 |
"type": "git",
|
5555 |
"url": "https://github.com/wp-cli/eval-command.git",
|
5556 |
-
"reference": "
|
5557 |
},
|
5558 |
"dist": {
|
5559 |
"type": "zip",
|
5560 |
-
"url": "https://api.github.com/repos/wp-cli/eval-command/zipball/
|
5561 |
-
"reference": "
|
5562 |
"shasum": ""
|
5563 |
},
|
5564 |
"require": {
|
@@ -5599,7 +5707,7 @@
|
|
5599 |
],
|
5600 |
"description": "Executes arbitrary PHP code or files.",
|
5601 |
"homepage": "https://github.com/wp-cli/eval-command",
|
5602 |
-
"time": "
|
5603 |
},
|
5604 |
{
|
5605 |
"name": "wp-cli/export-command",
|
@@ -5661,16 +5769,16 @@
|
|
5661 |
},
|
5662 |
{
|
5663 |
"name": "wp-cli/extension-command",
|
5664 |
-
"version": "v2.0.
|
5665 |
"source": {
|
5666 |
"type": "git",
|
5667 |
"url": "https://github.com/wp-cli/extension-command.git",
|
5668 |
-
"reference": "
|
5669 |
},
|
5670 |
"dist": {
|
5671 |
"type": "zip",
|
5672 |
-
"url": "https://api.github.com/repos/wp-cli/extension-command/zipball/
|
5673 |
-
"reference": "
|
5674 |
"shasum": ""
|
5675 |
},
|
5676 |
"require": {
|
@@ -5744,20 +5852,20 @@
|
|
5744 |
],
|
5745 |
"description": "Manages plugins and themes, including installs, activations, and updates.",
|
5746 |
"homepage": "https://github.com/wp-cli/extension-command",
|
5747 |
-
"time": "
|
5748 |
},
|
5749 |
{
|
5750 |
"name": "wp-cli/i18n-command",
|
5751 |
-
"version": "v2.2.
|
5752 |
"source": {
|
5753 |
"type": "git",
|
5754 |
"url": "https://github.com/wp-cli/i18n-command.git",
|
5755 |
-
"reference": "
|
5756 |
},
|
5757 |
"dist": {
|
5758 |
"type": "zip",
|
5759 |
-
"url": "https://api.github.com/repos/wp-cli/i18n-command/zipball/
|
5760 |
-
"reference": "
|
5761 |
"shasum": ""
|
5762 |
},
|
5763 |
"require": {
|
@@ -5801,7 +5909,7 @@
|
|
5801 |
],
|
5802 |
"description": "Provides internationalization tools for WordPress projects.",
|
5803 |
"homepage": "https://github.com/wp-cli/i18n-command",
|
5804 |
-
"time": "2019-
|
5805 |
},
|
5806 |
{
|
5807 |
"name": "wp-cli/import-command",
|
@@ -6099,16 +6207,16 @@
|
|
6099 |
},
|
6100 |
{
|
6101 |
"name": "wp-cli/package-command",
|
6102 |
-
"version": "v2.0.
|
6103 |
"source": {
|
6104 |
"type": "git",
|
6105 |
"url": "https://github.com/wp-cli/package-command.git",
|
6106 |
-
"reference": "
|
6107 |
},
|
6108 |
"dist": {
|
6109 |
"type": "zip",
|
6110 |
-
"url": "https://api.github.com/repos/wp-cli/package-command/zipball/
|
6111 |
-
"reference": "
|
6112 |
"shasum": ""
|
6113 |
},
|
6114 |
"require": {
|
@@ -6156,7 +6264,7 @@
|
|
6156 |
],
|
6157 |
"description": "Lists, installs, and removes WP-CLI packages.",
|
6158 |
"homepage": "https://github.com/wp-cli/package-command",
|
6159 |
-
"time": "
|
6160 |
},
|
6161 |
{
|
6162 |
"name": "wp-cli/php-cli-tools",
|
@@ -6329,16 +6437,16 @@
|
|
6329 |
},
|
6330 |
{
|
6331 |
"name": "wp-cli/scaffold-command",
|
6332 |
-
"version": "v2.0.
|
6333 |
"source": {
|
6334 |
"type": "git",
|
6335 |
"url": "https://github.com/wp-cli/scaffold-command.git",
|
6336 |
-
"reference": "
|
6337 |
},
|
6338 |
"dist": {
|
6339 |
"type": "zip",
|
6340 |
-
"url": "https://api.github.com/repos/wp-cli/scaffold-command/zipball/
|
6341 |
-
"reference": "
|
6342 |
"shasum": ""
|
6343 |
},
|
6344 |
"require": {
|
@@ -6388,20 +6496,20 @@
|
|
6388 |
],
|
6389 |
"description": "Generates code for post types, taxonomies, blocks, plugins, child themes, etc.",
|
6390 |
"homepage": "https://github.com/wp-cli/scaffold-command",
|
6391 |
-
"time": "2019-11-
|
6392 |
},
|
6393 |
{
|
6394 |
"name": "wp-cli/search-replace-command",
|
6395 |
-
"version": "v2.0.
|
6396 |
"source": {
|
6397 |
"type": "git",
|
6398 |
"url": "https://github.com/wp-cli/search-replace-command.git",
|
6399 |
-
"reference": "
|
6400 |
},
|
6401 |
"dist": {
|
6402 |
"type": "zip",
|
6403 |
-
"url": "https://api.github.com/repos/wp-cli/search-replace-command/zipball/
|
6404 |
-
"reference": "
|
6405 |
"shasum": ""
|
6406 |
},
|
6407 |
"require": {
|
@@ -6444,7 +6552,7 @@
|
|
6444 |
],
|
6445 |
"description": "Searches/replaces strings in the database.",
|
6446 |
"homepage": "https://github.com/wp-cli/search-replace-command",
|
6447 |
-
"time": "2019-
|
6448 |
},
|
6449 |
{
|
6450 |
"name": "wp-cli/server-command",
|
@@ -6612,20 +6720,20 @@
|
|
6612 |
},
|
6613 |
{
|
6614 |
"name": "wp-cli/widget-command",
|
6615 |
-
"version": "v2.0
|
6616 |
"source": {
|
6617 |
"type": "git",
|
6618 |
"url": "https://github.com/wp-cli/widget-command.git",
|
6619 |
-
"reference": "
|
6620 |
},
|
6621 |
"dist": {
|
6622 |
"type": "zip",
|
6623 |
-
"url": "https://api.github.com/repos/wp-cli/widget-command/zipball/
|
6624 |
-
"reference": "
|
6625 |
"shasum": ""
|
6626 |
},
|
6627 |
"require": {
|
6628 |
-
"wp-cli/wp-cli": "^2"
|
6629 |
},
|
6630 |
"require-dev": {
|
6631 |
"wp-cli/extension-command": "^1.2 || ^2",
|
@@ -6671,26 +6779,25 @@
|
|
6671 |
],
|
6672 |
"description": "Adds, moves, and removes widgets; lists sidebars.",
|
6673 |
"homepage": "https://github.com/wp-cli/widget-command",
|
6674 |
-
"time": "
|
6675 |
},
|
6676 |
{
|
6677 |
"name": "wp-cli/wp-cli",
|
6678 |
-
"version": "v2.4.
|
6679 |
"source": {
|
6680 |
"type": "git",
|
6681 |
"url": "https://github.com/wp-cli/wp-cli.git",
|
6682 |
-
"reference": "
|
6683 |
},
|
6684 |
"dist": {
|
6685 |
"type": "zip",
|
6686 |
-
"url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/
|
6687 |
-
"reference": "
|
6688 |
"shasum": ""
|
6689 |
},
|
6690 |
"require": {
|
6691 |
-
"cweagans/composer-patches": "^1.6",
|
6692 |
"ext-curl": "*",
|
6693 |
-
"mustache/mustache": "~2.
|
6694 |
"php": "^5.4 || ^7.0",
|
6695 |
"rmccue/requests": "~1.6",
|
6696 |
"symfony/finder": ">2.7",
|
@@ -6717,11 +6824,6 @@
|
|
6717 |
"extra": {
|
6718 |
"branch-alias": {
|
6719 |
"dev-master": "2.4.x-dev"
|
6720 |
-
},
|
6721 |
-
"patches": {
|
6722 |
-
"mustache/mustache": {
|
6723 |
-
"Avoid notices on PHP 7.4+": "https://patch-diff.githubusercontent.com/raw/bobthecow/mustache.php/pull/349.patch"
|
6724 |
-
}
|
6725 |
}
|
6726 |
},
|
6727 |
"autoload": {
|
@@ -6739,7 +6841,7 @@
|
|
6739 |
"cli",
|
6740 |
"wordpress"
|
6741 |
],
|
6742 |
-
"time": "
|
6743 |
},
|
6744 |
{
|
6745 |
"name": "wp-cli/wp-cli-bundle",
|
@@ -6854,16 +6956,16 @@
|
|
6854 |
},
|
6855 |
{
|
6856 |
"name": "wpdesk/wp-basic-requirements",
|
6857 |
-
"version": "3.
|
6858 |
"source": {
|
6859 |
"type": "git",
|
6860 |
"url": "https://gitlab.com/wpdesk/wp-basic-requirements.git",
|
6861 |
-
"reference": "
|
6862 |
},
|
6863 |
"dist": {
|
6864 |
"type": "zip",
|
6865 |
-
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-basic-requirements/repository/archive.zip?sha=
|
6866 |
-
"reference": "
|
6867 |
"shasum": ""
|
6868 |
},
|
6869 |
"require": {
|
@@ -6879,6 +6981,13 @@
|
|
6879 |
"wp-coding-standards/wpcs": "^0.14.1"
|
6880 |
},
|
6881 |
"type": "library",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6882 |
"notification-url": "https://packagist.org/downloads/",
|
6883 |
"authors": [
|
6884 |
{
|
@@ -6886,20 +6995,20 @@
|
|
6886 |
"email": "krzysiek@wpdesk.pl"
|
6887 |
}
|
6888 |
],
|
6889 |
-
"time": "2019-
|
6890 |
},
|
6891 |
{
|
6892 |
"name": "wpdesk/wp-builder",
|
6893 |
-
"version": "1.
|
6894 |
"source": {
|
6895 |
"type": "git",
|
6896 |
"url": "https://gitlab.com/wpdesk/wp-builder.git",
|
6897 |
-
"reference": "
|
6898 |
},
|
6899 |
"dist": {
|
6900 |
"type": "zip",
|
6901 |
-
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-builder/repository/archive.zip?sha=
|
6902 |
-
"reference": "
|
6903 |
"shasum": ""
|
6904 |
},
|
6905 |
"require": {
|
@@ -6929,20 +7038,20 @@
|
|
6929 |
"email": "krzysiek@wpdesk.pl"
|
6930 |
}
|
6931 |
],
|
6932 |
-
"time": "2019-
|
6933 |
},
|
6934 |
{
|
6935 |
"name": "wpdesk/wp-codeception",
|
6936 |
-
"version": "1.4.
|
6937 |
"source": {
|
6938 |
"type": "git",
|
6939 |
"url": "https://gitlab.com/wpdesk/wp-codeception.git",
|
6940 |
-
"reference": "
|
6941 |
},
|
6942 |
"dist": {
|
6943 |
"type": "zip",
|
6944 |
-
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-codeception/repository/archive.zip?sha=
|
6945 |
-
"reference": "
|
6946 |
"shasum": ""
|
6947 |
},
|
6948 |
"require": {
|
@@ -6988,7 +7097,7 @@
|
|
6988 |
"codeception",
|
6989 |
"wordpress"
|
6990 |
],
|
6991 |
-
"time": "
|
6992 |
},
|
6993 |
{
|
6994 |
"name": "wpdesk/wp-logs",
|
@@ -7036,16 +7145,16 @@
|
|
7036 |
},
|
7037 |
{
|
7038 |
"name": "wpdesk/wp-notice",
|
7039 |
-
"version": "3.1.
|
7040 |
"source": {
|
7041 |
"type": "git",
|
7042 |
"url": "https://gitlab.com/wpdesk/wp-notice.git",
|
7043 |
-
"reference": "
|
7044 |
},
|
7045 |
"dist": {
|
7046 |
"type": "zip",
|
7047 |
-
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-notice/repository/archive.zip?sha=
|
7048 |
-
"reference": "
|
7049 |
"shasum": ""
|
7050 |
},
|
7051 |
"require": {
|
@@ -7086,37 +7195,45 @@
|
|
7086 |
"notice",
|
7087 |
"wordpress"
|
7088 |
],
|
7089 |
-
"time": "
|
7090 |
},
|
7091 |
{
|
7092 |
"name": "wpdesk/wp-plugin-flow",
|
7093 |
-
"version": "2.
|
7094 |
"source": {
|
7095 |
"type": "git",
|
7096 |
"url": "https://gitlab.com/wpdesk/wp-plugin-flow.git",
|
7097 |
-
"reference": "
|
7098 |
},
|
7099 |
"dist": {
|
7100 |
"type": "zip",
|
7101 |
-
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-plugin-flow/repository/archive.zip?sha=
|
7102 |
-
"reference": "
|
7103 |
"shasum": ""
|
7104 |
},
|
7105 |
"require": {
|
7106 |
"php": ">=5.6",
|
7107 |
"wpdesk/wp-basic-requirements": "^3",
|
7108 |
-
"wpdesk/wp-builder": "^1.
|
7109 |
-
"wpdesk/wp-wpdesk-helper": "^2.
|
7110 |
-
"wpdesk/wp-wpdesk-license": "^2.
|
7111 |
"wpdesk/wp-wpdesk-tracker": "^2.0.4"
|
7112 |
},
|
7113 |
"require-dev": {
|
7114 |
"10up/wp_mock": "^0.2",
|
7115 |
"phpunit/phpunit": "<7",
|
7116 |
"squizlabs/php_codesniffer": "^3.4.2",
|
7117 |
-
"wp-coding-standards/wpcs": "^0.14.1"
|
|
|
7118 |
},
|
7119 |
"type": "library",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7120 |
"autoload": {
|
7121 |
"classmap": [
|
7122 |
"src"
|
@@ -7129,25 +7246,27 @@
|
|
7129 |
"email": "krzysiek@wpdesk.pl"
|
7130 |
}
|
7131 |
],
|
7132 |
-
"time": "2019-
|
7133 |
},
|
7134 |
{
|
7135 |
"name": "wpdesk/wp-wpdesk-composer",
|
7136 |
-
"version": "2.
|
7137 |
"source": {
|
7138 |
"type": "git",
|
7139 |
"url": "https://gitlab.com/wpdesk/wp-wpdesk-composer.git",
|
7140 |
-
"reference": "
|
7141 |
},
|
7142 |
"dist": {
|
7143 |
"type": "zip",
|
7144 |
-
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-composer/repository/archive.zip?sha=
|
7145 |
-
"reference": "
|
7146 |
"shasum": ""
|
7147 |
},
|
7148 |
"require": {
|
7149 |
"composer-plugin-api": "^1.1",
|
7150 |
"ext-json": "*",
|
|
|
|
|
7151 |
"php": ">=5.6"
|
7152 |
},
|
7153 |
"require-dev": {
|
@@ -7169,28 +7288,29 @@
|
|
7169 |
"email": "krzysiek@wpdesk.pl"
|
7170 |
}
|
7171 |
],
|
7172 |
-
"time": "
|
7173 |
},
|
7174 |
{
|
7175 |
"name": "wpdesk/wp-wpdesk-helper",
|
7176 |
-
"version": "2.
|
7177 |
"source": {
|
7178 |
"type": "git",
|
7179 |
"url": "https://gitlab.com/wpdesk/wp-wpdesk-helper.git",
|
7180 |
-
"reference": "
|
7181 |
},
|
7182 |
"dist": {
|
7183 |
"type": "zip",
|
7184 |
-
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-helper/repository/archive.zip?sha=
|
7185 |
-
"reference": "
|
7186 |
"shasum": ""
|
7187 |
},
|
7188 |
"require": {
|
7189 |
"php": ">=5.6",
|
|
|
7190 |
"wpdesk/wp-builder": "^1.2",
|
7191 |
"wpdesk/wp-logs": "^1.6.0",
|
7192 |
"wpdesk/wp-notice": "^3.1.1",
|
7193 |
-
"wpdesk/wp-wpdesk-license": "^2.
|
7194 |
"wpdesk/wp-wpdesk-tracker": "^2.0.4"
|
7195 |
},
|
7196 |
"require-dev": {
|
@@ -7202,6 +7322,13 @@
|
|
7202 |
"wp-coding-standards/wpcs": "^0.14.1"
|
7203 |
},
|
7204 |
"type": "library",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7205 |
"autoload": {
|
7206 |
"psr-4": {
|
7207 |
"WPDesk\\Helper\\": "src/"
|
@@ -7214,20 +7341,20 @@
|
|
7214 |
"email": "krzysiek@wpdesk.pl"
|
7215 |
}
|
7216 |
],
|
7217 |
-
"time": "
|
7218 |
},
|
7219 |
{
|
7220 |
"name": "wpdesk/wp-wpdesk-license",
|
7221 |
-
"version": "2.
|
7222 |
"source": {
|
7223 |
"type": "git",
|
7224 |
"url": "https://gitlab.com/wpdesk/wp-wpdesk-license.git",
|
7225 |
-
"reference": "
|
7226 |
},
|
7227 |
"dist": {
|
7228 |
"type": "zip",
|
7229 |
-
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-license/repository/archive.zip?sha=
|
7230 |
-
"reference": "
|
7231 |
"shasum": ""
|
7232 |
},
|
7233 |
"require": {
|
@@ -7245,6 +7372,13 @@
|
|
7245 |
"wp-coding-standards/wpcs": "^0.14.1"
|
7246 |
},
|
7247 |
"type": "library",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7248 |
"autoload": {
|
7249 |
"classmap": [
|
7250 |
"src/ApiManager"
|
@@ -7260,20 +7394,20 @@
|
|
7260 |
"email": "krzysiek@wpdesk.pl"
|
7261 |
}
|
7262 |
],
|
7263 |
-
"time": "
|
7264 |
},
|
7265 |
{
|
7266 |
"name": "wpdesk/wp-wpdesk-tracker",
|
7267 |
-
"version": "2.
|
7268 |
"source": {
|
7269 |
"type": "git",
|
7270 |
"url": "https://gitlab.com/wpdesk/wp-wpdesk-tracker.git",
|
7271 |
-
"reference": "
|
7272 |
},
|
7273 |
"dist": {
|
7274 |
"type": "zip",
|
7275 |
-
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-tracker/repository/archive.zip?sha=
|
7276 |
-
"reference": "
|
7277 |
"shasum": ""
|
7278 |
},
|
7279 |
"require": {
|
@@ -7288,6 +7422,13 @@
|
|
7288 |
"wp-coding-standards/wpcs": "^0.14.1"
|
7289 |
},
|
7290 |
"type": "library",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7291 |
"autoload": {
|
7292 |
"classmap": [
|
7293 |
"src/"
|
@@ -7300,7 +7441,7 @@
|
|
7300 |
"email": "krzysiek@wpdesk.pl"
|
7301 |
}
|
7302 |
],
|
7303 |
-
"time": "
|
7304 |
},
|
7305 |
{
|
7306 |
"name": "zordius/lightncandy",
|
8 |
"packages": [
|
9 |
{
|
10 |
"name": "psr/log",
|
11 |
+
"version": "1.1.2",
|
12 |
"source": {
|
13 |
"type": "git",
|
14 |
"url": "https://github.com/php-fig/log.git",
|
15 |
+
"reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801"
|
16 |
},
|
17 |
"dist": {
|
18 |
"type": "zip",
|
19 |
+
"url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801",
|
20 |
+
"reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801",
|
21 |
"shasum": ""
|
22 |
},
|
23 |
"require": {
|
26 |
"type": "library",
|
27 |
"extra": {
|
28 |
"branch-alias": {
|
29 |
+
"dev-master": "1.1.x-dev"
|
30 |
}
|
31 |
},
|
32 |
"autoload": {
|
51 |
"psr",
|
52 |
"psr-3"
|
53 |
],
|
54 |
+
"time": "2019-11-01T11:05:21+00:00"
|
55 |
},
|
56 |
{
|
57 |
"name": "wpdesk/wp-wpdesk-helper-override",
|
175 |
},
|
176 |
{
|
177 |
"name": "behat/gherkin",
|
178 |
+
"version": "v4.6.1",
|
179 |
"source": {
|
180 |
"type": "git",
|
181 |
"url": "https://github.com/Behat/Gherkin.git",
|
182 |
+
"reference": "25bdcaf37898b4a939fa3031d5d753ced97e4759"
|
183 |
},
|
184 |
"dist": {
|
185 |
"type": "zip",
|
186 |
+
"url": "https://api.github.com/repos/Behat/Gherkin/zipball/25bdcaf37898b4a939fa3031d5d753ced97e4759",
|
187 |
+
"reference": "25bdcaf37898b4a939fa3031d5d753ced97e4759",
|
188 |
"shasum": ""
|
189 |
},
|
190 |
"require": {
|
230 |
"gherkin",
|
231 |
"parser"
|
232 |
],
|
233 |
+
"time": "2020-02-27T11:29:57+00:00"
|
234 |
},
|
235 |
{
|
236 |
"name": "codeception/codeception",
|
330 |
},
|
331 |
{
|
332 |
"name": "codeception/phpunit-wrapper",
|
333 |
+
"version": "6.0.18",
|
334 |
"source": {
|
335 |
"type": "git",
|
336 |
"url": "https://github.com/Codeception/phpunit-wrapper.git",
|
337 |
+
"reference": "bc6e12f2e6990d22b55c63fbbb3a6f86292b945b"
|
338 |
},
|
339 |
"dist": {
|
340 |
"type": "zip",
|
341 |
+
"url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/bc6e12f2e6990d22b55c63fbbb3a6f86292b945b",
|
342 |
+
"reference": "bc6e12f2e6990d22b55c63fbbb3a6f86292b945b",
|
343 |
"shasum": ""
|
344 |
},
|
345 |
"require": {
|
372 |
}
|
373 |
],
|
374 |
"description": "PHPUnit classes used by Codeception",
|
375 |
+
"time": "2020-01-03T08:01:34+00:00"
|
376 |
},
|
377 |
{
|
378 |
"name": "codeception/stub",
|
406 |
},
|
407 |
{
|
408 |
"name": "composer/ca-bundle",
|
409 |
+
"version": "1.2.6",
|
410 |
"source": {
|
411 |
"type": "git",
|
412 |
"url": "https://github.com/composer/ca-bundle.git",
|
413 |
+
"reference": "47fe531de31fca4a1b997f87308e7d7804348f7e"
|
414 |
},
|
415 |
"dist": {
|
416 |
"type": "zip",
|
417 |
+
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/47fe531de31fca4a1b997f87308e7d7804348f7e",
|
418 |
+
"reference": "47fe531de31fca4a1b997f87308e7d7804348f7e",
|
419 |
"shasum": ""
|
420 |
},
|
421 |
"require": {
|
458 |
"ssl",
|
459 |
"tls"
|
460 |
],
|
461 |
+
"time": "2020-01-13T10:02:55+00:00"
|
462 |
},
|
463 |
{
|
464 |
"name": "composer/composer",
|
465 |
+
"version": "1.9.3",
|
466 |
"source": {
|
467 |
"type": "git",
|
468 |
"url": "https://github.com/composer/composer.git",
|
469 |
+
"reference": "1291a16ce3f48bfdeca39d64fca4875098af4d7b"
|
470 |
},
|
471 |
"dist": {
|
472 |
"type": "zip",
|
473 |
+
"url": "https://api.github.com/repos/composer/composer/zipball/1291a16ce3f48bfdeca39d64fca4875098af4d7b",
|
474 |
+
"reference": "1291a16ce3f48bfdeca39d64fca4875098af4d7b",
|
475 |
"shasum": ""
|
476 |
},
|
477 |
"require": {
|
538 |
"dependency",
|
539 |
"package"
|
540 |
],
|
541 |
+
"time": "2020-02-04T11:58:49+00:00"
|
542 |
},
|
543 |
{
|
544 |
"name": "composer/semver",
|
545 |
+
"version": "1.5.1",
|
546 |
"source": {
|
547 |
"type": "git",
|
548 |
"url": "https://github.com/composer/semver.git",
|
549 |
+
"reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de"
|
550 |
},
|
551 |
"dist": {
|
552 |
"type": "zip",
|
553 |
+
"url": "https://api.github.com/repos/composer/semver/zipball/c6bea70230ef4dd483e6bbcab6005f682ed3a8de",
|
554 |
+
"reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de",
|
555 |
"shasum": ""
|
556 |
},
|
557 |
"require": {
|
558 |
"php": "^5.3.2 || ^7.0"
|
559 |
},
|
560 |
"require-dev": {
|
561 |
+
"phpunit/phpunit": "^4.5 || ^5.0.5"
|
|
|
562 |
},
|
563 |
"type": "library",
|
564 |
"extra": {
|
599 |
"validation",
|
600 |
"versioning"
|
601 |
],
|
602 |
+
"time": "2020-01-13T12:06:48+00:00"
|
603 |
},
|
604 |
{
|
605 |
"name": "composer/spdx-licenses",
|
606 |
+
"version": "1.5.3",
|
607 |
"source": {
|
608 |
"type": "git",
|
609 |
"url": "https://github.com/composer/spdx-licenses.git",
|
610 |
+
"reference": "0c3e51e1880ca149682332770e25977c70cf9dae"
|
611 |
},
|
612 |
"dist": {
|
613 |
"type": "zip",
|
614 |
+
"url": "https://api.github.com/repos/composer/spdx-licenses/zipball/0c3e51e1880ca149682332770e25977c70cf9dae",
|
615 |
+
"reference": "0c3e51e1880ca149682332770e25977c70cf9dae",
|
616 |
"shasum": ""
|
617 |
},
|
618 |
"require": {
|
659 |
"spdx",
|
660 |
"validator"
|
661 |
],
|
662 |
+
"time": "2020-02-14T07:44:31+00:00"
|
663 |
},
|
664 |
{
|
665 |
"name": "composer/xdebug-handler",
|
666 |
+
"version": "1.4.1",
|
667 |
"source": {
|
668 |
"type": "git",
|
669 |
"url": "https://github.com/composer/xdebug-handler.git",
|
670 |
+
"reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7"
|
671 |
},
|
672 |
"dist": {
|
673 |
"type": "zip",
|
674 |
+
"url": "https://api.github.com/repos/composer/xdebug-handler/zipball/1ab9842d69e64fb3a01be6b656501032d1b78cb7",
|
675 |
+
"reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7",
|
676 |
"shasum": ""
|
677 |
},
|
678 |
"require": {
|
703 |
"Xdebug",
|
704 |
"performance"
|
705 |
],
|
706 |
+
"time": "2020-03-01T12:26:26+00:00"
|
707 |
},
|
708 |
{
|
709 |
"name": "cweagans/composer-patches",
|
915 |
"version": "1.7.1",
|
916 |
"source": {
|
917 |
"type": "git",
|
918 |
+
"url": "https://github.com/php-webdriver/php-webdriver-archive.git",
|
919 |
"reference": "e43de70f3c7166169d0f14a374505392734160e5"
|
920 |
},
|
921 |
"dist": {
|
922 |
"type": "zip",
|
923 |
+
"url": "https://api.github.com/repos/php-webdriver/php-webdriver-archive/zipball/e43de70f3c7166169d0f14a374505392734160e5",
|
924 |
"reference": "e43de70f3c7166169d0f14a374505392734160e5",
|
925 |
"shasum": ""
|
926 |
},
|
968 |
"selenium",
|
969 |
"webdriver"
|
970 |
],
|
971 |
+
"abandoned": "php-webdriver/webdriver",
|
972 |
"time": "2019-06-13T08:02:18+00:00"
|
973 |
},
|
974 |
{
|
1151 |
},
|
1152 |
{
|
1153 |
"name": "guzzlehttp/guzzle",
|
1154 |
+
"version": "6.5.2",
|
1155 |
"source": {
|
1156 |
"type": "git",
|
1157 |
"url": "https://github.com/guzzle/guzzle.git",
|
1158 |
+
"reference": "43ece0e75098b7ecd8d13918293029e555a50f82"
|
1159 |
},
|
1160 |
"dist": {
|
1161 |
"type": "zip",
|
1162 |
+
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/43ece0e75098b7ecd8d13918293029e555a50f82",
|
1163 |
+
"reference": "43ece0e75098b7ecd8d13918293029e555a50f82",
|
1164 |
"shasum": ""
|
1165 |
},
|
1166 |
"require": {
|
1214 |
"rest",
|
1215 |
"web service"
|
1216 |
],
|
1217 |
+
"time": "2019-12-23T11:57:10+00:00"
|
1218 |
},
|
1219 |
{
|
1220 |
"name": "guzzlehttp/promises",
|
2145 |
},
|
2146 |
{
|
2147 |
"name": "lucatume/wp-browser",
|
2148 |
+
"version": "2.2.37",
|
2149 |
"source": {
|
2150 |
"type": "git",
|
2151 |
"url": "https://github.com/lucatume/wp-browser.git",
|
2152 |
+
"reference": "8c4b6428f220dd159df0855f06c75957a6c5859b"
|
2153 |
},
|
2154 |
"dist": {
|
2155 |
"type": "zip",
|
2156 |
+
"url": "https://api.github.com/repos/lucatume/wp-browser/zipball/8c4b6428f220dd159df0855f06c75957a6c5859b",
|
2157 |
+
"reference": "8c4b6428f220dd159df0855f06c75957a6c5859b",
|
2158 |
"shasum": ""
|
2159 |
},
|
2160 |
"require": {
|
2177 |
},
|
2178 |
"require-dev": {
|
2179 |
"erusev/parsedown": "^1.7",
|
2180 |
+
"lucatume/codeception-snapshot-assertions": "^0.2",
|
2181 |
"mikey179/vfsstream": "^1.6",
|
2182 |
"phpstan/phpstan": "^0.11.15",
|
2183 |
"phpstan/phpstan-shim": "^0.11.15",
|
2215 |
"codeception",
|
2216 |
"wordpress"
|
2217 |
],
|
2218 |
+
"time": "2020-02-21T13:28:14+00:00"
|
2219 |
+
},
|
2220 |
+
{
|
2221 |
+
"name": "matthiasmullie/minify",
|
2222 |
+
"version": "1.3.63",
|
2223 |
+
"source": {
|
2224 |
+
"type": "git",
|
2225 |
+
"url": "https://github.com/matthiasmullie/minify.git",
|
2226 |
+
"reference": "9ba1b459828adc13430f4dd6c49dae4950dc4117"
|
2227 |
+
},
|
2228 |
+
"dist": {
|
2229 |
+
"type": "zip",
|
2230 |
+
"url": "https://api.github.com/repos/matthiasmullie/minify/zipball/9ba1b459828adc13430f4dd6c49dae4950dc4117",
|
2231 |
+
"reference": "9ba1b459828adc13430f4dd6c49dae4950dc4117",
|
2232 |
+
"shasum": ""
|
2233 |
+
},
|
2234 |
+
"require": {
|
2235 |
+
"ext-pcre": "*",
|
2236 |
+
"matthiasmullie/path-converter": "~1.1",
|
2237 |
+
"php": ">=5.3.0"
|
2238 |
+
},
|
2239 |
+
"require-dev": {
|
2240 |
+
"friendsofphp/php-cs-fixer": "~2.0",
|
2241 |
+
"matthiasmullie/scrapbook": "~1.0",
|
2242 |
+
"phpunit/phpunit": "~4.8"
|
2243 |
+
},
|
2244 |
+
"suggest": {
|
2245 |
+
"psr/cache-implementation": "Cache implementation to use with Minify::cache"
|
2246 |
+
},
|
2247 |
+
"bin": [
|
2248 |
+
"bin/minifycss",
|
2249 |
+
"bin/minifyjs"
|
2250 |
+
],
|
2251 |
+
"type": "library",
|
2252 |
+
"autoload": {
|
2253 |
+
"psr-4": {
|
2254 |
+
"MatthiasMullie\\Minify\\": "src/"
|
2255 |
+
}
|
2256 |
+
},
|
2257 |
+
"notification-url": "https://packagist.org/downloads/",
|
2258 |
+
"license": [
|
2259 |
+
"MIT"
|
2260 |
+
],
|
2261 |
+
"authors": [
|
2262 |
+
{
|
2263 |
+
"name": "Matthias Mullie",
|
2264 |
+
"email": "minify@mullie.eu",
|
2265 |
+
"homepage": "http://www.mullie.eu",
|
2266 |
+
"role": "Developer"
|
2267 |
+
}
|
2268 |
+
],
|
2269 |
+
"description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.",
|
2270 |
+
"homepage": "http://www.minifier.org",
|
2271 |
+
"keywords": [
|
2272 |
+
"JS",
|
2273 |
+
"css",
|
2274 |
+
"javascript",
|
2275 |
+
"minifier",
|
2276 |
+
"minify"
|
2277 |
+
],
|
2278 |
+
"time": "2020-01-21T20:21:08+00:00"
|
2279 |
+
},
|
2280 |
+
{
|
2281 |
+
"name": "matthiasmullie/path-converter",
|
2282 |
+
"version": "1.1.3",
|
2283 |
+
"source": {
|
2284 |
+
"type": "git",
|
2285 |
+
"url": "https://github.com/matthiasmullie/path-converter.git",
|
2286 |
+
"reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9"
|
2287 |
+
},
|
2288 |
+
"dist": {
|
2289 |
+
"type": "zip",
|
2290 |
+
"url": "https://api.github.com/repos/matthiasmullie/path-converter/zipball/e7d13b2c7e2f2268e1424aaed02085518afa02d9",
|
2291 |
+
"reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9",
|
2292 |
+
"shasum": ""
|
2293 |
+
},
|
2294 |
+
"require": {
|
2295 |
+
"ext-pcre": "*",
|
2296 |
+
"php": ">=5.3.0"
|
2297 |
+
},
|
2298 |
+
"require-dev": {
|
2299 |
+
"phpunit/phpunit": "~4.8"
|
2300 |
+
},
|
2301 |
+
"type": "library",
|
2302 |
+
"autoload": {
|
2303 |
+
"psr-4": {
|
2304 |
+
"MatthiasMullie\\PathConverter\\": "src/"
|
2305 |
+
}
|
2306 |
+
},
|
2307 |
+
"notification-url": "https://packagist.org/downloads/",
|
2308 |
+
"license": [
|
2309 |
+
"MIT"
|
2310 |
+
],
|
2311 |
+
"authors": [
|
2312 |
+
{
|
2313 |
+
"name": "Matthias Mullie",
|
2314 |
+
"email": "pathconverter@mullie.eu",
|
2315 |
+
"homepage": "http://www.mullie.eu",
|
2316 |
+
"role": "Developer"
|
2317 |
+
}
|
2318 |
+
],
|
2319 |
+
"description": "Relative path converter",
|
2320 |
+
"homepage": "http://github.com/matthiasmullie/path-converter",
|
2321 |
+
"keywords": [
|
2322 |
+
"converter",
|
2323 |
+
"path",
|
2324 |
+
"paths",
|
2325 |
+
"relative"
|
2326 |
+
],
|
2327 |
+
"time": "2019-02-05T23:41:09+00:00"
|
2328 |
},
|
2329 |
{
|
2330 |
"name": "mck89/peast",
|
2331 |
+
"version": "v1.10.1",
|
2332 |
"source": {
|
2333 |
"type": "git",
|
2334 |
"url": "https://github.com/mck89/peast.git",
|
2335 |
+
"reference": "461fbe96212ac1b511f527fd11b942e976429398"
|
2336 |
},
|
2337 |
"dist": {
|
2338 |
"type": "zip",
|
2339 |
+
"url": "https://api.github.com/repos/mck89/peast/zipball/461fbe96212ac1b511f527fd11b942e976429398",
|
2340 |
+
"reference": "461fbe96212ac1b511f527fd11b942e976429398",
|
2341 |
"shasum": ""
|
2342 |
},
|
2343 |
"require": {
|
2349 |
"type": "library",
|
2350 |
"extra": {
|
2351 |
"branch-alias": {
|
2352 |
+
"dev-master": "1.10.1-dev"
|
2353 |
}
|
2354 |
},
|
2355 |
"autoload": {
|
2369 |
}
|
2370 |
],
|
2371 |
"description": "Peast is PHP library that generates AST for JavaScript code",
|
2372 |
+
"time": "2019-12-22T16:46:42+00:00"
|
2373 |
},
|
2374 |
{
|
2375 |
"name": "mikemclin/laravel-wp-password",
|
2502 |
},
|
2503 |
{
|
2504 |
"name": "monolog/monolog",
|
2505 |
+
"version": "1.25.3",
|
2506 |
"source": {
|
2507 |
"type": "git",
|
2508 |
"url": "https://github.com/Seldaek/monolog.git",
|
2509 |
+
"reference": "fa82921994db851a8becaf3787a9e73c5976b6f1"
|
2510 |
},
|
2511 |
"dist": {
|
2512 |
"type": "zip",
|
2513 |
+
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/fa82921994db851a8becaf3787a9e73c5976b6f1",
|
2514 |
+
"reference": "fa82921994db851a8becaf3787a9e73c5976b6f1",
|
2515 |
"shasum": ""
|
2516 |
},
|
2517 |
"require": {
|
2576 |
"logging",
|
2577 |
"psr-3"
|
2578 |
],
|
2579 |
+
"time": "2019-12-20T14:15:16+00:00"
|
2580 |
},
|
2581 |
{
|
2582 |
"name": "mustache/mustache",
|
2961 |
},
|
2962 |
{
|
2963 |
"name": "phpspec/prophecy",
|
2964 |
+
"version": "v1.10.3",
|
2965 |
"source": {
|
2966 |
"type": "git",
|
2967 |
"url": "https://github.com/phpspec/prophecy.git",
|
2968 |
+
"reference": "451c3cd1418cf640de218914901e51b064abb093"
|
2969 |
},
|
2970 |
"dist": {
|
2971 |
"type": "zip",
|
2972 |
+
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093",
|
2973 |
+
"reference": "451c3cd1418cf640de218914901e51b064abb093",
|
2974 |
"shasum": ""
|
2975 |
},
|
2976 |
"require": {
|
2977 |
"doctrine/instantiator": "^1.0.2",
|
2978 |
"php": "^5.3|^7.0",
|
2979 |
+
"phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0",
|
2980 |
+
"sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0",
|
2981 |
+
"sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0"
|
2982 |
},
|
2983 |
"require-dev": {
|
2984 |
+
"phpspec/phpspec": "^2.5 || ^3.2",
|
2985 |
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
|
2986 |
},
|
2987 |
"type": "library",
|
2988 |
"extra": {
|
2989 |
"branch-alias": {
|
2990 |
+
"dev-master": "1.10.x-dev"
|
2991 |
}
|
2992 |
},
|
2993 |
"autoload": {
|
3020 |
"spy",
|
3021 |
"stub"
|
3022 |
],
|
3023 |
+
"time": "2020-03-05T15:02:03+00:00"
|
3024 |
},
|
3025 |
{
|
3026 |
"name": "phpunit/php-code-coverage",
|
4116 |
},
|
4117 |
{
|
4118 |
"name": "seld/phar-utils",
|
4119 |
+
"version": "1.1.0",
|
4120 |
"source": {
|
4121 |
"type": "git",
|
4122 |
"url": "https://github.com/Seldaek/phar-utils.git",
|
4123 |
+
"reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0"
|
4124 |
},
|
4125 |
"dist": {
|
4126 |
"type": "zip",
|
4127 |
+
"url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8800503d56b9867d43d9c303b9cbcc26016e82f0",
|
4128 |
+
"reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0",
|
4129 |
"shasum": ""
|
4130 |
},
|
4131 |
"require": {
|
4154 |
],
|
4155 |
"description": "PHAR file format utilities, for when PHP phars you up",
|
4156 |
"keywords": [
|
4157 |
+
"phar"
|
4158 |
],
|
4159 |
+
"time": "2020-02-14T15:25:33+00:00"
|
4160 |
},
|
4161 |
{
|
4162 |
"name": "symfony/browser-kit",
|
4163 |
+
"version": "v3.4.38",
|
4164 |
"source": {
|
4165 |
"type": "git",
|
4166 |
"url": "https://github.com/symfony/browser-kit.git",
|
4167 |
+
"reference": "ede0c5fa204586e3fa51053fbea9cea8a5a3ee8b"
|
4168 |
},
|
4169 |
"dist": {
|
4170 |
"type": "zip",
|
4171 |
+
"url": "https://api.github.com/repos/symfony/browser-kit/zipball/ede0c5fa204586e3fa51053fbea9cea8a5a3ee8b",
|
4172 |
+
"reference": "ede0c5fa204586e3fa51053fbea9cea8a5a3ee8b",
|
4173 |
"shasum": ""
|
4174 |
},
|
4175 |
"require": {
|
4213 |
],
|
4214 |
"description": "Symfony BrowserKit Component",
|
4215 |
"homepage": "https://symfony.com",
|
4216 |
+
"time": "2020-01-01T11:03:25+00:00"
|
4217 |
},
|
4218 |
{
|
4219 |
"name": "symfony/console",
|
4220 |
+
"version": "v3.4.38",
|
4221 |
"source": {
|
4222 |
"type": "git",
|
4223 |
"url": "https://github.com/symfony/console.git",
|
4224 |
+
"reference": "6827023c5872bea44b29d145de693b21981cf4cd"
|
4225 |
},
|
4226 |
"dist": {
|
4227 |
"type": "zip",
|
4228 |
+
"url": "https://api.github.com/repos/symfony/console/zipball/6827023c5872bea44b29d145de693b21981cf4cd",
|
4229 |
+
"reference": "6827023c5872bea44b29d145de693b21981cf4cd",
|
4230 |
"shasum": ""
|
4231 |
},
|
4232 |
"require": {
|
4285 |
],
|
4286 |
"description": "Symfony Console Component",
|
4287 |
"homepage": "https://symfony.com",
|
4288 |
+
"time": "2020-02-15T13:27:16+00:00"
|
4289 |
},
|
4290 |
{
|
4291 |
"name": "symfony/css-selector",
|
4292 |
+
"version": "v3.4.38",
|
4293 |
"source": {
|
4294 |
"type": "git",
|
4295 |
"url": "https://github.com/symfony/css-selector.git",
|
4296 |
+
"reference": "ee9b946e7223b11257329a054c64396b19d619e1"
|
4297 |
},
|
4298 |
"dist": {
|
4299 |
"type": "zip",
|
4300 |
+
"url": "https://api.github.com/repos/symfony/css-selector/zipball/ee9b946e7223b11257329a054c64396b19d619e1",
|
4301 |
+
"reference": "ee9b946e7223b11257329a054c64396b19d619e1",
|
4302 |
"shasum": ""
|
4303 |
},
|
4304 |
"require": {
|
4338 |
],
|
4339 |
"description": "Symfony CssSelector Component",
|
4340 |
"homepage": "https://symfony.com",
|
4341 |
+
"time": "2020-02-04T08:04:52+00:00"
|
4342 |
},
|
4343 |
{
|
4344 |
"name": "symfony/debug",
|
4345 |
+
"version": "v3.4.38",
|
4346 |
"source": {
|
4347 |
"type": "git",
|
4348 |
"url": "https://github.com/symfony/debug.git",
|
4349 |
+
"reference": "a99278d50af8a9164219da38d61fb161a7f6e0a6"
|
4350 |
},
|
4351 |
"dist": {
|
4352 |
"type": "zip",
|
4353 |
+
"url": "https://api.github.com/repos/symfony/debug/zipball/a99278d50af8a9164219da38d61fb161a7f6e0a6",
|
4354 |
+
"reference": "a99278d50af8a9164219da38d61fb161a7f6e0a6",
|
4355 |
"shasum": ""
|
4356 |
},
|
4357 |
"require": {
|
4394 |
],
|
4395 |
"description": "Symfony Debug Component",
|
4396 |
"homepage": "https://symfony.com",
|
4397 |
+
"time": "2020-02-03T15:10:40+00:00"
|
4398 |
},
|
4399 |
{
|
4400 |
"name": "symfony/dom-crawler",
|
4401 |
+
"version": "v3.4.38",
|
4402 |
"source": {
|
4403 |
"type": "git",
|
4404 |
"url": "https://github.com/symfony/dom-crawler.git",
|
4405 |
+
"reference": "5ea08fead7392bc5bfe83fb8a289ac9b72cb689e"
|
4406 |
},
|
4407 |
"dist": {
|
4408 |
"type": "zip",
|
4409 |
+
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/5ea08fead7392bc5bfe83fb8a289ac9b72cb689e",
|
4410 |
+
"reference": "5ea08fead7392bc5bfe83fb8a289ac9b72cb689e",
|
4411 |
"shasum": ""
|
4412 |
},
|
4413 |
"require": {
|
4451 |
],
|
4452 |
"description": "Symfony DomCrawler Component",
|
4453 |
"homepage": "https://symfony.com",
|
4454 |
+
"time": "2020-02-26T17:12:32+00:00"
|
4455 |
},
|
4456 |
{
|
4457 |
"name": "symfony/event-dispatcher",
|
4458 |
+
"version": "v3.4.38",
|
4459 |
"source": {
|
4460 |
"type": "git",
|
4461 |
"url": "https://github.com/symfony/event-dispatcher.git",
|
4462 |
+
"reference": "2f67a869aef3eecf42e7f8be4a8b86c92308686c"
|
4463 |
},
|
4464 |
"dist": {
|
4465 |
"type": "zip",
|
4466 |
+
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2f67a869aef3eecf42e7f8be4a8b86c92308686c",
|
4467 |
+
"reference": "2f67a869aef3eecf42e7f8be4a8b86c92308686c",
|
4468 |
"shasum": ""
|
4469 |
},
|
4470 |
"require": {
|
4514 |
],
|
4515 |
"description": "Symfony EventDispatcher Component",
|
4516 |
"homepage": "https://symfony.com",
|
4517 |
+
"time": "2020-02-04T08:04:52+00:00"
|
4518 |
},
|
4519 |
{
|
4520 |
"name": "symfony/filesystem",
|
4521 |
+
"version": "v3.4.38",
|
4522 |
"source": {
|
4523 |
"type": "git",
|
4524 |
"url": "https://github.com/symfony/filesystem.git",
|
4525 |
+
"reference": "0a0d3b4bda11aa3a0464531c40e681e184e75628"
|
4526 |
},
|
4527 |
"dist": {
|
4528 |
"type": "zip",
|
4529 |
+
"url": "https://api.github.com/repos/symfony/filesystem/zipball/0a0d3b4bda11aa3a0464531c40e681e184e75628",
|
4530 |
+
"reference": "0a0d3b4bda11aa3a0464531c40e681e184e75628",
|
4531 |
"shasum": ""
|
4532 |
},
|
4533 |
"require": {
|
4564 |
],
|
4565 |
"description": "Symfony Filesystem Component",
|
4566 |
"homepage": "https://symfony.com",
|
4567 |
+
"time": "2020-01-17T08:50:08+00:00"
|
4568 |
},
|
4569 |
{
|
4570 |
"name": "symfony/finder",
|
4571 |
+
"version": "v3.4.38",
|
4572 |
"source": {
|
4573 |
"type": "git",
|
4574 |
"url": "https://github.com/symfony/finder.git",
|
4575 |
+
"reference": "5ec813ccafa8164ef21757e8c725d3a57da59200"
|
4576 |
},
|
4577 |
"dist": {
|
4578 |
"type": "zip",
|
4579 |
+
"url": "https://api.github.com/repos/symfony/finder/zipball/5ec813ccafa8164ef21757e8c725d3a57da59200",
|
4580 |
+
"reference": "5ec813ccafa8164ef21757e8c725d3a57da59200",
|
4581 |
"shasum": ""
|
4582 |
},
|
4583 |
"require": {
|
4613 |
],
|
4614 |
"description": "Symfony Finder Component",
|
4615 |
"homepage": "https://symfony.com",
|
4616 |
+
"time": "2020-02-14T07:34:21+00:00"
|
4617 |
},
|
4618 |
{
|
4619 |
"name": "symfony/polyfill-ctype",
|
4620 |
+
"version": "v1.14.0",
|
4621 |
"source": {
|
4622 |
"type": "git",
|
4623 |
"url": "https://github.com/symfony/polyfill-ctype.git",
|
4624 |
+
"reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38"
|
4625 |
},
|
4626 |
"dist": {
|
4627 |
"type": "zip",
|
4628 |
+
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/fbdeaec0df06cf3d51c93de80c7eb76e271f5a38",
|
4629 |
+
"reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38",
|
4630 |
"shasum": ""
|
4631 |
},
|
4632 |
"require": {
|
4638 |
"type": "library",
|
4639 |
"extra": {
|
4640 |
"branch-alias": {
|
4641 |
+
"dev-master": "1.14-dev"
|
4642 |
}
|
4643 |
},
|
4644 |
"autoload": {
|
4671 |
"polyfill",
|
4672 |
"portable"
|
4673 |
],
|
4674 |
+
"time": "2020-01-13T11:15:53+00:00"
|
4675 |
},
|
4676 |
{
|
4677 |
"name": "symfony/polyfill-mbstring",
|
4678 |
+
"version": "v1.14.0",
|
4679 |
"source": {
|
4680 |
"type": "git",
|
4681 |
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
4682 |
+
"reference": "34094cfa9abe1f0f14f48f490772db7a775559f2"
|
4683 |
},
|
4684 |
"dist": {
|
4685 |
"type": "zip",
|
4686 |
+
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/34094cfa9abe1f0f14f48f490772db7a775559f2",
|
4687 |
+
"reference": "34094cfa9abe1f0f14f48f490772db7a775559f2",
|
4688 |
"shasum": ""
|
4689 |
},
|
4690 |
"require": {
|
4696 |
"type": "library",
|
4697 |
"extra": {
|
4698 |
"branch-alias": {
|
4699 |
+
"dev-master": "1.14-dev"
|
4700 |
}
|
4701 |
},
|
4702 |
"autoload": {
|
4730 |
"portable",
|
4731 |
"shim"
|
4732 |
],
|
4733 |
+
"time": "2020-01-13T11:15:53+00:00"
|
4734 |
},
|
4735 |
{
|
4736 |
"name": "symfony/process",
|
4737 |
+
"version": "v3.4.38",
|
4738 |
"source": {
|
4739 |
"type": "git",
|
4740 |
"url": "https://github.com/symfony/process.git",
|
4741 |
+
"reference": "b03b02dcea26ba4c65c16a73bab4f00c186b13da"
|
4742 |
},
|
4743 |
"dist": {
|
4744 |
"type": "zip",
|
4745 |
+
"url": "https://api.github.com/repos/symfony/process/zipball/b03b02dcea26ba4c65c16a73bab4f00c186b13da",
|
4746 |
+
"reference": "b03b02dcea26ba4c65c16a73bab4f00c186b13da",
|
4747 |
"shasum": ""
|
4748 |
},
|
4749 |
"require": {
|
4779 |
],
|
4780 |
"description": "Symfony Process Component",
|
4781 |
"homepage": "https://symfony.com",
|
4782 |
+
"time": "2020-02-04T08:04:52+00:00"
|
4783 |
},
|
4784 |
{
|
4785 |
"name": "symfony/yaml",
|
4786 |
+
"version": "v3.4.38",
|
4787 |
"source": {
|
4788 |
"type": "git",
|
4789 |
"url": "https://github.com/symfony/yaml.git",
|
4790 |
+
"reference": "bc63e15160866e8730a1f738541b194c401f72bf"
|
4791 |
},
|
4792 |
"dist": {
|
4793 |
"type": "zip",
|
4794 |
+
"url": "https://api.github.com/repos/symfony/yaml/zipball/bc63e15160866e8730a1f738541b194c401f72bf",
|
4795 |
+
"reference": "bc63e15160866e8730a1f738541b194c401f72bf",
|
4796 |
"shasum": ""
|
4797 |
},
|
4798 |
"require": {
|
4838 |
],
|
4839 |
"description": "Symfony Yaml Component",
|
4840 |
"homepage": "https://symfony.com",
|
4841 |
+
"time": "2020-01-16T19:04:26+00:00"
|
4842 |
},
|
4843 |
{
|
4844 |
"name": "vlucas/phpdotenv",
|
4947 |
},
|
4948 |
{
|
4949 |
"name": "webmozart/assert",
|
4950 |
+
"version": "1.7.0",
|
4951 |
"source": {
|
4952 |
"type": "git",
|
4953 |
"url": "https://github.com/webmozart/assert.git",
|
4954 |
+
"reference": "aed98a490f9a8f78468232db345ab9cf606cf598"
|
4955 |
},
|
4956 |
"dist": {
|
4957 |
"type": "zip",
|
4958 |
+
"url": "https://api.github.com/repos/webmozart/assert/zipball/aed98a490f9a8f78468232db345ab9cf606cf598",
|
4959 |
+
"reference": "aed98a490f9a8f78468232db345ab9cf606cf598",
|
4960 |
"shasum": ""
|
4961 |
},
|
4962 |
"require": {
|
4963 |
"php": "^5.3.3 || ^7.0",
|
4964 |
"symfony/polyfill-ctype": "^1.8"
|
4965 |
},
|
4966 |
+
"conflict": {
|
4967 |
+
"vimeo/psalm": "<3.6.0"
|
4968 |
+
},
|
4969 |
"require-dev": {
|
4970 |
"phpunit/phpunit": "^4.8.36 || ^7.5.13"
|
4971 |
},
|
4972 |
"type": "library",
|
|
|
|
|
|
|
|
|
|
|
4973 |
"autoload": {
|
4974 |
"psr-4": {
|
4975 |
"Webmozart\\Assert\\": "src/"
|
4991 |
"check",
|
4992 |
"validate"
|
4993 |
],
|
4994 |
+
"time": "2020-02-14T12:15:55+00:00"
|
4995 |
},
|
4996 |
{
|
4997 |
"name": "wp-cli/cache-command",
|
5255 |
},
|
5256 |
{
|
5257 |
"name": "wp-cli/cron-command",
|
5258 |
+
"version": "v2.0.4",
|
5259 |
"source": {
|
5260 |
"type": "git",
|
5261 |
"url": "https://github.com/wp-cli/cron-command.git",
|
5262 |
+
"reference": "184ce82dfd6e7284a73f039ae39cf51a5f73174e"
|
5263 |
},
|
5264 |
"dist": {
|
5265 |
"type": "zip",
|
5266 |
+
"url": "https://api.github.com/repos/wp-cli/cron-command/zipball/184ce82dfd6e7284a73f039ae39cf51a5f73174e",
|
5267 |
+
"reference": "184ce82dfd6e7284a73f039ae39cf51a5f73174e",
|
5268 |
"shasum": ""
|
5269 |
},
|
5270 |
"require": {
|
5289 |
"cron event run",
|
5290 |
"cron event schedule",
|
5291 |
"cron schedule",
|
5292 |
+
"cron schedule list",
|
5293 |
+
"cron event unschedule"
|
5294 |
]
|
5295 |
},
|
5296 |
"autoload": {
|
5314 |
],
|
5315 |
"description": "Tests, runs, and deletes WP-Cron events; manages WP-Cron schedules.",
|
5316 |
"homepage": "https://github.com/wp-cli/cron-command",
|
5317 |
+
"time": "2019-12-17T17:53:36+00:00"
|
5318 |
},
|
5319 |
{
|
5320 |
"name": "wp-cli/db-command",
|
5321 |
+
"version": "v2.0.6",
|
5322 |
"source": {
|
5323 |
"type": "git",
|
5324 |
"url": "https://github.com/wp-cli/db-command.git",
|
5325 |
+
"reference": "8e3cd46987241ed97ddb7f682b3505dff8d6dce4"
|
5326 |
},
|
5327 |
"dist": {
|
5328 |
"type": "zip",
|
5329 |
+
"url": "https://api.github.com/repos/wp-cli/db-command/zipball/8e3cd46987241ed97ddb7f682b3505dff8d6dce4",
|
5330 |
+
"reference": "8e3cd46987241ed97ddb7f682b3505dff8d6dce4",
|
5331 |
"shasum": ""
|
5332 |
},
|
5333 |
"require": {
|
5384 |
],
|
5385 |
"description": "Performs basic database operations using credentials stored in wp-config.php.",
|
5386 |
"homepage": "https://github.com/wp-cli/db-command",
|
5387 |
+
"time": "2020-01-28T16:39:32+00:00"
|
5388 |
},
|
5389 |
{
|
5390 |
"name": "wp-cli/embed-command",
|
5657 |
},
|
5658 |
{
|
5659 |
"name": "wp-cli/eval-command",
|
5660 |
+
"version": "v2.0.6",
|
5661 |
"source": {
|
5662 |
"type": "git",
|
5663 |
"url": "https://github.com/wp-cli/eval-command.git",
|
5664 |
+
"reference": "d379732f9899387a6a631ccea5116b3da6f16300"
|
5665 |
},
|
5666 |
"dist": {
|
5667 |
"type": "zip",
|
5668 |
+
"url": "https://api.github.com/repos/wp-cli/eval-command/zipball/d379732f9899387a6a631ccea5116b3da6f16300",
|
5669 |
+
"reference": "d379732f9899387a6a631ccea5116b3da6f16300",
|
5670 |
"shasum": ""
|
5671 |
},
|
5672 |
"require": {
|
5707 |
],
|
5708 |
"description": "Executes arbitrary PHP code or files.",
|
5709 |
"homepage": "https://github.com/wp-cli/eval-command",
|
5710 |
+
"time": "2020-02-06T11:24:47+00:00"
|
5711 |
},
|
5712 |
{
|
5713 |
"name": "wp-cli/export-command",
|
5769 |
},
|
5770 |
{
|
5771 |
"name": "wp-cli/extension-command",
|
5772 |
+
"version": "v2.0.8",
|
5773 |
"source": {
|
5774 |
"type": "git",
|
5775 |
"url": "https://github.com/wp-cli/extension-command.git",
|
5776 |
+
"reference": "3f55805356ccc502f38a24f224b8943f181d4813"
|
5777 |
},
|
5778 |
"dist": {
|
5779 |
"type": "zip",
|
5780 |
+
"url": "https://api.github.com/repos/wp-cli/extension-command/zipball/3f55805356ccc502f38a24f224b8943f181d4813",
|
5781 |
+
"reference": "3f55805356ccc502f38a24f224b8943f181d4813",
|
5782 |
"shasum": ""
|
5783 |
},
|
5784 |
"require": {
|
5852 |
],
|
5853 |
"description": "Manages plugins and themes, including installs, activations, and updates.",
|
5854 |
"homepage": "https://github.com/wp-cli/extension-command",
|
5855 |
+
"time": "2020-02-24T02:53:35+00:00"
|
5856 |
},
|
5857 |
{
|
5858 |
"name": "wp-cli/i18n-command",
|
5859 |
+
"version": "v2.2.2",
|
5860 |
"source": {
|
5861 |
"type": "git",
|
5862 |
"url": "https://github.com/wp-cli/i18n-command.git",
|
5863 |
+
"reference": "2804c5246d9338da59951737b03c54d257be8e47"
|
5864 |
},
|
5865 |
"dist": {
|
5866 |
"type": "zip",
|
5867 |
+
"url": "https://api.github.com/repos/wp-cli/i18n-command/zipball/2804c5246d9338da59951737b03c54d257be8e47",
|
5868 |
+
"reference": "2804c5246d9338da59951737b03c54d257be8e47",
|
5869 |
"shasum": ""
|
5870 |
},
|
5871 |
"require": {
|
5909 |
],
|
5910 |
"description": "Provides internationalization tools for WordPress projects.",
|
5911 |
"homepage": "https://github.com/wp-cli/i18n-command",
|
5912 |
+
"time": "2019-12-13T09:00:43+00:00"
|
5913 |
},
|
5914 |
{
|
5915 |
"name": "wp-cli/import-command",
|
6207 |
},
|
6208 |
{
|
6209 |
"name": "wp-cli/package-command",
|
6210 |
+
"version": "v2.0.6",
|
6211 |
"source": {
|
6212 |
"type": "git",
|
6213 |
"url": "https://github.com/wp-cli/package-command.git",
|
6214 |
+
"reference": "92a0d7f2f4b54ad2aeff2292baaa96ba8f93f37a"
|
6215 |
},
|
6216 |
"dist": {
|
6217 |
"type": "zip",
|
6218 |
+
"url": "https://api.github.com/repos/wp-cli/package-command/zipball/92a0d7f2f4b54ad2aeff2292baaa96ba8f93f37a",
|
6219 |
+
"reference": "92a0d7f2f4b54ad2aeff2292baaa96ba8f93f37a",
|
6220 |
"shasum": ""
|
6221 |
},
|
6222 |
"require": {
|
6264 |
],
|
6265 |
"description": "Lists, installs, and removes WP-CLI packages.",
|
6266 |
"homepage": "https://github.com/wp-cli/package-command",
|
6267 |
+
"time": "2020-01-28T12:55:09+00:00"
|
6268 |
},
|
6269 |
{
|
6270 |
"name": "wp-cli/php-cli-tools",
|
6437 |
},
|
6438 |
{
|
6439 |
"name": "wp-cli/scaffold-command",
|
6440 |
+
"version": "v2.0.8",
|
6441 |
"source": {
|
6442 |
"type": "git",
|
6443 |
"url": "https://github.com/wp-cli/scaffold-command.git",
|
6444 |
+
"reference": "4814acbdf3d7af499530cc1ae1e82f3ed9f12674"
|
6445 |
},
|
6446 |
"dist": {
|
6447 |
"type": "zip",
|
6448 |
+
"url": "https://api.github.com/repos/wp-cli/scaffold-command/zipball/4814acbdf3d7af499530cc1ae1e82f3ed9f12674",
|
6449 |
+
"reference": "4814acbdf3d7af499530cc1ae1e82f3ed9f12674",
|
6450 |
"shasum": ""
|
6451 |
},
|
6452 |
"require": {
|
6496 |
],
|
6497 |
"description": "Generates code for post types, taxonomies, blocks, plugins, child themes, etc.",
|
6498 |
"homepage": "https://github.com/wp-cli/scaffold-command",
|
6499 |
+
"time": "2019-11-25T13:26:31+00:00"
|
6500 |
},
|
6501 |
{
|
6502 |
"name": "wp-cli/search-replace-command",
|
6503 |
+
"version": "v2.0.6",
|
6504 |
"source": {
|
6505 |
"type": "git",
|
6506 |
"url": "https://github.com/wp-cli/search-replace-command.git",
|
6507 |
+
"reference": "f446ca1f90144b496dbacb373868118ba40df028"
|
6508 |
},
|
6509 |
"dist": {
|
6510 |
"type": "zip",
|
6511 |
+
"url": "https://api.github.com/repos/wp-cli/search-replace-command/zipball/f446ca1f90144b496dbacb373868118ba40df028",
|
6512 |
+
"reference": "f446ca1f90144b496dbacb373868118ba40df028",
|
6513 |
"shasum": ""
|
6514 |
},
|
6515 |
"require": {
|
6552 |
],
|
6553 |
"description": "Searches/replaces strings in the database.",
|
6554 |
"homepage": "https://github.com/wp-cli/search-replace-command",
|
6555 |
+
"time": "2019-12-13T09:13:20+00:00"
|
6556 |
},
|
6557 |
{
|
6558 |
"name": "wp-cli/server-command",
|
6720 |
},
|
6721 |
{
|
6722 |
"name": "wp-cli/widget-command",
|
6723 |
+
"version": "v2.1.0",
|
6724 |
"source": {
|
6725 |
"type": "git",
|
6726 |
"url": "https://github.com/wp-cli/widget-command.git",
|
6727 |
+
"reference": "ddbc2c3e9966fae8de05a3200b04e0faf42fe06f"
|
6728 |
},
|
6729 |
"dist": {
|
6730 |
"type": "zip",
|
6731 |
+
"url": "https://api.github.com/repos/wp-cli/widget-command/zipball/ddbc2c3e9966fae8de05a3200b04e0faf42fe06f",
|
6732 |
+
"reference": "ddbc2c3e9966fae8de05a3200b04e0faf42fe06f",
|
6733 |
"shasum": ""
|
6734 |
},
|
6735 |
"require": {
|
6736 |
+
"wp-cli/wp-cli": "^2.4"
|
6737 |
},
|
6738 |
"require-dev": {
|
6739 |
"wp-cli/extension-command": "^1.2 || ^2",
|
6779 |
],
|
6780 |
"description": "Adds, moves, and removes widgets; lists sidebars.",
|
6781 |
"homepage": "https://github.com/wp-cli/widget-command",
|
6782 |
+
"time": "2020-01-18T02:17:30+00:00"
|
6783 |
},
|
6784 |
{
|
6785 |
"name": "wp-cli/wp-cli",
|
6786 |
+
"version": "v2.4.1",
|
6787 |
"source": {
|
6788 |
"type": "git",
|
6789 |
"url": "https://github.com/wp-cli/wp-cli.git",
|
6790 |
+
"reference": "ceb18598e79befa9b2a37a51efbb34910628988b"
|
6791 |
},
|
6792 |
"dist": {
|
6793 |
"type": "zip",
|
6794 |
+
"url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/ceb18598e79befa9b2a37a51efbb34910628988b",
|
6795 |
+
"reference": "ceb18598e79befa9b2a37a51efbb34910628988b",
|
6796 |
"shasum": ""
|
6797 |
},
|
6798 |
"require": {
|
|
|
6799 |
"ext-curl": "*",
|
6800 |
+
"mustache/mustache": "~2.13",
|
6801 |
"php": "^5.4 || ^7.0",
|
6802 |
"rmccue/requests": "~1.6",
|
6803 |
"symfony/finder": ">2.7",
|
6824 |
"extra": {
|
6825 |
"branch-alias": {
|
6826 |
"dev-master": "2.4.x-dev"
|
|
|
|
|
|
|
|
|
|
|
6827 |
}
|
6828 |
},
|
6829 |
"autoload": {
|
6841 |
"cli",
|
6842 |
"wordpress"
|
6843 |
],
|
6844 |
+
"time": "2020-02-18T08:15:37+00:00"
|
6845 |
},
|
6846 |
{
|
6847 |
"name": "wp-cli/wp-cli-bundle",
|
6956 |
},
|
6957 |
{
|
6958 |
"name": "wpdesk/wp-basic-requirements",
|
6959 |
+
"version": "3.2.2",
|
6960 |
"source": {
|
6961 |
"type": "git",
|
6962 |
"url": "https://gitlab.com/wpdesk/wp-basic-requirements.git",
|
6963 |
+
"reference": "abf5fb85ac47324b8f4d5cc4088f89e0bda52d9d"
|
6964 |
},
|
6965 |
"dist": {
|
6966 |
"type": "zip",
|
6967 |
+
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-basic-requirements/repository/archive.zip?sha=abf5fb85ac47324b8f4d5cc4088f89e0bda52d9d",
|
6968 |
+
"reference": "abf5fb85ac47324b8f4d5cc4088f89e0bda52d9d",
|
6969 |
"shasum": ""
|
6970 |
},
|
6971 |
"require": {
|
6981 |
"wp-coding-standards/wpcs": "^0.14.1"
|
6982 |
},
|
6983 |
"type": "library",
|
6984 |
+
"extra": {
|
6985 |
+
"text-domain": "wp-basic-requirements",
|
6986 |
+
"translations-folder": "lang",
|
6987 |
+
"po-files": {
|
6988 |
+
"pl_PL": "wp-basic-requirements-pl_PL.po"
|
6989 |
+
}
|
6990 |
+
},
|
6991 |
"notification-url": "https://packagist.org/downloads/",
|
6992 |
"authors": [
|
6993 |
{
|
6995 |
"email": "krzysiek@wpdesk.pl"
|
6996 |
}
|
6997 |
],
|
6998 |
+
"time": "2019-12-17T13:58:01+00:00"
|
6999 |
},
|
7000 |
{
|
7001 |
"name": "wpdesk/wp-builder",
|
7002 |
+
"version": "1.4.1",
|
7003 |
"source": {
|
7004 |
"type": "git",
|
7005 |
"url": "https://gitlab.com/wpdesk/wp-builder.git",
|
7006 |
+
"reference": "707313bffb1e36dcda20140dfe431dcb1ece60df"
|
7007 |
},
|
7008 |
"dist": {
|
7009 |
"type": "zip",
|
7010 |
+
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-builder/repository/archive.zip?sha=707313bffb1e36dcda20140dfe431dcb1ece60df",
|
7011 |
+
"reference": "707313bffb1e36dcda20140dfe431dcb1ece60df",
|
7012 |
"shasum": ""
|
7013 |
},
|
7014 |
"require": {
|
7038 |
"email": "krzysiek@wpdesk.pl"
|
7039 |
}
|
7040 |
],
|
7041 |
+
"time": "2019-11-20T08:08:49+00:00"
|
7042 |
},
|
7043 |
{
|
7044 |
"name": "wpdesk/wp-codeception",
|
7045 |
+
"version": "1.4.15",
|
7046 |
"source": {
|
7047 |
"type": "git",
|
7048 |
"url": "https://gitlab.com/wpdesk/wp-codeception.git",
|
7049 |
+
"reference": "bef3b7eeb1aaf371914c8aa6da6ae133a71cb237"
|
7050 |
},
|
7051 |
"dist": {
|
7052 |
"type": "zip",
|
7053 |
+
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-codeception/repository/archive.zip?sha=bef3b7eeb1aaf371914c8aa6da6ae133a71cb237",
|
7054 |
+
"reference": "bef3b7eeb1aaf371914c8aa6da6ae133a71cb237",
|
7055 |
"shasum": ""
|
7056 |
},
|
7057 |
"require": {
|
7097 |
"codeception",
|
7098 |
"wordpress"
|
7099 |
],
|
7100 |
+
"time": "2020-02-25T09:56:49+00:00"
|
7101 |
},
|
7102 |
{
|
7103 |
"name": "wpdesk/wp-logs",
|
7145 |
},
|
7146 |
{
|
7147 |
"name": "wpdesk/wp-notice",
|
7148 |
+
"version": "3.1.3",
|
7149 |
"source": {
|
7150 |
"type": "git",
|
7151 |
"url": "https://gitlab.com/wpdesk/wp-notice.git",
|
7152 |
+
"reference": "bd062f56852a6206ae23f0c635ee7c97aa553438"
|
7153 |
},
|
7154 |
"dist": {
|
7155 |
"type": "zip",
|
7156 |
+
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-notice/repository/archive.zip?sha=bd062f56852a6206ae23f0c635ee7c97aa553438",
|
7157 |
+
"reference": "bd062f56852a6206ae23f0c635ee7c97aa553438",
|
7158 |
"shasum": ""
|
7159 |
},
|
7160 |
"require": {
|
7195 |
"notice",
|
7196 |
"wordpress"
|
7197 |
],
|
7198 |
+
"time": "2020-03-06T11:09:25+00:00"
|
7199 |
},
|
7200 |
{
|
7201 |
"name": "wpdesk/wp-plugin-flow",
|
7202 |
+
"version": "2.4.0",
|
7203 |
"source": {
|
7204 |
"type": "git",
|
7205 |
"url": "https://gitlab.com/wpdesk/wp-plugin-flow.git",
|
7206 |
+
"reference": "3d3e2103711ebe91e77829b75366dfe8e103b745"
|
7207 |
},
|
7208 |
"dist": {
|
7209 |
"type": "zip",
|
7210 |
+
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-plugin-flow/repository/archive.zip?sha=3d3e2103711ebe91e77829b75366dfe8e103b745",
|
7211 |
+
"reference": "3d3e2103711ebe91e77829b75366dfe8e103b745",
|
7212 |
"shasum": ""
|
7213 |
},
|
7214 |
"require": {
|
7215 |
"php": ">=5.6",
|
7216 |
"wpdesk/wp-basic-requirements": "^3",
|
7217 |
+
"wpdesk/wp-builder": "^1.4",
|
7218 |
+
"wpdesk/wp-wpdesk-helper": "^2.1",
|
7219 |
+
"wpdesk/wp-wpdesk-license": "^2.6",
|
7220 |
"wpdesk/wp-wpdesk-tracker": "^2.0.4"
|
7221 |
},
|
7222 |
"require-dev": {
|
7223 |
"10up/wp_mock": "^0.2",
|
7224 |
"phpunit/phpunit": "<7",
|
7225 |
"squizlabs/php_codesniffer": "^3.4.2",
|
7226 |
+
"wp-coding-standards/wpcs": "^0.14.1",
|
7227 |
+
"wpdesk/wp-wpdesk-composer": "^2.3"
|
7228 |
},
|
7229 |
"type": "library",
|
7230 |
+
"extra": {
|
7231 |
+
"text-domain": "wp-plugin-flow",
|
7232 |
+
"translations-folder": "lang",
|
7233 |
+
"po-files": {
|
7234 |
+
"pl_PL": "pl_PL.po"
|
7235 |
+
}
|
7236 |
+
},
|
7237 |
"autoload": {
|
7238 |
"classmap": [
|
7239 |
"src"
|
7246 |
"email": "krzysiek@wpdesk.pl"
|
7247 |
}
|
7248 |
],
|
7249 |
+
"time": "2019-11-13T13:20:09+00:00"
|
7250 |
},
|
7251 |
{
|
7252 |
"name": "wpdesk/wp-wpdesk-composer",
|
7253 |
+
"version": "2.6.1",
|
7254 |
"source": {
|
7255 |
"type": "git",
|
7256 |
"url": "https://gitlab.com/wpdesk/wp-wpdesk-composer.git",
|
7257 |
+
"reference": "19b905b5f64a3612ef1b7d0a75501a66a235064e"
|
7258 |
},
|
7259 |
"dist": {
|
7260 |
"type": "zip",
|
7261 |
+
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-composer/repository/archive.zip?sha=19b905b5f64a3612ef1b7d0a75501a66a235064e",
|
7262 |
+
"reference": "19b905b5f64a3612ef1b7d0a75501a66a235064e",
|
7263 |
"shasum": ""
|
7264 |
},
|
7265 |
"require": {
|
7266 |
"composer-plugin-api": "^1.1",
|
7267 |
"ext-json": "*",
|
7268 |
+
"gettext/gettext": "^4",
|
7269 |
+
"matthiasmullie/minify": "^1.3",
|
7270 |
"php": ">=5.6"
|
7271 |
},
|
7272 |
"require-dev": {
|
7288 |
"email": "krzysiek@wpdesk.pl"
|
7289 |
}
|
7290 |
],
|
7291 |
+
"time": "2020-03-03T10:58:26+00:00"
|
7292 |
},
|
7293 |
{
|
7294 |
"name": "wpdesk/wp-wpdesk-helper",
|
7295 |
+
"version": "2.3.4",
|
7296 |
"source": {
|
7297 |
"type": "git",
|
7298 |
"url": "https://gitlab.com/wpdesk/wp-wpdesk-helper.git",
|
7299 |
+
"reference": "5a56f8d850220929b3cd3d41d73f9aabe054f21f"
|
7300 |
},
|
7301 |
"dist": {
|
7302 |
"type": "zip",
|
7303 |
+
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-helper/repository/archive.zip?sha=5a56f8d850220929b3cd3d41d73f9aabe054f21f",
|
7304 |
+
"reference": "5a56f8d850220929b3cd3d41d73f9aabe054f21f",
|
7305 |
"shasum": ""
|
7306 |
},
|
7307 |
"require": {
|
7308 |
"php": ">=5.6",
|
7309 |
+
"wpdesk/wp-basic-requirements": "^3",
|
7310 |
"wpdesk/wp-builder": "^1.2",
|
7311 |
"wpdesk/wp-logs": "^1.6.0",
|
7312 |
"wpdesk/wp-notice": "^3.1.1",
|
7313 |
+
"wpdesk/wp-wpdesk-license": "^2.6",
|
7314 |
"wpdesk/wp-wpdesk-tracker": "^2.0.4"
|
7315 |
},
|
7316 |
"require-dev": {
|
7322 |
"wp-coding-standards/wpcs": "^0.14.1"
|
7323 |
},
|
7324 |
"type": "library",
|
7325 |
+
"extra": {
|
7326 |
+
"text-domain": "wpdesk-helper-textdomain",
|
7327 |
+
"translations-folder": "lang",
|
7328 |
+
"po-files": {
|
7329 |
+
"pl_PL": "wpdesk-helper-pl_PL.po"
|
7330 |
+
}
|
7331 |
+
},
|
7332 |
"autoload": {
|
7333 |
"psr-4": {
|
7334 |
"WPDesk\\Helper\\": "src/"
|
7341 |
"email": "krzysiek@wpdesk.pl"
|
7342 |
}
|
7343 |
],
|
7344 |
+
"time": "2020-01-22T18:34:24+00:00"
|
7345 |
},
|
7346 |
{
|
7347 |
"name": "wpdesk/wp-wpdesk-license",
|
7348 |
+
"version": "2.8.0",
|
7349 |
"source": {
|
7350 |
"type": "git",
|
7351 |
"url": "https://gitlab.com/wpdesk/wp-wpdesk-license.git",
|
7352 |
+
"reference": "d386ad95b89844547e97e472128bb10d8216a7e1"
|
7353 |
},
|
7354 |
"dist": {
|
7355 |
"type": "zip",
|
7356 |
+
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-license/repository/archive.zip?sha=d386ad95b89844547e97e472128bb10d8216a7e1",
|
7357 |
+
"reference": "d386ad95b89844547e97e472128bb10d8216a7e1",
|
7358 |
"shasum": ""
|
7359 |
},
|
7360 |
"require": {
|
7372 |
"wp-coding-standards/wpcs": "^0.14.1"
|
7373 |
},
|
7374 |
"type": "library",
|
7375 |
+
"extra": {
|
7376 |
+
"text-domain": "wp-wpdesk-license",
|
7377 |
+
"translations-folder": "lang",
|
7378 |
+
"po-files": {
|
7379 |
+
"pl_PL": "wp-wpdesk-license-pl_PL.po"
|
7380 |
+
}
|
7381 |
+
},
|
7382 |
"autoload": {
|
7383 |
"classmap": [
|
7384 |
"src/ApiManager"
|
7394 |
"email": "krzysiek@wpdesk.pl"
|
7395 |
}
|
7396 |
],
|
7397 |
+
"time": "2020-03-06T11:13:06+00:00"
|
7398 |
},
|
7399 |
{
|
7400 |
"name": "wpdesk/wp-wpdesk-tracker",
|
7401 |
+
"version": "2.1.2",
|
7402 |
"source": {
|
7403 |
"type": "git",
|
7404 |
"url": "https://gitlab.com/wpdesk/wp-wpdesk-tracker.git",
|
7405 |
+
"reference": "de6363eee5ff8677e3f8610b592eb5acdd969a8c"
|
7406 |
},
|
7407 |
"dist": {
|
7408 |
"type": "zip",
|
7409 |
+
"url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-tracker/repository/archive.zip?sha=de6363eee5ff8677e3f8610b592eb5acdd969a8c",
|
7410 |
+
"reference": "de6363eee5ff8677e3f8610b592eb5acdd969a8c",
|
7411 |
"shasum": ""
|
7412 |
},
|
7413 |
"require": {
|
7422 |
"wp-coding-standards/wpcs": "^0.14.1"
|
7423 |
},
|
7424 |
"type": "library",
|
7425 |
+
"extra": {
|
7426 |
+
"text-domain": "wpdesk-tracker",
|
7427 |
+
"translations-folder": "lang",
|
7428 |
+
"po-files": {
|
7429 |
+
"pl_PL": "wpdesk-tracker-pl_PL.po"
|
7430 |
+
}
|
7431 |
+
},
|
7432 |
"autoload": {
|
7433 |
"classmap": [
|
7434 |
"src/"
|
7441 |
"email": "krzysiek@wpdesk.pl"
|
7442 |
}
|
7443 |
],
|
7444 |
+
"time": "2020-03-06T11:13:37+00:00"
|
7445 |
},
|
7446 |
{
|
7447 |
"name": "zordius/lightncandy",
|
flexible-checkout-fields.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Flexible Checkout Fields
|
4 |
Plugin URI: https://www.wpdesk.net/products/flexible-checkout-fields-pro-woocommerce/
|
5 |
Description: Manage your WooCommerce checkout fields. Change order, labels, placeholders and add new fields.
|
6 |
-
Version: 2.
|
7 |
Author: WP Desk
|
8 |
Author URI: https://www.wpdesk.net/
|
9 |
Text Domain: flexible-checkout-fields
|
@@ -11,7 +11,7 @@
|
|
11 |
Requires at least: 4.6
|
12 |
Tested up to: 5.3.2
|
13 |
WC requires at least: 3.1.0
|
14 |
-
WC tested up to: 3.9.
|
15 |
Requires PHP: 5.6
|
16 |
|
17 |
Copyright 2017 WP Desk Ltd.
|
@@ -37,8 +37,8 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
37 |
|
38 |
|
39 |
/* THESE TWO VARIABLES CAN BE CHANGED AUTOMATICALLY */
|
40 |
-
$plugin_version = '2.
|
41 |
-
$plugin_release_timestamp = '2020-
|
42 |
|
43 |
define( 'FLEXIBLE_CHECKOUT_FIELDS_VERSION', $plugin_version );
|
44 |
|
3 |
Plugin Name: Flexible Checkout Fields
|
4 |
Plugin URI: https://www.wpdesk.net/products/flexible-checkout-fields-pro-woocommerce/
|
5 |
Description: Manage your WooCommerce checkout fields. Change order, labels, placeholders and add new fields.
|
6 |
+
Version: 2.4.0
|
7 |
Author: WP Desk
|
8 |
Author URI: https://www.wpdesk.net/
|
9 |
Text Domain: flexible-checkout-fields
|
11 |
Requires at least: 4.6
|
12 |
Tested up to: 5.3.2
|
13 |
WC requires at least: 3.1.0
|
14 |
+
WC tested up to: 3.9.3
|
15 |
Requires PHP: 5.6
|
16 |
|
17 |
Copyright 2017 WP Desk Ltd.
|
37 |
|
38 |
|
39 |
/* THESE TWO VARIABLES CAN BE CHANGED AUTOMATICALLY */
|
40 |
+
$plugin_version = '2.4.0';
|
41 |
+
$plugin_release_timestamp = '2020-03-06 16:53';
|
42 |
|
43 |
define( 'FLEXIBLE_CHECKOUT_FIELDS_VERSION', $plugin_version );
|
44 |
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Donate link: https://www.wpdesk.net/flexible-checkout-fields-woocommerce/
|
|
5 |
Tags: woocommerce checkout fields, woocommerce custom fields, woocommerce checkout manager, woocommerce checkout editor, woocommerce fields manager, woocommerce fields editor, woocommerce custom checkout fields, woocommerce checkout options, woocommerce checkout pro, woocommerce custom sections, woocommerce file upload
|
6 |
Requires at least: 4.5
|
7 |
Tested up to: 5.3.2
|
8 |
-
Stable tag: 2.
|
9 |
Requires PHP: 5.6
|
10 |
License: GPLv3 or later
|
11 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
@@ -193,6 +193,10 @@ If you are upgrading from the old WooCommerce Checkout Fields version (1.1, wooc
|
|
193 |
|
194 |
== Changelog ==
|
195 |
|
|
|
|
|
|
|
|
|
196 |
= 2.3.4 - 2020-02-25 =
|
197 |
* Fixed attibute/value escaping in admin panel and on checkout page
|
198 |
* Added additional security hardenings
|
5 |
Tags: woocommerce checkout fields, woocommerce custom fields, woocommerce checkout manager, woocommerce checkout editor, woocommerce fields manager, woocommerce fields editor, woocommerce custom checkout fields, woocommerce checkout options, woocommerce checkout pro, woocommerce custom sections, woocommerce file upload
|
6 |
Requires at least: 4.5
|
7 |
Tested up to: 5.3.2
|
8 |
+
Stable tag: 2.4.0
|
9 |
Requires PHP: 5.6
|
10 |
License: GPLv3 or later
|
11 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
193 |
|
194 |
== Changelog ==
|
195 |
|
196 |
+
= 2.4.0 - 2020-03-06 =
|
197 |
+
* Added additional request sanitization
|
198 |
+
* Tweaked remote calling css files
|
199 |
+
|
200 |
= 2.3.4 - 2020-02-25 =
|
201 |
* Fixed attibute/value escaping in admin panel and on checkout page
|
202 |
* Added additional security hardenings
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit74dfe271bcd624105a31c1687a00b316::getLoader();
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -115,6 +115,7 @@ return array(
|
|
115 |
'FcfVendor\\WPDesk\\Composer\\Codeception\\Plugin' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Plugin.php',
|
116 |
'FcfVendor\\WPDesk\\Helper\\Debug\\LibraryDebug' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Debug/LibraryDebug.php',
|
117 |
'FcfVendor\\WPDesk\\Helper\\HelperAsLibrary' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-helper-override/src/Helper/HelperAsLibrary.php',
|
|
|
118 |
'FcfVendor\\WPDesk\\Helper\\HelperRemover' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/HelperRemover.php',
|
119 |
'FcfVendor\\WPDesk\\Helper\\Integration\\LicenseIntegration' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/LicenseIntegration.php',
|
120 |
'FcfVendor\\WPDesk\\Helper\\Integration\\LogsIntegration' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/LogsIntegration.php',
|
@@ -132,6 +133,7 @@ return array(
|
|
132 |
'FcfVendor\\WPDesk\\License\\Page\\License\\Action\\LicenseDeactivation' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/LicenseDeactivation.php',
|
133 |
'FcfVendor\\WPDesk\\License\\Page\\License\\Action\\Nothing' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/Nothing.php',
|
134 |
'FcfVendor\\WPDesk\\License\\PluginRegistrator' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/PluginRegistrator.php',
|
|
|
135 |
'FcfVendor\\WPDesk\\Logger\\BasicLoggerFactory' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/BasicLoggerFactory.php',
|
136 |
'FcfVendor\\WPDesk\\Logger\\LoggerFacade' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/LoggerFacade.php',
|
137 |
'FcfVendor\\WPDesk\\Logger\\LoggerFactory' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/LoggerFactory.php',
|
@@ -150,27 +152,33 @@ return array(
|
|
150 |
'FcfVendor\\WPDesk\\PluginBuilder\\Builder\\InfoActivationBuilder' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Builder/InfoActivationBuilder.php',
|
151 |
'FcfVendor\\WPDesk\\PluginBuilder\\Builder\\InfoBuilder' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Builder/InfoBuilder.php',
|
152 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\AbstractPlugin' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/AbstractPlugin.php',
|
|
|
153 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\ActivationAware' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/ActivationAware.php',
|
154 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\ActivationTracker' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/ActivationTracker.php',
|
|
|
|
|
155 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\Hookable' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Hookable.php',
|
156 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\HookableCollection' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookableCollection.php',
|
157 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\HookableParent' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookableParent.php',
|
158 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\HookablePluginDependant' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookablePluginDependant.php',
|
159 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\PluginAccess' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/PluginAccess.php',
|
|
|
160 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\TemplateLoad' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/TemplateLoad.php',
|
161 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\Exception\\ClassAlreadyExists' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/Exception/ClassAlreadyExists.php',
|
162 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\Exception\\ClassNotExists' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/Exception/ClassNotExists.php',
|
163 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\PluginStorage' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/PluginStorage.php',
|
164 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\StaticStorage' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/StaticStorage.php',
|
165 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\StorageFactory' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/StorageFactory.php',
|
|
|
|
|
166 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\InitializationFactory' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/InitializationFactory.php',
|
167 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\InitializationStrategy' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/InitializationStrategy.php',
|
168 |
-
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\
|
169 |
-
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\
|
170 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\SimpleFactory' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/Simple/SimpleFactory.php',
|
171 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\SimpleFreeStrategy' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/Simple/SimpleFreeStrategy.php',
|
172 |
-
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\
|
173 |
-
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\
|
174 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\PluginBootstrap' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/PluginBootstrap.php',
|
175 |
'FcfVendor\\WPDesk_API_KEY' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-key-api.php',
|
176 |
'FcfVendor\\WPDesk_API_MENU' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php',
|
115 |
'FcfVendor\\WPDesk\\Composer\\Codeception\\Plugin' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Plugin.php',
|
116 |
'FcfVendor\\WPDesk\\Helper\\Debug\\LibraryDebug' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Debug/LibraryDebug.php',
|
117 |
'FcfVendor\\WPDesk\\Helper\\HelperAsLibrary' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-helper-override/src/Helper/HelperAsLibrary.php',
|
118 |
+
'FcfVendor\\WPDesk\\Helper\\HelperRemoveInfo' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/HelperRemoveNotice.php',
|
119 |
'FcfVendor\\WPDesk\\Helper\\HelperRemover' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/HelperRemover.php',
|
120 |
'FcfVendor\\WPDesk\\Helper\\Integration\\LicenseIntegration' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/LicenseIntegration.php',
|
121 |
'FcfVendor\\WPDesk\\Helper\\Integration\\LogsIntegration' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/LogsIntegration.php',
|
133 |
'FcfVendor\\WPDesk\\License\\Page\\License\\Action\\LicenseDeactivation' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/LicenseDeactivation.php',
|
134 |
'FcfVendor\\WPDesk\\License\\Page\\License\\Action\\Nothing' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/Nothing.php',
|
135 |
'FcfVendor\\WPDesk\\License\\PluginRegistrator' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/PluginRegistrator.php',
|
136 |
+
'FcfVendor\\WPDesk\\License\\ServerAddressRepository' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ServerAddressRepository.php',
|
137 |
'FcfVendor\\WPDesk\\Logger\\BasicLoggerFactory' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/BasicLoggerFactory.php',
|
138 |
'FcfVendor\\WPDesk\\Logger\\LoggerFacade' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/LoggerFacade.php',
|
139 |
'FcfVendor\\WPDesk\\Logger\\LoggerFactory' => $baseDir . '/vendor_prefixed/wpdesk/wp-logs/src/LoggerFactory.php',
|
152 |
'FcfVendor\\WPDesk\\PluginBuilder\\Builder\\InfoActivationBuilder' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Builder/InfoActivationBuilder.php',
|
153 |
'FcfVendor\\WPDesk\\PluginBuilder\\Builder\\InfoBuilder' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Builder/InfoBuilder.php',
|
154 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\AbstractPlugin' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/AbstractPlugin.php',
|
155 |
+
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\Activateable' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Activateable.php',
|
156 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\ActivationAware' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/ActivationAware.php',
|
157 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\ActivationTracker' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/ActivationTracker.php',
|
158 |
+
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\Conditional' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Conditional.php',
|
159 |
+
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\Deactivateable' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Deactivateable.php',
|
160 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\Hookable' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Hookable.php',
|
161 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\HookableCollection' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookableCollection.php',
|
162 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\HookableParent' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookableParent.php',
|
163 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\HookablePluginDependant' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookablePluginDependant.php',
|
164 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\PluginAccess' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/PluginAccess.php',
|
165 |
+
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\SlimPlugin' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/SlimPlugin.php',
|
166 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\TemplateLoad' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/TemplateLoad.php',
|
167 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\Exception\\ClassAlreadyExists' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/Exception/ClassAlreadyExists.php',
|
168 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\Exception\\ClassNotExists' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/Exception/ClassNotExists.php',
|
169 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\PluginStorage' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/PluginStorage.php',
|
170 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\StaticStorage' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/StaticStorage.php',
|
171 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\StorageFactory' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/StorageFactory.php',
|
172 |
+
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\WordpressFilterStorage' => $baseDir . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/WordpressFilterStorage.php',
|
173 |
+
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\BuilderTrait' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/BuilderTrait.php',
|
174 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\InitializationFactory' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/InitializationFactory.php',
|
175 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\InitializationStrategy' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/InitializationStrategy.php',
|
176 |
+
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\PluginDisablerByFileTrait' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/PluginDisablerByFileTrait.php',
|
177 |
+
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\HelperInstanceAsFilterTrait' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/HelperInstanceAsFilterTrait.php',
|
178 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\SimpleFactory' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/Simple/SimpleFactory.php',
|
179 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\SimpleFreeStrategy' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/Simple/SimpleFreeStrategy.php',
|
180 |
+
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\SimplePaidStrategy' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/Simple/SimplePaidStrategy.php',
|
181 |
+
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\TrackerInstanceAsFilterTrait' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/TrackerInstanceAsFilterTrait.php',
|
182 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\PluginBootstrap' => $baseDir . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/PluginBootstrap.php',
|
183 |
'FcfVendor\\WPDesk_API_KEY' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-key-api.php',
|
184 |
'FcfVendor\\WPDesk_API_MENU' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php',
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit5d9b591879aa2d09adfbf96a5fca0b73
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
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\
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit74dfe271bcd624105a31c1687a00b316
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit74dfe271bcd624105a31c1687a00b316', 'loadClassLoader'), true, true);
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit74dfe271bcd624105a31c1687a00b316', '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\ComposerStaticInit74dfe271bcd624105a31c1687a00b316::getInitializer($loader));
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
'P' =>
|
@@ -130,6 +130,7 @@ class ComposerStaticInit5d9b591879aa2d09adfbf96a5fca0b73
|
|
130 |
'FcfVendor\\WPDesk\\Composer\\Codeception\\Plugin' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Plugin.php',
|
131 |
'FcfVendor\\WPDesk\\Helper\\Debug\\LibraryDebug' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Debug/LibraryDebug.php',
|
132 |
'FcfVendor\\WPDesk\\Helper\\HelperAsLibrary' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-helper-override/src/Helper/HelperAsLibrary.php',
|
|
|
133 |
'FcfVendor\\WPDesk\\Helper\\HelperRemover' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/HelperRemover.php',
|
134 |
'FcfVendor\\WPDesk\\Helper\\Integration\\LicenseIntegration' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/LicenseIntegration.php',
|
135 |
'FcfVendor\\WPDesk\\Helper\\Integration\\LogsIntegration' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/LogsIntegration.php',
|
@@ -147,6 +148,7 @@ class ComposerStaticInit5d9b591879aa2d09adfbf96a5fca0b73
|
|
147 |
'FcfVendor\\WPDesk\\License\\Page\\License\\Action\\LicenseDeactivation' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/LicenseDeactivation.php',
|
148 |
'FcfVendor\\WPDesk\\License\\Page\\License\\Action\\Nothing' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/Nothing.php',
|
149 |
'FcfVendor\\WPDesk\\License\\PluginRegistrator' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/PluginRegistrator.php',
|
|
|
150 |
'FcfVendor\\WPDesk\\Logger\\BasicLoggerFactory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/BasicLoggerFactory.php',
|
151 |
'FcfVendor\\WPDesk\\Logger\\LoggerFacade' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/LoggerFacade.php',
|
152 |
'FcfVendor\\WPDesk\\Logger\\LoggerFactory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/LoggerFactory.php',
|
@@ -165,27 +167,33 @@ class ComposerStaticInit5d9b591879aa2d09adfbf96a5fca0b73
|
|
165 |
'FcfVendor\\WPDesk\\PluginBuilder\\Builder\\InfoActivationBuilder' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Builder/InfoActivationBuilder.php',
|
166 |
'FcfVendor\\WPDesk\\PluginBuilder\\Builder\\InfoBuilder' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Builder/InfoBuilder.php',
|
167 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\AbstractPlugin' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/AbstractPlugin.php',
|
|
|
168 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\ActivationAware' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/ActivationAware.php',
|
169 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\ActivationTracker' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/ActivationTracker.php',
|
|
|
|
|
170 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\Hookable' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Hookable.php',
|
171 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\HookableCollection' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookableCollection.php',
|
172 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\HookableParent' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookableParent.php',
|
173 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\HookablePluginDependant' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookablePluginDependant.php',
|
174 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\PluginAccess' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/PluginAccess.php',
|
|
|
175 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\TemplateLoad' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/TemplateLoad.php',
|
176 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\Exception\\ClassAlreadyExists' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/Exception/ClassAlreadyExists.php',
|
177 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\Exception\\ClassNotExists' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/Exception/ClassNotExists.php',
|
178 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\PluginStorage' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/PluginStorage.php',
|
179 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\StaticStorage' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/StaticStorage.php',
|
180 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\StorageFactory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/StorageFactory.php',
|
|
|
|
|
181 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\InitializationFactory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/InitializationFactory.php',
|
182 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\InitializationStrategy' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/InitializationStrategy.php',
|
183 |
-
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\
|
184 |
-
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\
|
185 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\SimpleFactory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/Simple/SimpleFactory.php',
|
186 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\SimpleFreeStrategy' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/Simple/SimpleFreeStrategy.php',
|
187 |
-
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\
|
188 |
-
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\
|
189 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\PluginBootstrap' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/PluginBootstrap.php',
|
190 |
'FcfVendor\\WPDesk_API_KEY' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-key-api.php',
|
191 |
'FcfVendor\\WPDesk_API_MENU' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php',
|
@@ -267,9 +275,9 @@ class ComposerStaticInit5d9b591879aa2d09adfbf96a5fca0b73
|
|
267 |
public static function getInitializer(ClassLoader $loader)
|
268 |
{
|
269 |
return \Closure::bind(function () use ($loader) {
|
270 |
-
$loader->prefixLengthsPsr4 =
|
271 |
-
$loader->prefixDirsPsr4 =
|
272 |
-
$loader->classMap =
|
273 |
|
274 |
}, null, ClassLoader::class);
|
275 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInit74dfe271bcd624105a31c1687a00b316
|
8 |
{
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
'P' =>
|
130 |
'FcfVendor\\WPDesk\\Composer\\Codeception\\Plugin' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Plugin.php',
|
131 |
'FcfVendor\\WPDesk\\Helper\\Debug\\LibraryDebug' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Debug/LibraryDebug.php',
|
132 |
'FcfVendor\\WPDesk\\Helper\\HelperAsLibrary' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-helper-override/src/Helper/HelperAsLibrary.php',
|
133 |
+
'FcfVendor\\WPDesk\\Helper\\HelperRemoveInfo' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/HelperRemoveNotice.php',
|
134 |
'FcfVendor\\WPDesk\\Helper\\HelperRemover' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/HelperRemover.php',
|
135 |
'FcfVendor\\WPDesk\\Helper\\Integration\\LicenseIntegration' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/LicenseIntegration.php',
|
136 |
'FcfVendor\\WPDesk\\Helper\\Integration\\LogsIntegration' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/LogsIntegration.php',
|
148 |
'FcfVendor\\WPDesk\\License\\Page\\License\\Action\\LicenseDeactivation' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/LicenseDeactivation.php',
|
149 |
'FcfVendor\\WPDesk\\License\\Page\\License\\Action\\Nothing' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/Nothing.php',
|
150 |
'FcfVendor\\WPDesk\\License\\PluginRegistrator' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/PluginRegistrator.php',
|
151 |
+
'FcfVendor\\WPDesk\\License\\ServerAddressRepository' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ServerAddressRepository.php',
|
152 |
'FcfVendor\\WPDesk\\Logger\\BasicLoggerFactory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/BasicLoggerFactory.php',
|
153 |
'FcfVendor\\WPDesk\\Logger\\LoggerFacade' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/LoggerFacade.php',
|
154 |
'FcfVendor\\WPDesk\\Logger\\LoggerFactory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-logs/src/LoggerFactory.php',
|
167 |
'FcfVendor\\WPDesk\\PluginBuilder\\Builder\\InfoActivationBuilder' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Builder/InfoActivationBuilder.php',
|
168 |
'FcfVendor\\WPDesk\\PluginBuilder\\Builder\\InfoBuilder' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Builder/InfoBuilder.php',
|
169 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\AbstractPlugin' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/AbstractPlugin.php',
|
170 |
+
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\Activateable' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Activateable.php',
|
171 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\ActivationAware' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/ActivationAware.php',
|
172 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\ActivationTracker' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/ActivationTracker.php',
|
173 |
+
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\Conditional' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Conditional.php',
|
174 |
+
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\Deactivateable' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Deactivateable.php',
|
175 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\Hookable' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/Hookable.php',
|
176 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\HookableCollection' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookableCollection.php',
|
177 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\HookableParent' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookableParent.php',
|
178 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\HookablePluginDependant' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookablePluginDependant.php',
|
179 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\PluginAccess' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/PluginAccess.php',
|
180 |
+
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\SlimPlugin' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/SlimPlugin.php',
|
181 |
'FcfVendor\\WPDesk\\PluginBuilder\\Plugin\\TemplateLoad' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Plugin/TemplateLoad.php',
|
182 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\Exception\\ClassAlreadyExists' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/Exception/ClassAlreadyExists.php',
|
183 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\Exception\\ClassNotExists' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/Exception/ClassNotExists.php',
|
184 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\PluginStorage' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/PluginStorage.php',
|
185 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\StaticStorage' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/StaticStorage.php',
|
186 |
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\StorageFactory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/StorageFactory.php',
|
187 |
+
'FcfVendor\\WPDesk\\PluginBuilder\\Storage\\WordpressFilterStorage' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-builder/src/Storage/WordpressFilterStorage.php',
|
188 |
+
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\BuilderTrait' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/BuilderTrait.php',
|
189 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\InitializationFactory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/InitializationFactory.php',
|
190 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\InitializationStrategy' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/InitializationStrategy.php',
|
191 |
+
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\PluginDisablerByFileTrait' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/PluginDisablerByFileTrait.php',
|
192 |
+
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\HelperInstanceAsFilterTrait' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/HelperInstanceAsFilterTrait.php',
|
193 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\SimpleFactory' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/Simple/SimpleFactory.php',
|
194 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\SimpleFreeStrategy' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/Simple/SimpleFreeStrategy.php',
|
195 |
+
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\SimplePaidStrategy' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/Simple/SimplePaidStrategy.php',
|
196 |
+
'FcfVendor\\WPDesk\\Plugin\\Flow\\Initialization\\Simple\\TrackerInstanceAsFilterTrait' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/TrackerInstanceAsFilterTrait.php',
|
197 |
'FcfVendor\\WPDesk\\Plugin\\Flow\\PluginBootstrap' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-plugin-flow/src/PluginBootstrap.php',
|
198 |
'FcfVendor\\WPDesk_API_KEY' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-key-api.php',
|
199 |
'FcfVendor\\WPDesk_API_MENU' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php',
|
275 |
public static function getInitializer(ClassLoader $loader)
|
276 |
{
|
277 |
return \Closure::bind(function () use ($loader) {
|
278 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInit74dfe271bcd624105a31c1687a00b316::$prefixLengthsPsr4;
|
279 |
+
$loader->prefixDirsPsr4 = ComposerStaticInit74dfe271bcd624105a31c1687a00b316::$prefixDirsPsr4;
|
280 |
+
$loader->classMap = ComposerStaticInit74dfe271bcd624105a31c1687a00b316::$classMap;
|
281 |
|
282 |
}, null, ClassLoader::class);
|
283 |
}
|
vendor/composer/installed.json
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
[
|
2 |
{
|
3 |
"name": "psr/log",
|
4 |
-
"version": "1.1.
|
5 |
-
"version_normalized": "1.1.
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
"url": "https://github.com/php-fig/log.git",
|
9 |
-
"reference": "
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
-
"url": "https://api.github.com/repos/php-fig/log/zipball/
|
14 |
-
"reference": "
|
15 |
"shasum": ""
|
16 |
},
|
17 |
"require": {
|
18 |
"php": ">=5.3.0"
|
19 |
},
|
20 |
-
"time": "
|
21 |
"type": "library",
|
22 |
"extra": {
|
23 |
"branch-alias": {
|
24 |
-
"dev-master": "1.
|
25 |
}
|
26 |
},
|
27 |
"installation-source": "dist",
|
1 |
[
|
2 |
{
|
3 |
"name": "psr/log",
|
4 |
+
"version": "1.1.2",
|
5 |
+
"version_normalized": "1.1.2.0",
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
"url": "https://github.com/php-fig/log.git",
|
9 |
+
"reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801"
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
+
"url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801",
|
14 |
+
"reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801",
|
15 |
"shasum": ""
|
16 |
},
|
17 |
"require": {
|
18 |
"php": ">=5.3.0"
|
19 |
},
|
20 |
+
"time": "2019-11-01T11:05:21+00:00",
|
21 |
"type": "library",
|
22 |
"extra": {
|
23 |
"branch-alias": {
|
24 |
+
"dev-master": "1.1.x-dev"
|
25 |
}
|
26 |
},
|
27 |
"installation-source": "dist",
|
vendor/psr/log/Psr/Log/LoggerInterface.php
CHANGED
@@ -118,6 +118,8 @@ interface LoggerInterface
|
|
118 |
* @param array $context
|
119 |
*
|
120 |
* @return void
|
|
|
|
|
121 |
*/
|
122 |
public function log($level, $message, array $context = array());
|
123 |
}
|
118 |
* @param array $context
|
119 |
*
|
120 |
* @return void
|
121 |
+
*
|
122 |
+
* @throws \Psr\Log\InvalidArgumentException
|
123 |
*/
|
124 |
public function log($level, $message, array $context = array());
|
125 |
}
|
vendor/psr/log/Psr/Log/LoggerTrait.php
CHANGED
@@ -135,6 +135,8 @@ trait LoggerTrait
|
|
135 |
* @param array $context
|
136 |
*
|
137 |
* @return void
|
|
|
|
|
138 |
*/
|
139 |
abstract public function log($level, $message, array $context = array());
|
140 |
}
|
135 |
* @param array $context
|
136 |
*
|
137 |
* @return void
|
138 |
+
*
|
139 |
+
* @throws \Psr\Log\InvalidArgumentException
|
140 |
*/
|
141 |
abstract public function log($level, $message, array $context = array());
|
142 |
}
|
vendor/psr/log/Psr/Log/NullLogger.php
CHANGED
@@ -20,6 +20,8 @@ class NullLogger extends AbstractLogger
|
|
20 |
* @param array $context
|
21 |
*
|
22 |
* @return void
|
|
|
|
|
23 |
*/
|
24 |
public function log($level, $message, array $context = array())
|
25 |
{
|
20 |
* @param array $context
|
21 |
*
|
22 |
* @return void
|
23 |
+
*
|
24 |
+
* @throws \Psr\Log\InvalidArgumentException
|
25 |
*/
|
26 |
public function log($level, $message, array $context = array())
|
27 |
{
|
vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
CHANGED
@@ -4,6 +4,7 @@ namespace Psr\Log\Test;
|
|
4 |
|
5 |
use Psr\Log\LoggerInterface;
|
6 |
use Psr\Log\LogLevel;
|
|
|
7 |
|
8 |
/**
|
9 |
* Provides a base test class for ensuring compliance with the LoggerInterface.
|
@@ -11,7 +12,7 @@ use Psr\Log\LogLevel;
|
|
11 |
* Implementors can extend the class and implement abstract methods to run this
|
12 |
* as part of their test suite.
|
13 |
*/
|
14 |
-
abstract class LoggerInterfaceTest extends
|
15 |
{
|
16 |
/**
|
17 |
* @return LoggerInterface
|
@@ -140,5 +141,6 @@ class DummyTest
|
|
140 |
{
|
141 |
public function __toString()
|
142 |
{
|
|
|
143 |
}
|
144 |
}
|
4 |
|
5 |
use Psr\Log\LoggerInterface;
|
6 |
use Psr\Log\LogLevel;
|
7 |
+
use PHPUnit\Framework\TestCase;
|
8 |
|
9 |
/**
|
10 |
* Provides a base test class for ensuring compliance with the LoggerInterface.
|
12 |
* Implementors can extend the class and implement abstract methods to run this
|
13 |
* as part of their test suite.
|
14 |
*/
|
15 |
+
abstract class LoggerInterfaceTest extends TestCase
|
16 |
{
|
17 |
/**
|
18 |
* @return LoggerInterface
|
141 |
{
|
142 |
public function __toString()
|
143 |
{
|
144 |
+
return 'DummyTest';
|
145 |
}
|
146 |
}
|
vendor/psr/log/Psr/Log/Test/TestLogger.php
CHANGED
@@ -142,5 +142,6 @@ class TestLogger extends AbstractLogger
|
|
142 |
public function reset()
|
143 |
{
|
144 |
$this->records = [];
|
|
|
145 |
}
|
146 |
}
|
142 |
public function reset()
|
143 |
{
|
144 |
$this->records = [];
|
145 |
+
$this->recordsByLevel = [];
|
146 |
}
|
147 |
}
|
vendor/psr/log/composer.json
CHANGED
@@ -20,7 +20,7 @@
|
|
20 |
},
|
21 |
"extra": {
|
22 |
"branch-alias": {
|
23 |
-
"dev-master": "1.
|
24 |
}
|
25 |
}
|
26 |
}
|
20 |
},
|
21 |
"extra": {
|
22 |
"branch-alias": {
|
23 |
+
"dev-master": "1.1.x-dev"
|
24 |
}
|
25 |
}
|
26 |
}
|
vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php
CHANGED
@@ -10,6 +10,7 @@
|
|
10 |
*/
|
11 |
namespace FcfVendor\Monolog\Formatter;
|
12 |
|
|
|
13 |
/**
|
14 |
* Class FluentdFormatter
|
15 |
*
|
@@ -59,7 +60,7 @@ class FluentdFormatter implements \FcfVendor\Monolog\Formatter\FormatterInterfac
|
|
59 |
$message['level'] = $record['level'];
|
60 |
$message['level_name'] = $record['level_name'];
|
61 |
}
|
62 |
-
return \
|
63 |
}
|
64 |
public function formatBatch(array $records)
|
65 |
{
|
10 |
*/
|
11 |
namespace FcfVendor\Monolog\Formatter;
|
12 |
|
13 |
+
use FcfVendor\Monolog\Utils;
|
14 |
/**
|
15 |
* Class FluentdFormatter
|
16 |
*
|
60 |
$message['level'] = $record['level'];
|
61 |
$message['level_name'] = $record['level_name'];
|
62 |
}
|
63 |
+
return \FcfVendor\Monolog\Utils::jsonEncode(array($tag, $record['datetime']->getTimestamp(), $message));
|
64 |
}
|
65 |
public function formatBatch(array $records)
|
66 |
{
|
vendor_prefixed/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php
CHANGED
@@ -11,6 +11,7 @@
|
|
11 |
namespace FcfVendor\Monolog\Formatter;
|
12 |
|
13 |
use FcfVendor\Monolog\Logger;
|
|
|
14 |
/**
|
15 |
* Formats incoming records into an HTML table
|
16 |
*
|
@@ -111,8 +112,8 @@ class HtmlFormatter extends \FcfVendor\Monolog\Formatter\NormalizerFormatter
|
|
111 |
}
|
112 |
$data = $this->normalize($data);
|
113 |
if (\version_compare(\PHP_VERSION, '5.4.0', '>=')) {
|
114 |
-
return \
|
115 |
}
|
116 |
-
return \str_replace('\\/', '/', \
|
117 |
}
|
118 |
}
|
11 |
namespace FcfVendor\Monolog\Formatter;
|
12 |
|
13 |
use FcfVendor\Monolog\Logger;
|
14 |
+
use FcfVendor\Monolog\Utils;
|
15 |
/**
|
16 |
* Formats incoming records into an HTML table
|
17 |
*
|
112 |
}
|
113 |
$data = $this->normalize($data);
|
114 |
if (\version_compare(\PHP_VERSION, '5.4.0', '>=')) {
|
115 |
+
return \FcfVendor\Monolog\Utils::jsonEncode($data, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE, \true);
|
116 |
}
|
117 |
+
return \str_replace('\\/', '/', \FcfVendor\Monolog\Utils::jsonEncode($data, null, \true));
|
118 |
}
|
119 |
}
|
vendor_prefixed/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php
CHANGED
@@ -128,7 +128,7 @@ class JsonFormatter extends \FcfVendor\Monolog\Formatter\NormalizerFormatter
|
|
128 |
if ($depth > 9) {
|
129 |
return 'Over 9 levels deep, aborting normalization';
|
130 |
}
|
131 |
-
if (\is_array($data)
|
132 |
$normalized = array();
|
133 |
$count = 1;
|
134 |
foreach ($data as $key => $value) {
|
@@ -143,6 +143,9 @@ class JsonFormatter extends \FcfVendor\Monolog\Formatter\NormalizerFormatter
|
|
143 |
if ($data instanceof \Exception || $data instanceof \Throwable) {
|
144 |
return $this->normalizeException($data);
|
145 |
}
|
|
|
|
|
|
|
146 |
return $data;
|
147 |
}
|
148 |
/**
|
@@ -159,7 +162,7 @@ class JsonFormatter extends \FcfVendor\Monolog\Formatter\NormalizerFormatter
|
|
159 |
if (!$e instanceof \Exception && !$e instanceof \Throwable) {
|
160 |
throw new \InvalidArgumentException('Exception/Throwable expected, got ' . \gettype($e) . ' / ' . \FcfVendor\Monolog\Utils::getClass($e));
|
161 |
}
|
162 |
-
$data = array('class' => \FcfVendor\Monolog\Utils::getClass($e), 'message' => $e->getMessage(), 'code' => $e->getCode(), 'file' => $e->getFile() . ':' . $e->getLine());
|
163 |
if ($this->includeStacktraces) {
|
164 |
$trace = $e->getTrace();
|
165 |
foreach ($trace as $frame) {
|
128 |
if ($depth > 9) {
|
129 |
return 'Over 9 levels deep, aborting normalization';
|
130 |
}
|
131 |
+
if (\is_array($data)) {
|
132 |
$normalized = array();
|
133 |
$count = 1;
|
134 |
foreach ($data as $key => $value) {
|
143 |
if ($data instanceof \Exception || $data instanceof \Throwable) {
|
144 |
return $this->normalizeException($data);
|
145 |
}
|
146 |
+
if (\is_resource($data)) {
|
147 |
+
return parent::normalize($data);
|
148 |
+
}
|
149 |
return $data;
|
150 |
}
|
151 |
/**
|
162 |
if (!$e instanceof \Exception && !$e instanceof \Throwable) {
|
163 |
throw new \InvalidArgumentException('Exception/Throwable expected, got ' . \gettype($e) . ' / ' . \FcfVendor\Monolog\Utils::getClass($e));
|
164 |
}
|
165 |
+
$data = array('class' => \FcfVendor\Monolog\Utils::getClass($e), 'message' => $e->getMessage(), 'code' => (int) $e->getCode(), 'file' => $e->getFile() . ':' . $e->getLine());
|
166 |
if ($this->includeStacktraces) {
|
167 |
$trace = $e->getTrace();
|
168 |
foreach ($trace as $frame) {
|
vendor_prefixed/monolog/monolog/src/Monolog/Formatter/LineFormatter.php
CHANGED
@@ -135,7 +135,7 @@ class LineFormatter extends \FcfVendor\Monolog\Formatter\NormalizerFormatter
|
|
135 |
if (\version_compare(\PHP_VERSION, '5.4.0', '>=')) {
|
136 |
return $this->toJson($data, \true);
|
137 |
}
|
138 |
-
return \str_replace('\\/', '/',
|
139 |
}
|
140 |
protected function replaceNewlines($str)
|
141 |
{
|
135 |
if (\version_compare(\PHP_VERSION, '5.4.0', '>=')) {
|
136 |
return $this->toJson($data, \true);
|
137 |
}
|
138 |
+
return \str_replace('\\/', '/', $this->toJson($data, \true));
|
139 |
}
|
140 |
protected function replaceNewlines($str)
|
141 |
{
|
vendor_prefixed/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php
CHANGED
@@ -73,7 +73,7 @@ class MongoDBFormatter implements \FcfVendor\Monolog\Formatter\FormatterInterfac
|
|
73 |
}
|
74 |
protected function formatException(\Exception $exception, $nestingLevel)
|
75 |
{
|
76 |
-
$formattedException = array('class' => \FcfVendor\Monolog\Utils::getClass($exception), 'message' => $exception->getMessage(), 'code' => $exception->getCode(), 'file' => $exception->getFile() . ':' . $exception->getLine());
|
77 |
if ($this->exceptionTraceAsString === \true) {
|
78 |
$formattedException['trace'] = $exception->getTraceAsString();
|
79 |
} else {
|
73 |
}
|
74 |
protected function formatException(\Exception $exception, $nestingLevel)
|
75 |
{
|
76 |
+
$formattedException = array('class' => \FcfVendor\Monolog\Utils::getClass($exception), 'message' => $exception->getMessage(), 'code' => (int) $exception->getCode(), 'file' => $exception->getFile() . ':' . $exception->getLine());
|
77 |
if ($this->exceptionTraceAsString === \true) {
|
78 |
$formattedException['trace'] = $exception->getTraceAsString();
|
79 |
} else {
|
vendor_prefixed/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php
CHANGED
@@ -104,7 +104,7 @@ class NormalizerFormatter implements \FcfVendor\Monolog\Formatter\FormatterInter
|
|
104 |
if (!$e instanceof \Exception && !$e instanceof \Throwable) {
|
105 |
throw new \InvalidArgumentException('Exception/Throwable expected, got ' . \gettype($e) . ' / ' . \FcfVendor\Monolog\Utils::getClass($e));
|
106 |
}
|
107 |
-
$data = array('class' => \FcfVendor\Monolog\Utils::getClass($e), 'message' => $e->getMessage(), 'code' => $e->getCode(), 'file' => $e->getFile() . ':' . $e->getLine());
|
108 |
if ($e instanceof \SoapFault) {
|
109 |
if (isset($e->faultcode)) {
|
110 |
$data['faultcode'] = $e->faultcode;
|
@@ -112,8 +112,8 @@ class NormalizerFormatter implements \FcfVendor\Monolog\Formatter\FormatterInter
|
|
112 |
if (isset($e->faultactor)) {
|
113 |
$data['faultactor'] = $e->faultactor;
|
114 |
}
|
115 |
-
if (isset($e->detail)) {
|
116 |
-
$data['detail'] = $e->detail;
|
117 |
}
|
118 |
}
|
119 |
$trace = $e->getTrace();
|
@@ -137,108 +137,6 @@ class NormalizerFormatter implements \FcfVendor\Monolog\Formatter\FormatterInter
|
|
137 |
*/
|
138 |
protected function toJson($data, $ignoreErrors = \false)
|
139 |
{
|
140 |
-
|
141 |
-
if ($ignoreErrors) {
|
142 |
-
return @$this->jsonEncode($data);
|
143 |
-
}
|
144 |
-
$json = $this->jsonEncode($data);
|
145 |
-
if ($json === \false) {
|
146 |
-
$json = $this->handleJsonError(\json_last_error(), $data);
|
147 |
-
}
|
148 |
-
return $json;
|
149 |
-
}
|
150 |
-
/**
|
151 |
-
* @param mixed $data
|
152 |
-
* @return string JSON encoded data or null on failure
|
153 |
-
*/
|
154 |
-
private function jsonEncode($data)
|
155 |
-
{
|
156 |
-
if (\version_compare(\PHP_VERSION, '5.4.0', '>=')) {
|
157 |
-
return \json_encode($data, \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE);
|
158 |
-
}
|
159 |
-
return \json_encode($data);
|
160 |
-
}
|
161 |
-
/**
|
162 |
-
* Handle a json_encode failure.
|
163 |
-
*
|
164 |
-
* If the failure is due to invalid string encoding, try to clean the
|
165 |
-
* input and encode again. If the second encoding attempt fails, the
|
166 |
-
* inital error is not encoding related or the input can't be cleaned then
|
167 |
-
* raise a descriptive exception.
|
168 |
-
*
|
169 |
-
* @param int $code return code of json_last_error function
|
170 |
-
* @param mixed $data data that was meant to be encoded
|
171 |
-
* @throws \RuntimeException if failure can't be corrected
|
172 |
-
* @return string JSON encoded data after error correction
|
173 |
-
*/
|
174 |
-
private function handleJsonError($code, $data)
|
175 |
-
{
|
176 |
-
if ($code !== \JSON_ERROR_UTF8) {
|
177 |
-
$this->throwEncodeError($code, $data);
|
178 |
-
}
|
179 |
-
if (\is_string($data)) {
|
180 |
-
$this->detectAndCleanUtf8($data);
|
181 |
-
} elseif (\is_array($data)) {
|
182 |
-
\array_walk_recursive($data, array($this, 'detectAndCleanUtf8'));
|
183 |
-
} else {
|
184 |
-
$this->throwEncodeError($code, $data);
|
185 |
-
}
|
186 |
-
$json = $this->jsonEncode($data);
|
187 |
-
if ($json === \false) {
|
188 |
-
$this->throwEncodeError(\json_last_error(), $data);
|
189 |
-
}
|
190 |
-
return $json;
|
191 |
-
}
|
192 |
-
/**
|
193 |
-
* Throws an exception according to a given code with a customized message
|
194 |
-
*
|
195 |
-
* @param int $code return code of json_last_error function
|
196 |
-
* @param mixed $data data that was meant to be encoded
|
197 |
-
* @throws \RuntimeException
|
198 |
-
*/
|
199 |
-
private function throwEncodeError($code, $data)
|
200 |
-
{
|
201 |
-
switch ($code) {
|
202 |
-
case \JSON_ERROR_DEPTH:
|
203 |
-
$msg = 'Maximum stack depth exceeded';
|
204 |
-
break;
|
205 |
-
case \JSON_ERROR_STATE_MISMATCH:
|
206 |
-
$msg = 'Underflow or the modes mismatch';
|
207 |
-
break;
|
208 |
-
case \JSON_ERROR_CTRL_CHAR:
|
209 |
-
$msg = 'Unexpected control character found';
|
210 |
-
break;
|
211 |
-
case \JSON_ERROR_UTF8:
|
212 |
-
$msg = 'Malformed UTF-8 characters, possibly incorrectly encoded';
|
213 |
-
break;
|
214 |
-
default:
|
215 |
-
$msg = 'Unknown error';
|
216 |
-
}
|
217 |
-
throw new \RuntimeException('JSON encoding failed: ' . $msg . '. Encoding: ' . \var_export($data, \true));
|
218 |
-
}
|
219 |
-
/**
|
220 |
-
* Detect invalid UTF-8 string characters and convert to valid UTF-8.
|
221 |
-
*
|
222 |
-
* Valid UTF-8 input will be left unmodified, but strings containing
|
223 |
-
* invalid UTF-8 codepoints will be reencoded as UTF-8 with an assumed
|
224 |
-
* original encoding of ISO-8859-15. This conversion may result in
|
225 |
-
* incorrect output if the actual encoding was not ISO-8859-15, but it
|
226 |
-
* will be clean UTF-8 output and will not rely on expensive and fragile
|
227 |
-
* detection algorithms.
|
228 |
-
*
|
229 |
-
* Function converts the input in place in the passed variable so that it
|
230 |
-
* can be used as a callback for array_walk_recursive.
|
231 |
-
*
|
232 |
-
* @param mixed &$data Input to check and convert if needed
|
233 |
-
* @private
|
234 |
-
*/
|
235 |
-
public function detectAndCleanUtf8(&$data)
|
236 |
-
{
|
237 |
-
if (\is_string($data) && !\preg_match('//u', $data)) {
|
238 |
-
$data = \preg_replace_callback('/[\\x80-\\xFF]+/', function ($m) {
|
239 |
-
return \utf8_encode($m[0]);
|
240 |
-
}, $data);
|
241 |
-
$data = \str_replace(array('¤', '¦', '¨', '´', '¸', '¼', '½', '¾'), array('€', 'Š', 'š', 'Ž', 'ž', 'Œ', 'œ', 'Ÿ'), $data);
|
242 |
-
}
|
243 |
}
|
244 |
}
|
104 |
if (!$e instanceof \Exception && !$e instanceof \Throwable) {
|
105 |
throw new \InvalidArgumentException('Exception/Throwable expected, got ' . \gettype($e) . ' / ' . \FcfVendor\Monolog\Utils::getClass($e));
|
106 |
}
|
107 |
+
$data = array('class' => \FcfVendor\Monolog\Utils::getClass($e), 'message' => $e->getMessage(), 'code' => (int) $e->getCode(), 'file' => $e->getFile() . ':' . $e->getLine());
|
108 |
if ($e instanceof \SoapFault) {
|
109 |
if (isset($e->faultcode)) {
|
110 |
$data['faultcode'] = $e->faultcode;
|
112 |
if (isset($e->faultactor)) {
|
113 |
$data['faultactor'] = $e->faultactor;
|
114 |
}
|
115 |
+
if (isset($e->detail) && (\is_string($e->detail) || \is_object($e->detail) || \is_array($e->detail))) {
|
116 |
+
$data['detail'] = \is_string($e->detail) ? $e->detail : \reset($e->detail);
|
117 |
}
|
118 |
}
|
119 |
$trace = $e->getTrace();
|
137 |
*/
|
138 |
protected function toJson($data, $ignoreErrors = \false)
|
139 |
{
|
140 |
+
return \FcfVendor\Monolog\Utils::jsonEncode($data, null, $ignoreErrors);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
}
|
142 |
}
|
vendor_prefixed/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php
CHANGED
@@ -141,17 +141,18 @@ class BrowserConsoleHandler extends \FcfVendor\Monolog\Handler\AbstractProcessin
|
|
141 |
}
|
142 |
private static function handleStyles($formatted)
|
143 |
{
|
144 |
-
$args = array(
|
145 |
$format = '%c' . $formatted;
|
146 |
\preg_match_all('/\\[\\[(.*?)\\]\\]\\{([^}]*)\\}/s', $format, $matches, \PREG_OFFSET_CAPTURE | \PREG_SET_ORDER);
|
147 |
foreach (\array_reverse($matches) as $match) {
|
148 |
-
$args[] = static::quote(static::handleCustomStyles($match[2][0], $match[1][0]));
|
149 |
$args[] = '"font-weight: normal"';
|
|
|
150 |
$pos = $match[0][1];
|
151 |
$format = \substr($format, 0, $pos) . '%c' . $match[1][0] . '%c' . \substr($format, $pos + \strlen($match[0][0]));
|
152 |
}
|
153 |
-
|
154 |
-
|
|
|
155 |
}
|
156 |
private static function handleCustomStyles($style, $string)
|
157 |
{
|
141 |
}
|
142 |
private static function handleStyles($formatted)
|
143 |
{
|
144 |
+
$args = array();
|
145 |
$format = '%c' . $formatted;
|
146 |
\preg_match_all('/\\[\\[(.*?)\\]\\]\\{([^}]*)\\}/s', $format, $matches, \PREG_OFFSET_CAPTURE | \PREG_SET_ORDER);
|
147 |
foreach (\array_reverse($matches) as $match) {
|
|
|
148 |
$args[] = '"font-weight: normal"';
|
149 |
+
$args[] = static::quote(static::handleCustomStyles($match[2][0], $match[1][0]));
|
150 |
$pos = $match[0][1];
|
151 |
$format = \substr($format, 0, $pos) . '%c' . $match[1][0] . '%c' . \substr($format, $pos + \strlen($match[0][0]));
|
152 |
}
|
153 |
+
$args[] = static::quote('font-weight: normal');
|
154 |
+
$args[] = static::quote($format);
|
155 |
+
return \array_reverse($args);
|
156 |
}
|
157 |
private static function handleCustomStyles($style, $string)
|
158 |
{
|
vendor_prefixed/monolog/monolog/src/Monolog/Handler/BufferHandler.php
CHANGED
@@ -12,6 +12,7 @@ namespace FcfVendor\Monolog\Handler;
|
|
12 |
|
13 |
use FcfVendor\Monolog\Logger;
|
14 |
use FcfVendor\Monolog\ResettableInterface;
|
|
|
15 |
/**
|
16 |
* Buffers all records until closing the handler and then pass them as batch.
|
17 |
*
|
@@ -109,4 +110,19 @@ class BufferHandler extends \FcfVendor\Monolog\Handler\AbstractHandler
|
|
109 |
$this->handler->reset();
|
110 |
}
|
111 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
}
|
12 |
|
13 |
use FcfVendor\Monolog\Logger;
|
14 |
use FcfVendor\Monolog\ResettableInterface;
|
15 |
+
use FcfVendor\Monolog\Formatter\FormatterInterface;
|
16 |
/**
|
17 |
* Buffers all records until closing the handler and then pass them as batch.
|
18 |
*
|
110 |
$this->handler->reset();
|
111 |
}
|
112 |
}
|
113 |
+
/**
|
114 |
+
* {@inheritdoc}
|
115 |
+
*/
|
116 |
+
public function setFormatter(\FcfVendor\Monolog\Formatter\FormatterInterface $formatter)
|
117 |
+
{
|
118 |
+
$this->handler->setFormatter($formatter);
|
119 |
+
return $this;
|
120 |
+
}
|
121 |
+
/**
|
122 |
+
* {@inheritdoc}
|
123 |
+
*/
|
124 |
+
public function getFormatter()
|
125 |
+
{
|
126 |
+
return $this->handler->getFormatter();
|
127 |
+
}
|
128 |
}
|
vendor_prefixed/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php
CHANGED
@@ -12,6 +12,7 @@ namespace FcfVendor\Monolog\Handler;
|
|
12 |
|
13 |
use FcfVendor\Monolog\Formatter\ChromePHPFormatter;
|
14 |
use FcfVendor\Monolog\Logger;
|
|
|
15 |
/**
|
16 |
* Handler sending logs to the ChromePHP extension (http://www.chromephp.com/)
|
17 |
*
|
@@ -110,13 +111,13 @@ class ChromePHPHandler extends \FcfVendor\Monolog\Handler\AbstractProcessingHand
|
|
110 |
}
|
111 |
self::$json['request_uri'] = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
|
112 |
}
|
113 |
-
$json =
|
114 |
$data = \base64_encode(\utf8_encode($json));
|
115 |
if (\strlen($data) > 3 * 1024) {
|
116 |
self::$overflowed = \true;
|
117 |
$record = array('message' => 'Incomplete logs, chrome header size limit reached', 'context' => array(), 'level' => \FcfVendor\Monolog\Logger::WARNING, 'level_name' => \FcfVendor\Monolog\Logger::getLevelName(\FcfVendor\Monolog\Logger::WARNING), 'channel' => 'monolog', 'datetime' => new \DateTime(), 'extra' => array());
|
118 |
self::$json['rows'][\count(self::$json['rows']) - 1] = $this->getFormatter()->format($record);
|
119 |
-
$json =
|
120 |
$data = \base64_encode(\utf8_encode($json));
|
121 |
}
|
122 |
if (\trim($data) !== '') {
|
12 |
|
13 |
use FcfVendor\Monolog\Formatter\ChromePHPFormatter;
|
14 |
use FcfVendor\Monolog\Logger;
|
15 |
+
use FcfVendor\Monolog\Utils;
|
16 |
/**
|
17 |
* Handler sending logs to the ChromePHP extension (http://www.chromephp.com/)
|
18 |
*
|
111 |
}
|
112 |
self::$json['request_uri'] = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
|
113 |
}
|
114 |
+
$json = \FcfVendor\Monolog\Utils::jsonEncode(self::$json, null, \true);
|
115 |
$data = \base64_encode(\utf8_encode($json));
|
116 |
if (\strlen($data) > 3 * 1024) {
|
117 |
self::$overflowed = \true;
|
118 |
$record = array('message' => 'Incomplete logs, chrome header size limit reached', 'context' => array(), 'level' => \FcfVendor\Monolog\Logger::WARNING, 'level_name' => \FcfVendor\Monolog\Logger::getLevelName(\FcfVendor\Monolog\Logger::WARNING), 'channel' => 'monolog', 'datetime' => new \DateTime(), 'extra' => array());
|
119 |
self::$json['rows'][\count(self::$json['rows']) - 1] = $this->getFormatter()->format($record);
|
120 |
+
$json = \FcfVendor\Monolog\Utils::jsonEncode(self::$json, null, \true);
|
121 |
$data = \base64_encode(\utf8_encode($json));
|
122 |
}
|
123 |
if (\trim($data) !== '') {
|
vendor_prefixed/monolog/monolog/src/Monolog/Handler/CubeHandler.php
CHANGED
@@ -11,6 +11,7 @@
|
|
11 |
namespace FcfVendor\Monolog\Handler;
|
12 |
|
13 |
use FcfVendor\Monolog\Logger;
|
|
|
14 |
/**
|
15 |
* Logs to Cube.
|
16 |
*
|
@@ -98,9 +99,9 @@ class CubeHandler extends \FcfVendor\Monolog\Handler\AbstractProcessingHandler
|
|
98 |
$data['data'] = $record['context'];
|
99 |
$data['data']['level'] = $record['level'];
|
100 |
if ($this->scheme === 'http') {
|
101 |
-
$this->writeHttp(\
|
102 |
} else {
|
103 |
-
$this->writeUdp(\
|
104 |
}
|
105 |
}
|
106 |
private function writeUdp($data)
|
11 |
namespace FcfVendor\Monolog\Handler;
|
12 |
|
13 |
use FcfVendor\Monolog\Logger;
|
14 |
+
use FcfVendor\Monolog\Utils;
|
15 |
/**
|
16 |
* Logs to Cube.
|
17 |
*
|
99 |
$data['data'] = $record['context'];
|
100 |
$data['data']['level'] = $record['level'];
|
101 |
if ($this->scheme === 'http') {
|
102 |
+
$this->writeHttp(\FcfVendor\Monolog\Utils::jsonEncode($data));
|
103 |
} else {
|
104 |
+
$this->writeUdp(\FcfVendor\Monolog\Utils::jsonEncode($data));
|
105 |
}
|
106 |
}
|
107 |
private function writeUdp($data)
|
vendor_prefixed/monolog/monolog/src/Monolog/Handler/FilterHandler.php
CHANGED
@@ -11,6 +11,7 @@
|
|
11 |
namespace FcfVendor\Monolog\Handler;
|
12 |
|
13 |
use FcfVendor\Monolog\Logger;
|
|
|
14 |
/**
|
15 |
* Simple handler wrapper that filters records based on a list of levels
|
16 |
*
|
@@ -40,7 +41,7 @@ class FilterHandler extends \FcfVendor\Monolog\Handler\AbstractHandler
|
|
40 |
*/
|
41 |
protected $bubble;
|
42 |
/**
|
43 |
-
* @param callable|HandlerInterface $handler Handler or factory callable($record, $
|
44 |
* @param int|array $minLevelOrList A list of levels to accept or a minimum level if maxLevel is provided
|
45 |
* @param int $maxLevel Maximum level to accept, only used if $minLevelOrList is not an array
|
46 |
* @param bool $bubble Whether the messages that are handled can bubble up the stack or not
|
@@ -93,19 +94,12 @@ class FilterHandler extends \FcfVendor\Monolog\Handler\AbstractHandler
|
|
93 |
if (!$this->isHandling($record)) {
|
94 |
return \false;
|
95 |
}
|
96 |
-
// The same logic as in FingersCrossedHandler
|
97 |
-
if (!$this->handler instanceof \FcfVendor\Monolog\Handler\HandlerInterface) {
|
98 |
-
$this->handler = \call_user_func($this->handler, $record, $this);
|
99 |
-
if (!$this->handler instanceof \FcfVendor\Monolog\Handler\HandlerInterface) {
|
100 |
-
throw new \RuntimeException("The factory callable should return a HandlerInterface");
|
101 |
-
}
|
102 |
-
}
|
103 |
if ($this->processors) {
|
104 |
foreach ($this->processors as $processor) {
|
105 |
$record = \call_user_func($processor, $record);
|
106 |
}
|
107 |
}
|
108 |
-
$this->
|
109 |
return \false === $this->bubble;
|
110 |
}
|
111 |
/**
|
@@ -119,6 +113,40 @@ class FilterHandler extends \FcfVendor\Monolog\Handler\AbstractHandler
|
|
119 |
$filtered[] = $record;
|
120 |
}
|
121 |
}
|
122 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
}
|
124 |
}
|
11 |
namespace FcfVendor\Monolog\Handler;
|
12 |
|
13 |
use FcfVendor\Monolog\Logger;
|
14 |
+
use FcfVendor\Monolog\Formatter\FormatterInterface;
|
15 |
/**
|
16 |
* Simple handler wrapper that filters records based on a list of levels
|
17 |
*
|
41 |
*/
|
42 |
protected $bubble;
|
43 |
/**
|
44 |
+
* @param callable|HandlerInterface $handler Handler or factory callable($record|null, $filterHandler).
|
45 |
* @param int|array $minLevelOrList A list of levels to accept or a minimum level if maxLevel is provided
|
46 |
* @param int $maxLevel Maximum level to accept, only used if $minLevelOrList is not an array
|
47 |
* @param bool $bubble Whether the messages that are handled can bubble up the stack or not
|
94 |
if (!$this->isHandling($record)) {
|
95 |
return \false;
|
96 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
if ($this->processors) {
|
98 |
foreach ($this->processors as $processor) {
|
99 |
$record = \call_user_func($processor, $record);
|
100 |
}
|
101 |
}
|
102 |
+
$this->getHandler($record)->handle($record);
|
103 |
return \false === $this->bubble;
|
104 |
}
|
105 |
/**
|
113 |
$filtered[] = $record;
|
114 |
}
|
115 |
}
|
116 |
+
if (\count($filtered) > 0) {
|
117 |
+
$this->getHandler($filtered[\count($filtered) - 1])->handleBatch($filtered);
|
118 |
+
}
|
119 |
+
}
|
120 |
+
/**
|
121 |
+
* Return the nested handler
|
122 |
+
*
|
123 |
+
* If the handler was provided as a factory callable, this will trigger the handler's instantiation.
|
124 |
+
*
|
125 |
+
* @return HandlerInterface
|
126 |
+
*/
|
127 |
+
public function getHandler(array $record = null)
|
128 |
+
{
|
129 |
+
if (!$this->handler instanceof \FcfVendor\Monolog\Handler\HandlerInterface) {
|
130 |
+
$this->handler = \call_user_func($this->handler, $record, $this);
|
131 |
+
if (!$this->handler instanceof \FcfVendor\Monolog\Handler\HandlerInterface) {
|
132 |
+
throw new \RuntimeException("The factory callable should return a HandlerInterface");
|
133 |
+
}
|
134 |
+
}
|
135 |
+
return $this->handler;
|
136 |
+
}
|
137 |
+
/**
|
138 |
+
* {@inheritdoc}
|
139 |
+
*/
|
140 |
+
public function setFormatter(\FcfVendor\Monolog\Formatter\FormatterInterface $formatter)
|
141 |
+
{
|
142 |
+
$this->getHandler()->setFormatter($formatter);
|
143 |
+
return $this;
|
144 |
+
}
|
145 |
+
/**
|
146 |
+
* {@inheritdoc}
|
147 |
+
*/
|
148 |
+
public function getFormatter()
|
149 |
+
{
|
150 |
+
return $this->getHandler()->getFormatter();
|
151 |
}
|
152 |
}
|
vendor_prefixed/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php
CHANGED
@@ -14,6 +14,7 @@ use FcfVendor\Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy;
|
|
14 |
use FcfVendor\Monolog\Handler\FingersCrossed\ActivationStrategyInterface;
|
15 |
use FcfVendor\Monolog\Logger;
|
16 |
use FcfVendor\Monolog\ResettableInterface;
|
|
|
17 |
/**
|
18 |
* Buffers all records until a certain level is reached
|
19 |
*
|
@@ -36,7 +37,7 @@ class FingersCrossedHandler extends \FcfVendor\Monolog\Handler\AbstractHandler
|
|
36 |
protected $stopBuffering;
|
37 |
protected $passthruLevel;
|
38 |
/**
|
39 |
-
* @param callable|HandlerInterface $handler Handler or factory callable($record, $fingersCrossedHandler).
|
40 |
* @param int|ActivationStrategyInterface $activationStrategy Strategy which determines when this handler takes action
|
41 |
* @param int $bufferSize How many entries should be buffered at most, beyond that the oldest items are removed from the buffer.
|
42 |
* @param bool $bubble Whether the messages that are handled can bubble up the stack or not
|
@@ -79,14 +80,7 @@ class FingersCrossedHandler extends \FcfVendor\Monolog\Handler\AbstractHandler
|
|
79 |
if ($this->stopBuffering) {
|
80 |
$this->buffering = \false;
|
81 |
}
|
82 |
-
|
83 |
-
$record = \end($this->buffer) ?: null;
|
84 |
-
$this->handler = \call_user_func($this->handler, $record, $this);
|
85 |
-
if (!$this->handler instanceof \FcfVendor\Monolog\Handler\HandlerInterface) {
|
86 |
-
throw new \RuntimeException("The factory callable should return a HandlerInterface");
|
87 |
-
}
|
88 |
-
}
|
89 |
-
$this->handler->handleBatch($this->buffer);
|
90 |
$this->buffer = array();
|
91 |
}
|
92 |
/**
|
@@ -108,7 +102,7 @@ class FingersCrossedHandler extends \FcfVendor\Monolog\Handler\AbstractHandler
|
|
108 |
$this->activate();
|
109 |
}
|
110 |
} else {
|
111 |
-
$this->
|
112 |
}
|
113 |
return \false === $this->bubble;
|
114 |
}
|
@@ -123,8 +117,8 @@ class FingersCrossedHandler extends \FcfVendor\Monolog\Handler\AbstractHandler
|
|
123 |
{
|
124 |
$this->flushBuffer();
|
125 |
parent::reset();
|
126 |
-
if ($this->
|
127 |
-
$this->
|
128 |
}
|
129 |
}
|
130 |
/**
|
@@ -148,10 +142,42 @@ class FingersCrossedHandler extends \FcfVendor\Monolog\Handler\AbstractHandler
|
|
148 |
return $record['level'] >= $level;
|
149 |
});
|
150 |
if (\count($this->buffer) > 0) {
|
151 |
-
$this->
|
152 |
}
|
153 |
}
|
154 |
$this->buffer = array();
|
155 |
$this->buffering = \true;
|
156 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
}
|
14 |
use FcfVendor\Monolog\Handler\FingersCrossed\ActivationStrategyInterface;
|
15 |
use FcfVendor\Monolog\Logger;
|
16 |
use FcfVendor\Monolog\ResettableInterface;
|
17 |
+
use FcfVendor\Monolog\Formatter\FormatterInterface;
|
18 |
/**
|
19 |
* Buffers all records until a certain level is reached
|
20 |
*
|
37 |
protected $stopBuffering;
|
38 |
protected $passthruLevel;
|
39 |
/**
|
40 |
+
* @param callable|HandlerInterface $handler Handler or factory callable($record|null, $fingersCrossedHandler).
|
41 |
* @param int|ActivationStrategyInterface $activationStrategy Strategy which determines when this handler takes action
|
42 |
* @param int $bufferSize How many entries should be buffered at most, beyond that the oldest items are removed from the buffer.
|
43 |
* @param bool $bubble Whether the messages that are handled can bubble up the stack or not
|
80 |
if ($this->stopBuffering) {
|
81 |
$this->buffering = \false;
|
82 |
}
|
83 |
+
$this->getHandler(\end($this->buffer) ?: null)->handleBatch($this->buffer);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
$this->buffer = array();
|
85 |
}
|
86 |
/**
|
102 |
$this->activate();
|
103 |
}
|
104 |
} else {
|
105 |
+
$this->getHandler($record)->handle($record);
|
106 |
}
|
107 |
return \false === $this->bubble;
|
108 |
}
|
117 |
{
|
118 |
$this->flushBuffer();
|
119 |
parent::reset();
|
120 |
+
if ($this->getHandler() instanceof \FcfVendor\Monolog\ResettableInterface) {
|
121 |
+
$this->getHandler()->reset();
|
122 |
}
|
123 |
}
|
124 |
/**
|
142 |
return $record['level'] >= $level;
|
143 |
});
|
144 |
if (\count($this->buffer) > 0) {
|
145 |
+
$this->getHandler(\end($this->buffer) ?: null)->handleBatch($this->buffer);
|
146 |
}
|
147 |
}
|
148 |
$this->buffer = array();
|
149 |
$this->buffering = \true;
|
150 |
}
|
151 |
+
/**
|
152 |
+
* Return the nested handler
|
153 |
+
*
|
154 |
+
* If the handler was provided as a factory callable, this will trigger the handler's instantiation.
|
155 |
+
*
|
156 |
+
* @return HandlerInterface
|
157 |
+
*/
|
158 |
+
public function getHandler(array $record = null)
|
159 |
+
{
|
160 |
+
if (!$this->handler instanceof \FcfVendor\Monolog\Handler\HandlerInterface) {
|
161 |
+
$this->handler = \call_user_func($this->handler, $record, $this);
|
162 |
+
if (!$this->handler instanceof \FcfVendor\Monolog\Handler\HandlerInterface) {
|
163 |
+
throw new \RuntimeException("The factory callable should return a HandlerInterface");
|
164 |
+
}
|
165 |
+
}
|
166 |
+
return $this->handler;
|
167 |
+
}
|
168 |
+
/**
|
169 |
+
* {@inheritdoc}
|
170 |
+
*/
|
171 |
+
public function setFormatter(\FcfVendor\Monolog\Formatter\FormatterInterface $formatter)
|
172 |
+
{
|
173 |
+
$this->getHandler()->setFormatter($formatter);
|
174 |
+
return $this;
|
175 |
+
}
|
176 |
+
/**
|
177 |
+
* {@inheritdoc}
|
178 |
+
*/
|
179 |
+
public function getFormatter()
|
180 |
+
{
|
181 |
+
return $this->getHandler()->getFormatter();
|
182 |
+
}
|
183 |
}
|
vendor_prefixed/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php
CHANGED
@@ -11,6 +11,7 @@
|
|
11 |
namespace FcfVendor\Monolog\Handler;
|
12 |
|
13 |
use FcfVendor\Monolog\Logger;
|
|
|
14 |
use FcfVendor\Monolog\Formatter\FlowdockFormatter;
|
15 |
use FcfVendor\Monolog\Formatter\FormatterInterface;
|
16 |
/**
|
@@ -93,7 +94,7 @@ class FlowdockHandler extends \FcfVendor\Monolog\Handler\SocketHandler
|
|
93 |
*/
|
94 |
private function buildContent($record)
|
95 |
{
|
96 |
-
return \
|
97 |
}
|
98 |
/**
|
99 |
* Builds the header of the API Call
|
11 |
namespace FcfVendor\Monolog\Handler;
|
12 |
|
13 |
use FcfVendor\Monolog\Logger;
|
14 |
+
use FcfVendor\Monolog\Utils;
|
15 |
use FcfVendor\Monolog\Formatter\FlowdockFormatter;
|
16 |
use FcfVendor\Monolog\Formatter\FormatterInterface;
|
17 |
/**
|
94 |
*/
|
95 |
private function buildContent($record)
|
96 |
{
|
97 |
+
return \FcfVendor\Monolog\Utils::jsonEncode($record['formatted']['flowdock']);
|
98 |
}
|
99 |
/**
|
100 |
* Builds the header of the API Call
|
vendor_prefixed/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php
CHANGED
@@ -11,6 +11,7 @@
|
|
11 |
namespace FcfVendor\Monolog\Handler;
|
12 |
|
13 |
use FcfVendor\Monolog\Logger;
|
|
|
14 |
/**
|
15 |
* IFTTTHandler uses cURL to trigger IFTTT Maker actions
|
16 |
*
|
@@ -44,7 +45,7 @@ class IFTTTHandler extends \FcfVendor\Monolog\Handler\AbstractProcessingHandler
|
|
44 |
public function write(array $record)
|
45 |
{
|
46 |
$postData = array("value1" => $record["channel"], "value2" => $record["level_name"], "value3" => $record["message"]);
|
47 |
-
$postString = \
|
48 |
$ch = \curl_init();
|
49 |
\curl_setopt($ch, \CURLOPT_URL, "https://maker.ifttt.com/trigger/" . $this->eventName . "/with/key/" . $this->secretKey);
|
50 |
\curl_setopt($ch, \CURLOPT_POST, \true);
|
11 |
namespace FcfVendor\Monolog\Handler;
|
12 |
|
13 |
use FcfVendor\Monolog\Logger;
|
14 |
+
use FcfVendor\Monolog\Utils;
|
15 |
/**
|
16 |
* IFTTTHandler uses cURL to trigger IFTTT Maker actions
|
17 |
*
|
45 |
public function write(array $record)
|
46 |
{
|
47 |
$postData = array("value1" => $record["channel"], "value2" => $record["level_name"], "value3" => $record["message"]);
|
48 |
+
$postString = \FcfVendor\Monolog\Utils::jsonEncode($postData);
|
49 |
$ch = \curl_init();
|
50 |
\curl_setopt($ch, \CURLOPT_URL, "https://maker.ifttt.com/trigger/" . $this->eventName . "/with/key/" . $this->secretKey);
|
51 |
\curl_setopt($ch, \CURLOPT_POST, \true);
|
vendor_prefixed/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php
CHANGED
@@ -11,6 +11,7 @@
|
|
11 |
namespace FcfVendor\Monolog\Handler;
|
12 |
|
13 |
use FcfVendor\Monolog\Logger;
|
|
|
14 |
use FcfVendor\Monolog\Formatter\NormalizerFormatter;
|
15 |
/**
|
16 |
* Class to record a log on a NewRelic application.
|
@@ -165,7 +166,7 @@ class NewRelicHandler extends \FcfVendor\Monolog\Handler\AbstractProcessingHandl
|
|
165 |
if (null === $value || \is_scalar($value)) {
|
166 |
\newrelic_add_custom_parameter($key, $value);
|
167 |
} else {
|
168 |
-
\newrelic_add_custom_parameter($key,
|
169 |
}
|
170 |
}
|
171 |
/**
|
11 |
namespace FcfVendor\Monolog\Handler;
|
12 |
|
13 |
use FcfVendor\Monolog\Logger;
|
14 |
+
use FcfVendor\Monolog\Utils;
|
15 |
use FcfVendor\Monolog\Formatter\NormalizerFormatter;
|
16 |
/**
|
17 |
* Class to record a log on a NewRelic application.
|
166 |
if (null === $value || \is_scalar($value)) {
|
167 |
\newrelic_add_custom_parameter($key, $value);
|
168 |
} else {
|
169 |
+
\newrelic_add_custom_parameter($key, \FcfVendor\Monolog\Utils::jsonEncode($value, null, \true));
|
170 |
}
|
171 |
}
|
172 |
/**
|
vendor_prefixed/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php
CHANGED
@@ -13,6 +13,7 @@ namespace FcfVendor\Monolog\Handler;
|
|
13 |
use Exception;
|
14 |
use FcfVendor\Monolog\Formatter\LineFormatter;
|
15 |
use FcfVendor\Monolog\Logger;
|
|
|
16 |
use FcfVendor\PhpConsole\Connector;
|
17 |
use FcfVendor\PhpConsole\Handler;
|
18 |
use FcfVendor\PhpConsole\Helper;
|
@@ -191,7 +192,7 @@ class PHPConsoleHandler extends \FcfVendor\Monolog\Handler\AbstractProcessingHan
|
|
191 |
$tags = $this->getRecordTags($record);
|
192 |
$message = $record['message'];
|
193 |
if ($record['context']) {
|
194 |
-
$message .= ' ' . \
|
195 |
}
|
196 |
$this->connector->getDebugDispatcher()->dispatchDebug($message, $tags, $this->options['classesPartialsTraceIgnore']);
|
197 |
}
|
13 |
use Exception;
|
14 |
use FcfVendor\Monolog\Formatter\LineFormatter;
|
15 |
use FcfVendor\Monolog\Logger;
|
16 |
+
use FcfVendor\Monolog\Utils;
|
17 |
use FcfVendor\PhpConsole\Connector;
|
18 |
use FcfVendor\PhpConsole\Handler;
|
19 |
use FcfVendor\PhpConsole\Helper;
|
192 |
$tags = $this->getRecordTags($record);
|
193 |
$message = $record['message'];
|
194 |
if ($record['context']) {
|
195 |
+
$message .= ' ' . \FcfVendor\Monolog\Utils::jsonEncode($this->connector->getDumper()->dump(\array_filter($record['context'])), null, \true);
|
196 |
}
|
197 |
$this->connector->getDebugDispatcher()->dispatchDebug($message, $tags, $this->options['classesPartialsTraceIgnore']);
|
198 |
}
|
vendor_prefixed/monolog/monolog/src/Monolog/Handler/RedisHandler.php
CHANGED
@@ -66,7 +66,8 @@ class RedisHandler extends \FcfVendor\Monolog\Handler\AbstractProcessingHandler
|
|
66 |
protected function writeCapped(array $record)
|
67 |
{
|
68 |
if ($this->redisClient instanceof \Redis) {
|
69 |
-
$
|
|
|
70 |
} else {
|
71 |
$redisKey = $this->redisKey;
|
72 |
$capSize = $this->capSize;
|
66 |
protected function writeCapped(array $record)
|
67 |
{
|
68 |
if ($this->redisClient instanceof \Redis) {
|
69 |
+
$mode = \defined('\\Redis::MULTI') ? \Redis::MULTI : 1;
|
70 |
+
$this->redisClient->multi($mode)->rpush($this->redisKey, $record["formatted"])->ltrim($this->redisKey, -$this->capSize, -1)->exec();
|
71 |
} else {
|
72 |
$redisKey = $this->redisKey;
|
73 |
$capSize = $this->capSize;
|
vendor_prefixed/monolog/monolog/src/Monolog/Handler/SamplingHandler.php
CHANGED
@@ -10,6 +10,7 @@
|
|
10 |
*/
|
11 |
namespace FcfVendor\Monolog\Handler;
|
12 |
|
|
|
13 |
/**
|
14 |
* Sampling handler
|
15 |
*
|
@@ -35,7 +36,7 @@ class SamplingHandler extends \FcfVendor\Monolog\Handler\AbstractHandler
|
|
35 |
*/
|
36 |
protected $factor;
|
37 |
/**
|
38 |
-
* @param callable|HandlerInterface $handler Handler or factory callable($record, $
|
39 |
* @param int $factor Sample factor
|
40 |
*/
|
41 |
public function __construct($handler, $factor)
|
@@ -49,25 +50,50 @@ class SamplingHandler extends \FcfVendor\Monolog\Handler\AbstractHandler
|
|
49 |
}
|
50 |
public function isHandling(array $record)
|
51 |
{
|
52 |
-
return $this->
|
53 |
}
|
54 |
public function handle(array $record)
|
55 |
{
|
56 |
if ($this->isHandling($record) && \mt_rand(1, $this->factor) === 1) {
|
57 |
-
// The same logic as in FingersCrossedHandler
|
58 |
-
if (!$this->handler instanceof \FcfVendor\Monolog\Handler\HandlerInterface) {
|
59 |
-
$this->handler = \call_user_func($this->handler, $record, $this);
|
60 |
-
if (!$this->handler instanceof \FcfVendor\Monolog\Handler\HandlerInterface) {
|
61 |
-
throw new \RuntimeException("The factory callable should return a HandlerInterface");
|
62 |
-
}
|
63 |
-
}
|
64 |
if ($this->processors) {
|
65 |
foreach ($this->processors as $processor) {
|
66 |
$record = \call_user_func($processor, $record);
|
67 |
}
|
68 |
}
|
69 |
-
$this->
|
70 |
}
|
71 |
return \false === $this->bubble;
|
72 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
}
|
10 |
*/
|
11 |
namespace FcfVendor\Monolog\Handler;
|
12 |
|
13 |
+
use FcfVendor\Monolog\Formatter\FormatterInterface;
|
14 |
/**
|
15 |
* Sampling handler
|
16 |
*
|
36 |
*/
|
37 |
protected $factor;
|
38 |
/**
|
39 |
+
* @param callable|HandlerInterface $handler Handler or factory callable($record|null, $samplingHandler).
|
40 |
* @param int $factor Sample factor
|
41 |
*/
|
42 |
public function __construct($handler, $factor)
|
50 |
}
|
51 |
public function isHandling(array $record)
|
52 |
{
|
53 |
+
return $this->getHandler($record)->isHandling($record);
|
54 |
}
|
55 |
public function handle(array $record)
|
56 |
{
|
57 |
if ($this->isHandling($record) && \mt_rand(1, $this->factor) === 1) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
if ($this->processors) {
|
59 |
foreach ($this->processors as $processor) {
|
60 |
$record = \call_user_func($processor, $record);
|
61 |
}
|
62 |
}
|
63 |
+
$this->getHandler($record)->handle($record);
|
64 |
}
|
65 |
return \false === $this->bubble;
|
66 |
}
|
67 |
+
/**
|
68 |
+
* Return the nested handler
|
69 |
+
*
|
70 |
+
* If the handler was provided as a factory callable, this will trigger the handler's instantiation.
|
71 |
+
*
|
72 |
+
* @return HandlerInterface
|
73 |
+
*/
|
74 |
+
public function getHandler(array $record = null)
|
75 |
+
{
|
76 |
+
if (!$this->handler instanceof \FcfVendor\Monolog\Handler\HandlerInterface) {
|
77 |
+
$this->handler = \call_user_func($this->handler, $record, $this);
|
78 |
+
if (!$this->handler instanceof \FcfVendor\Monolog\Handler\HandlerInterface) {
|
79 |
+
throw new \RuntimeException("The factory callable should return a HandlerInterface");
|
80 |
+
}
|
81 |
+
}
|
82 |
+
return $this->handler;
|
83 |
+
}
|
84 |
+
/**
|
85 |
+
* {@inheritdoc}
|
86 |
+
*/
|
87 |
+
public function setFormatter(\FcfVendor\Monolog\Formatter\FormatterInterface $formatter)
|
88 |
+
{
|
89 |
+
$this->getHandler()->setFormatter($formatter);
|
90 |
+
return $this;
|
91 |
+
}
|
92 |
+
/**
|
93 |
+
* {@inheritdoc}
|
94 |
+
*/
|
95 |
+
public function getFormatter()
|
96 |
+
{
|
97 |
+
return $this->getHandler()->getFormatter();
|
98 |
+
}
|
99 |
}
|
vendor_prefixed/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php
CHANGED
@@ -11,6 +11,7 @@
|
|
11 |
namespace FcfVendor\Monolog\Handler\Slack;
|
12 |
|
13 |
use FcfVendor\Monolog\Logger;
|
|
|
14 |
use FcfVendor\Monolog\Formatter\NormalizerFormatter;
|
15 |
use FcfVendor\Monolog\Formatter\FormatterInterface;
|
16 |
/**
|
@@ -164,9 +165,13 @@ class SlackRecord
|
|
164 |
{
|
165 |
$normalized = $this->normalizerFormatter->format($fields);
|
166 |
$prettyPrintFlag = \defined('JSON_PRETTY_PRINT') ? \JSON_PRETTY_PRINT : 128;
|
|
|
|
|
|
|
|
|
167 |
$hasSecondDimension = \count(\array_filter($normalized, 'is_array'));
|
168 |
$hasNonNumericKeys = !\count(\array_filter(\array_keys($normalized), 'is_numeric'));
|
169 |
-
return $hasSecondDimension || $hasNonNumericKeys ? \
|
170 |
}
|
171 |
/**
|
172 |
* Sets the formatter
|
11 |
namespace FcfVendor\Monolog\Handler\Slack;
|
12 |
|
13 |
use FcfVendor\Monolog\Logger;
|
14 |
+
use FcfVendor\Monolog\Utils;
|
15 |
use FcfVendor\Monolog\Formatter\NormalizerFormatter;
|
16 |
use FcfVendor\Monolog\Formatter\FormatterInterface;
|
17 |
/**
|
165 |
{
|
166 |
$normalized = $this->normalizerFormatter->format($fields);
|
167 |
$prettyPrintFlag = \defined('JSON_PRETTY_PRINT') ? \JSON_PRETTY_PRINT : 128;
|
168 |
+
$flags = 0;
|
169 |
+
if (\PHP_VERSION_ID >= 50400) {
|
170 |
+
$flags = \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE;
|
171 |
+
}
|
172 |
$hasSecondDimension = \count(\array_filter($normalized, 'is_array'));
|
173 |
$hasNonNumericKeys = !\count(\array_filter(\array_keys($normalized), 'is_numeric'));
|
174 |
+
return $hasSecondDimension || $hasNonNumericKeys ? \FcfVendor\Monolog\Utils::jsonEncode($normalized, $prettyPrintFlag | $flags) : \FcfVendor\Monolog\Utils::jsonEncode($normalized, $flags);
|
175 |
}
|
176 |
/**
|
177 |
* Sets the formatter
|
vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackHandler.php
CHANGED
@@ -12,6 +12,7 @@ namespace FcfVendor\Monolog\Handler;
|
|
12 |
|
13 |
use FcfVendor\Monolog\Formatter\FormatterInterface;
|
14 |
use FcfVendor\Monolog\Logger;
|
|
|
15 |
use FcfVendor\Monolog\Handler\Slack\SlackRecord;
|
16 |
/**
|
17 |
* Sends notifications through Slack API
|
@@ -94,7 +95,7 @@ class SlackHandler extends \FcfVendor\Monolog\Handler\SocketHandler
|
|
94 |
$dataArray = $this->slackRecord->getSlackData($record);
|
95 |
$dataArray['token'] = $this->token;
|
96 |
if (!empty($dataArray['attachments'])) {
|
97 |
-
$dataArray['attachments'] = \
|
98 |
}
|
99 |
return $dataArray;
|
100 |
}
|
12 |
|
13 |
use FcfVendor\Monolog\Formatter\FormatterInterface;
|
14 |
use FcfVendor\Monolog\Logger;
|
15 |
+
use FcfVendor\Monolog\Utils;
|
16 |
use FcfVendor\Monolog\Handler\Slack\SlackRecord;
|
17 |
/**
|
18 |
* Sends notifications through Slack API
|
95 |
$dataArray = $this->slackRecord->getSlackData($record);
|
96 |
$dataArray['token'] = $this->token;
|
97 |
if (!empty($dataArray['attachments'])) {
|
98 |
+
$dataArray['attachments'] = \FcfVendor\Monolog\Utils::jsonEncode($dataArray['attachments']);
|
99 |
}
|
100 |
return $dataArray;
|
101 |
}
|
vendor_prefixed/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php
CHANGED
@@ -12,6 +12,7 @@ namespace FcfVendor\Monolog\Handler;
|
|
12 |
|
13 |
use FcfVendor\Monolog\Formatter\FormatterInterface;
|
14 |
use FcfVendor\Monolog\Logger;
|
|
|
15 |
use FcfVendor\Monolog\Handler\Slack\SlackRecord;
|
16 |
/**
|
17 |
* Sends notifications through Slack Webhooks
|
@@ -65,7 +66,7 @@ class SlackWebhookHandler extends \FcfVendor\Monolog\Handler\AbstractProcessingH
|
|
65 |
protected function write(array $record)
|
66 |
{
|
67 |
$postData = $this->slackRecord->getSlackData($record);
|
68 |
-
$postString = \
|
69 |
$ch = \curl_init();
|
70 |
$options = array(\CURLOPT_URL => $this->webhookUrl, \CURLOPT_POST => \true, \CURLOPT_RETURNTRANSFER => \true, \CURLOPT_HTTPHEADER => array('Content-type: application/json'), \CURLOPT_POSTFIELDS => $postString);
|
71 |
if (\defined('CURLOPT_SAFE_UPLOAD')) {
|
12 |
|
13 |
use FcfVendor\Monolog\Formatter\FormatterInterface;
|
14 |
use FcfVendor\Monolog\Logger;
|
15 |
+
use FcfVendor\Monolog\Utils;
|
16 |
use FcfVendor\Monolog\Handler\Slack\SlackRecord;
|
17 |
/**
|
18 |
* Sends notifications through Slack Webhooks
|
66 |
protected function write(array $record)
|
67 |
{
|
68 |
$postData = $this->slackRecord->getSlackData($record);
|
69 |
+
$postString = \FcfVendor\Monolog\Utils::jsonEncode($postData);
|
70 |
$ch = \curl_init();
|
71 |
$options = array(\CURLOPT_URL => $this->webhookUrl, \CURLOPT_POST => \true, \CURLOPT_RETURNTRANSFER => \true, \CURLOPT_HTTPHEADER => array('Content-type: application/json'), \CURLOPT_POSTFIELDS => $postString);
|
72 |
if (\defined('CURLOPT_SAFE_UPLOAD')) {
|
vendor_prefixed/monolog/monolog/src/Monolog/Logger.php
CHANGED
@@ -449,8 +449,13 @@ class Logger implements \Psr\Log\LoggerInterface, \FcfVendor\Monolog\ResettableI
|
|
449 |
*/
|
450 |
public static function toMonologLevel($level)
|
451 |
{
|
452 |
-
if (\is_string($level)
|
453 |
-
|
|
|
|
|
|
|
|
|
|
|
454 |
}
|
455 |
return $level;
|
456 |
}
|
449 |
*/
|
450 |
public static function toMonologLevel($level)
|
451 |
{
|
452 |
+
if (\is_string($level)) {
|
453 |
+
// Contains chars of all log levels and avoids using strtoupper() which may have
|
454 |
+
// strange results depending on locale (for example, "i" will become "İ")
|
455 |
+
$upper = \strtr($level, 'abcdefgilmnortuwy', 'ABCDEFGILMNORTUWY');
|
456 |
+
if (\defined(__CLASS__ . '::' . $upper)) {
|
457 |
+
return \constant(__CLASS__ . '::' . $upper);
|
458 |
+
}
|
459 |
}
|
460 |
return $level;
|
461 |
}
|
vendor_prefixed/monolog/monolog/src/Monolog/Utils.php
CHANGED
@@ -20,4 +20,118 @@ class Utils
|
|
20 |
$class = \get_class($object);
|
21 |
return 'c' === $class[0] && 0 === \strpos($class, "class@anonymous\0") ? \get_parent_class($class) . '@anonymous' : $class;
|
22 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
}
|
20 |
$class = \get_class($object);
|
21 |
return 'c' === $class[0] && 0 === \strpos($class, "class@anonymous\0") ? \get_parent_class($class) . '@anonymous' : $class;
|
22 |
}
|
23 |
+
/**
|
24 |
+
* Return the JSON representation of a value
|
25 |
+
*
|
26 |
+
* @param mixed $data
|
27 |
+
* @param int $encodeFlags flags to pass to json encode, defaults to JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE
|
28 |
+
* @param bool $ignoreErrors whether to ignore encoding errors or to throw on error, when ignored and the encoding fails, "null" is returned which is valid json for null
|
29 |
+
* @throws \RuntimeException if encoding fails and errors are not ignored
|
30 |
+
* @return string
|
31 |
+
*/
|
32 |
+
public static function jsonEncode($data, $encodeFlags = null, $ignoreErrors = \false)
|
33 |
+
{
|
34 |
+
if (null === $encodeFlags && \version_compare(\PHP_VERSION, '5.4.0', '>=')) {
|
35 |
+
$encodeFlags = \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE;
|
36 |
+
}
|
37 |
+
if ($ignoreErrors) {
|
38 |
+
$json = @\json_encode($data, $encodeFlags);
|
39 |
+
if (\false === $json) {
|
40 |
+
return 'null';
|
41 |
+
}
|
42 |
+
return $json;
|
43 |
+
}
|
44 |
+
$json = \json_encode($data, $encodeFlags);
|
45 |
+
if (\false === $json) {
|
46 |
+
$json = self::handleJsonError(\json_last_error(), $data);
|
47 |
+
}
|
48 |
+
return $json;
|
49 |
+
}
|
50 |
+
/**
|
51 |
+
* Handle a json_encode failure.
|
52 |
+
*
|
53 |
+
* If the failure is due to invalid string encoding, try to clean the
|
54 |
+
* input and encode again. If the second encoding attempt fails, the
|
55 |
+
* inital error is not encoding related or the input can't be cleaned then
|
56 |
+
* raise a descriptive exception.
|
57 |
+
*
|
58 |
+
* @param int $code return code of json_last_error function
|
59 |
+
* @param mixed $data data that was meant to be encoded
|
60 |
+
* @param int $encodeFlags flags to pass to json encode, defaults to JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE
|
61 |
+
* @throws \RuntimeException if failure can't be corrected
|
62 |
+
* @return string JSON encoded data after error correction
|
63 |
+
*/
|
64 |
+
public static function handleJsonError($code, $data, $encodeFlags = null)
|
65 |
+
{
|
66 |
+
if ($code !== \JSON_ERROR_UTF8) {
|
67 |
+
self::throwEncodeError($code, $data);
|
68 |
+
}
|
69 |
+
if (\is_string($data)) {
|
70 |
+
self::detectAndCleanUtf8($data);
|
71 |
+
} elseif (\is_array($data)) {
|
72 |
+
\array_walk_recursive($data, array('Monolog\\Utils', 'detectAndCleanUtf8'));
|
73 |
+
} else {
|
74 |
+
self::throwEncodeError($code, $data);
|
75 |
+
}
|
76 |
+
if (null === $encodeFlags && \version_compare(\PHP_VERSION, '5.4.0', '>=')) {
|
77 |
+
$encodeFlags = \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE;
|
78 |
+
}
|
79 |
+
$json = \json_encode($data, $encodeFlags);
|
80 |
+
if ($json === \false) {
|
81 |
+
self::throwEncodeError(\json_last_error(), $data);
|
82 |
+
}
|
83 |
+
return $json;
|
84 |
+
}
|
85 |
+
/**
|
86 |
+
* Throws an exception according to a given code with a customized message
|
87 |
+
*
|
88 |
+
* @param int $code return code of json_last_error function
|
89 |
+
* @param mixed $data data that was meant to be encoded
|
90 |
+
* @throws \RuntimeException
|
91 |
+
*/
|
92 |
+
private static function throwEncodeError($code, $data)
|
93 |
+
{
|
94 |
+
switch ($code) {
|
95 |
+
case \JSON_ERROR_DEPTH:
|
96 |
+
$msg = 'Maximum stack depth exceeded';
|
97 |
+
break;
|
98 |
+
case \JSON_ERROR_STATE_MISMATCH:
|
99 |
+
$msg = 'Underflow or the modes mismatch';
|
100 |
+
break;
|
101 |
+
case \JSON_ERROR_CTRL_CHAR:
|
102 |
+
$msg = 'Unexpected control character found';
|
103 |
+
break;
|
104 |
+
case \JSON_ERROR_UTF8:
|
105 |
+
$msg = 'Malformed UTF-8 characters, possibly incorrectly encoded';
|
106 |
+
break;
|
107 |
+
default:
|
108 |
+
$msg = 'Unknown error';
|
109 |
+
}
|
110 |
+
throw new \RuntimeException('JSON encoding failed: ' . $msg . '. Encoding: ' . \var_export($data, \true));
|
111 |
+
}
|
112 |
+
/**
|
113 |
+
* Detect invalid UTF-8 string characters and convert to valid UTF-8.
|
114 |
+
*
|
115 |
+
* Valid UTF-8 input will be left unmodified, but strings containing
|
116 |
+
* invalid UTF-8 codepoints will be reencoded as UTF-8 with an assumed
|
117 |
+
* original encoding of ISO-8859-15. This conversion may result in
|
118 |
+
* incorrect output if the actual encoding was not ISO-8859-15, but it
|
119 |
+
* will be clean UTF-8 output and will not rely on expensive and fragile
|
120 |
+
* detection algorithms.
|
121 |
+
*
|
122 |
+
* Function converts the input in place in the passed variable so that it
|
123 |
+
* can be used as a callback for array_walk_recursive.
|
124 |
+
*
|
125 |
+
* @param mixed &$data Input to check and convert if needed
|
126 |
+
* @private
|
127 |
+
*/
|
128 |
+
public static function detectAndCleanUtf8(&$data)
|
129 |
+
{
|
130 |
+
if (\is_string($data) && !\preg_match('//u', $data)) {
|
131 |
+
$data = \preg_replace_callback('/[\\x80-\\xFF]+/', function ($m) {
|
132 |
+
return \utf8_encode($m[0]);
|
133 |
+
}, $data);
|
134 |
+
$data = \str_replace(array('¤', '¦', '¨', '´', '¸', '¼', '½', '¾'), array('€', 'Š', 'š', 'Ž', 'ž', 'Œ', 'œ', 'Ÿ'), $data);
|
135 |
+
}
|
136 |
+
}
|
137 |
}
|
vendor_prefixed/wpdesk/wp-basic-requirements/composer.json
CHANGED
@@ -25,6 +25,13 @@
|
|
25 |
"tests"
|
26 |
]
|
27 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
"scripts": {
|
29 |
"phpcs": "phpcs",
|
30 |
"phpunit-unit": "phpunit --configuration phpunit-unit.xml --coverage-text --colors=never",
|
25 |
"tests"
|
26 |
]
|
27 |
},
|
28 |
+
"extra": {
|
29 |
+
"text-domain": "wp-basic-requirements",
|
30 |
+
"translations-folder": "lang",
|
31 |
+
"po-files": {
|
32 |
+
"pl_PL": "wp-basic-requirements-pl_PL.po"
|
33 |
+
}
|
34 |
+
},
|
35 |
"scripts": {
|
36 |
"phpcs": "phpcs",
|
37 |
"phpunit-unit": "phpunit --configuration phpunit-unit.xml --coverage-text --colors=never",
|
vendor_prefixed/wpdesk/wp-basic-requirements/lang/wp-basic-requirements-pl_PL.mo
DELETED
Binary file
|
vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker.php
CHANGED
@@ -14,8 +14,15 @@ if (!\class_exists('FcfVendor\\WPDesk_Basic_Requirement_Checker')) {
|
|
14 |
{
|
15 |
const EXTENSION_NAME_OPENSSL = 'openssl';
|
16 |
const HOOK_ADMIN_NOTICES_ACTION = 'admin_notices';
|
|
|
|
|
17 |
const PLUGIN_INFO_KEY_NICE_NAME = 'nice_name';
|
18 |
const PLUGIN_INFO_KEY_NAME = 'name';
|
|
|
|
|
|
|
|
|
|
|
19 |
/** @var string */
|
20 |
protected $plugin_name;
|
21 |
/** @var string */
|
@@ -30,6 +37,8 @@ if (!\class_exists('FcfVendor\\WPDesk_Basic_Requirement_Checker')) {
|
|
30 |
private $min_openssl_version = null;
|
31 |
/** @var array */
|
32 |
protected $plugin_require;
|
|
|
|
|
33 |
/** @var array */
|
34 |
private $module_require;
|
35 |
/** @var array */
|
@@ -100,12 +109,16 @@ if (!\class_exists('FcfVendor\\WPDesk_Basic_Requirement_Checker')) {
|
|
100 |
/**
|
101 |
* @param string $plugin_name Name in wp format dir/file.php
|
102 |
* @param string $nice_plugin_name Nice plugin name for better looks in notice
|
|
|
103 |
*
|
104 |
* @return $this
|
105 |
*/
|
106 |
-
public function add_plugin_require($plugin_name, $nice_plugin_name = null)
|
107 |
{
|
108 |
-
|
|
|
|
|
|
|
109 |
return $this;
|
110 |
}
|
111 |
/**
|
@@ -119,7 +132,7 @@ if (!\class_exists('FcfVendor\\WPDesk_Basic_Requirement_Checker')) {
|
|
119 |
*/
|
120 |
public function add_plugin_repository_require($plugin_name, $version, $nice_plugin_name = null)
|
121 |
{
|
122 |
-
$this->plugin_require[$plugin_name] = array(self::PLUGIN_INFO_KEY_NAME => $plugin_name,
|
123 |
return $this;
|
124 |
}
|
125 |
/**
|
@@ -179,6 +192,9 @@ if (!\class_exists('FcfVendor\\WPDesk_Basic_Requirement_Checker')) {
|
|
179 |
$notices = $this->append_plugin_require_notices($notices);
|
180 |
$notices = $this->append_module_require_notices($notices);
|
181 |
$notices = $this->append_settings_require_notices($notices);
|
|
|
|
|
|
|
182 |
return $notices;
|
183 |
}
|
184 |
/**
|
@@ -247,6 +263,65 @@ if (!\class_exists('FcfVendor\\WPDesk_Basic_Requirement_Checker')) {
|
|
247 |
{
|
248 |
return \defined('OPENSSL_VERSION_NUMBER') && \OPENSSL_VERSION_NUMBER > (int) $required_version;
|
249 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
250 |
/**
|
251 |
* @param array $notices
|
252 |
*
|
@@ -279,7 +354,10 @@ if (!\class_exists('FcfVendor\\WPDesk_Basic_Requirement_Checker')) {
|
|
279 |
private function prepare_plugin_repository_install_url($plugin_info)
|
280 |
{
|
281 |
$slug = \basename($plugin_info[self::PLUGIN_INFO_KEY_NAME]);
|
282 |
-
$install_url = \
|
|
|
|
|
|
|
283 |
\add_filter('plugins_api', function ($api, $action, $args) use($plugin_info, $slug) {
|
284 |
if ('plugin_information' !== $action || \false !== $api || !isset($args->slug) || $slug !== $args->slug) {
|
285 |
return $api;
|
@@ -309,7 +387,10 @@ if (!\class_exists('FcfVendor\\WPDesk_Basic_Requirement_Checker')) {
|
|
309 |
$install_url = $this->prepare_plugin_repository_install_url($plugin_info);
|
310 |
return $this->prepare_notice_message(\sprintf(\wp_kses(\__('The “%s” plugin requires free %s plugin. <a href="%s">Install %s →</a>', $this->get_text_domain()), array('a' => array('href' => array()))), $this->plugin_name, $nice_name, \esc_url($install_url), $nice_name));
|
311 |
}
|
312 |
-
$activate_url = 'plugins.php?action=activate&plugin=' . \urlencode($plugin_info[self::PLUGIN_INFO_KEY_NAME]) . '&plugin_status=all&paged=1&s
|
|
|
|
|
|
|
313 |
return $this->prepare_notice_message(\sprintf(\wp_kses(\__('The “%s” plugin requires activating %s plugin. <a href="%s">Activate %s →</a>', $this->get_text_domain()), array('a' => array('href' => array()))), $this->plugin_name, $nice_name, \esc_url(\admin_url($activate_url)), $nice_name));
|
314 |
}
|
315 |
return null;
|
@@ -338,10 +419,8 @@ if (!\class_exists('FcfVendor\\WPDesk_Basic_Requirement_Checker')) {
|
|
338 |
*/
|
339 |
public static function is_wp_plugin_installed($plugin_file)
|
340 |
{
|
341 |
-
|
342 |
-
|
343 |
-
}
|
344 |
-
return \array_key_exists($plugin_file, \get_plugins());
|
345 |
}
|
346 |
/**
|
347 |
* @param array $notices
|
@@ -430,8 +509,28 @@ if (!\class_exists('FcfVendor\\WPDesk_Basic_Requirement_Checker')) {
|
|
430 |
{
|
431 |
if (isset($this->plugin_file)) {
|
432 |
\deactivate_plugins(\plugin_basename($this->plugin_file));
|
|
|
433 |
}
|
434 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
435 |
/**
|
436 |
* Should be called as WordPress action
|
437 |
*
|
14 |
{
|
15 |
const EXTENSION_NAME_OPENSSL = 'openssl';
|
16 |
const HOOK_ADMIN_NOTICES_ACTION = 'admin_notices';
|
17 |
+
const HOOK_PLUGIN_DEACTIVATED_ACTION = 'deactivated_plugin';
|
18 |
+
const HOOK_PLUGIN_ACTIVATED_ACTION = 'activated_plugin';
|
19 |
const PLUGIN_INFO_KEY_NICE_NAME = 'nice_name';
|
20 |
const PLUGIN_INFO_KEY_NAME = 'name';
|
21 |
+
const PLUGIN_INFO_VERSION = 'version';
|
22 |
+
const PLUGIN_INFO_FAKE_REQUIRED_MINIMUM_VERSION = '0.0';
|
23 |
+
const PLUGIN_INFO_APPEND_PLUGIN_DATA = 'required_version';
|
24 |
+
const PLUGIN_INFO_TRANSIENT_NAME = 'require_plugins_data';
|
25 |
+
const PLUGIN_INFO_TRANSIENT_EXPIRATION_TIME = 16;
|
26 |
/** @var string */
|
27 |
protected $plugin_name;
|
28 |
/** @var string */
|
37 |
private $min_openssl_version = null;
|
38 |
/** @var array */
|
39 |
protected $plugin_require;
|
40 |
+
/** @var bool */
|
41 |
+
protected $should_check_plugin_versions = \false;
|
42 |
/** @var array */
|
43 |
private $module_require;
|
44 |
/** @var array */
|
109 |
/**
|
110 |
* @param string $plugin_name Name in wp format dir/file.php
|
111 |
* @param string $nice_plugin_name Nice plugin name for better looks in notice
|
112 |
+
* @param string $plugin_require_version required plugin minimum version
|
113 |
*
|
114 |
* @return $this
|
115 |
*/
|
116 |
+
public function add_plugin_require($plugin_name, $nice_plugin_name = null, $plugin_require_version = null)
|
117 |
{
|
118 |
+
if ($plugin_require_version) {
|
119 |
+
$this->should_check_plugin_versions = \true;
|
120 |
+
}
|
121 |
+
$this->plugin_require[$plugin_name] = array(self::PLUGIN_INFO_KEY_NAME => $plugin_name, self::PLUGIN_INFO_KEY_NICE_NAME => $nice_plugin_name === null ? $plugin_name : $nice_plugin_name, self::PLUGIN_INFO_VERSION => $plugin_require_version === null ? self::PLUGIN_INFO_FAKE_REQUIRED_MINIMUM_VERSION : $plugin_require_version);
|
122 |
return $this;
|
123 |
}
|
124 |
/**
|
132 |
*/
|
133 |
public function add_plugin_repository_require($plugin_name, $version, $nice_plugin_name = null)
|
134 |
{
|
135 |
+
$this->plugin_require[$plugin_name] = array(self::PLUGIN_INFO_KEY_NAME => $plugin_name, self::PLUGIN_INFO_VERSION => $version, 'repository_url' => 'http://downloads.wordpress.org/plugin/' . \dirname($plugin_name) . '.latest-stable.zip', self::PLUGIN_INFO_KEY_NICE_NAME => $nice_plugin_name === null ? $plugin_name : $nice_plugin_name);
|
136 |
return $this;
|
137 |
}
|
138 |
/**
|
192 |
$notices = $this->append_plugin_require_notices($notices);
|
193 |
$notices = $this->append_module_require_notices($notices);
|
194 |
$notices = $this->append_settings_require_notices($notices);
|
195 |
+
if ($this->should_check_plugin_versions) {
|
196 |
+
$notices = $this->check_minimum_require_plugins_version_and_append_notices($notices);
|
197 |
+
}
|
198 |
return $notices;
|
199 |
}
|
200 |
/**
|
263 |
{
|
264 |
return \defined('OPENSSL_VERSION_NUMBER') && \OPENSSL_VERSION_NUMBER > (int) $required_version;
|
265 |
}
|
266 |
+
/**
|
267 |
+
* @param $notices array
|
268 |
+
*
|
269 |
+
* @return array
|
270 |
+
*/
|
271 |
+
private function check_minimum_require_plugins_version_and_append_notices($notices)
|
272 |
+
{
|
273 |
+
$required_plugins = $this->retrieve_required_plugins_data();
|
274 |
+
if (\count($required_plugins) > 0) {
|
275 |
+
foreach ($required_plugins as $plugin) {
|
276 |
+
if (\version_compare($plugin['Version'], $plugin[self::PLUGIN_INFO_APPEND_PLUGIN_DATA], '<')) {
|
277 |
+
$notices[] = $this->prepare_notice_message(\sprintf(\__('The “%s” plugin requires at least %s version of %s to work correctly. Please update it', $this->get_text_domain()), \esc_html($this->plugin_name), $plugin[self::PLUGIN_INFO_APPEND_PLUGIN_DATA], $plugin['Name']));
|
278 |
+
}
|
279 |
+
}
|
280 |
+
}
|
281 |
+
return $notices;
|
282 |
+
}
|
283 |
+
/**
|
284 |
+
* Check the plugins directory and retrieve all plugin files with plugin data.
|
285 |
+
*
|
286 |
+
* @return array In format [ 'plugindir/pluginfile.php' => ['Name' => 'Plugin Name', 'Version' => '1.0.1', ...], ]
|
287 |
+
*/
|
288 |
+
private static function retrieve_plugins_data_in_transient()
|
289 |
+
{
|
290 |
+
$plugins = \get_transient(self::PLUGIN_INFO_TRANSIENT_NAME);
|
291 |
+
if ($plugins === \false) {
|
292 |
+
if (!\function_exists('get_plugins')) {
|
293 |
+
require_once \ABSPATH . '/wp-admin/includes/plugin.php';
|
294 |
+
}
|
295 |
+
$plugins = \function_exists('get_plugins') ? \get_plugins() : array();
|
296 |
+
\set_transient(self::PLUGIN_INFO_TRANSIENT_NAME, $plugins, self::PLUGIN_INFO_TRANSIENT_EXPIRATION_TIME);
|
297 |
+
}
|
298 |
+
return $plugins;
|
299 |
+
}
|
300 |
+
/**
|
301 |
+
* Check the plugins directory and retrieve all required plugin files with plugin data.
|
302 |
+
*
|
303 |
+
* @return array In format [ 'plugindir/pluginfile.php' => ['Name' => 'Plugin Name', 'Version' => '1.0.1', 'required_version' => '1.0.2']... ]
|
304 |
+
*/
|
305 |
+
private function retrieve_required_plugins_data()
|
306 |
+
{
|
307 |
+
$require_plugins = array();
|
308 |
+
$plugins = self::retrieve_plugins_data_in_transient();
|
309 |
+
if (\is_array($plugins)) {
|
310 |
+
if (\count($plugins) > 0) {
|
311 |
+
if (!empty($this->plugin_require)) {
|
312 |
+
foreach ($this->plugin_require as $plugin) {
|
313 |
+
$plugin_file_name = $plugin[self::PLUGIN_INFO_KEY_NAME];
|
314 |
+
$plugin_version = $plugin[self::PLUGIN_INFO_VERSION];
|
315 |
+
if (self::is_wp_plugin_active($plugin_file_name)) {
|
316 |
+
$require_plugins[$plugin_file_name] = $plugins[$plugin_file_name];
|
317 |
+
$require_plugins[$plugin_file_name][self::PLUGIN_INFO_APPEND_PLUGIN_DATA] = $plugin_version;
|
318 |
+
}
|
319 |
+
}
|
320 |
+
}
|
321 |
+
}
|
322 |
+
}
|
323 |
+
return $require_plugins;
|
324 |
+
}
|
325 |
/**
|
326 |
* @param array $notices
|
327 |
*
|
354 |
private function prepare_plugin_repository_install_url($plugin_info)
|
355 |
{
|
356 |
$slug = \basename($plugin_info[self::PLUGIN_INFO_KEY_NAME]);
|
357 |
+
$install_url = \self_admin_url('update.php?action=install-plugin&plugin=' . $slug);
|
358 |
+
if (\function_exists('wp_nonce_url') && \function_exists('wp_create_nonce')) {
|
359 |
+
$install_url = \wp_nonce_url($install_url, 'install-plugin_' . $slug);
|
360 |
+
}
|
361 |
\add_filter('plugins_api', function ($api, $action, $args) use($plugin_info, $slug) {
|
362 |
if ('plugin_information' !== $action || \false !== $api || !isset($args->slug) || $slug !== $args->slug) {
|
363 |
return $api;
|
387 |
$install_url = $this->prepare_plugin_repository_install_url($plugin_info);
|
388 |
return $this->prepare_notice_message(\sprintf(\wp_kses(\__('The “%s” plugin requires free %s plugin. <a href="%s">Install %s →</a>', $this->get_text_domain()), array('a' => array('href' => array()))), $this->plugin_name, $nice_name, \esc_url($install_url), $nice_name));
|
389 |
}
|
390 |
+
$activate_url = 'plugins.php?action=activate&plugin=' . \urlencode($plugin_info[self::PLUGIN_INFO_KEY_NAME]) . '&plugin_status=all&paged=1&s';
|
391 |
+
if (\function_exists('wp_create_nonce')) {
|
392 |
+
$activate_url .= '&_wpnonce=' . \urlencode(\wp_create_nonce('activate-plugin_' . $name));
|
393 |
+
}
|
394 |
return $this->prepare_notice_message(\sprintf(\wp_kses(\__('The “%s” plugin requires activating %s plugin. <a href="%s">Activate %s →</a>', $this->get_text_domain()), array('a' => array('href' => array()))), $this->plugin_name, $nice_name, \esc_url(\admin_url($activate_url)), $nice_name));
|
395 |
}
|
396 |
return null;
|
419 |
*/
|
420 |
public static function is_wp_plugin_installed($plugin_file)
|
421 |
{
|
422 |
+
$plugins_data = self::retrieve_plugins_data_in_transient();
|
423 |
+
return \array_key_exists($plugin_file, (array) $plugins_data);
|
|
|
|
|
424 |
}
|
425 |
/**
|
426 |
* @param array $notices
|
509 |
{
|
510 |
if (isset($this->plugin_file)) {
|
511 |
\deactivate_plugins(\plugin_basename($this->plugin_file));
|
512 |
+
\delete_transient(self::PLUGIN_INFO_TRANSIENT_NAME);
|
513 |
}
|
514 |
}
|
515 |
+
/**
|
516 |
+
* Triggers the transient delete after plugin deactivated
|
517 |
+
*
|
518 |
+
*@return void
|
519 |
+
*/
|
520 |
+
public function transient_delete_on_plugin_version_changed()
|
521 |
+
{
|
522 |
+
\add_action(self::HOOK_PLUGIN_DEACTIVATED_ACTION, array($this, 'handle_transient_delete_action'));
|
523 |
+
\add_action(self::HOOK_PLUGIN_ACTIVATED_ACTION, array($this, 'handle_transient_delete_action'));
|
524 |
+
}
|
525 |
+
/**
|
526 |
+
* Handles the transient delete
|
527 |
+
*
|
528 |
+
* @return void
|
529 |
+
*/
|
530 |
+
public function handle_transient_delete_action()
|
531 |
+
{
|
532 |
+
\delete_transient(self::PLUGIN_INFO_TRANSIENT_NAME);
|
533 |
+
}
|
534 |
/**
|
535 |
* Should be called as WordPress action
|
536 |
*
|
vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker_Factory.php
CHANGED
@@ -25,7 +25,7 @@ class WPDesk_Basic_Requirement_Checker_Factory
|
|
25 |
*/
|
26 |
public function create_requirement_checker($plugin_file, $plugin_name, $text_domain = null)
|
27 |
{
|
28 |
-
return new \FcfVendor\WPDesk_Basic_Requirement_Checker($plugin_file, $plugin_name, $
|
29 |
}
|
30 |
/**
|
31 |
* Creates a requirement checker according to given requirements array info.
|
@@ -39,11 +39,13 @@ class WPDesk_Basic_Requirement_Checker_Factory
|
|
39 |
*/
|
40 |
public function create_from_requirement_array($plugin_file, $plugin_name, $requirements, $text_domain = null)
|
41 |
{
|
42 |
-
$requirements_checker = new \FcfVendor\WPDesk_Basic_Requirement_Checker_With_Update_Disable($plugin_file, $plugin_name, $
|
43 |
if (isset($requirements['plugins'])) {
|
44 |
foreach ($requirements['plugins'] as $requirement) {
|
45 |
-
$
|
|
|
46 |
}
|
|
|
47 |
}
|
48 |
if (isset($requirements['repo_plugins'])) {
|
49 |
foreach ($requirements['repo_plugins'] as $requirement) {
|
@@ -57,29 +59,4 @@ class WPDesk_Basic_Requirement_Checker_Factory
|
|
57 |
}
|
58 |
return $requirements_checker;
|
59 |
}
|
60 |
-
/**
|
61 |
-
* Tries to initialize translations for requirement checker. If not given then default library translation is used.
|
62 |
-
*
|
63 |
-
* @param string|null $text_domain
|
64 |
-
*
|
65 |
-
* @return string
|
66 |
-
*/
|
67 |
-
private function initialize_translations($text_domain = null)
|
68 |
-
{
|
69 |
-
if ($text_domain === null) {
|
70 |
-
$text_domain = self::LIBRARY_TEXT_DOMAIN;
|
71 |
-
if (\function_exists('determine_locale')) {
|
72 |
-
$locale = \determine_locale();
|
73 |
-
} else {
|
74 |
-
// before WP 5.0 compatibility
|
75 |
-
$locale = \get_locale();
|
76 |
-
}
|
77 |
-
$locale = \apply_filters('plugin_locale', $locale, self::LIBRARY_TEXT_DOMAIN);
|
78 |
-
$lang_mo_file = __DIR__ . '/../lang/' . self::LIBRARY_TEXT_DOMAIN . '-' . $locale . '.mo';
|
79 |
-
if (\file_exists($lang_mo_file)) {
|
80 |
-
\load_textdomain(self::LIBRARY_TEXT_DOMAIN, $lang_mo_file);
|
81 |
-
}
|
82 |
-
}
|
83 |
-
return $text_domain;
|
84 |
-
}
|
85 |
}
|
25 |
*/
|
26 |
public function create_requirement_checker($plugin_file, $plugin_name, $text_domain = null)
|
27 |
{
|
28 |
+
return new \FcfVendor\WPDesk_Basic_Requirement_Checker($plugin_file, $plugin_name, $text_domain, null, null);
|
29 |
}
|
30 |
/**
|
31 |
* Creates a requirement checker according to given requirements array info.
|
39 |
*/
|
40 |
public function create_from_requirement_array($plugin_file, $plugin_name, $requirements, $text_domain = null)
|
41 |
{
|
42 |
+
$requirements_checker = new \FcfVendor\WPDesk_Basic_Requirement_Checker_With_Update_Disable($plugin_file, $plugin_name, $text_domain, $requirements['php'], $requirements['wp']);
|
43 |
if (isset($requirements['plugins'])) {
|
44 |
foreach ($requirements['plugins'] as $requirement) {
|
45 |
+
$version = isset($requirement['version']) ? $requirement['version'] : null;
|
46 |
+
$requirements_checker->add_plugin_require($requirement['name'], $requirement['nice_name'], $version);
|
47 |
}
|
48 |
+
$requirements_checker->transient_delete_on_plugin_version_changed();
|
49 |
}
|
50 |
if (isset($requirements['repo_plugins'])) {
|
51 |
foreach ($requirements['repo_plugins'] as $requirement) {
|
59 |
}
|
60 |
return $requirements_checker;
|
61 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
}
|
vendor_prefixed/wpdesk/wp-builder/src/Plugin/AbstractPlugin.php
CHANGED
@@ -3,28 +3,53 @@
|
|
3 |
namespace FcfVendor\WPDesk\PluginBuilder\Plugin;
|
4 |
|
5 |
/**
|
6 |
-
* Base plugin
|
7 |
*
|
8 |
-
* *************************************************************
|
9 |
-
* * Important! This class should be not modified! *
|
10 |
-
* * This class is loaded at startup from first loaded plugin! *
|
11 |
-
* *************************************************************
|
12 |
*
|
13 |
-
*
|
14 |
*
|
|
|
|
|
|
|
15 |
*/
|
16 |
-
abstract class AbstractPlugin
|
17 |
{
|
18 |
-
/**
|
|
|
|
|
|
|
|
|
19 |
protected $plugin_info;
|
20 |
-
/**
|
|
|
|
|
|
|
|
|
21 |
protected $plugin_namespace;
|
22 |
-
/**
|
|
|
|
|
|
|
|
|
23 |
protected $plugin_url;
|
24 |
-
/**
|
|
|
|
|
|
|
|
|
25 |
protected $docs_url;
|
26 |
-
/**
|
|
|
|
|
|
|
|
|
27 |
protected $settings_url;
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
/**
|
29 |
* AbstractPlugin constructor.
|
30 |
*
|
@@ -34,27 +59,34 @@ abstract class AbstractPlugin implements \FcfVendor\WPDesk_Translable
|
|
34 |
{
|
35 |
$this->plugin_info = $plugin_info;
|
36 |
$this->plugin_namespace = \strtolower($plugin_info->get_plugin_dir());
|
37 |
-
|
38 |
-
public function init()
|
39 |
-
{
|
40 |
$this->init_base_variables();
|
41 |
-
$this->hooks();
|
42 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
public function init_base_variables()
|
44 |
{
|
45 |
-
$this->plugin_url = \plugin_dir_url($this->plugin_info->get_plugin_dir());
|
46 |
}
|
47 |
/**
|
|
|
|
|
|
|
|
|
|
|
48 |
* @return void
|
49 |
*/
|
50 |
-
|
51 |
{
|
52 |
-
|
53 |
-
\add_action('wp_enqueue_scripts', [$this, 'wp_enqueue_scripts']);
|
54 |
-
\add_action('plugins_loaded', [$this, 'load_plugin_text_domain']);
|
55 |
-
\add_filter('plugin_action_links_' . \plugin_basename($this->get_plugin_file_path()), [$this, 'links_filter']);
|
56 |
}
|
57 |
/**
|
|
|
|
|
58 |
* @return string
|
59 |
*/
|
60 |
public function get_plugin_file_path()
|
@@ -62,71 +94,108 @@ abstract class AbstractPlugin implements \FcfVendor\WPDesk_Translable
|
|
62 |
return $this->plugin_info->get_plugin_file_name();
|
63 |
}
|
64 |
/**
|
65 |
-
*
|
|
|
|
|
66 |
*/
|
67 |
-
public function
|
68 |
{
|
69 |
-
return $this;
|
70 |
}
|
71 |
/**
|
72 |
-
*
|
|
|
|
|
73 |
*/
|
74 |
-
public function
|
75 |
{
|
76 |
-
|
77 |
}
|
78 |
/**
|
|
|
|
|
79 |
* @return string
|
80 |
*/
|
81 |
-
public function
|
82 |
{
|
83 |
-
return $this->
|
84 |
}
|
85 |
/**
|
|
|
|
|
86 |
* @return string
|
87 |
*/
|
88 |
-
public function get_namespace()
|
89 |
-
{
|
90 |
-
return $this->plugin_namespace;
|
91 |
-
}
|
92 |
public function get_plugin_assets_url()
|
93 |
{
|
94 |
return \esc_url(\trailingslashit($this->get_plugin_url() . 'assets'));
|
95 |
}
|
96 |
/**
|
|
|
|
|
97 |
*
|
98 |
-
* @return string
|
99 |
*/
|
100 |
-
public function
|
101 |
{
|
102 |
-
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
}
|
|
|
|
|
|
|
|
|
|
|
104 |
public function admin_enqueue_scripts()
|
105 |
{
|
106 |
}
|
|
|
|
|
|
|
|
|
|
|
107 |
public function wp_enqueue_scripts()
|
108 |
{
|
109 |
}
|
110 |
/**
|
111 |
-
*
|
112 |
-
*
|
113 |
-
* @access public
|
114 |
*
|
115 |
-
* @param
|
116 |
*
|
117 |
-
* @return
|
118 |
*/
|
119 |
public function links_filter($links)
|
120 |
{
|
121 |
$support_link = \get_locale() === 'pl_PL' ? 'https://www.wpdesk.pl/support/' : 'https://www.wpdesk.net/support';
|
122 |
-
|
|
|
|
|
|
|
123 |
$links = \array_merge($plugin_links, $links);
|
124 |
if ($this->docs_url) {
|
125 |
-
$plugin_links = ['<a href="' . $this->docs_url . '">' . \__('Docs', $this->get_text_domain()) . '</a>'];
|
126 |
$links = \array_merge($plugin_links, $links);
|
127 |
}
|
128 |
if ($this->settings_url) {
|
129 |
-
$plugin_links = ['<a href="' . $this->settings_url . '">' . \__('Settings', $this->get_text_domain()) . '</a>'];
|
130 |
$links = \array_merge($plugin_links, $links);
|
131 |
}
|
132 |
return $links;
|
3 |
namespace FcfVendor\WPDesk\PluginBuilder\Plugin;
|
4 |
|
5 |
/**
|
6 |
+
* Base plugin with most basic functionalities used by every WPDesk plugin.
|
7 |
*
|
|
|
|
|
|
|
|
|
8 |
*
|
9 |
+
* Known issues:
|
10 |
*
|
11 |
+
* The class name is too generic but can't be changed as it would introduce a major incompatibility for most of the plugins.
|
12 |
+
* The $plugin_url, $docs_url and most other fields should be removed as they only litter the place but for compatibility reasons we can't do it right now.
|
13 |
+
* Hook methods should be moved to external classes but for compatibility reasons we can't do it right now.
|
14 |
*/
|
15 |
+
abstract class AbstractPlugin extends \FcfVendor\WPDesk\PluginBuilder\Plugin\SlimPlugin
|
16 |
{
|
17 |
+
/**
|
18 |
+
* Most info about plugin internals.
|
19 |
+
*
|
20 |
+
* @var \WPDesk_Plugin_Info
|
21 |
+
*/
|
22 |
protected $plugin_info;
|
23 |
+
/**
|
24 |
+
* Unique string for this plugin in [a-z_]+ format.
|
25 |
+
*
|
26 |
+
* @var string
|
27 |
+
*/
|
28 |
protected $plugin_namespace;
|
29 |
+
/**
|
30 |
+
* Absolute URL to the plugin dir.
|
31 |
+
*
|
32 |
+
* @var string
|
33 |
+
*/
|
34 |
protected $plugin_url;
|
35 |
+
/**
|
36 |
+
* Absolute URL to the plugin docs.
|
37 |
+
*
|
38 |
+
* @var string
|
39 |
+
*/
|
40 |
protected $docs_url;
|
41 |
+
/**
|
42 |
+
* Absolute URL to the plugin settings url.
|
43 |
+
*
|
44 |
+
* @var string
|
45 |
+
*/
|
46 |
protected $settings_url;
|
47 |
+
/**
|
48 |
+
* Support URL.
|
49 |
+
*
|
50 |
+
* @var string
|
51 |
+
*/
|
52 |
+
protected $support_url;
|
53 |
/**
|
54 |
* AbstractPlugin constructor.
|
55 |
*
|
59 |
{
|
60 |
$this->plugin_info = $plugin_info;
|
61 |
$this->plugin_namespace = \strtolower($plugin_info->get_plugin_dir());
|
62 |
+
$this->plugin_url = $this->plugin_info->get_plugin_url();
|
|
|
|
|
63 |
$this->init_base_variables();
|
|
|
64 |
}
|
65 |
+
/**
|
66 |
+
* Initialize internal state of the plugin.
|
67 |
+
*
|
68 |
+
* @return void
|
69 |
+
* @deprecated Just use __construct to initialize plugin internal state.
|
70 |
+
*
|
71 |
+
*/
|
72 |
public function init_base_variables()
|
73 |
{
|
|
|
74 |
}
|
75 |
/**
|
76 |
+
* Initializes plugin external state.
|
77 |
+
*
|
78 |
+
* The plugin internal state is initialized in the constructor and the plugin should be internally consistent after creation.
|
79 |
+
* The external state includes hooks execution, communication with other plugins, integration with WC etc.
|
80 |
+
*
|
81 |
* @return void
|
82 |
*/
|
83 |
+
public function init()
|
84 |
{
|
85 |
+
$this->hooks();
|
|
|
|
|
|
|
86 |
}
|
87 |
/**
|
88 |
+
* Returns absolute path to the plugin dir.
|
89 |
+
*
|
90 |
* @return string
|
91 |
*/
|
92 |
public function get_plugin_file_path()
|
94 |
return $this->plugin_info->get_plugin_file_name();
|
95 |
}
|
96 |
/**
|
97 |
+
* Returns plugin text domain.
|
98 |
+
*
|
99 |
+
* @return string
|
100 |
*/
|
101 |
+
public function get_text_domain()
|
102 |
{
|
103 |
+
return $this->plugin_info->get_text_domain();
|
104 |
}
|
105 |
/**
|
106 |
+
* Returns unique string for plugin in [a-z_]+ format. Can be used as plugin id in various places like plugin slug etc.
|
107 |
+
*
|
108 |
+
* @return string
|
109 |
*/
|
110 |
+
public function get_namespace()
|
111 |
{
|
112 |
+
return $this->plugin_namespace;
|
113 |
}
|
114 |
/**
|
115 |
+
* Returns plugin absolute URL.
|
116 |
+
*
|
117 |
* @return string
|
118 |
*/
|
119 |
+
public function get_plugin_url()
|
120 |
{
|
121 |
+
return \esc_url(\trailingslashit($this->plugin_url));
|
122 |
}
|
123 |
/**
|
124 |
+
* Returns plugin absolute URL to dir with front end assets.
|
125 |
+
*
|
126 |
* @return string
|
127 |
*/
|
|
|
|
|
|
|
|
|
128 |
public function get_plugin_assets_url()
|
129 |
{
|
130 |
return \esc_url(\trailingslashit($this->get_plugin_url() . 'assets'));
|
131 |
}
|
132 |
/**
|
133 |
+
* @return $this
|
134 |
+
* @deprecated For backward compatibility.
|
135 |
*
|
|
|
136 |
*/
|
137 |
+
public function get_plugin()
|
138 |
{
|
139 |
+
return $this;
|
140 |
+
}
|
141 |
+
/**
|
142 |
+
* Integrate with WordPress and with other plugins using action/filter system.
|
143 |
+
*
|
144 |
+
* @return void
|
145 |
+
*/
|
146 |
+
protected function hooks()
|
147 |
+
{
|
148 |
+
\add_action('admin_enqueue_scripts', [$this, 'admin_enqueue_scripts']);
|
149 |
+
\add_action('wp_enqueue_scripts', [$this, 'wp_enqueue_scripts']);
|
150 |
+
\add_action('plugins_loaded', [$this, 'load_plugin_text_domain']);
|
151 |
+
\add_filter('plugin_action_links_' . \plugin_basename($this->get_plugin_file_path()), [$this, 'links_filter']);
|
152 |
+
}
|
153 |
+
/**
|
154 |
+
* Initialize plugin test domain. This is a hook function. Do not execute directly.
|
155 |
+
*
|
156 |
+
* @return void
|
157 |
+
*/
|
158 |
+
public function load_plugin_text_domain()
|
159 |
+
{
|
160 |
+
\load_plugin_textdomain($this->get_text_domain(), \false, $this->get_namespace() . '/lang/');
|
161 |
}
|
162 |
+
/**
|
163 |
+
* Append JS scripts in the WordPress admin panel. This is a hook function. Do not execute directly.
|
164 |
+
*
|
165 |
+
* @return void
|
166 |
+
*/
|
167 |
public function admin_enqueue_scripts()
|
168 |
{
|
169 |
}
|
170 |
+
/**
|
171 |
+
* Append JS scripts in WordPress. This is a hook function. Do not execute directly.
|
172 |
+
*
|
173 |
+
* @return void
|
174 |
+
*/
|
175 |
public function wp_enqueue_scripts()
|
176 |
{
|
177 |
}
|
178 |
/**
|
179 |
+
* Initialize plugin admin links. This is a hook function. Do not execute directly.
|
|
|
|
|
180 |
*
|
181 |
+
* @param string[] $links
|
182 |
*
|
183 |
+
* @return string[]
|
184 |
*/
|
185 |
public function links_filter($links)
|
186 |
{
|
187 |
$support_link = \get_locale() === 'pl_PL' ? 'https://www.wpdesk.pl/support/' : 'https://www.wpdesk.net/support';
|
188 |
+
if ($this->support_url) {
|
189 |
+
$support_link = $this->support_url;
|
190 |
+
}
|
191 |
+
$plugin_links = ['<a target="_blank" href="' . $support_link . '">' . \__('Support', $this->get_text_domain()) . '</a>'];
|
192 |
$links = \array_merge($plugin_links, $links);
|
193 |
if ($this->docs_url) {
|
194 |
+
$plugin_links = ['<a target="_blank" href="' . $this->docs_url . '">' . \__('Docs', $this->get_text_domain()) . '</a>'];
|
195 |
$links = \array_merge($plugin_links, $links);
|
196 |
}
|
197 |
if ($this->settings_url) {
|
198 |
+
$plugin_links = ['<a target="_blank" href="' . $this->settings_url . '">' . \__('Settings', $this->get_text_domain()) . '</a>'];
|
199 |
$links = \array_merge($plugin_links, $links);
|
200 |
}
|
201 |
return $links;
|
vendor_prefixed/wpdesk/wp-builder/src/Plugin/Activateable.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace FcfVendor\WPDesk\PluginBuilder\Plugin;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Tag the plugin with this ingterface to hook it to the WordPress activation hook.
|
7 |
+
*
|
8 |
+
* Note: works from plugin flow ^2.2.
|
9 |
+
*
|
10 |
+
* @package WPDesk\PluginBuilder\Plugin
|
11 |
+
*/
|
12 |
+
interface Activateable
|
13 |
+
{
|
14 |
+
/**
|
15 |
+
* Plugin activated in WordPress. Do not execute directly.
|
16 |
+
*
|
17 |
+
* @return void
|
18 |
+
*/
|
19 |
+
public function activate();
|
20 |
+
}
|
vendor_prefixed/wpdesk/wp-builder/src/Plugin/ActivationAware.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
namespace FcfVendor\WPDesk\PluginBuilder\Plugin;
|
4 |
|
5 |
/**
|
6 |
-
* It means that this class is should know about
|
7 |
*
|
8 |
* @package WPDesk\PluginBuilder\Plugin
|
9 |
*/
|
3 |
namespace FcfVendor\WPDesk\PluginBuilder\Plugin;
|
4 |
|
5 |
/**
|
6 |
+
* It means that this class is should know about SUBSCRIPTION activation
|
7 |
*
|
8 |
* @package WPDesk\PluginBuilder\Plugin
|
9 |
*/
|
vendor_prefixed/wpdesk/wp-builder/src/Plugin/Conditional.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace FcfVendor\WPDesk\PluginBuilder\Plugin;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Something that can be instantiated/hooked conditionally.
|
7 |
+
*
|
8 |
+
* @see https://github.com/mwpd/basic-scaffold/blob/master/src/Infrastructure/Conditional.php by Alain Schlesser
|
9 |
+
*
|
10 |
+
* @package WPDesk\PluginBuilder\Plugin
|
11 |
+
*/
|
12 |
+
interface Conditional
|
13 |
+
{
|
14 |
+
/**
|
15 |
+
* Check whether the conditional object is currently needed.
|
16 |
+
*
|
17 |
+
* @return bool Whether the conditional object is needed.
|
18 |
+
*/
|
19 |
+
public static function is_needed();
|
20 |
+
}
|
vendor_prefixed/wpdesk/wp-builder/src/Plugin/Deactivateable.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace FcfVendor\WPDesk\PluginBuilder\Plugin;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Tag the plugin with this ingterface to hook it to the WordPress deactivation hook.
|
7 |
+
*
|
8 |
+
* Note: works from plugin flow ^2.2.
|
9 |
+
*
|
10 |
+
* @package WPDesk\PluginBuilder\Plugin
|
11 |
+
*/
|
12 |
+
interface Deactivateable
|
13 |
+
{
|
14 |
+
/**
|
15 |
+
* Plugin deactivate in WordPress. Do not execute directly.
|
16 |
+
*
|
17 |
+
* @return void
|
18 |
+
*/
|
19 |
+
public function deactivate();
|
20 |
+
}
|
vendor_prefixed/wpdesk/wp-builder/src/Plugin/Hookable.php
CHANGED
@@ -7,7 +7,7 @@ interface Hookable
|
|
7 |
/**
|
8 |
* Init hooks (actions and filters).
|
9 |
*
|
10 |
-
* @return
|
11 |
*/
|
12 |
public function hooks();
|
13 |
}
|
7 |
/**
|
8 |
* Init hooks (actions and filters).
|
9 |
*
|
10 |
+
* @return void
|
11 |
*/
|
12 |
public function hooks();
|
13 |
}
|
vendor_prefixed/wpdesk/wp-builder/src/Plugin/HookableParent.php
CHANGED
@@ -45,7 +45,13 @@ trait HookableParent
|
|
45 |
{
|
46 |
/** @var Hookable $hookable_object $hookable_object */
|
47 |
foreach ($this->hookable_objects as $hookable_object) {
|
48 |
-
$hookable_object
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
}
|
50 |
}
|
51 |
}
|
45 |
{
|
46 |
/** @var Hookable $hookable_object $hookable_object */
|
47 |
foreach ($this->hookable_objects as $hookable_object) {
|
48 |
+
if ($hookable_object instanceof \FcfVendor\WPDesk\PluginBuilder\Plugin\Conditional) {
|
49 |
+
if ($hookable_object::is_needed()) {
|
50 |
+
$hookable_object->hooks();
|
51 |
+
}
|
52 |
+
} else {
|
53 |
+
$hookable_object->hooks();
|
54 |
+
}
|
55 |
}
|
56 |
}
|
57 |
}
|
vendor_prefixed/wpdesk/wp-builder/src/Plugin/SlimPlugin.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace FcfVendor\WPDesk\PluginBuilder\Plugin;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Most clean plugin class with only most important details.
|
7 |
+
*/
|
8 |
+
abstract class SlimPlugin implements \FcfVendor\WPDesk_Translatable
|
9 |
+
{
|
10 |
+
/**
|
11 |
+
* Initializes plugin external state.
|
12 |
+
*
|
13 |
+
* The plugin internal state is initialized in the constructor and the plugin should be internally consistent after creation.
|
14 |
+
* The external state includes hooks execution, communication with other plugins, integration with WC etc.
|
15 |
+
*
|
16 |
+
* @return void
|
17 |
+
*/
|
18 |
+
public abstract function init();
|
19 |
+
}
|
vendor_prefixed/wpdesk/wp-builder/src/Storage/StorageFactory.php
CHANGED
@@ -9,6 +9,6 @@ class StorageFactory
|
|
9 |
*/
|
10 |
public function create_storage()
|
11 |
{
|
12 |
-
return new \FcfVendor\WPDesk\PluginBuilder\Storage\
|
13 |
}
|
14 |
}
|
9 |
*/
|
10 |
public function create_storage()
|
11 |
{
|
12 |
+
return new \FcfVendor\WPDesk\PluginBuilder\Storage\WordpressFilterStorage();
|
13 |
}
|
14 |
}
|
vendor_prefixed/wpdesk/wp-builder/src/Storage/WordpressFilterStorage.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace FcfVendor\WPDesk\PluginBuilder\Storage;
|
4 |
+
|
5 |
+
use FcfVendor\WPDesk\PluginBuilder\Plugin\AbstractPlugin;
|
6 |
+
/**
|
7 |
+
* Can store plugin instances in WordPress filter system.
|
8 |
+
*
|
9 |
+
* @package WPDesk\PluginBuilder\Storage
|
10 |
+
*/
|
11 |
+
class WordpressFilterStorage implements \FcfVendor\WPDesk\PluginBuilder\Storage\PluginStorage
|
12 |
+
{
|
13 |
+
const STORAGE_FILTER_NAME = 'wpdesk_plugin_instances';
|
14 |
+
/**
|
15 |
+
* @param string $class
|
16 |
+
* @param AbstractPlugin $object
|
17 |
+
*/
|
18 |
+
public function add_to_storage($class, $object)
|
19 |
+
{
|
20 |
+
\add_filter(self::STORAGE_FILTER_NAME, static function ($plugins) use($class, $object) {
|
21 |
+
if (isset($plugins[$class])) {
|
22 |
+
throw new \FcfVendor\WPDesk\PluginBuilder\Storage\Exception\ClassAlreadyExists("Class {$class} already exists");
|
23 |
+
}
|
24 |
+
$plugins[$class] = $object;
|
25 |
+
return $plugins;
|
26 |
+
});
|
27 |
+
}
|
28 |
+
/**
|
29 |
+
* @param string $class
|
30 |
+
*
|
31 |
+
* @return AbstractPlugin
|
32 |
+
*/
|
33 |
+
public function get_from_storage($class)
|
34 |
+
{
|
35 |
+
$plugins = \apply_filters(self::STORAGE_FILTER_NAME, []);
|
36 |
+
if (isset($plugins[$class])) {
|
37 |
+
return $plugins[$class];
|
38 |
+
}
|
39 |
+
throw new \FcfVendor\WPDesk\PluginBuilder\Storage\Exception\ClassNotExists("Class {$class} not exists in storage");
|
40 |
+
}
|
41 |
+
}
|
vendor_prefixed/wpdesk/wp-notice/src/WPDesk/Notice/AjaxHandler.php
CHANGED
@@ -67,9 +67,9 @@ class AjaxHandler implements \FcfVendor\WPDesk\PluginBuilder\Plugin\HookablePlug
|
|
67 |
public function processAjaxNoticeDismiss()
|
68 |
{
|
69 |
if (isset($_POST[self::POST_FIELD_NOTICE_NAME])) {
|
70 |
-
$noticeName = $_POST[self::POST_FIELD_NOTICE_NAME];
|
71 |
if (isset($_POST[self::POST_FIELD_SOURCE])) {
|
72 |
-
$source = $_POST[self::POST_FIELD_SOURCE];
|
73 |
} else {
|
74 |
$source = null;
|
75 |
}
|
67 |
public function processAjaxNoticeDismiss()
|
68 |
{
|
69 |
if (isset($_POST[self::POST_FIELD_NOTICE_NAME])) {
|
70 |
+
$noticeName = \sanitize_text_field($_POST[self::POST_FIELD_NOTICE_NAME]);
|
71 |
if (isset($_POST[self::POST_FIELD_SOURCE])) {
|
72 |
+
$source = \sanitize_text_field($_POST[self::POST_FIELD_SOURCE]);
|
73 |
} else {
|
74 |
$source = null;
|
75 |
}
|
vendor_prefixed/wpdesk/wp-plugin-flow/composer.json
CHANGED
@@ -9,16 +9,17 @@
|
|
9 |
"require": {
|
10 |
"php": ">=5.6",
|
11 |
"wpdesk\/wp-basic-requirements": "^3",
|
12 |
-
"wpdesk\/wp-builder": "^1.
|
13 |
-
"wpdesk\/wp-wpdesk-license": "^2.
|
14 |
-
"wpdesk\/wp-wpdesk-helper": "^2.
|
15 |
"wpdesk\/wp-wpdesk-tracker": "^2.0.4"
|
16 |
},
|
17 |
"require-dev": {
|
18 |
"phpunit\/phpunit": "<7",
|
19 |
"wp-coding-standards\/wpcs": "^0.14.1",
|
20 |
"squizlabs\/php_codesniffer": "^3.4.2",
|
21 |
-
"10up\/wp_mock": "^0.2"
|
|
|
22 |
},
|
23 |
"autoload": {
|
24 |
"classmap": [
|
@@ -31,6 +32,13 @@
|
|
31 |
"tests\/Stub"
|
32 |
]
|
33 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
"scripts": {
|
35 |
"phpunit-unit": "phpunit --configuration phpunit-unit.xml --coverage-text --colors=never",
|
36 |
"phpunit-unit-fast": "phpunit --configuration phpunit-unit.xml --no-coverage",
|
9 |
"require": {
|
10 |
"php": ">=5.6",
|
11 |
"wpdesk\/wp-basic-requirements": "^3",
|
12 |
+
"wpdesk\/wp-builder": "^1.4",
|
13 |
+
"wpdesk\/wp-wpdesk-license": "^2.6",
|
14 |
+
"wpdesk\/wp-wpdesk-helper": "^2.1",
|
15 |
"wpdesk\/wp-wpdesk-tracker": "^2.0.4"
|
16 |
},
|
17 |
"require-dev": {
|
18 |
"phpunit\/phpunit": "<7",
|
19 |
"wp-coding-standards\/wpcs": "^0.14.1",
|
20 |
"squizlabs\/php_codesniffer": "^3.4.2",
|
21 |
+
"10up\/wp_mock": "^0.2",
|
22 |
+
"wpdesk\/wp-wpdesk-composer": "^2.3"
|
23 |
},
|
24 |
"autoload": {
|
25 |
"classmap": [
|
32 |
"tests\/Stub"
|
33 |
]
|
34 |
},
|
35 |
+
"extra": {
|
36 |
+
"text-domain": "wp-plugin-flow",
|
37 |
+
"translations-folder": "lang",
|
38 |
+
"po-files": {
|
39 |
+
"pl_PL": "pl_PL.po"
|
40 |
+
}
|
41 |
+
},
|
42 |
"scripts": {
|
43 |
"phpunit-unit": "phpunit --configuration phpunit-unit.xml --coverage-text --colors=never",
|
44 |
"phpunit-unit-fast": "phpunit --configuration phpunit-unit.xml --no-coverage",
|
vendor_prefixed/wpdesk/wp-plugin-flow/lang/wp-plugin-flow-pl_PL.mo
DELETED
Binary file
|
vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/BuilderTrait.php
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace FcfVendor\WPDesk\Plugin\Flow\Initialization;
|
4 |
+
|
5 |
+
use FcfVendor\WPDesk\PluginBuilder\Plugin\Activateable;
|
6 |
+
use FcfVendor\WPDesk\PluginBuilder\Plugin\Deactivateable;
|
7 |
+
use FcfVendor\WPDesk\PluginBuilder\Plugin\SlimPlugin;
|
8 |
+
use FcfVendor\WPDesk\PluginBuilder\Storage\StorageFactory;
|
9 |
+
/**
|
10 |
+
* Helps with plugin building concepts.
|
11 |
+
*
|
12 |
+
* @package WPDesk\Plugin\Flow\Initialization
|
13 |
+
*/
|
14 |
+
trait BuilderTrait
|
15 |
+
{
|
16 |
+
/**
|
17 |
+
* Build plugin from info.
|
18 |
+
*
|
19 |
+
* @param \WPDesk_Plugin_Info $plugin_info
|
20 |
+
*
|
21 |
+
* @return SlimPlugin
|
22 |
+
*/
|
23 |
+
private function build_plugin(\FcfVendor\WPDesk_Plugin_Info $plugin_info)
|
24 |
+
{
|
25 |
+
$class_name = \apply_filters('wp_builder_plugin_class', $plugin_info->get_class_name());
|
26 |
+
/** @var SlimPlugin $plugin */
|
27 |
+
$plugin = new $class_name($plugin_info);
|
28 |
+
return $plugin;
|
29 |
+
}
|
30 |
+
/**
|
31 |
+
* Initialize WP register hooks that have to be fire before any other.
|
32 |
+
*
|
33 |
+
* @param \WPDesk_Plugin_Info $plugin_info
|
34 |
+
* @param SlimPlugin $plugin
|
35 |
+
*
|
36 |
+
* @return SlimPlugin
|
37 |
+
*/
|
38 |
+
private function init_register_hooks(\FcfVendor\WPDesk_Plugin_Info $plugin_info, \FcfVendor\WPDesk\PluginBuilder\Plugin\SlimPlugin $plugin)
|
39 |
+
{
|
40 |
+
if ($plugin instanceof \FcfVendor\WPDesk\PluginBuilder\Plugin\Activateable) {
|
41 |
+
\register_activation_hook($plugin_info->get_plugin_file_name(), [$plugin, 'activate']);
|
42 |
+
}
|
43 |
+
if ($plugin instanceof \FcfVendor\WPDesk\PluginBuilder\Plugin\Deactivateable) {
|
44 |
+
\register_deactivation_hook($plugin_info->get_plugin_file_name(), [$plugin, 'deactivate']);
|
45 |
+
}
|
46 |
+
return $plugin;
|
47 |
+
}
|
48 |
+
/**
|
49 |
+
* Store plugin for others to use.
|
50 |
+
*
|
51 |
+
* @param SlimPlugin $plugin
|
52 |
+
*/
|
53 |
+
private function store_plugin(\FcfVendor\WPDesk\PluginBuilder\Plugin\SlimPlugin $plugin)
|
54 |
+
{
|
55 |
+
$storageFactory = new \FcfVendor\WPDesk\PluginBuilder\Storage\StorageFactory();
|
56 |
+
$storageFactory->create_storage()->add_to_storage(\get_class($plugin), $plugin);
|
57 |
+
}
|
58 |
+
/**
|
59 |
+
* Init integration layer of the plugin.
|
60 |
+
*
|
61 |
+
* @param SlimPlugin $plugin
|
62 |
+
*/
|
63 |
+
private function init_plugin(\FcfVendor\WPDesk\PluginBuilder\Plugin\SlimPlugin $plugin)
|
64 |
+
{
|
65 |
+
\do_action('wp_builder_before_plugin_init', $plugin);
|
66 |
+
$plugin->init();
|
67 |
+
\do_action('wp_builder_before_init', $plugin);
|
68 |
+
}
|
69 |
+
}
|
vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/{HelperInstanceAsFilter.php → HelperInstanceAsFilterTrait.php}
RENAMED
@@ -8,10 +8,19 @@ use FcfVendor\WPDesk\Helper\PrefixedHelperAsLibrary;
|
|
8 |
*
|
9 |
* @package WPDesk\Plugin\Flow\Initialization\Simple
|
10 |
*/
|
11 |
-
trait
|
12 |
{
|
13 |
/** @var \WPDesk\Helper\PrefixedHelperAsLibrary */
|
14 |
private static $helper_instance;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
/**
|
16 |
* Returns filter action name for helper instance
|
17 |
*
|
@@ -52,6 +61,6 @@ trait HelperInstanceAsFilter
|
|
52 |
\do_action('wpdesk_helper_started', self::$helper_instance, $this->plugin_info);
|
53 |
return self::$helper_instance;
|
54 |
}
|
55 |
-
});
|
56 |
}
|
57 |
}
|
8 |
*
|
9 |
* @package WPDesk\Plugin\Flow\Initialization\Simple
|
10 |
*/
|
11 |
+
trait HelperInstanceAsFilterTrait
|
12 |
{
|
13 |
/** @var \WPDesk\Helper\PrefixedHelperAsLibrary */
|
14 |
private static $helper_instance;
|
15 |
+
/**
|
16 |
+
* Returns version of the helper. Inc when helper is changed and should be instantiated fist.
|
17 |
+
*
|
18 |
+
* @return int
|
19 |
+
*/
|
20 |
+
private function get_helper_version()
|
21 |
+
{
|
22 |
+
return 2;
|
23 |
+
}
|
24 |
/**
|
25 |
* Returns filter action name for helper instance
|
26 |
*
|
61 |
\do_action('wpdesk_helper_started', self::$helper_instance, $this->plugin_info);
|
62 |
return self::$helper_instance;
|
63 |
}
|
64 |
+
}, 10 - $this->get_helper_version());
|
65 |
}
|
66 |
}
|
vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/InitializationStrategy.php
CHANGED
@@ -2,14 +2,26 @@
|
|
2 |
|
3 |
namespace FcfVendor\WPDesk\Plugin\Flow\Initialization;
|
4 |
|
5 |
-
use FcfVendor\WPDesk\PluginBuilder\Plugin\
|
6 |
/**
|
7 |
* Interface for initialization strategy for plugin. How to initialize it?
|
8 |
*/
|
9 |
interface InitializationStrategy
|
10 |
{
|
11 |
/**
|
12 |
-
*
|
|
|
|
|
|
|
|
|
13 |
*/
|
14 |
-
public function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
}
|
2 |
|
3 |
namespace FcfVendor\WPDesk\Plugin\Flow\Initialization;
|
4 |
|
5 |
+
use FcfVendor\WPDesk\PluginBuilder\Plugin\SlimPlugin;
|
6 |
/**
|
7 |
* Interface for initialization strategy for plugin. How to initialize it?
|
8 |
*/
|
9 |
interface InitializationStrategy
|
10 |
{
|
11 |
/**
|
12 |
+
* Run tasks that prepares plugin to work. Have to run before plugin loaded.
|
13 |
+
*
|
14 |
+
* @param \WPDesk_Plugin_Info $plugin_info
|
15 |
+
*
|
16 |
+
* @return SlimPlugin
|
17 |
*/
|
18 |
+
public function run_before_init(\FcfVendor\WPDesk_Plugin_Info $plugin_info);
|
19 |
+
/**
|
20 |
+
* Run task that integrates plugin with other dependencies. Can be run in plugins_loaded.
|
21 |
+
*
|
22 |
+
* @param \WPDesk_Plugin_Info $plugin_info
|
23 |
+
*
|
24 |
+
* @return SlimPlugin
|
25 |
+
*/
|
26 |
+
public function run_init(\FcfVendor\WPDesk_Plugin_Info $plugin_info);
|
27 |
}
|
vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/{PluginDisablerByFile.php → PluginDisablerByFileTrait.php}
RENAMED
@@ -5,7 +5,7 @@ namespace FcfVendor\WPDesk\Plugin\Flow\Initialization;
|
|
5 |
/**
|
6 |
* Can disable shared plugin before it's loaded using plugin filename
|
7 |
*/
|
8 |
-
class
|
9 |
{
|
10 |
/** @var string */
|
11 |
private $plugin_file;
|
5 |
/**
|
6 |
* Can disable shared plugin before it's loaded using plugin filename
|
7 |
*/
|
8 |
+
class PluginDisablerByFileTrait
|
9 |
{
|
10 |
/** @var string */
|
11 |
private $plugin_file;
|
vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/Simple/SimpleFactory.php
CHANGED
@@ -30,6 +30,6 @@ class SimpleFactory implements \FcfVendor\WPDesk\Plugin\Flow\Initialization\Init
|
|
30 |
if ($this->free) {
|
31 |
return new \FcfVendor\WPDesk\Plugin\Flow\Initialization\Simple\SimpleFreeStrategy($info);
|
32 |
}
|
33 |
-
return new \FcfVendor\WPDesk\Plugin\Flow\Initialization\Simple\
|
34 |
}
|
35 |
}
|
30 |
if ($this->free) {
|
31 |
return new \FcfVendor\WPDesk\Plugin\Flow\Initialization\Simple\SimpleFreeStrategy($info);
|
32 |
}
|
33 |
+
return new \FcfVendor\WPDesk\Plugin\Flow\Initialization\Simple\SimplePaidStrategy($info);
|
34 |
}
|
35 |
}
|
vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/Simple/SimpleFreeStrategy.php
CHANGED
@@ -2,36 +2,55 @@
|
|
2 |
|
3 |
namespace FcfVendor\WPDesk\Plugin\Flow\Initialization\Simple;
|
4 |
|
|
|
|
|
5 |
use FcfVendor\WPDesk\Plugin\Flow\Initialization\InitializationStrategy;
|
6 |
-
use FcfVendor\WPDesk\PluginBuilder\
|
7 |
-
use FcfVendor\WPDesk\PluginBuilder\Builder\InfoBuilder;
|
8 |
-
use FcfVendor\WPDesk\PluginBuilder\Plugin\AbstractPlugin;
|
9 |
/**
|
10 |
* Initialize free plugin
|
11 |
* - just build it already
|
12 |
*/
|
13 |
class SimpleFreeStrategy implements \FcfVendor\WPDesk\Plugin\Flow\Initialization\InitializationStrategy
|
14 |
{
|
15 |
-
use
|
16 |
-
use
|
|
|
17 |
/** @var \WPDesk_Plugin_Info */
|
18 |
-
|
|
|
|
|
19 |
public function __construct(\FcfVendor\WPDesk_Plugin_Info $plugin_info)
|
20 |
{
|
21 |
$this->plugin_info = $plugin_info;
|
22 |
}
|
23 |
/**
|
24 |
-
*
|
25 |
*
|
26 |
-
* @
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
*/
|
28 |
-
public function
|
29 |
{
|
|
|
|
|
|
|
30 |
$this->prepare_helper_action();
|
31 |
$this->prepare_tracker_action();
|
32 |
-
$
|
33 |
-
$
|
34 |
-
$
|
35 |
-
return $build_director->get_plugin();
|
36 |
}
|
37 |
}
|
2 |
|
3 |
namespace FcfVendor\WPDesk\Plugin\Flow\Initialization\Simple;
|
4 |
|
5 |
+
use FcfVendor\WPDesk\Plugin\Flow\Initialization\ActivationTrait;
|
6 |
+
use FcfVendor\WPDesk\Plugin\Flow\Initialization\BuilderTrait;
|
7 |
use FcfVendor\WPDesk\Plugin\Flow\Initialization\InitializationStrategy;
|
8 |
+
use FcfVendor\WPDesk\PluginBuilder\Plugin\SlimPlugin;
|
|
|
|
|
9 |
/**
|
10 |
* Initialize free plugin
|
11 |
* - just build it already
|
12 |
*/
|
13 |
class SimpleFreeStrategy implements \FcfVendor\WPDesk\Plugin\Flow\Initialization\InitializationStrategy
|
14 |
{
|
15 |
+
use HelperInstanceAsFilterTrait;
|
16 |
+
use TrackerInstanceAsFilterTrait;
|
17 |
+
use BuilderTrait;
|
18 |
/** @var \WPDesk_Plugin_Info */
|
19 |
+
private $plugin_info;
|
20 |
+
/** @var SlimPlugin */
|
21 |
+
private $plugin;
|
22 |
public function __construct(\FcfVendor\WPDesk_Plugin_Info $plugin_info)
|
23 |
{
|
24 |
$this->plugin_info = $plugin_info;
|
25 |
}
|
26 |
/**
|
27 |
+
* Run tasks that prepares plugin to work. Have to run before plugin loaded.
|
28 |
*
|
29 |
+
* @param \WPDesk_Plugin_Info $plugin_info
|
30 |
+
*
|
31 |
+
* @return SlimPlugin
|
32 |
+
*/
|
33 |
+
public function run_before_init(\FcfVendor\WPDesk_Plugin_Info $plugin_info)
|
34 |
+
{
|
35 |
+
$this->plugin = $this->build_plugin($plugin_info);
|
36 |
+
$this->init_register_hooks($plugin_info, $this->plugin);
|
37 |
+
}
|
38 |
+
/**
|
39 |
+
* Run task that integrates plugin with other dependencies. Can be run in plugins_loaded.
|
40 |
+
*
|
41 |
+
* @param \WPDesk_Plugin_Info $plugin_info
|
42 |
+
*
|
43 |
+
* @return SlimPlugin
|
44 |
*/
|
45 |
+
public function run_init(\FcfVendor\WPDesk_Plugin_Info $plugin_info)
|
46 |
{
|
47 |
+
if (!$this->plugin) {
|
48 |
+
$this->plugin = $this->build_plugin($plugin_info);
|
49 |
+
}
|
50 |
$this->prepare_helper_action();
|
51 |
$this->prepare_tracker_action();
|
52 |
+
$this->store_plugin($this->plugin);
|
53 |
+
$this->init_plugin($this->plugin);
|
54 |
+
return $this->plugin;
|
|
|
55 |
}
|
56 |
}
|
vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/Simple/{SimpleStrategy.php → SimplePaidStrategy.php}
RENAMED
@@ -5,42 +5,65 @@ namespace FcfVendor\WPDesk\Plugin\Flow\Initialization\Simple;
|
|
5 |
use FcfVendor\WPDesk\Helper\HelperRemover;
|
6 |
use FcfVendor\WPDesk\Helper\PrefixedHelperAsLibrary;
|
7 |
use FcfVendor\WPDesk\License\PluginRegistrator;
|
8 |
-
use FcfVendor\WPDesk\Plugin\Flow\Initialization\
|
|
|
|
|
9 |
use FcfVendor\WPDesk\Plugin\Flow\Initialization\InitializationStrategy;
|
10 |
-
use FcfVendor\WPDesk\PluginBuilder\
|
11 |
-
use FcfVendor\WPDesk\PluginBuilder\
|
12 |
-
use FcfVendor\WPDesk\PluginBuilder\Plugin\AbstractPlugin;
|
13 |
/**
|
14 |
* Initialize standard paid plugin
|
15 |
* - register to helper
|
16 |
* - initialize helper
|
17 |
* - build with info about plugin active flag
|
18 |
*/
|
19 |
-
class
|
20 |
{
|
21 |
-
use
|
22 |
-
use
|
|
|
23 |
/** @var \WPDesk_Plugin_Info */
|
24 |
-
|
|
|
|
|
25 |
public function __construct(\FcfVendor\WPDesk_Plugin_Info $plugin_info)
|
26 |
{
|
27 |
$this->plugin_info = $plugin_info;
|
28 |
}
|
29 |
/**
|
30 |
-
*
|
31 |
*
|
32 |
-
* @
|
|
|
|
|
33 |
*/
|
34 |
-
public function
|
35 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
$this->prepare_tracker_action();
|
37 |
$registrator = $this->register_plugin();
|
38 |
$this->init_helper();
|
39 |
$is_plugin_subscription_active = $registrator instanceof \FcfVendor\WPDesk\License\PluginRegistrator && $registrator->is_active();
|
40 |
-
$
|
41 |
-
|
42 |
-
|
43 |
-
|
|
|
|
|
44 |
}
|
45 |
/**
|
46 |
* Register plugin for subscriptions and updates
|
@@ -105,6 +128,6 @@ class SimpleStrategy implements \FcfVendor\WPDesk\Plugin\Flow\Initialization\Ini
|
|
105 |
*/
|
106 |
private function try_suppress_original_helper_load()
|
107 |
{
|
108 |
-
(new \FcfVendor\WPDesk\Plugin\Flow\Initialization\
|
109 |
}
|
110 |
}
|
5 |
use FcfVendor\WPDesk\Helper\HelperRemover;
|
6 |
use FcfVendor\WPDesk\Helper\PrefixedHelperAsLibrary;
|
7 |
use FcfVendor\WPDesk\License\PluginRegistrator;
|
8 |
+
use FcfVendor\WPDesk\Plugin\Flow\Initialization\ActivationTrait;
|
9 |
+
use FcfVendor\WPDesk\Plugin\Flow\Initialization\BuilderTrait;
|
10 |
+
use FcfVendor\WPDesk\Plugin\Flow\Initialization\PluginDisablerByFileTrait;
|
11 |
use FcfVendor\WPDesk\Plugin\Flow\Initialization\InitializationStrategy;
|
12 |
+
use FcfVendor\WPDesk\PluginBuilder\Plugin\ActivationAware;
|
13 |
+
use FcfVendor\WPDesk\PluginBuilder\Plugin\SlimPlugin;
|
|
|
14 |
/**
|
15 |
* Initialize standard paid plugin
|
16 |
* - register to helper
|
17 |
* - initialize helper
|
18 |
* - build with info about plugin active flag
|
19 |
*/
|
20 |
+
class SimplePaidStrategy implements \FcfVendor\WPDesk\Plugin\Flow\Initialization\InitializationStrategy
|
21 |
{
|
22 |
+
use HelperInstanceAsFilterTrait;
|
23 |
+
use TrackerInstanceAsFilterTrait;
|
24 |
+
use BuilderTrait;
|
25 |
/** @var \WPDesk_Plugin_Info */
|
26 |
+
private $plugin_info;
|
27 |
+
/** @var SlimPlugin */
|
28 |
+
private $plugin;
|
29 |
public function __construct(\FcfVendor\WPDesk_Plugin_Info $plugin_info)
|
30 |
{
|
31 |
$this->plugin_info = $plugin_info;
|
32 |
}
|
33 |
/**
|
34 |
+
* Run tasks that prepares plugin to work. Have to run before plugin loaded.
|
35 |
*
|
36 |
+
* @param \WPDesk_Plugin_Info $plugin_info
|
37 |
+
*
|
38 |
+
* @return SlimPlugin
|
39 |
*/
|
40 |
+
public function run_before_init(\FcfVendor\WPDesk_Plugin_Info $plugin_info)
|
41 |
{
|
42 |
+
$this->plugin = $this->build_plugin($plugin_info);
|
43 |
+
$this->init_register_hooks($plugin_info, $this->plugin);
|
44 |
+
}
|
45 |
+
/**
|
46 |
+
* Run task that integrates plugin with other dependencies. Can be run in plugins_loaded.
|
47 |
+
*
|
48 |
+
* @param \WPDesk_Plugin_Info $plugin_info
|
49 |
+
*
|
50 |
+
* @return SlimPlugin
|
51 |
+
*/
|
52 |
+
public function run_init(\FcfVendor\WPDesk_Plugin_Info $plugin_info)
|
53 |
+
{
|
54 |
+
if (!$this->plugin) {
|
55 |
+
$this->plugin = $this->build_plugin($plugin_info);
|
56 |
+
}
|
57 |
$this->prepare_tracker_action();
|
58 |
$registrator = $this->register_plugin();
|
59 |
$this->init_helper();
|
60 |
$is_plugin_subscription_active = $registrator instanceof \FcfVendor\WPDesk\License\PluginRegistrator && $registrator->is_active();
|
61 |
+
if ($this->plugin instanceof \FcfVendor\WPDesk\PluginBuilder\Plugin\ActivationAware && $is_plugin_subscription_active) {
|
62 |
+
$this->plugin->set_active();
|
63 |
+
}
|
64 |
+
$this->store_plugin($this->plugin);
|
65 |
+
$this->init_plugin($this->plugin);
|
66 |
+
return $this->plugin;
|
67 |
}
|
68 |
/**
|
69 |
* Register plugin for subscriptions and updates
|
128 |
*/
|
129 |
private function try_suppress_original_helper_load()
|
130 |
{
|
131 |
+
(new \FcfVendor\WPDesk\Plugin\Flow\Initialization\PluginDisablerByFileTrait('wpdesk-helper/wpdesk-helper.php'))->disable();
|
132 |
}
|
133 |
}
|
vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/{TrackerInstanceAsFilter.php → TrackerInstanceAsFilterTrait.php}
RENAMED
@@ -7,7 +7,7 @@ namespace FcfVendor\WPDesk\Plugin\Flow\Initialization\Simple;
|
|
7 |
*
|
8 |
* @package WPDesk\Plugin\Flow\Initialization\Simple\
|
9 |
*/
|
10 |
-
trait
|
11 |
{
|
12 |
/** @var \WPDesk_Tracker_Interface */
|
13 |
private static $tracker_instance;
|
7 |
*
|
8 |
* @package WPDesk\Plugin\Flow\Initialization\Simple\
|
9 |
*/
|
10 |
+
trait TrackerInstanceAsFilterTrait
|
11 |
{
|
12 |
/** @var \WPDesk_Tracker_Interface */
|
13 |
private static $tracker_instance;
|
vendor_prefixed/wpdesk/wp-plugin-flow/src/PluginBootstrap.php
CHANGED
@@ -40,15 +40,15 @@ final class PluginBootstrap
|
|
40 |
/**
|
41 |
* WPDesk_Plugin_Bootstrap constructor.
|
42 |
*
|
43 |
-
* @param string
|
44 |
-
* @param string
|
45 |
-
* @param string
|
46 |
-
* @param string
|
47 |
-
* @param string
|
48 |
-
* @param string
|
49 |
-
* @param string
|
50 |
-
* @param array
|
51 |
-
* @param string
|
52 |
* @param InitializationFactory $build_factory
|
53 |
*/
|
54 |
public function __construct($plugin_version, $plugin_release_timestamp, $plugin_name, $plugin_class_name, $plugin_text_domain, $plugin_dir, $plugin_file, array $requirements, $product_id, \FcfVendor\WPDesk\Plugin\Flow\Initialization\InitializationFactory $build_factory)
|
@@ -69,42 +69,50 @@ final class PluginBootstrap
|
|
69 |
*/
|
70 |
public function run()
|
71 |
{
|
72 |
-
$this->
|
73 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
}
|
75 |
/**
|
76 |
-
*
|
|
|
|
|
77 |
*/
|
78 |
-
private function
|
79 |
{
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
}
|
91 |
}
|
92 |
/**
|
93 |
-
*
|
94 |
*/
|
95 |
-
|
96 |
{
|
97 |
-
$
|
98 |
-
if (
|
99 |
-
$
|
100 |
-
return;
|
101 |
-
}
|
102 |
-
$plugin_info = $this->get_plugin_info();
|
103 |
-
if (\apply_filters('wpdesk_can_initialize_plugin', \true, $plugin_info)) {
|
104 |
-
$strategy = $this->initialization_factory->create_initialization_strategy($plugin_info);
|
105 |
-
$plugin = $strategy->run();
|
106 |
-
\do_action('wpdesk_plugin_initialized', $plugin, $plugin_info);
|
107 |
}
|
|
|
108 |
}
|
109 |
/**
|
110 |
* Factory method creates requirement checker to run the checks
|
@@ -115,7 +123,7 @@ final class PluginBootstrap
|
|
115 |
{
|
116 |
/** @var \WPDesk_Requirement_Checker_Factory $requirements_checker_factory */
|
117 |
$requirements_checker_factory = new \FcfVendor\WPDesk_Basic_Requirement_Checker_Factory();
|
118 |
-
return $requirements_checker_factory->create_from_requirement_array(__FILE__, $this->plugin_name, $this->requirements);
|
119 |
}
|
120 |
/**
|
121 |
* Factory method creates \WPDesk_Plugin_Info to bootstrap info about plugin in one place
|
40 |
/**
|
41 |
* WPDesk_Plugin_Bootstrap constructor.
|
42 |
*
|
43 |
+
* @param string $plugin_version
|
44 |
+
* @param string $plugin_release_timestamp
|
45 |
+
* @param string $plugin_name
|
46 |
+
* @param string $plugin_class_name
|
47 |
+
* @param string $plugin_text_domain
|
48 |
+
* @param string $plugin_dir
|
49 |
+
* @param string $plugin_file
|
50 |
+
* @param array $requirements
|
51 |
+
* @param string $product_id
|
52 |
* @param InitializationFactory $build_factory
|
53 |
*/
|
54 |
public function __construct($plugin_version, $plugin_release_timestamp, $plugin_name, $plugin_class_name, $plugin_text_domain, $plugin_dir, $plugin_file, array $requirements, $product_id, \FcfVendor\WPDesk\Plugin\Flow\Initialization\InitializationFactory $build_factory)
|
69 |
*/
|
70 |
public function run()
|
71 |
{
|
72 |
+
$plugin_info = $this->get_plugin_info();
|
73 |
+
$this->init_translations($plugin_info);
|
74 |
+
$strategy = $this->initialization_factory->create_initialization_strategy($plugin_info);
|
75 |
+
$requirements_checker = $this->create_requirements_checker();
|
76 |
+
if ($requirements_checker->are_requirements_met()) {
|
77 |
+
$strategy->run_before_init($plugin_info);
|
78 |
+
}
|
79 |
+
$this->add_activation_hook_for_save_activation_date();
|
80 |
+
\add_action('plugins_loaded', static function () use($strategy, $requirements_checker, $plugin_info) {
|
81 |
+
if ($requirements_checker->are_requirements_met()) {
|
82 |
+
$strategy->run_init($plugin_info);
|
83 |
+
} else {
|
84 |
+
$requirements_checker->render_notices();
|
85 |
+
}
|
86 |
+
}, self::PRIORITY_BEFORE_SHARED_CLASS_LOADER);
|
87 |
}
|
88 |
/**
|
89 |
+
* Initialize activated_plugin action.
|
90 |
+
* Action stores plugin activation date.
|
91 |
+
* Example option name: plugin_activation_flexible-shipping/flexible-shipping.php
|
92 |
*/
|
93 |
+
private function add_activation_hook_for_save_activation_date()
|
94 |
{
|
95 |
+
\add_action('activated_plugin', static function ($plugin_file, $network_wide = \false) {
|
96 |
+
if (!$network_wide) {
|
97 |
+
$option_name = 'plugin_activation_' . $plugin_file;
|
98 |
+
$activation_date = \get_option($option_name, '');
|
99 |
+
if ('' === $activation_date) {
|
100 |
+
$activation_date = \current_time('mysql');
|
101 |
+
\update_option($option_name, $activation_date);
|
102 |
+
}
|
103 |
+
}
|
104 |
+
});
|
|
|
105 |
}
|
106 |
/**
|
107 |
+
* Adds text domain used in a library
|
108 |
*/
|
109 |
+
private function init_translations(\FcfVendor\WPDesk_Plugin_Info $plugin_info)
|
110 |
{
|
111 |
+
$lang_dir = 'lang';
|
112 |
+
if (\method_exists($plugin_info, 'get_language_dir')) {
|
113 |
+
$lang_dir = $plugin_info->get_language_dir();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
}
|
115 |
+
\load_plugin_textdomain($plugin_info->get_text_domain(), \false, \basename($plugin_info->get_plugin_dir()) . "/{$lang_dir}/");
|
116 |
}
|
117 |
/**
|
118 |
* Factory method creates requirement checker to run the checks
|
123 |
{
|
124 |
/** @var \WPDesk_Requirement_Checker_Factory $requirements_checker_factory */
|
125 |
$requirements_checker_factory = new \FcfVendor\WPDesk_Basic_Requirement_Checker_Factory();
|
126 |
+
return $requirements_checker_factory->create_from_requirement_array(__FILE__, $this->plugin_name, $this->requirements, $this->plugin_text_domain);
|
127 |
}
|
128 |
/**
|
129 |
* Factory method creates \WPDesk_Plugin_Info to bootstrap info about plugin in one place
|
vendor_prefixed/wpdesk/wp-wpdesk-helper/composer.json
CHANGED
@@ -9,10 +9,11 @@
|
|
9 |
"require": {
|
10 |
"php": ">=5.6",
|
11 |
"wpdesk\/wp-logs": "^1.6.0",
|
12 |
-
"wpdesk\/wp-wpdesk-license": "^2.
|
13 |
"wpdesk\/wp-wpdesk-tracker": "^2.0.4",
|
14 |
"wpdesk\/wp-builder": "^1.2",
|
15 |
-
"wpdesk\/wp-notice": "^3.1.1"
|
|
|
16 |
},
|
17 |
"require-dev": {
|
18 |
"phpunit\/phpunit": "<7",
|
@@ -32,6 +33,13 @@
|
|
32 |
"tests\/"
|
33 |
]
|
34 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
"scripts": {
|
36 |
"test": "echo composer is alive",
|
37 |
"phpcs": "phpcs",
|
9 |
"require": {
|
10 |
"php": ">=5.6",
|
11 |
"wpdesk\/wp-logs": "^1.6.0",
|
12 |
+
"wpdesk\/wp-wpdesk-license": "^2.6",
|
13 |
"wpdesk\/wp-wpdesk-tracker": "^2.0.4",
|
14 |
"wpdesk\/wp-builder": "^1.2",
|
15 |
+
"wpdesk\/wp-notice": "^3.1.1",
|
16 |
+
"wpdesk\/wp-basic-requirements": "^3"
|
17 |
},
|
18 |
"require-dev": {
|
19 |
"phpunit\/phpunit": "<7",
|
33 |
"tests\/"
|
34 |
]
|
35 |
},
|
36 |
+
"extra": {
|
37 |
+
"text-domain": "wpdesk-helper-textdomain",
|
38 |
+
"translations-folder": "lang",
|
39 |
+
"po-files": {
|
40 |
+
"pl_PL": "wpdesk-helper-pl_PL.po"
|
41 |
+
}
|
42 |
+
},
|
43 |
"scripts": {
|
44 |
"test": "echo composer is alive",
|
45 |
"phpcs": "phpcs",
|
vendor_prefixed/wpdesk/wp-wpdesk-helper/lang/wpdesk-helper-pl_PL.mo
DELETED
Binary file
|
vendor_prefixed/wpdesk/wp-wpdesk-helper/lang/wpdesk-tracker-pl_PL.mo
DELETED
Binary file
|
vendor_prefixed/wpdesk/wp-wpdesk-helper/src/HelperRemoveNotice.php
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace FcfVendor\WPDesk\Helper;
|
4 |
+
|
5 |
+
use FcfVendor\WPDesk\Notice\Notice;
|
6 |
+
/**
|
7 |
+
* Know if helper is active/installed and can show notices about it
|
8 |
+
*
|
9 |
+
* @package WPDesk\Helper
|
10 |
+
*/
|
11 |
+
class HelperRemoveInfo
|
12 |
+
{
|
13 |
+
private $plugin_file = 'wpdesk-helper/wpdesk-helper.php';
|
14 |
+
/**
|
15 |
+
* Is helper active? We should disable
|
16 |
+
*
|
17 |
+
* @return bool
|
18 |
+
*/
|
19 |
+
public function is_helper_active()
|
20 |
+
{
|
21 |
+
return \FcfVendor\WPDesk_Basic_Requirement_Checker::is_wp_plugin_active($this->plugin_file);
|
22 |
+
}
|
23 |
+
/**
|
24 |
+
* Is helper installed? We should delete
|
25 |
+
*
|
26 |
+
* @return bool
|
27 |
+
*/
|
28 |
+
public function is_helper_installed()
|
29 |
+
{
|
30 |
+
return \FcfVendor\WPDesk_Basic_Requirement_Checker::is_wp_plugin_installed($this->plugin_file);
|
31 |
+
}
|
32 |
+
/**
|
33 |
+
* Show notice with disable helper info and url
|
34 |
+
*
|
35 |
+
* @return void
|
36 |
+
*/
|
37 |
+
public function show_deactivate_helper_notice()
|
38 |
+
{
|
39 |
+
$remove_url = \self_admin_url('plugins.php?action=deactivate&plugin=' . $this->plugin_file);
|
40 |
+
if (\function_exists('wp_nonce_url') && \function_exists('wp_create_nonce')) {
|
41 |
+
$remove_url = \wp_nonce_url($remove_url, 'deactivate-plugin_' . $this->plugin_file);
|
42 |
+
}
|
43 |
+
new \FcfVendor\WPDesk\Notice\Notice(\sprintf(\__('We recommend to <a href="%s">deactivate and remove</a> the "WP Desk Helper" plugin as it is no longer required by WP Desk plugins', 'wpdesk-helper-textdomain'), $remove_url));
|
44 |
+
}
|
45 |
+
/**
|
46 |
+
* Show notice with remove helper info and url
|
47 |
+
*
|
48 |
+
* @return void
|
49 |
+
*/
|
50 |
+
public function show_remove_helper_notice()
|
51 |
+
{
|
52 |
+
$remove_url = \self_admin_url('plugins.php?action=delete-selected&checked[]=' . $this->plugin_file);
|
53 |
+
if (\function_exists('wp_nonce_url') && \function_exists('wp_create_nonce')) {
|
54 |
+
$remove_url = \wp_nonce_url($remove_url, 'bulk-plugins');
|
55 |
+
}
|
56 |
+
new \FcfVendor\WPDesk\Notice\Notice(\sprintf(\__('We recommend to <a href="%s">remove</a> the "WP Desk Helper" plugin as it is no longer required by WP Desk plugins', 'wpdesk-helper-textdomain'), $remove_url));
|
57 |
+
}
|
58 |
+
}
|
vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/LogsIntegration.php
CHANGED
@@ -33,8 +33,8 @@ class LogsIntegration implements \FcfVendor\WPDesk\PluginBuilder\Plugin\Hookable
|
|
33 |
}
|
34 |
private function handle_page_settings_logs_section()
|
35 |
{
|
36 |
-
\add_settings_section('wpdesk_helper_debug', \__('Debug', 'wpdesk-helper'), null, $this->settings_page->get_page_name());
|
37 |
-
\add_settings_field(self::DEBUG_LOG_SETTING_KEY, \__('WP Desk Debug Log', 'wpdesk-helper'), function () {
|
38 |
$this->handle_render_page_settings_log_section();
|
39 |
}, $this->settings_page->get_page_name(), 'wpdesk_helper_debug');
|
40 |
}
|
@@ -57,11 +57,11 @@ class LogsIntegration implements \FcfVendor\WPDesk\PluginBuilder\Plugin\Hookable
|
|
57 |
<label for="wpdesk_helper_options[<?php
|
58 |
echo self::DEBUG_LOG_SETTING_KEY;
|
59 |
?>]"><?php
|
60 |
-
\_e('Enable', 'wpdesk-helper');
|
61 |
?></label>
|
62 |
<p class="description" id="admin-email-description">
|
63 |
<?php
|
64 |
-
echo \sprintf(\__('Writes error log to %s.', 'wpdesk-helper'), '<a target="_blank" href="' . \content_url('uploads/wpdesk-logs/wpdesk_debug.log') . '">' . \content_url('uploads/wpdesk-logs/wpdesk_debug.log') . '</a>');
|
65 |
?>
|
66 |
</p>
|
67 |
<?php
|
@@ -89,7 +89,7 @@ class LogsIntegration implements \FcfVendor\WPDesk\PluginBuilder\Plugin\Hookable
|
|
89 |
if (\apply_filters('wpdesk_helper_show_log_notices_library', \true)) {
|
90 |
new \FcfVendor\WPDesk\Notice\Notice(\sprintf(
|
91 |
// Translators: link.
|
92 |
-
\__('WP Desk Debug Log is enabled. %1$sPlease disable it after testing%2$s.', 'wpdesk-helper'),
|
93 |
'<a href="' . \admin_url('admin.php?page=wpdesk-helper-settings') . '">',
|
94 |
'</a>'
|
95 |
), \FcfVendor\WPDesk\Notice\Notice::NOTICE_TYPE_INFO);
|
33 |
}
|
34 |
private function handle_page_settings_logs_section()
|
35 |
{
|
36 |
+
\add_settings_section('wpdesk_helper_debug', \__('Debug', 'wpdesk-helper-textdomain'), null, $this->settings_page->get_page_name());
|
37 |
+
\add_settings_field(self::DEBUG_LOG_SETTING_KEY, \__('WP Desk Debug Log', 'wpdesk-helper-textdomain'), function () {
|
38 |
$this->handle_render_page_settings_log_section();
|
39 |
}, $this->settings_page->get_page_name(), 'wpdesk_helper_debug');
|
40 |
}
|
57 |
<label for="wpdesk_helper_options[<?php
|
58 |
echo self::DEBUG_LOG_SETTING_KEY;
|
59 |
?>]"><?php
|
60 |
+
\_e('Enable', 'wpdesk-helper-textdomain');
|
61 |
?></label>
|
62 |
<p class="description" id="admin-email-description">
|
63 |
<?php
|
64 |
+
echo \sprintf(\__('Writes error log to %s.', 'wpdesk-helper-textdomain'), '<a target="_blank" href="' . \content_url('uploads/wpdesk-logs/wpdesk_debug.log') . '">' . \content_url('uploads/wpdesk-logs/wpdesk_debug.log') . '</a>');
|
65 |
?>
|
66 |
</p>
|
67 |
<?php
|
89 |
if (\apply_filters('wpdesk_helper_show_log_notices_library', \true)) {
|
90 |
new \FcfVendor\WPDesk\Notice\Notice(\sprintf(
|
91 |
// Translators: link.
|
92 |
+
\__('WP Desk Debug Log is enabled. %1$sPlease disable it after testing%2$s.', 'wpdesk-helper-textdomain'),
|
93 |
'<a href="' . \admin_url('admin.php?page=wpdesk-helper-settings') . '">',
|
94 |
'</a>'
|
95 |
), \FcfVendor\WPDesk\Notice\Notice::NOTICE_TYPE_INFO);
|
vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/TrackerIntegration.php
CHANGED
@@ -48,8 +48,8 @@ class TrackerIntegration implements \FcfVendor\WPDesk\PluginBuilder\Plugin\Hooka
|
|
48 |
*/
|
49 |
private function handle_page_settings_track_section()
|
50 |
{
|
51 |
-
\add_settings_section('wpdesk_helper_tracking', \__('Plugin usage tracking', 'wpdesk-helper'), null, $this->settings_page->get_page_name());
|
52 |
-
\add_settings_field('wpdesk_tracker_agree', \__('Allow WP Desk to track plugin usage', 'wpdesk-helper'), function () {
|
53 |
$this->handle_render_page_settings_track_section();
|
54 |
}, $this->settings_page->get_page_name(), 'wpdesk_helper_tracking');
|
55 |
}
|
@@ -68,12 +68,12 @@ class TrackerIntegration implements \FcfVendor\WPDesk\PluginBuilder\Plugin\Hooka
|
|
68 |
\checked(1, $options['wpdesk_tracker_agree'], \true);
|
69 |
?>>
|
70 |
<label for="wpdesk_helper_options[wpdesk_tracker_agree]"><?php
|
71 |
-
\_e('Enable', 'wpdesk-helper');
|
72 |
?></label>
|
73 |
<p class="description" id="admin-email-description">
|
74 |
<?php
|
75 |
$terms_url = \get_locale() === 'pl_PL' ? 'https://www.wpdesk.pl/dane-uzytkowania/' : 'https://www.wpdesk.net/usage-tracking/';
|
76 |
-
\printf(\__('No sensitive data is tracked, %sread more%s.', 'wpdesk-helper'), '<a target="_blank" href="' . $terms_url . '">', '</a>');
|
77 |
?>
|
78 |
</p>
|
79 |
<?php
|
48 |
*/
|
49 |
private function handle_page_settings_track_section()
|
50 |
{
|
51 |
+
\add_settings_section('wpdesk_helper_tracking', \__('Plugin usage tracking', 'wpdesk-helper-textdomain'), null, $this->settings_page->get_page_name());
|
52 |
+
\add_settings_field('wpdesk_tracker_agree', \__('Allow WP Desk to track plugin usage', 'wpdesk-helper-textdomain'), function () {
|
53 |
$this->handle_render_page_settings_track_section();
|
54 |
}, $this->settings_page->get_page_name(), 'wpdesk_helper_tracking');
|
55 |
}
|
68 |
\checked(1, $options['wpdesk_tracker_agree'], \true);
|
69 |
?>>
|
70 |
<label for="wpdesk_helper_options[wpdesk_tracker_agree]"><?php
|
71 |
+
\_e('Enable', 'wpdesk-helper-textdomain');
|
72 |
?></label>
|
73 |
<p class="description" id="admin-email-description">
|
74 |
<?php
|
75 |
$terms_url = \get_locale() === 'pl_PL' ? 'https://www.wpdesk.pl/dane-uzytkowania/' : 'https://www.wpdesk.net/usage-tracking/';
|
76 |
+
\printf(\__('No sensitive data is tracked, %sread more%s.', 'wpdesk-helper-textdomain'), '<a target="_blank" href="' . $terms_url . '">', '</a>');
|
77 |
?>
|
78 |
</p>
|
79 |
<?php
|
vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Page/LibraryDebugPage.php
CHANGED
@@ -26,7 +26,7 @@ class LibraryDebugPage implements \FcfVendor\WPDesk\PluginBuilder\Plugin\Hookabl
|
|
26 |
if ($menu_visible) {
|
27 |
$parent_slug = 'wpdesk-helper';
|
28 |
}
|
29 |
-
\add_submenu_page($parent_slug, \__('Library report', 'wpdesk-helper'), \__('Library report', 'wpdesk-helper'), 'manage_options', 'wpdesk-helper-library-report', function () {
|
30 |
$this->handle_render_library_report_page();
|
31 |
});
|
32 |
}, self::PRIOTITY_LONG_AFTER_ALL_IS_LOADED);
|
26 |
if ($menu_visible) {
|
27 |
$parent_slug = 'wpdesk-helper';
|
28 |
}
|
29 |
+
\add_submenu_page($parent_slug, \__('Library report', 'wpdesk-helper-textdomain'), \__('Library report', 'wpdesk-helper-textdomain'), 'manage_options', 'wpdesk-helper-library-report', function () {
|
30 |
$this->handle_render_library_report_page();
|
31 |
});
|
32 |
}, self::PRIOTITY_LONG_AFTER_ALL_IS_LOADED);
|
vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Page/SettingsPage.php
CHANGED
@@ -43,7 +43,7 @@ class SettingsPage implements \FcfVendor\WPDesk\PluginBuilder\Plugin\Hookable
|
|
43 |
*/
|
44 |
private function handle_add_settings_menu()
|
45 |
{
|
46 |
-
\add_submenu_page('wpdesk-helper', \__('Settings', 'wpdesk-helper'), \__('Settings', 'wpdesk-helper'), 'manage_options', 'wpdesk-helper-settings', function () {
|
47 |
$this->handle_render_wpdesk_helper_settings();
|
48 |
});
|
49 |
}
|
@@ -55,7 +55,7 @@ class SettingsPage implements \FcfVendor\WPDesk\PluginBuilder\Plugin\Hookable
|
|
55 |
?>
|
56 |
<div class="wrap">
|
57 |
<h1><?php
|
58 |
-
\_e('WP Desk Helper Settings', 'wpdesk-helper');
|
59 |
?></h1>
|
60 |
<form method="post" action="options.php">
|
61 |
<?php
|
43 |
*/
|
44 |
private function handle_add_settings_menu()
|
45 |
{
|
46 |
+
\add_submenu_page('wpdesk-helper', \__('Settings', 'wpdesk-helper-textdomain'), \__('Settings', 'wpdesk-helper-textdomain'), 'manage_options', 'wpdesk-helper-settings', function () {
|
47 |
$this->handle_render_wpdesk_helper_settings();
|
48 |
});
|
49 |
}
|
55 |
?>
|
56 |
<div class="wrap">
|
57 |
<h1><?php
|
58 |
+
\_e('WP Desk Helper Settings', 'wpdesk-helper-textdomain');
|
59 |
?></h1>
|
60 |
<form method="post" action="options.php">
|
61 |
<?php
|
vendor_prefixed/wpdesk/wp-wpdesk-helper/src/PrefixedHelperAsLibrary.php
CHANGED
@@ -19,7 +19,7 @@ use FcfVendor\WPDesk\PluginBuilder\Plugin\Hookable;
|
|
19 |
*/
|
20 |
class PrefixedHelperAsLibrary implements \FcfVendor\WPDesk\PluginBuilder\Plugin\Hookable
|
21 |
{
|
22 |
-
const LIBRARY_TEXT_DOMAIN = 'wpdesk-helper';
|
23 |
const MAIN_WPDESK_MENU_POSITION = 99.99941337;
|
24 |
const PRIORITY_AFTER_WPDESK_MENU_REMOVAL = 15;
|
25 |
const PRIORITY_AFTER_ALL = 200;
|
@@ -47,9 +47,20 @@ class PrefixedHelperAsLibrary implements \FcfVendor\WPDesk\PluginBuilder\Plugin\
|
|
47 |
});
|
48 |
return $is_loaded;
|
49 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
private function initialize()
|
51 |
{
|
52 |
-
$this->init_translations();
|
53 |
$this->add_wpdesk_menu();
|
54 |
$subscription_integration = new \FcfVendor\WPDesk\Helper\Integration\LicenseIntegration();
|
55 |
$subscription_integration->hooks();
|
@@ -66,28 +77,7 @@ class PrefixedHelperAsLibrary implements \FcfVendor\WPDesk\PluginBuilder\Plugin\
|
|
66 |
$library_debug_info = new \FcfVendor\WPDesk\Helper\Debug\LibraryDebug();
|
67 |
(new \FcfVendor\WPDesk\Helper\Page\LibraryDebugPage($library_debug_info))->hooks();
|
68 |
self::$logger->pushProcessor(new \FcfVendor\WPDesk\Helper\Logs\LibraryInfoProcessor($library_debug_info));
|
69 |
-
|
70 |
-
/**
|
71 |
-
* Adds text domain used in a library
|
72 |
-
*/
|
73 |
-
private function init_translations()
|
74 |
-
{
|
75 |
-
if (\function_exists('determine_locale')) {
|
76 |
-
$locale = \determine_locale();
|
77 |
-
} else {
|
78 |
-
// before WP 5.0 compatibility
|
79 |
-
$locale = \get_locale();
|
80 |
-
}
|
81 |
-
$locale = \apply_filters('plugin_locale', $locale, self::LIBRARY_TEXT_DOMAIN);
|
82 |
-
$mo_file_tracker = __DIR__ . '/../lang/' . self::LIBRARY_TEXT_DOMAIN . '-' . $locale . '.mo';
|
83 |
-
if (\file_exists($mo_file_tracker)) {
|
84 |
-
\load_textdomain(self::LIBRARY_TEXT_DOMAIN, $mo_file_tracker);
|
85 |
-
}
|
86 |
-
$tracker_domain = 'wpdesk-tracker';
|
87 |
-
$mo_file_tracker = __DIR__ . '/../lang/' . $tracker_domain . '-' . $locale . '.mo';
|
88 |
-
if (\file_exists($mo_file_tracker)) {
|
89 |
-
\load_textdomain($tracker_domain, $mo_file_tracker);
|
90 |
-
}
|
91 |
}
|
92 |
/**
|
93 |
* Adds WP Desk to main menu
|
19 |
*/
|
20 |
class PrefixedHelperAsLibrary implements \FcfVendor\WPDesk\PluginBuilder\Plugin\Hookable
|
21 |
{
|
22 |
+
const LIBRARY_TEXT_DOMAIN = 'wpdesk-helper-textdomain';
|
23 |
const MAIN_WPDESK_MENU_POSITION = 99.99941337;
|
24 |
const PRIORITY_AFTER_WPDESK_MENU_REMOVAL = 15;
|
25 |
const PRIORITY_AFTER_ALL = 200;
|
47 |
});
|
48 |
return $is_loaded;
|
49 |
}
|
50 |
+
/**
|
51 |
+
* Show info about installed helper plugin
|
52 |
+
*/
|
53 |
+
private function show_notices_about_old_helper()
|
54 |
+
{
|
55 |
+
$helper_info = new \FcfVendor\WPDesk\Helper\HelperRemoveInfo();
|
56 |
+
if ($helper_info->is_helper_active()) {
|
57 |
+
$helper_info->show_deactivate_helper_notice();
|
58 |
+
} elseif ($helper_info->is_helper_installed()) {
|
59 |
+
$helper_info->show_remove_helper_notice();
|
60 |
+
}
|
61 |
+
}
|
62 |
private function initialize()
|
63 |
{
|
|
|
64 |
$this->add_wpdesk_menu();
|
65 |
$subscription_integration = new \FcfVendor\WPDesk\Helper\Integration\LicenseIntegration();
|
66 |
$subscription_integration->hooks();
|
77 |
$library_debug_info = new \FcfVendor\WPDesk\Helper\Debug\LibraryDebug();
|
78 |
(new \FcfVendor\WPDesk\Helper\Page\LibraryDebugPage($library_debug_info))->hooks();
|
79 |
self::$logger->pushProcessor(new \FcfVendor\WPDesk\Helper\Logs\LibraryInfoProcessor($library_debug_info));
|
80 |
+
$this->show_notices_about_old_helper();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
}
|
82 |
/**
|
83 |
* Adds WP Desk to main menu
|
vendor_prefixed/wpdesk/wp-wpdesk-license/composer.json
CHANGED
@@ -29,6 +29,13 @@
|
|
29 |
}
|
30 |
},
|
31 |
"autoload-dev": {},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
"scripts": {
|
33 |
"phpunit-unit": "phpunit --configuration phpunit-unit.xml --coverage-text --colors=never",
|
34 |
"phpunit-unit-fast": "phpunit --configuration phpunit-unit.xml --no-coverage",
|
29 |
}
|
30 |
},
|
31 |
"autoload-dev": {},
|
32 |
+
"extra": {
|
33 |
+
"text-domain": "wp-wpdesk-license",
|
34 |
+
"translations-folder": "lang",
|
35 |
+
"po-files": {
|
36 |
+
"pl_PL": "wp-wpdesk-license-pl_PL.po"
|
37 |
+
}
|
38 |
+
},
|
39 |
"scripts": {
|
40 |
"phpunit-unit": "phpunit --configuration phpunit-unit.xml --coverage-text --colors=never",
|
41 |
"phpunit-unit-fast": "phpunit --configuration phpunit-unit.xml --no-coverage",
|
vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php
CHANGED
@@ -23,28 +23,13 @@ if (!\class_exists('FcfVendor\\WPDesk_API_MENU')) {
|
|
23 |
public function __construct($api_manager)
|
24 |
{
|
25 |
$this->api_manager = $api_manager;
|
26 |
-
\add_action('admin_menu', [$this, 'add_menu'], 100);
|
27 |
-
// add_action( 'admin_init', array( $this, 'load_settings' ) );
|
28 |
-
}
|
29 |
-
// Add option page menu
|
30 |
-
public function add_menu()
|
31 |
-
{
|
32 |
-
/*
|
33 |
-
add_submenu_page( 'wpdesk-helper',
|
34 |
-
__( $this->api_manager->settings_menu_title, $this->api_manager->text_domain ),
|
35 |
-
__( $this->api_manager->settings_menu_title, $this->api_manager->text_domain ),
|
36 |
-
'manage_options',
|
37 |
-
$this->api_manager->activation_tab_key,
|
38 |
-
array( $this, 'config_page')
|
39 |
-
);
|
40 |
-
*/
|
41 |
}
|
42 |
// Draw option page
|
43 |
public function config_page()
|
44 |
{
|
45 |
$settings_tabs = [$this->api_manager->activation_tab_key => \__($this->api_manager->menu_tab_activation_title, $this->api_manager->text_domain), $this->api_manager->deactivation_tab_key => \__($this->api_manager->menu_tab_deactivation_title, $this->api_manager->text_domain)];
|
46 |
-
$current_tab = isset($_GET['tab']) ? $_GET['tab'] : $this->api_manager->activation_tab_key;
|
47 |
-
$tab = isset($_GET['tab']) ? $_GET['tab'] : $this->api_manager->activation_tab_key;
|
48 |
?>
|
49 |
<div class='wrap'>
|
50 |
<?php
|
23 |
public function __construct($api_manager)
|
24 |
{
|
25 |
$this->api_manager = $api_manager;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
}
|
27 |
// Draw option page
|
28 |
public function config_page()
|
29 |
{
|
30 |
$settings_tabs = [$this->api_manager->activation_tab_key => \__($this->api_manager->menu_tab_activation_title, $this->api_manager->text_domain), $this->api_manager->deactivation_tab_key => \__($this->api_manager->menu_tab_deactivation_title, $this->api_manager->text_domain)];
|
31 |
+
$current_tab = isset($_GET['tab']) ? \sanitize_key($_GET['tab']) : $this->api_manager->activation_tab_key;
|
32 |
+
$tab = isset($_GET['tab']) ? \sanitize_key($_GET['tab']) : $this->api_manager->activation_tab_key;
|
33 |
?>
|
34 |
<div class='wrap'>
|
35 |
<?php
|
vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php
CHANGED
@@ -42,7 +42,7 @@ if (!\class_exists('FcfVendor\\WPDesk_API_Manager_With_Update_Flag')) {
|
|
42 |
* http://markjaquith.wordpress.com/2011/10/06/translating-wordpress-plugins-and-themes-dont-get-clever/
|
43 |
* http://ottopress.com/2012/internationalization-youre-probably-doing-it-wrong/
|
44 |
*/
|
45 |
-
public $text_domain = 'wpdesk-
|
46 |
/**
|
47 |
* @var string
|
48 |
*/
|
@@ -191,13 +191,25 @@ if (!\class_exists('FcfVendor\\WPDesk_API_Manager_With_Update_Flag')) {
|
|
191 |
/**
|
192 |
* Check for software updates
|
193 |
*/
|
194 |
-
if ($hook_to_updates
|
195 |
if (!empty($options) && $options !== \false) {
|
196 |
$this->update_check($this->upgrade_url, $this->plugin_name, $this->product_id, $this->options[$this->api_key], $this->options[$this->activation_email], $this->renew_license_url, $this->instance_id, $this->domain, $this->software_version, $this->plugin_or_theme, $this->text_domain);
|
197 |
}
|
|
|
198 |
}
|
199 |
}
|
200 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
public function create_instance_id()
|
202 |
{
|
203 |
require_once 'class-wc-api-manager-passwords.php';
|
42 |
* http://markjaquith.wordpress.com/2011/10/06/translating-wordpress-plugins-and-themes-dont-get-clever/
|
43 |
* http://ottopress.com/2012/internationalization-youre-probably-doing-it-wrong/
|
44 |
*/
|
45 |
+
public $text_domain = 'wp-wpdesk-license';
|
46 |
/**
|
47 |
* @var string
|
48 |
*/
|
191 |
/**
|
192 |
* Check for software updates
|
193 |
*/
|
194 |
+
if ($hook_to_updates) {
|
195 |
if (!empty($options) && $options !== \false) {
|
196 |
$this->update_check($this->upgrade_url, $this->plugin_name, $this->product_id, $this->options[$this->api_key], $this->options[$this->activation_email], $this->renew_license_url, $this->instance_id, $this->domain, $this->software_version, $this->plugin_or_theme, $this->text_domain);
|
197 |
}
|
198 |
+
$this->add_not_possible_update_message();
|
199 |
}
|
200 |
}
|
201 |
}
|
202 |
+
/**
|
203 |
+
* Adds message to plugins page when plugin is not activated with info about subscription.
|
204 |
+
*/
|
205 |
+
private function add_not_possible_update_message()
|
206 |
+
{
|
207 |
+
\add_action('in_plugin_update_message-' . $this->plugin_name, function (array $plugin_data, \stdClass $response) {
|
208 |
+
if (isset($response, $response->package) && empty($response->package)) {
|
209 |
+
echo \sprintf(\__(" <a target='_blank' href='%s'>Enter a valid subscription key for automatic updates.</a>", 'wp-wpdesk-license'), \admin_url('admin.php?page=wpdesk-licenses'));
|
210 |
+
}
|
211 |
+
}, 10, 2);
|
212 |
+
}
|
213 |
public function create_instance_id()
|
214 |
{
|
215 |
require_once 'class-wc-api-manager-passwords.php';
|
vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php
CHANGED
@@ -206,23 +206,26 @@ if (!\class_exists('FcfVendor\\WPDesk_Update_API_Check')) {
|
|
206 |
}
|
207 |
return \false;
|
208 |
}
|
209 |
-
$
|
210 |
-
|
211 |
-
* For debugging errors from the API
|
212 |
-
* For errors like: unserialize(): Error at offset 0 of 170 bytes
|
213 |
-
* Comment out $response above first
|
214 |
-
*/
|
215 |
-
// $response = wp_remote_retrieve_body( $request );
|
216 |
-
// print_r($response); exit;
|
217 |
if (\is_object($response)) {
|
218 |
if (isset($response->sections)) {
|
219 |
$response->sections['description'] = \apply_filters('the_content', isset($response->sections['description_base64']) ? \base64_decode($response->sections['description_base64']) : '');
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
}
|
227 |
if (isset($response->author)) {
|
228 |
$response->author = "<a href='http://www.wpdesk.pl'>{$response->author}</a>";
|
@@ -232,6 +235,8 @@ if (!\class_exists('FcfVendor\\WPDesk_Update_API_Check')) {
|
|
232 |
} else {
|
233 |
if (\class_exists('FcfVendor\\WPDesk_Logger_Factory')) {
|
234 |
\FcfVendor\WPDesk_Logger_Factory::log_message_backtrace('Response is not an object', \FcfVendor\WPDesk_Logger::DEBUG, \debug_backtrace());
|
|
|
|
|
235 |
}
|
236 |
return \false;
|
237 |
}
|
206 |
}
|
207 |
return \false;
|
208 |
}
|
209 |
+
$raw_response = \wp_remote_retrieve_body($request);
|
210 |
+
$response = @\unserialize($raw_response);
|
|
|
|
|
|
|
|
|
|
|
|
|
211 |
if (\is_object($response)) {
|
212 |
if (isset($response->sections)) {
|
213 |
$response->sections['description'] = \apply_filters('the_content', isset($response->sections['description_base64']) ? \base64_decode($response->sections['description_base64']) : '');
|
214 |
+
if (isset($response->sections['installation'])) {
|
215 |
+
$response->sections['installation'] = \apply_filters('the_content', $response->sections['installation']);
|
216 |
+
}
|
217 |
+
if (isset($response->sections['faq'])) {
|
218 |
+
$response->sections['faq'] = \apply_filters('the_content', $response->sections['faq']);
|
219 |
+
}
|
220 |
+
if (isset($response->sections['screenshots'])) {
|
221 |
+
$response->sections['screenshots'] = \apply_filters('the_content', $response->sections['screenshots']);
|
222 |
+
}
|
223 |
+
if (isset($response->sections['changelog'])) {
|
224 |
+
$response->sections['changelog'] = \apply_filters('the_content', $response->sections['changelog']);
|
225 |
+
}
|
226 |
+
if (isset($response->sections['other_notes'])) {
|
227 |
+
$response->sections['other_notes'] = \apply_filters('the_content', $response->sections['other_notes']);
|
228 |
+
}
|
229 |
}
|
230 |
if (isset($response->author)) {
|
231 |
$response->author = "<a href='http://www.wpdesk.pl'>{$response->author}</a>";
|
235 |
} else {
|
236 |
if (\class_exists('FcfVendor\\WPDesk_Logger_Factory')) {
|
237 |
\FcfVendor\WPDesk_Logger_Factory::log_message_backtrace('Response is not an object', \FcfVendor\WPDesk_Logger::DEBUG, \debug_backtrace());
|
238 |
+
} else {
|
239 |
+
\error_log("Unserialize error. Please send this report to support@wpdesk.net. Request: {$request}. Raw Response: {$raw_response}");
|
240 |
}
|
241 |
return \false;
|
242 |
}
|
vendor_prefixed/wpdesk/wp-wpdesk-license/src/InstalledPlugins.php
CHANGED
@@ -45,8 +45,9 @@ class InstalledPlugins
|
|
45 |
if (isset($wpdesk_helper_plugin['title'])) {
|
46 |
$menu_title = $wpdesk_helper_plugin['title'];
|
47 |
}
|
|
|
48 |
$plugins[$key] = $wpdesk_helper_plugin;
|
49 |
-
$plugins[$key][self::KEY_API_MANAGER] = new \FcfVendor\WPDesk_API_Manager_With_Update_Flag($upgrade_url =
|
50 |
$plugins[$key][self::KEY_ACTIVATION_STATUS] = \get_option($plugins[$key][self::KEY_API_MANAGER]->activated_key, 'Deactivated');
|
51 |
}
|
52 |
return $plugins;
|
45 |
if (isset($wpdesk_helper_plugin['title'])) {
|
46 |
$menu_title = $wpdesk_helper_plugin['title'];
|
47 |
}
|
48 |
+
$addressRepository = new \FcfVendor\WPDesk\License\ServerAddressRepository($wpdesk_helper_plugin['product_id']);
|
49 |
$plugins[$key] = $wpdesk_helper_plugin;
|
50 |
+
$plugins[$key][self::KEY_API_MANAGER] = new \FcfVendor\WPDesk_API_Manager_With_Update_Flag($upgrade_url = $addressRepository->get_default_update_url(), $version = $wpdesk_helper_plugin['version'], $name = $wpdesk_helper_plugin['plugin'], $product_id = $wpdesk_helper_plugin['product_id'], $menu_title, $title = $menu_title, $plugin_file = \basename($wpdesk_helper_plugin['plugin']), $plugin_dir = \dirname($wpdesk_helper_plugin['plugin']), $config_uri, $hook_to_updates);
|
51 |
$plugins[$key][self::KEY_ACTIVATION_STATUS] = \get_option($plugins[$key][self::KEY_API_MANAGER]->activated_key, 'Deactivated');
|
52 |
}
|
53 |
return $plugins;
|
vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/LicenseActivation.php
CHANGED
@@ -3,6 +3,7 @@
|
|
3 |
namespace FcfVendor\WPDesk\License\Page\License\Action;
|
4 |
|
5 |
use FcfVendor\WPDesk\License\Page\Action;
|
|
|
6 |
use FcfVendor\WPDesk_API_Manager_With_Update_Flag;
|
7 |
/**
|
8 |
* Can activate plugin license.
|
@@ -11,12 +12,6 @@ use FcfVendor\WPDesk_API_Manager_With_Update_Flag;
|
|
11 |
*/
|
12 |
class LicenseActivation implements \FcfVendor\WPDesk\License\Page\Action
|
13 |
{
|
14 |
-
/**
|
15 |
-
* Upgrade URLs.
|
16 |
-
*
|
17 |
-
* @var array
|
18 |
-
*/
|
19 |
-
private $upgrade_urls = ['pl' => 'https://www.wpdesk.pl', 'net' => 'https://www.wpdesk.net', 'fs' => 'https://flexibleshipping.com'];
|
20 |
/**
|
21 |
* Plugin data.
|
22 |
*
|
@@ -30,10 +25,11 @@ class LicenseActivation implements \FcfVendor\WPDesk\License\Page\Action
|
|
30 |
*/
|
31 |
public function execute(array $plugin)
|
32 |
{
|
33 |
-
$activation_email = \trim($_POST['activation_email']);
|
34 |
-
$api_key = \trim($_POST['api_key']);
|
|
|
35 |
$this->plugin_data = $plugin;
|
36 |
-
$this->activate_license($activation_email, $api_key);
|
37 |
}
|
38 |
/**
|
39 |
* Get api manager from plugin data.
|
@@ -92,8 +88,8 @@ class LicenseActivation implements \FcfVendor\WPDesk\License\Page\Action
|
|
92 |
* Activate and save data.
|
93 |
*
|
94 |
* @param WPDesk_API_Manager_With_Update_Flag $plugin_api_manager Api manager.
|
95 |
-
* @param string
|
96 |
-
* @param string
|
97 |
*/
|
98 |
private function activate_and_save_data($plugin_api_manager, $activation_email, $api_key)
|
99 |
{
|
@@ -133,7 +129,7 @@ class LicenseActivation implements \FcfVendor\WPDesk\License\Page\Action
|
|
133 |
*/
|
134 |
private function show_unknown_error()
|
135 |
{
|
136 |
-
\add_settings_error('api_key_check_text', 'api_key_check_error', \__('Connection failed to the Subscription Key API server. Try again later.', 'wpdesk-
|
137 |
}
|
138 |
/**
|
139 |
* Show activation message.
|
@@ -142,20 +138,21 @@ class LicenseActivation implements \FcfVendor\WPDesk\License\Page\Action
|
|
142 |
*/
|
143 |
private function show_activation_message(array $activate_results)
|
144 |
{
|
145 |
-
\add_settings_error('activate_text', 'activate_msg', \__('Plugin activated. ', 'wpdesk-
|
146 |
}
|
147 |
/**
|
148 |
* Activate license.
|
149 |
*
|
150 |
* @param string $activation_email Activation email.
|
151 |
-
* @param string $api_key
|
|
|
152 |
*/
|
153 |
-
public function activate_license($activation_email, $api_key)
|
154 |
{
|
155 |
$plugin_api_manager = $this->get_api_manager_from_plugin_data();
|
156 |
$activation_args = ['email' => $activation_email, 'licence_key' => $api_key];
|
157 |
$activate_results = ['activated' => \false];
|
158 |
-
foreach ($
|
159 |
$plugin_api_manager->upgrade_url = $upgrade_url;
|
160 |
$activate_raw_response = $plugin_api_manager->key()->activate($activation_args);
|
161 |
$activate_results = \json_decode($activate_raw_response, \true);
|
3 |
namespace FcfVendor\WPDesk\License\Page\License\Action;
|
4 |
|
5 |
use FcfVendor\WPDesk\License\Page\Action;
|
6 |
+
use FcfVendor\WPDesk\License\ServerAddressRepository;
|
7 |
use FcfVendor\WPDesk_API_Manager_With_Update_Flag;
|
8 |
/**
|
9 |
* Can activate plugin license.
|
12 |
*/
|
13 |
class LicenseActivation implements \FcfVendor\WPDesk\License\Page\Action
|
14 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
/**
|
16 |
* Plugin data.
|
17 |
*
|
25 |
*/
|
26 |
public function execute(array $plugin)
|
27 |
{
|
28 |
+
$activation_email = \sanitize_email(\trim($_POST['activation_email']));
|
29 |
+
$api_key = \sanitize_text_field(\trim($_POST['api_key']));
|
30 |
+
$product_id = $plugin['product_id'];
|
31 |
$this->plugin_data = $plugin;
|
32 |
+
$this->activate_license($activation_email, $api_key, new \FcfVendor\WPDesk\License\ServerAddressRepository($product_id));
|
33 |
}
|
34 |
/**
|
35 |
* Get api manager from plugin data.
|
88 |
* Activate and save data.
|
89 |
*
|
90 |
* @param WPDesk_API_Manager_With_Update_Flag $plugin_api_manager Api manager.
|
91 |
+
* @param string $activation_email Activation email.
|
92 |
+
* @param string $api_key Api key.
|
93 |
*/
|
94 |
private function activate_and_save_data($plugin_api_manager, $activation_email, $api_key)
|
95 |
{
|
129 |
*/
|
130 |
private function show_unknown_error()
|
131 |
{
|
132 |
+
\add_settings_error('api_key_check_text', 'api_key_check_error', \__('Connection failed to the Subscription Key API server. Try again later.', 'wp-wpdesk-license'), 'error');
|
133 |
}
|
134 |
/**
|
135 |
* Show activation message.
|
138 |
*/
|
139 |
private function show_activation_message(array $activate_results)
|
140 |
{
|
141 |
+
\add_settings_error('activate_text', 'activate_msg', \__('Plugin activated. ', 'wp-wpdesk-license') . "{$activate_results['message']}.", 'updated');
|
142 |
}
|
143 |
/**
|
144 |
* Activate license.
|
145 |
*
|
146 |
* @param string $activation_email Activation email.
|
147 |
+
* @param string $api_key Api key.
|
148 |
+
* @param ServerAddressRepository $address_repository Repository of server addresses to check for activation
|
149 |
*/
|
150 |
+
public function activate_license($activation_email, $api_key, \FcfVendor\WPDesk\License\ServerAddressRepository $address_repository)
|
151 |
{
|
152 |
$plugin_api_manager = $this->get_api_manager_from_plugin_data();
|
153 |
$activation_args = ['email' => $activation_email, 'licence_key' => $api_key];
|
154 |
$activate_results = ['activated' => \false];
|
155 |
+
foreach ($address_repository->get_server_urls() as $upgrade_url) {
|
156 |
$plugin_api_manager->upgrade_url = $upgrade_url;
|
157 |
$activate_raw_response = $plugin_api_manager->key()->activate($activation_args);
|
158 |
$activate_results = \json_decode($activate_raw_response, \true);
|
vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/LicenseDeactivation.php
CHANGED
@@ -28,7 +28,7 @@ class LicenseDeactivation implements \FcfVendor\WPDesk\License\Page\Action
|
|
28 |
\update_option($plugin['api_manager']->data_key, $merge_options);
|
29 |
\update_option($plugin['api_manager']->activated_key, 'Deactivated');
|
30 |
\delete_option($plugin['api_manager']->upgrade_url_key);
|
31 |
-
\add_settings_error('wc_am_deactivate_text', 'deactivate_msg', \__('Plugin subscription deactivated. ', 'wpdesk-
|
32 |
$deactivated = \true;
|
33 |
$plugin_wpdesk_name = $plugin['plugin'];
|
34 |
$plugin_product_id = $plugin['product_id'];
|
28 |
\update_option($plugin['api_manager']->data_key, $merge_options);
|
29 |
\update_option($plugin['api_manager']->activated_key, 'Deactivated');
|
30 |
\delete_option($plugin['api_manager']->upgrade_url_key);
|
31 |
+
\add_settings_error('wc_am_deactivate_text', 'deactivate_msg', \__('Plugin subscription deactivated. ', 'wp-wpdesk-license') . "{$activate_results['activations_remaining']}.", 'updated');
|
32 |
$deactivated = \true;
|
33 |
$plugin_wpdesk_name = $plugin['plugin'];
|
34 |
$plugin_product_id = $plugin['product_id'];
|
vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/views/class-wpdesk-helper-list-table.php
CHANGED
@@ -24,7 +24,7 @@ class WPDesk_Helper_List_Table extends \WP_List_Table
|
|
24 |
}
|
25 |
public function no_items()
|
26 |
{
|
27 |
-
echo \wpautop(\__('No WP Desk plugins found.', 'wpdesk-
|
28 |
}
|
29 |
public function column_default($item, $column_name)
|
30 |
{
|
@@ -36,7 +36,7 @@ class WPDesk_Helper_List_Table extends \WP_List_Table
|
|
36 |
}
|
37 |
public function get_columns()
|
38 |
{
|
39 |
-
$columns = ['product_name' => \__('Plugin', 'wpdesk-
|
40 |
return $columns;
|
41 |
}
|
42 |
public function column_plugin_data($item)
|
@@ -53,9 +53,9 @@ class WPDesk_Helper_List_Table extends \WP_List_Table
|
|
53 |
}
|
54 |
public function column_product_status($item)
|
55 |
{
|
56 |
-
$status = \__('Deactivated', 'wpdesk-
|
57 |
if ($item['activation_status'] == 'Activated') {
|
58 |
-
$status = \__('Activated', 'wpdesk-
|
59 |
}
|
60 |
return $status;
|
61 |
}
|
24 |
}
|
25 |
public function no_items()
|
26 |
{
|
27 |
+
echo \wpautop(\__('No WP Desk plugins found.', 'wp-wpdesk-license'));
|
28 |
}
|
29 |
public function column_default($item, $column_name)
|
30 |
{
|
36 |
}
|
37 |
public function get_columns()
|
38 |
{
|
39 |
+
$columns = ['product_name' => \__('Plugin', 'wp-wpdesk-license'), 'product_status' => \__('Subscription Status', 'wp-wpdesk-license'), 'product_license' => \__('Subscription Data', 'wp-wpdesk-license')];
|
40 |
return $columns;
|
41 |
}
|
42 |
public function column_plugin_data($item)
|
53 |
}
|
54 |
public function column_product_status($item)
|
55 |
{
|
56 |
+
$status = \__('Deactivated', 'wp-wpdesk-license');
|
57 |
if ($item['activation_status'] == 'Activated') {
|
58 |
+
$status = \__('Activated', 'wp-wpdesk-license');
|
59 |
}
|
60 |
return $status;
|
61 |
}
|
vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/views/license-actions.php
CHANGED
@@ -11,9 +11,9 @@ if (!\defined('ABSPATH')) {
|
|
11 |
<table class="wpdesk_helper_key_table">
|
12 |
<tr>
|
13 |
<td><?php
|
14 |
-
\_e('Key:', 'wpdesk-
|
15 |
?></td>
|
16 |
-
<td><input class="wpdesk_helper_input" name="api_key"
|
17 |
value="<?php
|
18 |
echo $api_key;
|
19 |
?>" <?php
|
@@ -22,9 +22,9 @@ echo $disabled;
|
|
22 |
</tr>
|
23 |
<tr>
|
24 |
<td><?php
|
25 |
-
\_e('Email:', 'wpdesk-
|
26 |
?></td>
|
27 |
-
<td><input class="wpdesk_helper_input" name="activation_email"
|
28 |
value="<?php
|
29 |
echo $activation_email;
|
30 |
?>" <?php
|
@@ -38,13 +38,13 @@ echo $disabled;
|
|
38 |
if ($activation_status == 'Deactivated') {
|
39 |
?>
|
40 |
<button class="wpdesk_helper_button button button-primary"><?php
|
41 |
-
\_e('Activate', 'wpdesk-
|
42 |
?></button>
|
43 |
<?php
|
44 |
} else {
|
45 |
?>
|
46 |
<button class="wpdesk_helper_button button"><?php
|
47 |
-
\_e('Deactivate', 'wpdesk-
|
48 |
?></button>
|
49 |
<?php
|
50 |
}
|
11 |
<table class="wpdesk_helper_key_table">
|
12 |
<tr>
|
13 |
<td><?php
|
14 |
+
\_e('Key:', 'wp-wpdesk-license');
|
15 |
?></td>
|
16 |
+
<td><input class="wpdesk_helper_input" name="api_key" type="text"
|
17 |
value="<?php
|
18 |
echo $api_key;
|
19 |
?>" <?php
|
22 |
</tr>
|
23 |
<tr>
|
24 |
<td><?php
|
25 |
+
\_e('Email:', 'wp-wpdesk-license');
|
26 |
?></td>
|
27 |
+
<td><input class="wpdesk_helper_input" name="activation_email" type="email"
|
28 |
value="<?php
|
29 |
echo $activation_email;
|
30 |
?>" <?php
|
38 |
if ($activation_status == 'Deactivated') {
|
39 |
?>
|
40 |
<button class="wpdesk_helper_button button button-primary"><?php
|
41 |
+
\_e('Activate', 'wp-wpdesk-license');
|
42 |
?></button>
|
43 |
<?php
|
44 |
} else {
|
45 |
?>
|
46 |
<button class="wpdesk_helper_button button"><?php
|
47 |
+
\_e('Deactivate', 'wp-wpdesk-license');
|
48 |
?></button>
|
49 |
<?php
|
50 |
}
|
vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/views/licenses.php
CHANGED
@@ -7,13 +7,24 @@ if (!\defined('ABSPATH')) {
|
|
7 |
}
|
8 |
// Exit if accessed directly
|
9 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
<div class="wrap">
|
11 |
<?php
|
12 |
/* screen_icon(); */
|
13 |
?>
|
14 |
|
15 |
<h1><?php
|
16 |
-
\_e('WP Desk Subscriptions', 'wpdesk-
|
17 |
?></h1>
|
18 |
|
19 |
<p class="mb0">
|
@@ -23,7 +34,7 @@ if (\get_locale() === 'pl_PL') {
|
|
23 |
} else {
|
24 |
$url = 'https://www.wpdesk.net/my-account/';
|
25 |
}
|
26 |
-
$link = \sprintf(\__('Get your subscription keys <a href="%s" target="_blank">here</a>. You can activate/deactivate API keys <strong>unlimited times on different domains</strong> as long as you have an active subscription.', 'wpdesk-
|
27 |
echo $link;
|
28 |
?>
|
29 |
</p>
|
7 |
}
|
8 |
// Exit if accessed directly
|
9 |
?>
|
10 |
+
<style>
|
11 |
+
#product_license {
|
12 |
+
width: 500px;
|
13 |
+
}
|
14 |
+
|
15 |
+
.wpdesk_helper_key_table,
|
16 |
+
.wpdesk_helper_input {
|
17 |
+
width: 100%;
|
18 |
+
}
|
19 |
+
</style>
|
20 |
+
|
21 |
<div class="wrap">
|
22 |
<?php
|
23 |
/* screen_icon(); */
|
24 |
?>
|
25 |
|
26 |
<h1><?php
|
27 |
+
\_e('WP Desk Subscriptions', 'wp-wpdesk-license');
|
28 |
?></h1>
|
29 |
|
30 |
<p class="mb0">
|
34 |
} else {
|
35 |
$url = 'https://www.wpdesk.net/my-account/';
|
36 |
}
|
37 |
+
$link = \sprintf(\__('Get your subscription keys <a href="%s" target="_blank">here</a>. You can activate/deactivate API keys <strong>unlimited times on different domains</strong> as long as you have an active subscription.', 'wp-wpdesk-license'), \esc_url($url));
|
38 |
echo $link;
|
39 |
?>
|
40 |
</p>
|
vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/LicensePage.php
CHANGED
@@ -38,7 +38,7 @@ class LicensePage implements \FcfVendor\WPDesk\PluginBuilder\Plugin\Hookable
|
|
38 |
*/
|
39 |
public function handle_add_page_submenu_item()
|
40 |
{
|
41 |
-
\add_submenu_page('wpdesk-helper', \__('Subscriptions', 'wpdesk-
|
42 |
}
|
43 |
/**
|
44 |
* Renders license page.
|
@@ -52,7 +52,7 @@ class LicensePage implements \FcfVendor\WPDesk\PluginBuilder\Plugin\Hookable
|
|
52 |
$wpdesk_helper_plugins = [];
|
53 |
}
|
54 |
if (isset($_POST['plugin']) && $_POST['action']) {
|
55 |
-
$this->execute_plugin_action($_POST['plugin'], $_POST['action']);
|
56 |
}
|
57 |
$plugins = $this->plugin_database->get_plugins_activation_info();
|
58 |
/** @noinspection PhpUnusedLocalVariableInspection */
|
@@ -106,7 +106,7 @@ class LicensePage implements \FcfVendor\WPDesk\PluginBuilder\Plugin\Hookable
|
|
106 |
public function handle_api_hide_message()
|
107 |
{
|
108 |
if (\wp_verify_nonce($_REQUEST['nonce'], 'wpdesk-api-ajax-notification-nonce')) {
|
109 |
-
if (\update_option('wpdesk_api_message_close', $_REQUEST['value'])) {
|
110 |
die('1');
|
111 |
}
|
112 |
die('0');
|
@@ -121,8 +121,8 @@ class LicensePage implements \FcfVendor\WPDesk\PluginBuilder\Plugin\Hookable
|
|
121 |
{
|
122 |
$screen = \get_current_screen();
|
123 |
if (isset($screen) && \in_array($screen->base, ['toplevel_page_wpdesk-helper', 'wp-desk_page_wpdesk-licenses', 'wp-desk-1_page_wpdesk-licenses'], \true)) {
|
124 |
-
\wp_register_style(
|
125 |
-
\wp_enqueue_style(
|
126 |
}
|
127 |
}
|
128 |
}
|
38 |
*/
|
39 |
public function handle_add_page_submenu_item()
|
40 |
{
|
41 |
+
\add_submenu_page('wpdesk-helper', \__('Subscriptions', 'wp-wpdesk-license'), \__('Subscriptions', 'wp-wpdesk-license'), 'manage_options', self::PAGE_SLUG, [$this, 'handle_render_wpdesk_licenses_page']);
|
42 |
}
|
43 |
/**
|
44 |
* Renders license page.
|
52 |
$wpdesk_helper_plugins = [];
|
53 |
}
|
54 |
if (isset($_POST['plugin']) && $_POST['action']) {
|
55 |
+
$this->execute_plugin_action(\sanitize_text_field($_POST['plugin']), \sanitize_key($_POST['action']));
|
56 |
}
|
57 |
$plugins = $this->plugin_database->get_plugins_activation_info();
|
58 |
/** @noinspection PhpUnusedLocalVariableInspection */
|
106 |
public function handle_api_hide_message()
|
107 |
{
|
108 |
if (\wp_verify_nonce($_REQUEST['nonce'], 'wpdesk-api-ajax-notification-nonce')) {
|
109 |
+
if (\update_option('wpdesk_api_message_close', \sanitize_key($_REQUEST['value']))) {
|
110 |
die('1');
|
111 |
}
|
112 |
die('0');
|
121 |
{
|
122 |
$screen = \get_current_screen();
|
123 |
if (isset($screen) && \in_array($screen->base, ['toplevel_page_wpdesk-helper', 'wp-desk_page_wpdesk-licenses', 'wp-desk-1_page_wpdesk-licenses'], \true)) {
|
124 |
+
\wp_register_style(self::PAGE_SLUG, \plugins_url('wpdesk-helper/assets/css/admin-settings.css'), [], $this->scripts_version);
|
125 |
+
\wp_enqueue_style(self::PAGE_SLUG);
|
126 |
}
|
127 |
}
|
128 |
}
|
vendor_prefixed/wpdesk/wp-wpdesk-license/src/ServerAddressRepository.php
ADDED
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace FcfVendor\WPDesk\License;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Provides server urls to check for upgrade/activation
|
7 |
+
*
|
8 |
+
* @package WPDesk\License
|
9 |
+
*/
|
10 |
+
class ServerAddressRepository
|
11 |
+
{
|
12 |
+
/** @var string */
|
13 |
+
private $product_id;
|
14 |
+
/**
|
15 |
+
* @param string $product_id Product if of a plugin. Retrieve from plugin_info
|
16 |
+
*/
|
17 |
+
public function __construct($product_id)
|
18 |
+
{
|
19 |
+
$this->product_id = $product_id;
|
20 |
+
}
|
21 |
+
/**
|
22 |
+
* Returns default server to ping ie. when checking if upgrade is available but is not yet activated
|
23 |
+
*
|
24 |
+
* @return string
|
25 |
+
*/
|
26 |
+
public function get_default_update_url()
|
27 |
+
{
|
28 |
+
$urls = $this->get_server_urls();
|
29 |
+
return \reset($urls);
|
30 |
+
}
|
31 |
+
/**
|
32 |
+
* Return list of servers to check for update
|
33 |
+
*
|
34 |
+
* @return string[] Full URL with protocol. Without ending /
|
35 |
+
*/
|
36 |
+
public function get_server_urls()
|
37 |
+
{
|
38 |
+
// PL version should be default for most plugins
|
39 |
+
$servers = ['https://www.wpdesk.pl', 'https://www.wpdesk.net', 'https://shopmagic.app'];
|
40 |
+
if ($this->is_magic_plugin($this->product_id)) {
|
41 |
+
$servers = \array_reverse($servers);
|
42 |
+
// set magic server as first to check
|
43 |
+
}
|
44 |
+
$servers[] = 'https://flexibleshipping.com';
|
45 |
+
if ($this->is_shipping_plugin($this->product_id)) {
|
46 |
+
$servers = \array_reverse($servers);
|
47 |
+
// set fs server as first to check
|
48 |
+
}
|
49 |
+
return $servers;
|
50 |
+
}
|
51 |
+
/**
|
52 |
+
* Is product id of a ShopMagic Plugin?
|
53 |
+
*
|
54 |
+
* @param string $product_id
|
55 |
+
*
|
56 |
+
* @return bool
|
57 |
+
*/
|
58 |
+
private function is_magic_plugin($product_id)
|
59 |
+
{
|
60 |
+
return \stripos($product_id, 'ShopMagic') !== \false;
|
61 |
+
}
|
62 |
+
/**
|
63 |
+
* Is product id of a Flexible Shipping plugin?
|
64 |
+
*
|
65 |
+
* @param string $product_id
|
66 |
+
*
|
67 |
+
* @return bool
|
68 |
+
*/
|
69 |
+
private function is_shipping_plugin($product_id)
|
70 |
+
{
|
71 |
+
$plugins = ['DHL', 'UPS', 'FedEx', 'Royal', 'Hermes', 'DPD', 'Flexible Shipping'];
|
72 |
+
// if one of the $plugins phrase found in product_id
|
73 |
+
return \count(\array_filter($plugins, static function ($plugin) use($product_id) {
|
74 |
+
return \stripos($product_id, $plugin) !== \false;
|
75 |
+
})) > 0;
|
76 |
+
}
|
77 |
+
}
|
vendor_prefixed/wpdesk/wp-wpdesk-tracker/composer.json
CHANGED
@@ -30,6 +30,13 @@
|
|
30 |
"tests\/"
|
31 |
]
|
32 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
"scripts": {
|
34 |
"test": "echo composer is alive",
|
35 |
"phpcs": "phpcs",
|
30 |
"tests\/"
|
31 |
]
|
32 |
},
|
33 |
+
"extra": {
|
34 |
+
"text-domain": "wpdesk-tracker",
|
35 |
+
"translations-folder": "lang",
|
36 |
+
"po-files": {
|
37 |
+
"pl_PL": "wpdesk-tracker-pl_PL.po"
|
38 |
+
}
|
39 |
+
},
|
40 |
"scripts": {
|
41 |
"test": "echo composer is alive",
|
42 |
"phpcs": "phpcs",
|
vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/class-wpdesk-tracker.php
CHANGED
@@ -62,7 +62,6 @@ if (!\class_exists('FcfVendor\\WPDesk_Tracker')) {
|
|
62 |
*/
|
63 |
public function init_hooks()
|
64 |
{
|
65 |
-
\add_action('plugins_loaded', array($this, 'load_plugin_text_domain'));
|
66 |
\add_action('admin_init', array($this, 'init_schedule'));
|
67 |
\add_action('admin_enqueue_scripts', array($this, 'admin_enqueue_scripts'), 100);
|
68 |
\add_action('wpdesk_tracker_send_event', array($this, 'send_tracking_data'));
|
@@ -121,10 +120,6 @@ if (!\class_exists('FcfVendor\\WPDesk_Tracker')) {
|
|
121 |
\wp_clear_scheduled_hook('wpdesk_tracker_send_event');
|
122 |
}
|
123 |
}
|
124 |
-
public function load_plugin_text_domain()
|
125 |
-
{
|
126 |
-
$wpdesk_translation = \load_plugin_textdomain('wpdesk-tracker', \false, $this->plugin_basename . '/inc/wpdesk-tracker/lang');
|
127 |
-
}
|
128 |
/**
|
129 |
* @return bool
|
130 |
*/
|
@@ -165,9 +160,9 @@ if (!\class_exists('FcfVendor\\WPDesk_Tracker')) {
|
|
165 |
}
|
166 |
$type = '';
|
167 |
if (isset($_REQUEST['type'])) {
|
168 |
-
$type = $_REQUEST['type'];
|
169 |
}
|
170 |
-
if ($type
|
171 |
$options = \get_option('wpdesk_helper_options', array());
|
172 |
if (!\is_array($options)) {
|
173 |
$options = array();
|
@@ -177,7 +172,7 @@ if (!\class_exists('FcfVendor\\WPDesk_Tracker')) {
|
|
177 |
$options['wpdesk_tracker_agree'] = '1';
|
178 |
\update_option('wpdesk_helper_options', $options);
|
179 |
}
|
180 |
-
if ($type
|
181 |
$options = \get_option('wpdesk_helper_options', array());
|
182 |
if (!\is_array($options)) {
|
183 |
$options = array();
|
@@ -256,7 +251,7 @@ if (!\class_exists('FcfVendor\\WPDesk_Tracker')) {
|
|
256 |
}
|
257 |
}
|
258 |
}
|
259 |
-
if ($screen->id
|
260 |
if (isset($_GET['wpdesk_tracker_opt_out'])) {
|
261 |
$options = \get_option('wpdesk_helper_options', array());
|
262 |
if (!\is_array($options)) {
|
@@ -274,7 +269,7 @@ if (!\class_exists('FcfVendor\\WPDesk_Tracker')) {
|
|
274 |
$user = \wp_get_current_user();
|
275 |
$username = $user->first_name ? $user->first_name : $user->user_login;
|
276 |
$allow_url = \admin_url('admin.php?page=wpdesk_tracker');
|
277 |
-
$allow_url = \add_query_arg('plugin', $_GET['plugin'], $allow_url);
|
278 |
$skip_url = $allow_url;
|
279 |
$allow_url = \add_query_arg('allow', '1', $allow_url);
|
280 |
$skip_url = \add_query_arg('allow', '0', $skip_url);
|
@@ -285,14 +280,14 @@ if (!\class_exists('FcfVendor\\WPDesk_Tracker')) {
|
|
285 |
{
|
286 |
$user = \wp_get_current_user();
|
287 |
$username = $user->first_name;
|
288 |
-
$plugin = $_GET['plugin'];
|
289 |
$active_plugins = \get_plugins();
|
290 |
$plugin_name = $active_plugins[$plugin]['Name'];
|
291 |
include 'views/tracker-deactivate.php';
|
292 |
}
|
293 |
public function admin_init()
|
294 |
{
|
295 |
-
if (isset($_GET['page']) && $_GET['page']
|
296 |
if (isset($_GET['plugin']) && isset($_GET['allow'])) {
|
297 |
$options = \get_option('wpdesk_helper_options', array());
|
298 |
if (!\is_array($options)) {
|
@@ -330,11 +325,11 @@ if (!\class_exists('FcfVendor\\WPDesk_Tracker')) {
|
|
330 |
{
|
331 |
$params = array();
|
332 |
$params['click_action'] = 'plugin_deactivation';
|
333 |
-
$params['plugin'] = $_REQUEST['plugin'];
|
334 |
-
$params['plugin_name'] = $_REQUEST['plugin_name'];
|
335 |
-
$params['reason'] = $_REQUEST['reason'];
|
336 |
if (!empty($_REQUEST['additional_info'])) {
|
337 |
-
$params['additional_info'] = $_REQUEST['additional_info'];
|
338 |
}
|
339 |
$this->send_payload_to_wpdesk(\apply_filters('wpdesk_tracker_deactivation_data', $params));
|
340 |
}
|
62 |
*/
|
63 |
public function init_hooks()
|
64 |
{
|
|
|
65 |
\add_action('admin_init', array($this, 'init_schedule'));
|
66 |
\add_action('admin_enqueue_scripts', array($this, 'admin_enqueue_scripts'), 100);
|
67 |
\add_action('wpdesk_tracker_send_event', array($this, 'send_tracking_data'));
|
120 |
\wp_clear_scheduled_hook('wpdesk_tracker_send_event');
|
121 |
}
|
122 |
}
|
|
|
|
|
|
|
|
|
123 |
/**
|
124 |
* @return bool
|
125 |
*/
|
160 |
}
|
161 |
$type = '';
|
162 |
if (isset($_REQUEST['type'])) {
|
163 |
+
$type = \sanitize_key($_REQUEST['type']);
|
164 |
}
|
165 |
+
if ($type === 'allow') {
|
166 |
$options = \get_option('wpdesk_helper_options', array());
|
167 |
if (!\is_array($options)) {
|
168 |
$options = array();
|
172 |
$options['wpdesk_tracker_agree'] = '1';
|
173 |
\update_option('wpdesk_helper_options', $options);
|
174 |
}
|
175 |
+
if ($type === 'dismiss') {
|
176 |
$options = \get_option('wpdesk_helper_options', array());
|
177 |
if (!\is_array($options)) {
|
178 |
$options = array();
|
251 |
}
|
252 |
}
|
253 |
}
|
254 |
+
if ($screen->id === 'plugins') {
|
255 |
if (isset($_GET['wpdesk_tracker_opt_out'])) {
|
256 |
$options = \get_option('wpdesk_helper_options', array());
|
257 |
if (!\is_array($options)) {
|
269 |
$user = \wp_get_current_user();
|
270 |
$username = $user->first_name ? $user->first_name : $user->user_login;
|
271 |
$allow_url = \admin_url('admin.php?page=wpdesk_tracker');
|
272 |
+
$allow_url = \add_query_arg('plugin', \sanitize_text_field($_GET['plugin']), $allow_url);
|
273 |
$skip_url = $allow_url;
|
274 |
$allow_url = \add_query_arg('allow', '1', $allow_url);
|
275 |
$skip_url = \add_query_arg('allow', '0', $skip_url);
|
280 |
{
|
281 |
$user = \wp_get_current_user();
|
282 |
$username = $user->first_name;
|
283 |
+
$plugin = \sanitize_text_field($_GET['plugin']);
|
284 |
$active_plugins = \get_plugins();
|
285 |
$plugin_name = $active_plugins[$plugin]['Name'];
|
286 |
include 'views/tracker-deactivate.php';
|
287 |
}
|
288 |
public function admin_init()
|
289 |
{
|
290 |
+
if (isset($_GET['page']) && $_GET['page'] === 'wpdesk_tracker') {
|
291 |
if (isset($_GET['plugin']) && isset($_GET['allow'])) {
|
292 |
$options = \get_option('wpdesk_helper_options', array());
|
293 |
if (!\is_array($options)) {
|
325 |
{
|
326 |
$params = array();
|
327 |
$params['click_action'] = 'plugin_deactivation';
|
328 |
+
$params['plugin'] = \sanitize_text_field($_REQUEST['plugin']);
|
329 |
+
$params['plugin_name'] = \sanitize_text_field($_REQUEST['plugin_name']);
|
330 |
+
$params['reason'] = \sanitize_text_field($_REQUEST['reason']);
|
331 |
if (!empty($_REQUEST['additional_info'])) {
|
332 |
+
$params['additional_info'] = \sanitize_text_field($_REQUEST['additional_info']);
|
333 |
}
|
334 |
$this->send_payload_to_wpdesk(\apply_filters('wpdesk_tracker_deactivation_data', $params));
|
335 |
}
|
vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/lang/wpdesk-tracker-pl_PL.mo
DELETED
Binary file
|