Version Description
Download this release
Release Info
Developer | andergmartins |
Plugin | Post Expirator |
Version | 2.7.1 |
Comparing to | |
See all releases |
Code changes from version 2.7.0 to 2.7.1
- assets/css/edit.css +16 -0
- assets/js/gutenberg-panel.js +1 -1
- assets/js/gutenberg-panel.js.map +1 -1
- assets/jsx/gutenberg-panel.jsx +1 -1
- classes/Cli.class.php +67 -0
- classes/CronFacade.class.php +35 -0
- classes/Display.class.php +9 -4
- classes/DummyForAutoloadDetection.php +36 -0
- classes/Facade.class.php +7 -2
- classes/RenamingWarning.class.php +10 -17
- composer.json +11 -2
- composer.lock +1732 -349
- legacy-functions.php +21 -0
- post-expirator-debug.php +5 -5
- post-expirator.php +145 -66
- readme.txt +31 -9
- vendor/autoload.php +1 -1
- vendor/composer/InstalledVersions.php +13 -0
- vendor/composer/autoload_files.php +1 -0
- vendor/composer/autoload_real.php +7 -7
- vendor/composer/autoload_static.php +3 -2
- vendor/composer/installed.json +7 -7
- vendor/composer/installed.php +5 -5
- vendor/publishpress/wordpress-reviews/ReviewsController.php +12 -30
- views/bulk-edit.php +31 -30
- views/classic-metabox.php +37 -29
- views/expire-column.php +27 -13
- views/how-to-expire.php +12 -11
- views/menu-advanced.php +3 -0
- views/menu-defaults.php +83 -64
- views/menu-diagnostics.php +32 -30
- views/menu-display.php +31 -25
- views/menu-editor.php +4 -0
- views/menu-general.php +39 -40
- views/quick-edit.php +23 -18
- views/tabs.php +25 -20
assets/css/edit.css
CHANGED
@@ -22,3 +22,19 @@ div.pe-qe-fields > div {
|
|
22 |
.post-expirator-quickedit input {
|
23 |
font-size: 12px;
|
24 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
.post-expirator-quickedit input {
|
23 |
font-size: 12px;
|
24 |
}
|
25 |
+
|
26 |
+
.post-expire-col .icon-never {
|
27 |
+
color: #dfdfdf;
|
28 |
+
}
|
29 |
+
|
30 |
+
.post-expire-col .icon-scheduled {
|
31 |
+
color: #7171d7;
|
32 |
+
}
|
33 |
+
|
34 |
+
.post-expire-col .icon-missed {
|
35 |
+
color: #e08f63;
|
36 |
+
}
|
37 |
+
|
38 |
+
.post-expire-col .dashicons {
|
39 |
+
cursor: help;
|
40 |
+
}
|
assets/js/gutenberg-panel.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
!function(e){var t={};function a(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,a),r.l=!0,r.exports}a.m=e,a.c=t,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)a.d(n,r,function(t){return e[t]}.bind(null,r));return n},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=0)}([function(e,t,a){e.exports=a(1)},function(e,t,a){"use strict";var n,r,o,i,s,c,u,l,p,d,f,g,y,m,b,v,x,h,E,w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},P=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();function T(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function S(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}n=window.wp,r=window.postExpiratorPanelConfig,o=n.plugins.registerPlugin,i=n.editPost.PluginDocumentSettingPanel,s=n.components,c=s.PanelRow,u=s.DateTimePicker,l=s.CheckboxControl,p=s.SelectControl,d=s.FormTokenField,f=s.Spinner,g=n.element,y=g.Fragment,m=g.Component,b=n.htmlEntities.decodeEntities,v=lodash,x=v.isEmpty,h=v.keys,E=v.compact,o("postexpirator-sidebar",{render:function(e){function t(){T(this,t);var e=S(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments));return e.state={categoriesList:[],catIdVsName:[]},e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),P(t,[{key:"componentWillMount",value:function(){var e=this,t=(this.state.attributes,n.data.select("core/editor").getEditedPostAttribute("meta")),a=n.data.select("core/editor").getCurrentPostType(),o=function(e){return n.data.dispatch("core/editor").editPost({meta:e})},i
|
2 |
//# sourceMappingURL=gutenberg-panel.js.map
|
1 |
+
!function(e){var t={};function a(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,a),r.l=!0,r.exports}a.m=e,a.c=t,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)a.d(n,r,function(t){return e[t]}.bind(null,r));return n},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=0)}([function(e,t,a){e.exports=a(1)},function(e,t,a){"use strict";var n,r,o,i,s,c,u,l,p,d,f,g,y,m,b,v,x,h,E,w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},P=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();function T(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function S(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}n=window.wp,r=window.postExpiratorPanelConfig,o=n.plugins.registerPlugin,i=n.editPost.PluginDocumentSettingPanel,s=n.components,c=s.PanelRow,u=s.DateTimePicker,l=s.CheckboxControl,p=s.SelectControl,d=s.FormTokenField,f=s.Spinner,g=n.element,y=g.Fragment,m=g.Component,b=n.htmlEntities.decodeEntities,v=lodash,x=v.isEmpty,h=v.keys,E=v.compact,o("postexpirator-sidebar",{render:function(e){function t(){T(this,t);var e=S(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments));return e.state={categoriesList:[],catIdVsName:[]},e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),P(t,[{key:"componentWillMount",value:function(){var e=this,t=(this.state.attributes,n.data.select("core/editor").getEditedPostAttribute("meta")),a=n.data.select("core/editor").getCurrentPostType(),o=function(e){return n.data.dispatch("core/editor").editPost({meta:e})},i=!1,s=new Date,c=this.getExpireType(t),u=[];c.includes("category")&&(u=this.getCategories(t)),t["_expiration-date-status"]&&"saved"===t["_expiration-date-status"]&&(i=!0);var l=60*s.getTimezoneOffset(),p=60*r.timezone_offset;t["_expiration-date"]?s.setTime(1e3*(t["_expiration-date"]+l+p)):(u=r.default_categories,r.default_date&&s.setTime(1e3*(parseInt(r.default_date)+l+p)));var d=r.defaults.taxonomy||"category";this.setState({enabled:i,date:s,expireAction:c,categories:u,taxonomy:d}),o({"_expiration-date-status":i?"saved":""}),o({"_expiration-date":s.getTime()/1e3}),o({"_expiration-date-type":c}),o({"_expiration-date-categories":u});var f=[],g=[];!d&&"post"===a||"category"===d?n.apiFetch({path:n.url.addQueryArgs("wp/v2/categories",{per_page:-1})}).then((function(t){t.forEach((function(e){f[e.name]=e,g[e.id]=e.name})),e.setState({categoriesList:f,catIdVsName:g,taxonomy:r.strings.category})})):"page"!==a&&n.apiFetch({path:n.url.addQueryArgs("wp/v2/taxonomies/"+d,{context:"edit"})}).then((function(t){n.apiFetch({path:n.url.addQueryArgs("wp/v2/"+t.rest_base,{context:"edit"})}).then((function(a){a.forEach((function(e){f[b(e.name)]=e,g[e.id]=b(e.name)})),e.setState({categoriesList:f,catIdVsName:g,taxonomy:b(t.name)})}))}))}},{key:"componentDidUpdate",value:function(){var e=this.state,t=e.enabled,a=e.date,r=e.expireAction,o=e.categories,i=e.attribute,s=function(e){return n.data.dispatch("core/editor").editPost({meta:e})},c=n.data.select("core/editor").getEditedPostAttribute("meta");switch(i){case"enabled":s({"_expiration-date-status":t?"saved":""}),c["_expiration-date"]||s({"_expiration-date":this.getDate(a)});break;case"date":"string"==typeof a&&s({"_expiration-date":this.getDate(a)});break;case"action":s({"_expiration-date-type":r}),r.includes("category")||s({"_expiration-date-categories":[]});break;case"category":s({"_expiration-date-categories":o})}}},{key:"render",value:function(){var e=this,t=this.state,a=t.categoriesList,o=t.catIdVsName,s=this.state,g=s.enabled,m=s.date,b=s.expireAction,v=s.categories,w=s.taxonomy,P=n.data.select("core/editor").getCurrentPostType(),T=[{label:r.strings.draft,value:"draft"},{label:r.strings.delete,value:"delete"},{label:r.strings.trash,value:"trash"},{label:r.strings.private,value:"private"},{label:r.strings.stick,value:"stick"},{label:r.strings.unstick,value:"unstick"}];"page"!==P&&(T=_.union(T,[{label:r.strings.categoryReplace,value:"category"},{label:r.strings.categoryAdd,value:"category-add"},{label:r.strings.categoryRemove,value:"category-remove"}]));var S=v&&E(v.map((function(e){return o[e]||!1})));return"string"==typeof S&&(S=[]),React.createElement(i,{title:r.strings.postExpirator,icon:"calendar",initialOpen:g,className:"post-expirator-panel"},React.createElement(c,null,React.createElement(l,{label:r.strings.enablePostExpiration,checked:g,onChange:function(t){e.setState({enabled:!g,attribute:"enabled"})}})),g&&React.createElement(y,null,React.createElement(c,null,React.createElement(u,{currentDate:m,onChange:function(t){return e.setState({date:t,attribute:"date"})},is_12_hours:r.is_12_hours})),React.createElement(p,{label:r.strings.howToExpire,value:b,options:T,onChange:function(t){e.setState({expireAction:t,attribute:"action"})}}),b.includes("category")&&(x(h(a))&&React.createElement(y,null,r.strings.loading+" ("+w+")",React.createElement(f,null))||React.createElement(d,{label:r.strings.expirationCategories+" ("+w+")",value:S,suggestions:Object.keys(a),onChange:function(t){e.setState({categories:e.selectCategories(t),attribute:"category"})},maxSuggestions:10}))))}},{key:"getExpireType",value:function(e){var t=e["_expiration-date-type"],a=e["_expiration-date-options"]&&e["_expiration-date-options"].expireType;return t||a||(r&&r.defaults&&r.defaults.expireType?r.defaults.expireType:"draft")}},{key:"getCategories",value:function(e){var t=e["_expiration-date-categories"]&&e["_expiration-date-categories"],a=e["_expiration-date-options"]&&e["_expiration-date-options"].category;return"object"===(void 0===t?"undefined":w(t))&&t.length>0?t:(a&&void 0!==a&&"object"!==(void 0===a?"undefined":w(a))&&(categories=[a]),a)}},{key:"selectCategories",value:function(e){var t=this.state,a=t.categoriesList;if(t.catIdVsName,!e.some((function(e){return"string"==typeof e&&!a[e]})))return e.map((function(e){return"string"==typeof e?a[e]:e})).map((function(e){return e.id}))}},{key:"getDate",value:function(e){var t=new Date,a=60*(new Date).getTimezoneOffset(),n=60*r.timezone_offset;return t.setTime(Date.parse(e)),t.setTime(t.getTime()-1e3*(a+n)),t.getTime()/1e3}}]),t}(m)})}]);
|
2 |
//# sourceMappingURL=gutenberg-panel.js.map
|
assets/js/gutenberg-panel.js.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./assets/jsx/gutenberg-panel.jsx"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","wp","config","registerPlugin","PluginDocumentSettingPanel","PanelRow","DateTimePicker","CheckboxControl","SelectControl","FormTokenField","Spinner","Fragment","Component","decodeEntities","isEmpty","keys","compact","window","postExpiratorPanelConfig","plugins","editPost","components","element","htmlEntities","lodash","render","arguments","state","categoriesList","catIdVsName","postMeta","this","attributes","data","select","getEditedPostAttribute","postType","getCurrentPostType","setPostMeta","newMeta","dispatch","meta","enabled","defaults","autoEnable","date","Date","expireAction","getExpireType","categories","includes","getCategories","browserTimezoneOffset","getTimezoneOffset","wpTimezoneOffset","timezone_offset","setTime","default_categories","default_date","parseInt","taxonomy","setState","getTime","apiFetch","path","url","addQueryArgs","per_page","then","list","forEach","cat","id","strings","category","context","taxAttributes","rest_base","terms","term","attribute","getDate","actionsList","label","draft","delete","trash","private","stick","unstick","_","union","categoryReplace","categoryAdd","categoryRemove","selectedCats","map","title","postExpirator","icon","initialOpen","className","enablePostExpiration","checked","onChange","currentDate","is_12_hours","howToExpire","options","loading","expirationCategories","suggestions","selectCategories","maxSuggestions","typeNew","typeOld","expireType","categoriesNew","categoriesOld","length","tokens","some","token","newDate","parse"],"mappings":"aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,G,mEClF1CC,EAAIC,EAEJC,EACAC,EAHY,EAIZC,EAAUC,EAAgBC,EAAiBC,EAAeC,EAAgBC,EAJ9D,EAKZC,EAAUC,EACVC,EANY,EAOZC,EAASC,EAAMC,E,ksBAPff,EAySRgB,OAAOhB,GAzSKC,EAySDe,OAAOC,yBAvSVf,EAAkBF,EAAGkB,QAArBhB,eACAC,EAA8BH,EAAGmB,SAAjChB,2BAHY,EAIyEH,EAAGoB,WAAxFhB,EAJY,EAIZA,SAAUC,EAJE,EAIFA,eAAgBC,EAJd,EAIcA,gBAAiBC,EAJ/B,EAI+BA,cAAeC,EAJ9C,EAI8CA,eAAgBC,EAJ9D,EAI8DA,QAJ9D,EAKWT,EAAGqB,QAA1BX,EALY,EAKZA,SAAUC,EALE,EAKFA,UACVC,EAAkBZ,EAAGsB,aAArBV,eANY,EAOcW,OAA1BV,EAPY,EAOZA,QAASC,EAPG,EAOHA,KAAMC,EAPH,EAOGA,QA6RtBb,EAAe,wBAAyB,CACpCsB,OArSe,YAUf,aAAc,0EACDC,YADC,OAGV,EAAKC,MAAQ,CACTC,eAAgB,GAChBC,YAAa,IALP,EAVC,O,yTAAA,sDAmBM,WAGXC,GAFeC,KAAKJ,MAAnBK,WAEU/B,EAAGgC,KAAKC,OAAO,eAAeC,uBAAuB,SAChEC,EAAWnC,EAAGgC,KAAKC,OAAO,eAAeG,qBACzCC,EAAc,SAACC,GAAD,OAAatC,EAAGgC,KAAKO,SAAS,eAAepB,SAAS,CAACqB,KAAMF,KAE7EG,EAAwC,GAA9BxC,EAAOyC,SAASC,WAC1BC,EAAO,IAAIC,KAEXC,EAAehB,KAAKiB,cAAclB,GAElCmB,EAAa,GACbF,EAAaG,SAAS,cACtBD,EAAalB,KAAKoB,cAAcrB,IAGhCA,EAAS,4BAAsE,UAAxCA,EAAS,6BAChDY,GAAU,GAGd,IAAIU,EAAmD,GAA3BP,EAAKQ,oBAC7BC,EAA4C,GAAzBpD,EAAOqD,gBAE1BzB,EAAS,oBACTe,EAAKW,QAAoF,KAA3E1B,EAAS,oBAAsBsB,EAAwBE,KAErEL,EAAa/C,EAAOuD,mBAChBvD,EAAOwD,cACPb,EAAKW,QAAqF,KAA5EG,SAASzD,EAAOwD,cAAgBN,EAAwBE,KAI9E,IAAIM,EAAW1D,EAAOyC,SAASiB,UAAY,WAE3C7B,KAAK8B,SAAS,CACVnB,QAASA,EACTG,KAAMA,EACNE,aAAcA,EACdE,WAAYA,EACZW,SAAUA,IAIdtB,EAAY,CAAC,0BAA4BI,EAAU,QAAU,KAC7DJ,EAAY,CAAC,mBAAqBO,EAAKiB,UAAa,MACpDxB,EAAY,CAAC,wBAAyBS,IACtCT,EAAY,CAAC,8BAA+BW,IAE5C,IAAIrB,EAAiB,GACjBC,EAAc,IAEZ+B,GAAyB,SAAbxB,GAAqC,aAAbwB,EACtC3D,EAAG8D,SAAS,CACRC,KAAM/D,EAAGgE,IAAIC,aAAa,mBAAoB,CAACC,UAAW,MAC3DC,MAAK,SAACC,GACLA,EAAKC,SAAQ,SAAAC,GACT3C,EAAe2C,EAAI/F,MAAQ+F,EAC3B1C,EAAY0C,EAAIC,IAAMD,EAAI/F,QAE9B,EAAKqF,SAAS,CAACjC,eAAgBA,EAAgBC,YAAaA,EAAa+B,SAAU1D,EAAOuE,QAAQC,cAElF,SAAbtC,GACPnC,EAAG8D,SAAS,CACRC,KAAM/D,EAAGgE,IAAIC,aAAP,oBAAwCN,EAAY,CAACe,QAAS,WACrEP,MAAK,SAACQ,GAEL3E,EAAG8D,SAAS,CACRC,KAAM/D,EAAGgE,IAAIC,aAAP,SAA6BU,EAAcC,UAAa,CAACF,QAAS,WACzEP,MAAK,SAACU,GACLA,EAAMR,SAAQ,SAAAS,GACVnD,EAAef,EAAekE,EAAKvG,OAASuG,EAC5ClD,EAAYkD,EAAKP,IAAM3D,EAAekE,EAAKvG,SAE/C,EAAKqF,SAAS,CACVjC,eAAgBA,EAChBC,YAAaA,EACb+B,SAAU/C,EAAe+D,EAAcpG,gBAhG5C,2CAwGM,MAC4CuD,KAAKJ,MAA3De,EADU,EACVA,QAASG,EADC,EACDA,KAAME,EADL,EACKA,aAAcE,EADnB,EACmBA,WAAY+B,EAD/B,EAC+BA,UAC1C1C,EAAc,SAACC,GAAD,OAAatC,EAAGgC,KAAKO,SAAS,eAAepB,SAAS,CAACqB,KAAMF,KAC3ET,EAAW7B,EAAGgC,KAAKC,OAAO,eAAeC,uBAAuB,QAEtE,OAAQ6C,GACJ,IAAK,UACD1C,EAAY,CAAC,0BAA4BI,EAAU,QAAU,KAGxDZ,EAAS,qBACVQ,EAAY,CAAC,mBAAoBP,KAAKkD,QAAQpC,KAElD,MACJ,IAAK,OACmB,iBAATA,GACPP,EAAY,CAAC,mBAAoBP,KAAKkD,QAAQpC,KAElD,MACJ,IAAK,SACDP,EAAY,CAAC,wBAAyBS,IACjCA,EAAaG,SAAS,aACvBZ,EAAY,CAAC,8BAA+B,KAEhD,MACJ,IAAK,WACDA,EAAY,CAAC,8BAA+BW,OAlIzC,+BAwIN,aACiClB,KAAKJ,MAApCC,EADF,EACEA,eAAgBC,EADlB,EACkBA,YADlB,EAEuDE,KAAKJ,MAA1De,EAFF,EAEEA,QAASG,EAFX,EAEWA,KAAME,EAFjB,EAEiBA,aAAcE,EAF/B,EAE+BA,WAAYW,EAF3C,EAE2CA,SAE1CxB,EAAWnC,EAAGgC,KAAKC,OAAO,eAAeG,qBAE3C6C,EAAc,CACd,CAACC,MAAOjF,EAAOuE,QAAQW,MAAOlG,MAAO,SACrC,CAACiG,MAAOjF,EAAOuE,QAAQY,OAAQnG,MAAO,UACtC,CAACiG,MAAOjF,EAAOuE,QAAQa,MAAOpG,MAAO,SACrC,CAACiG,MAAOjF,EAAOuE,QAAQc,QAASrG,MAAO,WACvC,CAACiG,MAAOjF,EAAOuE,QAAQe,MAAOtG,MAAO,SACrC,CAACiG,MAAOjF,EAAOuE,QAAQgB,QAASvG,MAAO,YAG1B,SAAbkD,IACA8C,EAAcQ,EAAEC,MAAMT,EAAa,CAC/B,CAACC,MAAOjF,EAAOuE,QAAQmB,gBAAiB1G,MAAO,YAC/C,CAACiG,MAAOjF,EAAOuE,QAAQoB,YAAa3G,MAAO,gBAC3C,CAACiG,MAAOjF,EAAOuE,QAAQqB,eAAgB5G,MAAO,sBAItD,IAAI6G,EAAe9C,GAAcjC,EAAQiC,EAAW+C,KAAI,SAACxB,GAAD,OAAQ3C,EAAY2C,KAAO,MAKnF,MAJ4B,iBAAjBuB,IACPA,EAAe,IAIf,oBAAC3F,EAAD,CAA4B6F,MAAO/F,EAAOuE,QAAQyB,cAAeC,KAAK,WAC1CC,YAAa1D,EAAS2D,UAAW,wBACzD,oBAAChG,EAAD,KACI,oBAACE,EAAD,CACI4E,MAAOjF,EAAOuE,QAAQ6B,qBACtBC,QAAS7D,EACT8D,SAAU,SAACtH,GACP,EAAK2E,SAAS,CAACnB,SAAUA,EAASsC,UAAW,gBAIxDtC,GACG,oBAAC/B,EAAD,KACI,oBAACN,EAAD,KACI,oBAACC,EAAD,CACImG,YAAa5D,EACb2D,SAAU,SAACtH,GAAD,OAAW,EAAK2E,SAAS,CAAChB,KAAM3D,EAAO8F,UAAW,UAC5D0B,YAAaxG,EAAOwG,eAG5B,oBAAClG,EAAD,CACI2E,MAAOjF,EAAOuE,QAAQkC,YACtBzH,MAAO6D,EACP6D,QAAS1B,EACTsB,SAAU,SAACtH,GACP,EAAK2E,SAAS,CAACd,aAAc7D,EAAO8F,UAAW,cAGtDjC,EAAaG,SAAS,cAElBpC,EAAQC,EAAKa,KACV,oBAACjB,EAAD,KACKT,EAAOuE,QAAQoC,QAAf,KAA8BjD,EAA9B,IACD,oBAAClD,EAAD,QAKJ,oBAACD,EAAD,CACI0E,MAAOjF,EAAOuE,QAAQqC,qBAAf,KAA2ClD,EAA3C,IACP1E,MAAO6G,EACPgB,YAAapI,OAAOoC,KAAKa,GACzB4E,SAAU,SAACtH,GACP,EAAK2E,SAAS,CACVZ,WAAY,EAAK+D,iBAAiB9H,GAClC8F,UAAW,cAGnBiC,eAAgB,UArNjC,oCAgODnF,GACV,IAAIoF,EAAUpF,EAAS,yBACnBqF,EAAUrF,EAAS,6BAA+BA,EAAS,4BAAT,WAItD,OAAIoF,GAIAC,IAIAjH,GAAUA,EAAOyC,UAAYzC,EAAOyC,SAASyE,WACtClH,EAAOyC,SAASyE,WAGpB,WAlPI,oCAsPDtF,GACV,IAAIuF,EAAgBvF,EAAS,gCAAkCA,EAAS,+BACpEwF,EAAgBxF,EAAS,6BAA+BA,EAAS,4BAAT,SAE5D,MAA6B,iBAAzB,IAAOuF,EAAP,cAAOA,KAA8BA,EAAcE,OAAS,EACrDF,GAGPC,QAA0C,IAAlBA,GAA0D,iBAAzB,IAAOA,EAAP,cAAOA,MAChErE,WAAa,CAACqE,IAGXA,KAlQI,uCAuQEE,GAAQ,MACiBzF,KAAKJ,MAApCC,EADc,EACdA,eAMP,GAPqB,EACEC,aAED2F,EAAOC,MAAK,SAAUC,GACxC,MAAwB,iBAAVA,IAAuB9F,EAAe8F,MAWxD,OAJiBF,EAAOxB,KAAI,SAAU0B,GAClC,MAAwB,iBAAVA,EAAqB9F,EAAe8F,GAASA,KAG7C1B,KAAI,SAACzB,GAAD,OAASA,EAAIC,QAtRxB,8BAyRP3B,GACJ,IAAI8E,EAAU,IAAI7E,KACdM,EAAyD,IAAjC,IAAIN,MAAOO,oBACnCC,EAA4C,GAAzBpD,EAAOqD,gBAG9B,OAFAoE,EAAQnE,QAAQV,KAAK8E,MAAM/E,IAC3B8E,EAAQnE,QAAQmE,EAAQ7D,UAAyD,KAA5CV,EAAwBE,IACpDqE,EAAQ7D,UAAa,QA/RnB,GASgBlD","file":"gutenberg-panel.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","(function (wp, config) {\n\n const {registerPlugin} = wp.plugins;\n const {PluginDocumentSettingPanel} = wp.editPost;\n const {PanelRow, DateTimePicker, CheckboxControl, SelectControl, FormTokenField, Spinner} = wp.components;\n const {Fragment, Component} = wp.element;\n const {decodeEntities} = wp.htmlEntities;\n const {isEmpty, keys, compact} = lodash;\n\n class PostExpiratorSidebar extends Component {\n constructor() {\n super(...arguments);\n\n this.state = {\n categoriesList: [],\n catIdVsName: [],\n }\n }\n\n componentWillMount() {\n const {attributes} = this.state;\n\n const postMeta = wp.data.select('core/editor').getEditedPostAttribute('meta');\n const postType = wp.data.select('core/editor').getCurrentPostType();\n const setPostMeta = (newMeta) => wp.data.dispatch('core/editor').editPost({meta: newMeta});\n\n let enabled = config.defaults.autoEnable == 1;\n let date = new Date();\n\n let expireAction = this.getExpireType(postMeta);\n\n let categories = [];\n if (expireAction.includes('category')) {\n categories = this.getCategories(postMeta);\n }\n\n if (postMeta['_expiration-date-status'] && postMeta['_expiration-date-status'] === 'saved') {\n enabled = true;\n }\n\n let browserTimezoneOffset = date.getTimezoneOffset() * 60;\n let wpTimezoneOffset = config.timezone_offset * 60;\n\n if (postMeta['_expiration-date']) {\n date.setTime((postMeta['_expiration-date'] + browserTimezoneOffset + wpTimezoneOffset) * 1000);\n } else {\n categories = config.default_categories;\n if (config.default_date) {\n date.setTime((parseInt(config.default_date) + browserTimezoneOffset + wpTimezoneOffset) * 1000);\n }\n }\n\n let taxonomy = config.defaults.taxonomy || 'category';\n\n this.setState({\n enabled: enabled,\n date: date,\n expireAction: expireAction,\n categories: categories,\n taxonomy: taxonomy,\n });\n\n // Force all the metadata to be saved. Required for making sure the default settings are stored correctly.\n setPostMeta({'_expiration-date-status': (enabled ? 'saved' : '')});\n setPostMeta({'_expiration-date': (date.getTime()) / 1000});\n setPostMeta({'_expiration-date-type': expireAction});\n setPostMeta({'_expiration-date-categories': categories});\n\n let categoriesList = [];\n let catIdVsName = [];\n\n if ((!taxonomy && postType === 'post') || taxonomy === 'category') {\n wp.apiFetch({\n path: wp.url.addQueryArgs('wp/v2/categories', {per_page: -1}),\n }).then((list) => {\n list.forEach(cat => {\n categoriesList[cat.name] = cat;\n catIdVsName[cat.id] = cat.name;\n });\n this.setState({categoriesList: categoriesList, catIdVsName: catIdVsName, taxonomy: config.strings.category});\n });\n } else if (postType !== 'page') {\n wp.apiFetch({\n path: wp.url.addQueryArgs(`wp/v2/taxonomies/${taxonomy}`, {context: 'edit'}),\n }).then((taxAttributes) => {\n // fetch all terms\n wp.apiFetch({\n path: wp.url.addQueryArgs(`wp/v2/${taxAttributes.rest_base}`, {context: 'edit'}),\n }).then((terms) => {\n terms.forEach(term => {\n categoriesList[decodeEntities(term.name)] = term;\n catIdVsName[term.id] = decodeEntities(term.name);\n });\n this.setState({\n categoriesList: categoriesList,\n catIdVsName: catIdVsName,\n taxonomy: decodeEntities(taxAttributes.name)\n });\n });\n });\n }\n\n }\n\n componentDidUpdate() {\n const {enabled, date, expireAction, categories, attribute} = this.state;\n const setPostMeta = (newMeta) => wp.data.dispatch('core/editor').editPost({meta: newMeta});\n const postMeta = wp.data.select('core/editor').getEditedPostAttribute('meta');\n\n switch (attribute) {\n case 'enabled':\n setPostMeta({'_expiration-date-status': (enabled ? 'saved' : '')});\n // if date is not set when the checkbox is enabled, set it to the default date\n // this is to prevent the user from having to click the date to set it\n if (!postMeta['_expiration-date']) {\n setPostMeta({'_expiration-date': this.getDate(date)});\n }\n break;\n case 'date':\n if (typeof date === 'string') {\n setPostMeta({'_expiration-date': this.getDate(date)});\n }\n break;\n case 'action':\n setPostMeta({'_expiration-date-type': expireAction});\n if (!expireAction.includes('category')) {\n setPostMeta({'_expiration-date-categories': []});\n }\n break;\n case 'category':\n setPostMeta({'_expiration-date-categories': categories});\n break;\n }\n\n }\n\n render() {\n const {categoriesList, catIdVsName} = this.state;\n const {enabled, date, expireAction, categories, taxonomy} = this.state;\n\n const postType = wp.data.select('core/editor').getCurrentPostType();\n\n let actionsList = [\n {label: config.strings.draft, value: 'draft'},\n {label: config.strings.delete, value: 'delete'},\n {label: config.strings.trash, value: 'trash'},\n {label: config.strings.private, value: 'private'},\n {label: config.strings.stick, value: 'stick'},\n {label: config.strings.unstick, value: 'unstick'},\n ];\n\n if (postType !== 'page') {\n actionsList = _.union(actionsList, [\n {label: config.strings.categoryReplace, value: 'category'},\n {label: config.strings.categoryAdd, value: 'category-add'},\n {label: config.strings.categoryRemove, value: 'category-remove'},\n ]);\n }\n\n let selectedCats = categories && compact(categories.map((id) => catIdVsName[id] || false));\n if (typeof selectedCats === 'string') {\n selectedCats = [];\n }\n\n return (\n <PluginDocumentSettingPanel title={config.strings.postExpirator} icon=\"calendar\"\n initialOpen={enabled} className={'post-expirator-panel'}>\n <PanelRow>\n <CheckboxControl\n label={config.strings.enablePostExpiration}\n checked={enabled}\n onChange={(value) => {\n this.setState({enabled: !enabled, attribute: 'enabled'})\n }}\n />\n </PanelRow>\n {enabled && (\n <Fragment>\n <PanelRow>\n <DateTimePicker\n currentDate={date}\n onChange={(value) => this.setState({date: value, attribute: 'date'})}\n is_12_hours={config.is_12_hours}\n />\n </PanelRow>\n <SelectControl\n label={config.strings.howToExpire}\n value={expireAction}\n options={actionsList}\n onChange={(value) => {\n this.setState({expireAction: value, attribute: 'action'})\n }}\n />\n {expireAction.includes('category') &&\n (\n (isEmpty(keys(categoriesList)) && (\n <Fragment>\n {config.strings.loading + ` (${taxonomy})`}\n <Spinner/>\n </Fragment>\n ))\n ||\n (\n <FormTokenField\n label={config.strings.expirationCategories + ` (${taxonomy})`}\n value={selectedCats}\n suggestions={Object.keys(categoriesList)}\n onChange={(value) => {\n this.setState({\n categories: this.selectCategories(value),\n attribute: 'category'\n })\n }}\n maxSuggestions={10}\n />\n )\n )}\n </Fragment>\n )}\n </PluginDocumentSettingPanel>\n );\n }\n\n // what action to take on expiration\n getExpireType(postMeta) {\n let typeNew = postMeta['_expiration-date-type'];\n let typeOld = postMeta['_expiration-date-options'] && postMeta['_expiration-date-options']['expireType'];\n\n\n\n if (typeNew) {\n return typeNew;\n }\n\n if (typeOld) {\n return typeOld;\n }\n\n if (config && config.defaults && config.defaults.expireType) {\n return config.defaults.expireType;\n }\n\n return 'draft';\n }\n\n // what categories to add/remove/replace\n getCategories(postMeta) {\n let categoriesNew = postMeta['_expiration-date-categories'] && postMeta['_expiration-date-categories'];\n let categoriesOld = postMeta['_expiration-date-options'] && postMeta['_expiration-date-options']['category'];\n\n if (typeof categoriesNew === 'object' && categoriesNew.length > 0) {\n return categoriesNew;\n }\n\n if (categoriesOld && typeof categoriesOld !== 'undefined' && typeof categoriesOld !== 'object') {\n categories = [categoriesOld];\n }\n\n return categoriesOld;\n\n }\n\n // fired for the autocomplete\n selectCategories(tokens) {\n const {categoriesList, catIdVsName} = this.state;\n\n var hasNoSuggestion = tokens.some(function (token) {\n return typeof token === 'string' && !categoriesList[token];\n });\n\n if (hasNoSuggestion) {\n return;\n }\n\n var categories = tokens.map(function (token) {\n return typeof token === 'string' ? categoriesList[token] : token;\n })\n\n return categories.map((cat) => cat.id);\n }\n\n getDate(date) {\n let newDate = new Date();\n let browserTimezoneOffset = new Date().getTimezoneOffset() * 60;\n let wpTimezoneOffset = config.timezone_offset * 60;\n newDate.setTime(Date.parse(date));\n newDate.setTime(newDate.getTime() - (browserTimezoneOffset + wpTimezoneOffset) * 1000);\n return ((newDate.getTime()) / 1000);\n }\n\n }\n\n registerPlugin('postexpirator-sidebar', {\n render: PostExpiratorSidebar\n });\n\n\n})(window.wp, window.postExpiratorPanelConfig);\n"],"sourceRoot":""}
|
1 |
+
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./assets/jsx/gutenberg-panel.jsx"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","wp","config","registerPlugin","PluginDocumentSettingPanel","PanelRow","DateTimePicker","CheckboxControl","SelectControl","FormTokenField","Spinner","Fragment","Component","decodeEntities","isEmpty","keys","compact","window","postExpiratorPanelConfig","plugins","editPost","components","element","htmlEntities","lodash","render","arguments","state","categoriesList","catIdVsName","postMeta","this","attributes","data","select","getEditedPostAttribute","postType","getCurrentPostType","setPostMeta","newMeta","dispatch","meta","enabled","date","Date","expireAction","getExpireType","categories","includes","getCategories","browserTimezoneOffset","getTimezoneOffset","wpTimezoneOffset","timezone_offset","setTime","default_categories","default_date","parseInt","taxonomy","defaults","setState","getTime","apiFetch","path","url","addQueryArgs","per_page","then","list","forEach","cat","id","strings","category","context","taxAttributes","rest_base","terms","term","attribute","getDate","actionsList","label","draft","delete","trash","private","stick","unstick","_","union","categoryReplace","categoryAdd","categoryRemove","selectedCats","map","title","postExpirator","icon","initialOpen","className","enablePostExpiration","checked","onChange","currentDate","is_12_hours","howToExpire","options","loading","expirationCategories","suggestions","selectCategories","maxSuggestions","typeNew","typeOld","expireType","categoriesNew","categoriesOld","length","tokens","some","token","newDate","parse"],"mappings":"aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,G,mEClF1CC,EAAIC,EAEJC,EACAC,EAHY,EAIZC,EAAUC,EAAgBC,EAAiBC,EAAeC,EAAgBC,EAJ9D,EAKZC,EAAUC,EACVC,EANY,EAOZC,EAASC,EAAMC,E,ksBAPff,EAySRgB,OAAOhB,GAzSKC,EAySDe,OAAOC,yBAvSVf,EAAkBF,EAAGkB,QAArBhB,eACAC,EAA8BH,EAAGmB,SAAjChB,2BAHY,EAIyEH,EAAGoB,WAAxFhB,EAJY,EAIZA,SAAUC,EAJE,EAIFA,eAAgBC,EAJd,EAIcA,gBAAiBC,EAJ/B,EAI+BA,cAAeC,EAJ9C,EAI8CA,eAAgBC,EAJ9D,EAI8DA,QAJ9D,EAKWT,EAAGqB,QAA1BX,EALY,EAKZA,SAAUC,EALE,EAKFA,UACVC,EAAkBZ,EAAGsB,aAArBV,eANY,EAOcW,OAA1BV,EAPY,EAOZA,QAASC,EAPG,EAOHA,KAAMC,EAPH,EAOGA,QA6RtBb,EAAe,wBAAyB,CACpCsB,OArSe,YAUf,aAAc,0EACDC,YADC,OAGV,EAAKC,MAAQ,CACTC,eAAgB,GAChBC,YAAa,IALP,EAVC,O,yTAAA,sDAmBM,WAGXC,GAFeC,KAAKJ,MAAnBK,WAEU/B,EAAGgC,KAAKC,OAAO,eAAeC,uBAAuB,SAChEC,EAAWnC,EAAGgC,KAAKC,OAAO,eAAeG,qBACzCC,EAAc,SAACC,GAAD,OAAatC,EAAGgC,KAAKO,SAAS,eAAepB,SAAS,CAACqB,KAAMF,KAE7EG,GAAU,EACVC,EAAO,IAAIC,KAEXC,EAAed,KAAKe,cAAchB,GAElCiB,EAAa,GACbF,EAAaG,SAAS,cACtBD,EAAahB,KAAKkB,cAAcnB,IAGhCA,EAAS,4BAAsE,UAAxCA,EAAS,6BAChDY,GAAU,GAGd,IAAIQ,EAAmD,GAA3BP,EAAKQ,oBAC7BC,EAA4C,GAAzBlD,EAAOmD,gBAE1BvB,EAAS,oBACTa,EAAKW,QAAoF,KAA3ExB,EAAS,oBAAsBoB,EAAwBE,KAErEL,EAAa7C,EAAOqD,mBAChBrD,EAAOsD,cACPb,EAAKW,QAAqF,KAA5EG,SAASvD,EAAOsD,cAAgBN,EAAwBE,KAI9E,IAAIM,EAAWxD,EAAOyD,SAASD,UAAY,WAE3C3B,KAAK6B,SAAS,CACVlB,QAASA,EACTC,KAAMA,EACNE,aAAcA,EACdE,WAAYA,EACZW,SAAUA,IAIdpB,EAAY,CAAC,0BAA4BI,EAAU,QAAU,KAC7DJ,EAAY,CAAC,mBAAqBK,EAAKkB,UAAa,MACpDvB,EAAY,CAAC,wBAAyBO,IACtCP,EAAY,CAAC,8BAA+BS,IAE5C,IAAInB,EAAiB,GACjBC,EAAc,IAEZ6B,GAAyB,SAAbtB,GAAqC,aAAbsB,EACtCzD,EAAG6D,SAAS,CACRC,KAAM9D,EAAG+D,IAAIC,aAAa,mBAAoB,CAACC,UAAW,MAC3DC,MAAK,SAACC,GACLA,EAAKC,SAAQ,SAAAC,GACT1C,EAAe0C,EAAI9F,MAAQ8F,EAC3BzC,EAAYyC,EAAIC,IAAMD,EAAI9F,QAE9B,EAAKoF,SAAS,CAAChC,eAAgBA,EAAgBC,YAAaA,EAAa6B,SAAUxD,EAAOsE,QAAQC,cAElF,SAAbrC,GACPnC,EAAG6D,SAAS,CACRC,KAAM9D,EAAG+D,IAAIC,aAAP,oBAAwCP,EAAY,CAACgB,QAAS,WACrEP,MAAK,SAACQ,GAEL1E,EAAG6D,SAAS,CACRC,KAAM9D,EAAG+D,IAAIC,aAAP,SAA6BU,EAAcC,UAAa,CAACF,QAAS,WACzEP,MAAK,SAACU,GACLA,EAAMR,SAAQ,SAAAS,GACVlD,EAAef,EAAeiE,EAAKtG,OAASsG,EAC5CjD,EAAYiD,EAAKP,IAAM1D,EAAeiE,EAAKtG,SAE/C,EAAKoF,SAAS,CACVhC,eAAgBA,EAChBC,YAAaA,EACb6B,SAAU7C,EAAe8D,EAAcnG,gBAhG5C,2CAwGM,MAC4CuD,KAAKJ,MAA3De,EADU,EACVA,QAASC,EADC,EACDA,KAAME,EADL,EACKA,aAAcE,EADnB,EACmBA,WAAYgC,EAD/B,EAC+BA,UAC1CzC,EAAc,SAACC,GAAD,OAAatC,EAAGgC,KAAKO,SAAS,eAAepB,SAAS,CAACqB,KAAMF,KAC3ET,EAAW7B,EAAGgC,KAAKC,OAAO,eAAeC,uBAAuB,QAEtE,OAAQ4C,GACJ,IAAK,UACDzC,EAAY,CAAC,0BAA4BI,EAAU,QAAU,KAGxDZ,EAAS,qBACVQ,EAAY,CAAC,mBAAoBP,KAAKiD,QAAQrC,KAElD,MACJ,IAAK,OACmB,iBAATA,GACPL,EAAY,CAAC,mBAAoBP,KAAKiD,QAAQrC,KAElD,MACJ,IAAK,SACDL,EAAY,CAAC,wBAAyBO,IACjCA,EAAaG,SAAS,aACvBV,EAAY,CAAC,8BAA+B,KAEhD,MACJ,IAAK,WACDA,EAAY,CAAC,8BAA+BS,OAlIzC,+BAwIN,aACiChB,KAAKJ,MAApCC,EADF,EACEA,eAAgBC,EADlB,EACkBA,YADlB,EAEuDE,KAAKJ,MAA1De,EAFF,EAEEA,QAASC,EAFX,EAEWA,KAAME,EAFjB,EAEiBA,aAAcE,EAF/B,EAE+BA,WAAYW,EAF3C,EAE2CA,SAE1CtB,EAAWnC,EAAGgC,KAAKC,OAAO,eAAeG,qBAE3C4C,EAAc,CACd,CAACC,MAAOhF,EAAOsE,QAAQW,MAAOjG,MAAO,SACrC,CAACgG,MAAOhF,EAAOsE,QAAQY,OAAQlG,MAAO,UACtC,CAACgG,MAAOhF,EAAOsE,QAAQa,MAAOnG,MAAO,SACrC,CAACgG,MAAOhF,EAAOsE,QAAQc,QAASpG,MAAO,WACvC,CAACgG,MAAOhF,EAAOsE,QAAQe,MAAOrG,MAAO,SACrC,CAACgG,MAAOhF,EAAOsE,QAAQgB,QAAStG,MAAO,YAG1B,SAAbkD,IACA6C,EAAcQ,EAAEC,MAAMT,EAAa,CAC/B,CAACC,MAAOhF,EAAOsE,QAAQmB,gBAAiBzG,MAAO,YAC/C,CAACgG,MAAOhF,EAAOsE,QAAQoB,YAAa1G,MAAO,gBAC3C,CAACgG,MAAOhF,EAAOsE,QAAQqB,eAAgB3G,MAAO,sBAItD,IAAI4G,EAAe/C,GAAc/B,EAAQ+B,EAAWgD,KAAI,SAACxB,GAAD,OAAQ1C,EAAY0C,KAAO,MAKnF,MAJ4B,iBAAjBuB,IACPA,EAAe,IAIf,oBAAC1F,EAAD,CAA4B4F,MAAO9F,EAAOsE,QAAQyB,cAAeC,KAAK,WAC1CC,YAAazD,EAAS0D,UAAW,wBACzD,oBAAC/F,EAAD,KACI,oBAACE,EAAD,CACI2E,MAAOhF,EAAOsE,QAAQ6B,qBACtBC,QAAS5D,EACT6D,SAAU,SAACrH,GACP,EAAK0E,SAAS,CAAClB,SAAUA,EAASqC,UAAW,gBAIxDrC,GACG,oBAAC/B,EAAD,KACI,oBAACN,EAAD,KACI,oBAACC,EAAD,CACIkG,YAAa7D,EACb4D,SAAU,SAACrH,GAAD,OAAW,EAAK0E,SAAS,CAACjB,KAAMzD,EAAO6F,UAAW,UAC5D0B,YAAavG,EAAOuG,eAG5B,oBAACjG,EAAD,CACI0E,MAAOhF,EAAOsE,QAAQkC,YACtBxH,MAAO2D,EACP8D,QAAS1B,EACTsB,SAAU,SAACrH,GACP,EAAK0E,SAAS,CAACf,aAAc3D,EAAO6F,UAAW,cAGtDlC,EAAaG,SAAS,cAElBlC,EAAQC,EAAKa,KACV,oBAACjB,EAAD,KACKT,EAAOsE,QAAQoC,QAAf,KAA8BlD,EAA9B,IACD,oBAAChD,EAAD,QAKJ,oBAACD,EAAD,CACIyE,MAAOhF,EAAOsE,QAAQqC,qBAAf,KAA2CnD,EAA3C,IACPxE,MAAO4G,EACPgB,YAAanI,OAAOoC,KAAKa,GACzB2E,SAAU,SAACrH,GACP,EAAK0E,SAAS,CACVb,WAAY,EAAKgE,iBAAiB7H,GAClC6F,UAAW,cAGnBiC,eAAgB,UArNjC,oCAgODlF,GACV,IAAImF,EAAUnF,EAAS,yBACnBoF,EAAUpF,EAAS,6BAA+BA,EAAS,4BAAT,WAItD,OAAImF,GAIAC,IAIAhH,GAAUA,EAAOyD,UAAYzD,EAAOyD,SAASwD,WACtCjH,EAAOyD,SAASwD,WAGpB,WAlPI,oCAsPDrF,GACV,IAAIsF,EAAgBtF,EAAS,gCAAkCA,EAAS,+BACpEuF,EAAgBvF,EAAS,6BAA+BA,EAAS,4BAAT,SAE5D,MAA6B,iBAAzB,IAAOsF,EAAP,cAAOA,KAA8BA,EAAcE,OAAS,EACrDF,GAGPC,QAA0C,IAAlBA,GAA0D,iBAAzB,IAAOA,EAAP,cAAOA,MAChEtE,WAAa,CAACsE,IAGXA,KAlQI,uCAuQEE,GAAQ,MACiBxF,KAAKJ,MAApCC,EADc,EACdA,eAMP,GAPqB,EACEC,aAED0F,EAAOC,MAAK,SAAUC,GACxC,MAAwB,iBAAVA,IAAuB7F,EAAe6F,MAWxD,OAJiBF,EAAOxB,KAAI,SAAU0B,GAClC,MAAwB,iBAAVA,EAAqB7F,EAAe6F,GAASA,KAG7C1B,KAAI,SAACzB,GAAD,OAASA,EAAIC,QAtRxB,8BAyRP5B,GACJ,IAAI+E,EAAU,IAAI9E,KACdM,EAAyD,IAAjC,IAAIN,MAAOO,oBACnCC,EAA4C,GAAzBlD,EAAOmD,gBAG9B,OAFAqE,EAAQpE,QAAQV,KAAK+E,MAAMhF,IAC3B+E,EAAQpE,QAAQoE,EAAQ7D,UAAyD,KAA5CX,EAAwBE,IACpDsE,EAAQ7D,UAAa,QA/RnB,GASgBjD","file":"gutenberg-panel.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","(function (wp, config) {\n\n const {registerPlugin} = wp.plugins;\n const {PluginDocumentSettingPanel} = wp.editPost;\n const {PanelRow, DateTimePicker, CheckboxControl, SelectControl, FormTokenField, Spinner} = wp.components;\n const {Fragment, Component} = wp.element;\n const {decodeEntities} = wp.htmlEntities;\n const {isEmpty, keys, compact} = lodash;\n\n class PostExpiratorSidebar extends Component {\n constructor() {\n super(...arguments);\n\n this.state = {\n categoriesList: [],\n catIdVsName: [],\n }\n }\n\n componentWillMount() {\n const {attributes} = this.state;\n\n const postMeta = wp.data.select('core/editor').getEditedPostAttribute('meta');\n const postType = wp.data.select('core/editor').getCurrentPostType();\n const setPostMeta = (newMeta) => wp.data.dispatch('core/editor').editPost({meta: newMeta});\n\n let enabled = false;\n let date = new Date();\n\n let expireAction = this.getExpireType(postMeta);\n\n let categories = [];\n if (expireAction.includes('category')) {\n categories = this.getCategories(postMeta);\n }\n\n if (postMeta['_expiration-date-status'] && postMeta['_expiration-date-status'] === 'saved') {\n enabled = true;\n }\n\n let browserTimezoneOffset = date.getTimezoneOffset() * 60;\n let wpTimezoneOffset = config.timezone_offset * 60;\n\n if (postMeta['_expiration-date']) {\n date.setTime((postMeta['_expiration-date'] + browserTimezoneOffset + wpTimezoneOffset) * 1000);\n } else {\n categories = config.default_categories;\n if (config.default_date) {\n date.setTime((parseInt(config.default_date) + browserTimezoneOffset + wpTimezoneOffset) * 1000);\n }\n }\n\n let taxonomy = config.defaults.taxonomy || 'category';\n\n this.setState({\n enabled: enabled,\n date: date,\n expireAction: expireAction,\n categories: categories,\n taxonomy: taxonomy,\n });\n\n // Force all the metadata to be saved. Required for making sure the default settings are stored correctly.\n setPostMeta({'_expiration-date-status': (enabled ? 'saved' : '')});\n setPostMeta({'_expiration-date': (date.getTime()) / 1000});\n setPostMeta({'_expiration-date-type': expireAction});\n setPostMeta({'_expiration-date-categories': categories});\n\n let categoriesList = [];\n let catIdVsName = [];\n\n if ((!taxonomy && postType === 'post') || taxonomy === 'category') {\n wp.apiFetch({\n path: wp.url.addQueryArgs('wp/v2/categories', {per_page: -1}),\n }).then((list) => {\n list.forEach(cat => {\n categoriesList[cat.name] = cat;\n catIdVsName[cat.id] = cat.name;\n });\n this.setState({categoriesList: categoriesList, catIdVsName: catIdVsName, taxonomy: config.strings.category});\n });\n } else if (postType !== 'page') {\n wp.apiFetch({\n path: wp.url.addQueryArgs(`wp/v2/taxonomies/${taxonomy}`, {context: 'edit'}),\n }).then((taxAttributes) => {\n // fetch all terms\n wp.apiFetch({\n path: wp.url.addQueryArgs(`wp/v2/${taxAttributes.rest_base}`, {context: 'edit'}),\n }).then((terms) => {\n terms.forEach(term => {\n categoriesList[decodeEntities(term.name)] = term;\n catIdVsName[term.id] = decodeEntities(term.name);\n });\n this.setState({\n categoriesList: categoriesList,\n catIdVsName: catIdVsName,\n taxonomy: decodeEntities(taxAttributes.name)\n });\n });\n });\n }\n\n }\n\n componentDidUpdate() {\n const {enabled, date, expireAction, categories, attribute} = this.state;\n const setPostMeta = (newMeta) => wp.data.dispatch('core/editor').editPost({meta: newMeta});\n const postMeta = wp.data.select('core/editor').getEditedPostAttribute('meta');\n\n switch (attribute) {\n case 'enabled':\n setPostMeta({'_expiration-date-status': (enabled ? 'saved' : '')});\n // if date is not set when the checkbox is enabled, set it to the default date\n // this is to prevent the user from having to click the date to set it\n if (!postMeta['_expiration-date']) {\n setPostMeta({'_expiration-date': this.getDate(date)});\n }\n break;\n case 'date':\n if (typeof date === 'string') {\n setPostMeta({'_expiration-date': this.getDate(date)});\n }\n break;\n case 'action':\n setPostMeta({'_expiration-date-type': expireAction});\n if (!expireAction.includes('category')) {\n setPostMeta({'_expiration-date-categories': []});\n }\n break;\n case 'category':\n setPostMeta({'_expiration-date-categories': categories});\n break;\n }\n\n }\n\n render() {\n const {categoriesList, catIdVsName} = this.state;\n const {enabled, date, expireAction, categories, taxonomy} = this.state;\n\n const postType = wp.data.select('core/editor').getCurrentPostType();\n\n let actionsList = [\n {label: config.strings.draft, value: 'draft'},\n {label: config.strings.delete, value: 'delete'},\n {label: config.strings.trash, value: 'trash'},\n {label: config.strings.private, value: 'private'},\n {label: config.strings.stick, value: 'stick'},\n {label: config.strings.unstick, value: 'unstick'},\n ];\n\n if (postType !== 'page') {\n actionsList = _.union(actionsList, [\n {label: config.strings.categoryReplace, value: 'category'},\n {label: config.strings.categoryAdd, value: 'category-add'},\n {label: config.strings.categoryRemove, value: 'category-remove'},\n ]);\n }\n\n let selectedCats = categories && compact(categories.map((id) => catIdVsName[id] || false));\n if (typeof selectedCats === 'string') {\n selectedCats = [];\n }\n\n return (\n <PluginDocumentSettingPanel title={config.strings.postExpirator} icon=\"calendar\"\n initialOpen={enabled} className={'post-expirator-panel'}>\n <PanelRow>\n <CheckboxControl\n label={config.strings.enablePostExpiration}\n checked={enabled}\n onChange={(value) => {\n this.setState({enabled: !enabled, attribute: 'enabled'})\n }}\n />\n </PanelRow>\n {enabled && (\n <Fragment>\n <PanelRow>\n <DateTimePicker\n currentDate={date}\n onChange={(value) => this.setState({date: value, attribute: 'date'})}\n is_12_hours={config.is_12_hours}\n />\n </PanelRow>\n <SelectControl\n label={config.strings.howToExpire}\n value={expireAction}\n options={actionsList}\n onChange={(value) => {\n this.setState({expireAction: value, attribute: 'action'})\n }}\n />\n {expireAction.includes('category') &&\n (\n (isEmpty(keys(categoriesList)) && (\n <Fragment>\n {config.strings.loading + ` (${taxonomy})`}\n <Spinner/>\n </Fragment>\n ))\n ||\n (\n <FormTokenField\n label={config.strings.expirationCategories + ` (${taxonomy})`}\n value={selectedCats}\n suggestions={Object.keys(categoriesList)}\n onChange={(value) => {\n this.setState({\n categories: this.selectCategories(value),\n attribute: 'category'\n })\n }}\n maxSuggestions={10}\n />\n )\n )}\n </Fragment>\n )}\n </PluginDocumentSettingPanel>\n );\n }\n\n // what action to take on expiration\n getExpireType(postMeta) {\n let typeNew = postMeta['_expiration-date-type'];\n let typeOld = postMeta['_expiration-date-options'] && postMeta['_expiration-date-options']['expireType'];\n\n\n\n if (typeNew) {\n return typeNew;\n }\n\n if (typeOld) {\n return typeOld;\n }\n\n if (config && config.defaults && config.defaults.expireType) {\n return config.defaults.expireType;\n }\n\n return 'draft';\n }\n\n // what categories to add/remove/replace\n getCategories(postMeta) {\n let categoriesNew = postMeta['_expiration-date-categories'] && postMeta['_expiration-date-categories'];\n let categoriesOld = postMeta['_expiration-date-options'] && postMeta['_expiration-date-options']['category'];\n\n if (typeof categoriesNew === 'object' && categoriesNew.length > 0) {\n return categoriesNew;\n }\n\n if (categoriesOld && typeof categoriesOld !== 'undefined' && typeof categoriesOld !== 'object') {\n categories = [categoriesOld];\n }\n\n return categoriesOld;\n\n }\n\n // fired for the autocomplete\n selectCategories(tokens) {\n const {categoriesList, catIdVsName} = this.state;\n\n var hasNoSuggestion = tokens.some(function (token) {\n return typeof token === 'string' && !categoriesList[token];\n });\n\n if (hasNoSuggestion) {\n return;\n }\n\n var categories = tokens.map(function (token) {\n return typeof token === 'string' ? categoriesList[token] : token;\n })\n\n return categories.map((cat) => cat.id);\n }\n\n getDate(date) {\n let newDate = new Date();\n let browserTimezoneOffset = new Date().getTimezoneOffset() * 60;\n let wpTimezoneOffset = config.timezone_offset * 60;\n newDate.setTime(Date.parse(date));\n newDate.setTime(newDate.getTime() - (browserTimezoneOffset + wpTimezoneOffset) * 1000);\n return ((newDate.getTime()) / 1000);\n }\n\n }\n\n registerPlugin('postexpirator-sidebar', {\n render: PostExpiratorSidebar\n });\n\n\n})(window.wp, window.postExpiratorPanelConfig);\n"],"sourceRoot":""}
|
assets/jsx/gutenberg-panel.jsx
CHANGED
@@ -24,7 +24,7 @@
|
|
24 |
const postType = wp.data.select('core/editor').getCurrentPostType();
|
25 |
const setPostMeta = (newMeta) => wp.data.dispatch('core/editor').editPost({meta: newMeta});
|
26 |
|
27 |
-
let enabled =
|
28 |
let date = new Date();
|
29 |
|
30 |
let expireAction = this.getExpireType(postMeta);
|
24 |
const postType = wp.data.select('core/editor').getCurrentPostType();
|
25 |
const setPostMeta = (newMeta) => wp.data.dispatch('core/editor').editPost({meta: newMeta});
|
26 |
|
27 |
+
let enabled = false;
|
28 |
let date = new Date();
|
29 |
|
30 |
let expireAction = this.getExpireType(postMeta);
|
classes/Cli.class.php
ADDED
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Copyright (c) 2022. PublishPress, All rights reserved.
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Utility functions.
|
8 |
+
*/
|
9 |
+
class PostExpirator_Cli
|
10 |
+
{
|
11 |
+
const CLI_COMMAND = 'publishpress-future';
|
12 |
+
|
13 |
+
private static $instance;
|
14 |
+
|
15 |
+
public function __construct()
|
16 |
+
{
|
17 |
+
try {
|
18 |
+
WP_CLI::add_command(
|
19 |
+
self::CLI_COMMAND . ' expire-post',
|
20 |
+
[$this, 'expirePostCommand'],
|
21 |
+
[
|
22 |
+
'shortdesc' => 'Expire a post passing the post id, ignoring the expiration date',
|
23 |
+
'longdesc' => 'Expire a post passing the post id, ignoring the expiration date',
|
24 |
+
]
|
25 |
+
);
|
26 |
+
} catch (Exception $e) {
|
27 |
+
WP_CLI::warning($e);
|
28 |
+
}
|
29 |
+
}
|
30 |
+
|
31 |
+
public static function getInstance()
|
32 |
+
{
|
33 |
+
if (empty(self::$instance)) {
|
34 |
+
self::$instance = new PostExpirator_Cli();
|
35 |
+
}
|
36 |
+
|
37 |
+
return self::$instance;
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Expires a post using the post metadata in PublishPress Future, but ignoring the expiration date.
|
42 |
+
*
|
43 |
+
* <post-id>
|
44 |
+
* : One or more post ids separated by space
|
45 |
+
*
|
46 |
+
*
|
47 |
+
* @param $args
|
48 |
+
*
|
49 |
+
* @return void
|
50 |
+
*/
|
51 |
+
public function expirePostCommand($args)
|
52 |
+
{
|
53 |
+
foreach ($args as $postId) {
|
54 |
+
$postId = (int)$postId;
|
55 |
+
|
56 |
+
if (empty($postId)) {
|
57 |
+
continue;
|
58 |
+
}
|
59 |
+
|
60 |
+
WP_CLI::log('Expiring the post ' . $postId);
|
61 |
+
|
62 |
+
postexpirator_expire_post($postId);
|
63 |
+
}
|
64 |
+
|
65 |
+
WP_CLI::success('Done');
|
66 |
+
}
|
67 |
+
}
|
classes/CronFacade.class.php
CHANGED
@@ -44,4 +44,39 @@ class PostExpirator_CronFacade
|
|
44 |
'postExpiratorExpire',
|
45 |
];
|
46 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
}
|
44 |
'postExpiratorExpire',
|
45 |
];
|
46 |
}
|
47 |
+
|
48 |
+
public static function post_has_scheduled_task($post_id)
|
49 |
+
{
|
50 |
+
$events = self::get_plugin_cron_events();
|
51 |
+
|
52 |
+
foreach ($events as $time => $value) {
|
53 |
+
foreach ($value as $eventkey => $eventvalue) {
|
54 |
+
$arrkey = array_keys($eventvalue);
|
55 |
+
$firstArgsUid = null;
|
56 |
+
|
57 |
+
foreach ($arrkey as $eventguid) {
|
58 |
+
if (is_null($firstArgsUid)) {
|
59 |
+
$firstArgsUid = $eventguid;
|
60 |
+
}
|
61 |
+
}
|
62 |
+
|
63 |
+
if (
|
64 |
+
isset($eventvalue[$firstArgsUid])
|
65 |
+
&& isset($eventvalue[$firstArgsUid]['args'])
|
66 |
+
&& isset($eventvalue[$firstArgsUid]['args'][0])
|
67 |
+
&& ! empty($eventvalue[$firstArgsUid]['args'][0])
|
68 |
+
) {
|
69 |
+
$post = get_post((int)$eventvalue[$firstArgsUid]['args'][0]);
|
70 |
+
|
71 |
+
if (! empty($post) && ! is_wp_error($post) && is_object($post)) {
|
72 |
+
if ($post->ID === $post_id) {
|
73 |
+
return true;
|
74 |
+
}
|
75 |
+
}
|
76 |
+
}
|
77 |
+
}
|
78 |
+
}
|
79 |
+
|
80 |
+
return false;
|
81 |
+
}
|
82 |
}
|
classes/Display.class.php
CHANGED
@@ -81,6 +81,10 @@ class PostExpirator_Display
|
|
81 |
*/
|
82 |
public function settings_tabs()
|
83 |
{
|
|
|
|
|
|
|
|
|
84 |
PostExpirator_Facade::load_assets('settings');
|
85 |
|
86 |
$allowed_tabs = array('general', 'defaults', 'display', 'editor', 'diagnostics', 'viewdebug', 'advanced');
|
@@ -175,7 +179,7 @@ class PostExpirator_Display
|
|
175 |
_e('Debugging Enabled', 'post-expirator');
|
176 |
echo '</p></div>';
|
177 |
} elseif (isset($_POST['purge-debug'])) {
|
178 |
-
require_once(
|
179 |
$debug = new PostExpiratorDebug();
|
180 |
$debug->purge();
|
181 |
echo "<div id='message' class='updated fade'><p>";
|
@@ -195,7 +199,7 @@ class PostExpirator_Display
|
|
195 |
private function menu_viewdebug()
|
196 |
{
|
197 |
require_once POSTEXPIRATOR_BASEDIR . '/post-expirator-debug.php';
|
198 |
-
print '<p>' .
|
199 |
'Below is a dump of the debugging table, this should be useful for troubleshooting.',
|
200 |
'post-expirator'
|
201 |
) . '</p>';
|
@@ -302,6 +306,7 @@ class PostExpirator_Display
|
|
302 |
continue;
|
303 |
}
|
304 |
|
|
|
305 |
if ($role_name === 'administrator' || in_array($role_name, $_POST['allow-user-roles'], true)) {
|
306 |
$role->add_cap(PostExpirator_Facade::DEFAULT_CAPABILITY_EXPIRE_POST);
|
307 |
} else {
|
@@ -337,7 +342,7 @@ class PostExpirator_Display
|
|
337 |
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
|
338 |
|
339 |
update_option('expirationdateGutenbergSupport', $_POST['gutenberg-support']);
|
340 |
-
update_option('expirationdatePreserveData', (
|
341 |
|
342 |
if (! isset($_POST['allow-user-roles']) || ! is_array($_POST['allow-user-roles'])) {
|
343 |
$_POST['allow-user-roles'] = array();
|
@@ -397,7 +402,7 @@ class PostExpirator_Display
|
|
397 |
rel="noopener noreferrer">
|
398 |
<?php
|
399 |
printf(
|
400 |
-
|
401 |
'<strong>PublishPress Future</strong>',
|
402 |
'<span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span>'
|
403 |
);
|
81 |
*/
|
82 |
public function settings_tabs()
|
83 |
{
|
84 |
+
if (!is_admin() || !current_user_can('manage_options')) {
|
85 |
+
wp_die(esc_html__('You do not have permission to configure PublishPress Future.', 'post-expirator'));
|
86 |
+
}
|
87 |
+
|
88 |
PostExpirator_Facade::load_assets('settings');
|
89 |
|
90 |
$allowed_tabs = array('general', 'defaults', 'display', 'editor', 'diagnostics', 'viewdebug', 'advanced');
|
179 |
_e('Debugging Enabled', 'post-expirator');
|
180 |
echo '</p></div>';
|
181 |
} elseif (isset($_POST['purge-debug'])) {
|
182 |
+
require_once(POSTEXPIRATOR_BASEDIR . '/post-expirator-debug.php');
|
183 |
$debug = new PostExpiratorDebug();
|
184 |
$debug->purge();
|
185 |
echo "<div id='message' class='updated fade'><p>";
|
199 |
private function menu_viewdebug()
|
200 |
{
|
201 |
require_once POSTEXPIRATOR_BASEDIR . '/post-expirator-debug.php';
|
202 |
+
print '<p>' . esc_html__(
|
203 |
'Below is a dump of the debugging table, this should be useful for troubleshooting.',
|
204 |
'post-expirator'
|
205 |
) . '</p>';
|
306 |
continue;
|
307 |
}
|
308 |
|
309 |
+
// TODO: only allow roles that can edit posts. Filter in the form as well, adding a description.
|
310 |
if ($role_name === 'administrator' || in_array($role_name, $_POST['allow-user-roles'], true)) {
|
311 |
$role->add_cap(PostExpirator_Facade::DEFAULT_CAPABILITY_EXPIRE_POST);
|
312 |
} else {
|
342 |
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
|
343 |
|
344 |
update_option('expirationdateGutenbergSupport', $_POST['gutenberg-support']);
|
345 |
+
update_option('expirationdatePreserveData', (int)$_POST['expired-preserve-data-deactivating']);
|
346 |
|
347 |
if (! isset($_POST['allow-user-roles']) || ! is_array($_POST['allow-user-roles'])) {
|
348 |
$_POST['allow-user-roles'] = array();
|
402 |
rel="noopener noreferrer">
|
403 |
<?php
|
404 |
printf(
|
405 |
+
esc_html__('If you like %s, please leave us a %s rating. Thank you!', 'post-expirator'),
|
406 |
'<strong>PublishPress Future</strong>',
|
407 |
'<span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span>'
|
408 |
);
|
classes/DummyForAutoloadDetection.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* GNU General Public License, Free Software Foundation <http://creativecommons.org/licenses/GPL/2.0/>
|
4 |
+
*
|
5 |
+
* This program is free software: you can redistribute it and/or modify
|
6 |
+
* it under the terms of the GNU General Public License as published by
|
7 |
+
* the Free Software Foundation, either version 3 of the License, or
|
8 |
+
* (at your option) any later version.
|
9 |
+
*
|
10 |
+
* This program is distributed in the hope that it will be useful,
|
11 |
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12 |
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13 |
+
* GNU General Public License for more details.
|
14 |
+
*
|
15 |
+
* You should have received a copy of the GNU General Public License
|
16 |
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17 |
+
*
|
18 |
+
* @package PublishPress-Future
|
19 |
+
* @subpackage Classes
|
20 |
+
* @author PublishPress <help@publishpress.com>
|
21 |
+
* @copyright Copyright (C) 2021 PublishPress. All rights reserved.
|
22 |
+
* @link https://publishpress.com/future/
|
23 |
+
* @license GPLv2 or later
|
24 |
+
* @since 2.7.1
|
25 |
+
*/
|
26 |
+
|
27 |
+
namespace PublishPressFuture;
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Dummy class for detecting if the composer autoload was already loaded.
|
31 |
+
* Fixes error with duplicated class for the Composer's autoload_real.php file.
|
32 |
+
*/
|
33 |
+
class DummyForAutoloadDetection
|
34 |
+
{
|
35 |
+
|
36 |
+
}
|
classes/Facade.class.php
CHANGED
@@ -162,7 +162,6 @@ class PostExpirator_Facade
|
|
162 |
|
163 |
break;
|
164 |
}
|
165 |
-
//remove_action('updated_postmeta', array($this, 'updatedmeta'), 10, 4);
|
166 |
}
|
167 |
|
168 |
/**
|
@@ -186,7 +185,7 @@ class PostExpirator_Facade
|
|
186 |
*/
|
187 |
public static function get_expire_principles($id)
|
188 |
{
|
189 |
-
$expireType = $categories = $taxonomyName = '';
|
190 |
|
191 |
$expireTypeNew = get_post_meta($id, '_expiration-date-type', true);
|
192 |
if (! empty($expireTypeNew)) {
|
@@ -203,6 +202,11 @@ class PostExpirator_Facade
|
|
203 |
$taxonomyName = $taxonomyNameNew;
|
204 |
}
|
205 |
|
|
|
|
|
|
|
|
|
|
|
206 |
// _expiration-date-options is deprecated when using block editor
|
207 |
$opts = get_post_meta($id, '_expiration-date-options', true);
|
208 |
if (empty($expireType) && isset($opts['expireType'])) {
|
@@ -220,6 +224,7 @@ class PostExpirator_Facade
|
|
220 |
'expireType' => $expireType,
|
221 |
'category' => $categories,
|
222 |
'categoryTaxonomy' => $taxonomyName,
|
|
|
223 |
);
|
224 |
}
|
225 |
|
162 |
|
163 |
break;
|
164 |
}
|
|
|
165 |
}
|
166 |
|
167 |
/**
|
185 |
*/
|
186 |
public static function get_expire_principles($id)
|
187 |
{
|
188 |
+
$expireType = $categories = $taxonomyName = $expireStatus = '';
|
189 |
|
190 |
$expireTypeNew = get_post_meta($id, '_expiration-date-type', true);
|
191 |
if (! empty($expireTypeNew)) {
|
202 |
$taxonomyName = $taxonomyNameNew;
|
203 |
}
|
204 |
|
205 |
+
$expireStatusNew = get_post_meta($id, '_expiration-date-status', true);
|
206 |
+
if (! empty($expireStatusNew)) {
|
207 |
+
$expireStatus = $expireStatusNew;
|
208 |
+
}
|
209 |
+
|
210 |
// _expiration-date-options is deprecated when using block editor
|
211 |
$opts = get_post_meta($id, '_expiration-date-options', true);
|
212 |
if (empty($expireType) && isset($opts['expireType'])) {
|
224 |
'expireType' => $expireType,
|
225 |
'category' => $categories,
|
226 |
'categoryTaxonomy' => $taxonomyName,
|
227 |
+
'enabled' => $expireStatus === 'saved',
|
228 |
);
|
229 |
}
|
230 |
|
classes/RenamingWarning.class.php
CHANGED
@@ -96,17 +96,17 @@ class PostExpirator_RenamingWarning
|
|
96 |
url: ajaxurl,
|
97 |
data: {
|
98 |
action: 'publishpress-future-naming-notice-dismiss',
|
99 |
-
nonce: '<?php echo wp_create_nonce($this->nonceAction); ?>',
|
100 |
reason: reason
|
101 |
}
|
102 |
});
|
103 |
}
|
104 |
|
105 |
$(document)
|
106 |
-
.on('click', '.<?php echo $this->pluginSlug; ?>-naming-notice .<?php echo "$this->pluginSlug-dismiss"; ?>', function (event) {
|
107 |
var $this = $(this),
|
108 |
reason = $this.data('reason'),
|
109 |
-
notice = $this.parents('.<?php echo $this->pluginSlug; ?>-naming-notice');
|
110 |
|
111 |
notice.fadeTo(100, 0, function () {
|
112 |
notice.slideUp(100, function () {
|
@@ -118,7 +118,7 @@ class PostExpirator_RenamingWarning
|
|
118 |
})
|
119 |
.ready(function () {
|
120 |
setTimeout(function () {
|
121 |
-
$('.<?php echo $this->pluginSlug; ?>-naming-notice button.notice-dismiss').click(function (event) {
|
122 |
dismiss('acknowledge');
|
123 |
});
|
124 |
}, 1000);
|
@@ -127,23 +127,23 @@ class PostExpirator_RenamingWarning
|
|
127 |
</script>
|
128 |
|
129 |
<div class="notice notice-success is-dismissible <?php
|
130 |
-
echo "$this->pluginSlug-naming-notice"; ?>">
|
131 |
<?php
|
132 |
if (! empty($this->iconUrl)) : ?>
|
133 |
<img src="<?php
|
134 |
-
echo $this->iconUrl; ?>" class="notice-icon" alt="<?php
|
135 |
-
echo $this->pluginName; ?> logo"/>
|
136 |
<?php
|
137 |
endif; ?>
|
138 |
|
139 |
<p><?php echo sprintf(
|
140 |
-
|
141 |
'<a href="mailto:help@publishpress.com">',
|
142 |
'</a>'
|
143 |
); ?></p>
|
144 |
|
145 |
-
<a href="#" class="button <?php echo "$this->pluginSlug-dismiss"; ?>" data-reason="maybe_later">
|
146 |
-
<?php
|
147 |
</a>
|
148 |
</div>
|
149 |
<?php
|
@@ -222,13 +222,6 @@ class PostExpirator_RenamingWarning
|
|
222 |
*/
|
223 |
public function ajaxHandler()
|
224 |
{
|
225 |
-
$args = wp_parse_args(
|
226 |
-
$_REQUEST,
|
227 |
-
[
|
228 |
-
'reason' => 'acknowledge',
|
229 |
-
]
|
230 |
-
);
|
231 |
-
|
232 |
if (! wp_verify_nonce($_REQUEST['nonce'], $this->nonceAction)) {
|
233 |
wp_send_json_error();
|
234 |
}
|
96 |
url: ajaxurl,
|
97 |
data: {
|
98 |
action: 'publishpress-future-naming-notice-dismiss',
|
99 |
+
nonce: '<?php echo esc_attr(wp_create_nonce($this->nonceAction)); ?>',
|
100 |
reason: reason
|
101 |
}
|
102 |
});
|
103 |
}
|
104 |
|
105 |
$(document)
|
106 |
+
.on('click', '.<?php echo esc_attr($this->pluginSlug); ?>-naming-notice .<?php echo esc_attr("$this->pluginSlug-dismiss"); ?>', function (event) {
|
107 |
var $this = $(this),
|
108 |
reason = $this.data('reason'),
|
109 |
+
notice = $this.parents('.<?php echo esc_attr($this->pluginSlug); ?>-naming-notice');
|
110 |
|
111 |
notice.fadeTo(100, 0, function () {
|
112 |
notice.slideUp(100, function () {
|
118 |
})
|
119 |
.ready(function () {
|
120 |
setTimeout(function () {
|
121 |
+
$('.<?php echo esc_attr($this->pluginSlug); ?>-naming-notice button.notice-dismiss').click(function (event) {
|
122 |
dismiss('acknowledge');
|
123 |
});
|
124 |
}, 1000);
|
127 |
</script>
|
128 |
|
129 |
<div class="notice notice-success is-dismissible <?php
|
130 |
+
echo esc_attr("$this->pluginSlug-naming-notice"); ?>">
|
131 |
<?php
|
132 |
if (! empty($this->iconUrl)) : ?>
|
133 |
<img src="<?php
|
134 |
+
echo esc_url($this->iconUrl); ?>" class="notice-icon" alt="<?php
|
135 |
+
echo esc_attr($this->pluginName); ?> logo"/>
|
136 |
<?php
|
137 |
endif; ?>
|
138 |
|
139 |
<p><?php echo sprintf(
|
140 |
+
esc_html__('Thanks for using Post Expirator. This plugin has a new name: "PublishPress Future". Nothing else has changed with the plugin. If you have any questions, please %sclick this link and talk with us%s.', 'post-expirator'),
|
141 |
'<a href="mailto:help@publishpress.com">',
|
142 |
'</a>'
|
143 |
); ?></p>
|
144 |
|
145 |
+
<a href="#" class="button <?php echo esc_attr("$this->pluginSlug-dismiss"); ?>" data-reason="maybe_later">
|
146 |
+
<?php esc_html_e('Dismiss', $this->pluginSlug); ?>
|
147 |
</a>
|
148 |
</div>
|
149 |
<?php
|
222 |
*/
|
223 |
public function ajaxHandler()
|
224 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
225 |
if (! wp_verify_nonce($_REQUEST['nonce'], $this->nonceAction)) {
|
226 |
wp_send_json_error();
|
227 |
}
|
composer.json
CHANGED
@@ -25,6 +25,11 @@
|
|
25 |
"url": "https://github.com/publishpress/PublishPress-Plugin-Builder"
|
26 |
}
|
27 |
],
|
|
|
|
|
|
|
|
|
|
|
28 |
"require-dev": {
|
29 |
"lucatume/wp-browser": "^3",
|
30 |
"codeception/module-asserts": "^1.0",
|
@@ -35,6 +40,7 @@
|
|
35 |
"codeception/module-cli": "^1.0",
|
36 |
"codeception/util-universalframework": "^1.0",
|
37 |
"codeception/module-rest": "^1.3",
|
|
|
38 |
"dealerdirect/phpcodesniffer-composer-installer": "*",
|
39 |
"phpcompatibility/php-compatibility": "*",
|
40 |
"wp-coding-standards/wpcs": "*",
|
@@ -43,9 +49,12 @@
|
|
43 |
"squizlabs/php_codesniffer": "^3.5",
|
44 |
"sebastian/phpcpd": "^5.0",
|
45 |
"overtrue/phplint": "^2.1",
|
46 |
-
"wp-cli/i18n-command": "^2.2"
|
|
|
|
|
|
|
47 |
},
|
48 |
"require": {
|
49 |
-
"publishpress/wordpress-reviews":
|
50 |
}
|
51 |
}
|
25 |
"url": "https://github.com/publishpress/PublishPress-Plugin-Builder"
|
26 |
}
|
27 |
],
|
28 |
+
"autoload": {
|
29 |
+
"files": [
|
30 |
+
"classes/DummyForAutoloadDetection.php"
|
31 |
+
]
|
32 |
+
},
|
33 |
"require-dev": {
|
34 |
"lucatume/wp-browser": "^3",
|
35 |
"codeception/module-asserts": "^1.0",
|
40 |
"codeception/module-cli": "^1.0",
|
41 |
"codeception/util-universalframework": "^1.0",
|
42 |
"codeception/module-rest": "^1.3",
|
43 |
+
"codeception/module-sequence": "^2.0",
|
44 |
"dealerdirect/phpcodesniffer-composer-installer": "*",
|
45 |
"phpcompatibility/php-compatibility": "*",
|
46 |
"wp-coding-standards/wpcs": "*",
|
49 |
"squizlabs/php_codesniffer": "^3.5",
|
50 |
"sebastian/phpcpd": "^5.0",
|
51 |
"overtrue/phplint": "^2.1",
|
52 |
+
"wp-cli/i18n-command": "^2.2",
|
53 |
+
"vimeo/psalm": "^4.17",
|
54 |
+
"friendsofphp/php-cs-fixer": "^3.4",
|
55 |
+
"phpstan/phpstan": "^1.3"
|
56 |
},
|
57 |
"require": {
|
58 |
+
"publishpress/wordpress-reviews": "^1.1"
|
59 |
}
|
60 |
}
|
composer.lock
CHANGED
@@ -4,20 +4,20 @@
|
|
4 |
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
5 |
"This file is @generated automatically"
|
6 |
],
|
7 |
-
"content-hash": "
|
8 |
"packages": [
|
9 |
{
|
10 |
"name": "publishpress/wordpress-reviews",
|
11 |
-
"version": "v1.1.
|
12 |
"source": {
|
13 |
"type": "git",
|
14 |
"url": "https://github.com/publishpress/wordpress-reviews.git",
|
15 |
-
"reference": "
|
16 |
},
|
17 |
"dist": {
|
18 |
"type": "zip",
|
19 |
-
"url": "https://api.github.com/repos/publishpress/wordpress-reviews/zipball/
|
20 |
-
"reference": "
|
21 |
"shasum": ""
|
22 |
},
|
23 |
"require": {
|
@@ -70,12 +70,178 @@
|
|
70 |
],
|
71 |
"support": {
|
72 |
"issues": "https://github.com/publishpress/wordpress-reviews/issues",
|
73 |
-
"source": "https://github.com/publishpress/wordpress-reviews/tree/v1.1.
|
74 |
},
|
75 |
-
"time": "2021-12-
|
76 |
}
|
77 |
],
|
78 |
"packages-dev": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
{
|
80 |
"name": "antecedent/patchwork",
|
81 |
"version": "2.1.17",
|
@@ -245,23 +411,23 @@
|
|
245 |
},
|
246 |
{
|
247 |
"name": "codeception/codeception",
|
248 |
-
"version": "4.1.
|
249 |
"source": {
|
250 |
"type": "git",
|
251 |
"url": "https://github.com/Codeception/Codeception.git",
|
252 |
-
"reference": "
|
253 |
},
|
254 |
"dist": {
|
255 |
"type": "zip",
|
256 |
-
"url": "https://api.github.com/repos/Codeception/Codeception/zipball/
|
257 |
-
"reference": "
|
258 |
"shasum": ""
|
259 |
},
|
260 |
"require": {
|
261 |
"behat/gherkin": "^4.4.0",
|
262 |
-
"codeception/lib-asserts": "^1.0",
|
263 |
"codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.1.1 | ^9.0",
|
264 |
-
"codeception/stub": "^2.0 | ^3.0",
|
265 |
"ext-curl": "*",
|
266 |
"ext-json": "*",
|
267 |
"ext-mbstring": "*",
|
@@ -274,11 +440,11 @@
|
|
274 |
"symfony/yaml": ">=2.7 <6.0"
|
275 |
},
|
276 |
"require-dev": {
|
277 |
-
"codeception/module-asserts": "1.*@dev",
|
278 |
-
"codeception/module-cli": "1.*@dev",
|
279 |
-
"codeception/module-db": "1.*@dev",
|
280 |
-
"codeception/module-filesystem": "1.*@dev",
|
281 |
-
"codeception/module-phpbrowser": "1.*@dev",
|
282 |
"codeception/specify": "~0.3",
|
283 |
"codeception/util-universalframework": "*@dev",
|
284 |
"monolog/monolog": "~1.8",
|
@@ -304,7 +470,10 @@
|
|
304 |
"psr-4": {
|
305 |
"Codeception\\": "src/Codeception",
|
306 |
"Codeception\\Extension\\": "ext"
|
307 |
-
}
|
|
|
|
|
|
|
308 |
},
|
309 |
"notification-url": "https://packagist.org/downloads/",
|
310 |
"license": [
|
@@ -328,7 +497,7 @@
|
|
328 |
],
|
329 |
"support": {
|
330 |
"issues": "https://github.com/Codeception/Codeception/issues",
|
331 |
-
"source": "https://github.com/Codeception/Codeception/tree/4.1.
|
332 |
},
|
333 |
"funding": [
|
334 |
{
|
@@ -336,7 +505,7 @@
|
|
336 |
"type": "open_collective"
|
337 |
}
|
338 |
],
|
339 |
-
"time": "2021-
|
340 |
},
|
341 |
{
|
342 |
"name": "codeception/lib-asserts",
|
@@ -774,6 +943,50 @@
|
|
774 |
},
|
775 |
"time": "2021-11-18T18:58:15+00:00"
|
776 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
777 |
{
|
778 |
"name": "codeception/module-webdriver",
|
779 |
"version": "1.4.0",
|
@@ -881,21 +1094,25 @@
|
|
881 |
},
|
882 |
{
|
883 |
"name": "codeception/stub",
|
884 |
-
"version": "
|
885 |
"source": {
|
886 |
"type": "git",
|
887 |
"url": "https://github.com/Codeception/Stub.git",
|
888 |
-
"reference": "
|
889 |
},
|
890 |
"dist": {
|
891 |
"type": "zip",
|
892 |
-
"url": "https://api.github.com/repos/Codeception/Stub/zipball/
|
893 |
-
"reference": "
|
894 |
"shasum": ""
|
895 |
},
|
896 |
"require": {
|
|
|
897 |
"phpunit/phpunit": "^8.4 | ^9.0"
|
898 |
},
|
|
|
|
|
|
|
899 |
"type": "library",
|
900 |
"autoload": {
|
901 |
"psr-4": {
|
@@ -909,9 +1126,9 @@
|
|
909 |
"description": "Flexible Stub wrapper for PHPUnit's Mock Builder",
|
910 |
"support": {
|
911 |
"issues": "https://github.com/Codeception/Stub/issues",
|
912 |
-
"source": "https://github.com/Codeception/Stub/tree/
|
913 |
},
|
914 |
-
"time": "
|
915 |
},
|
916 |
{
|
917 |
"name": "codeception/util-universalframework",
|
@@ -950,18 +1167,162 @@
|
|
950 |
},
|
951 |
"time": "2019-09-22T06:06:49+00:00"
|
952 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
953 |
{
|
954 |
"name": "composer/semver",
|
955 |
-
"version": "3.2.
|
956 |
"source": {
|
957 |
"type": "git",
|
958 |
"url": "https://github.com/composer/semver.git",
|
959 |
-
"reference": "
|
960 |
},
|
961 |
"dist": {
|
962 |
"type": "zip",
|
963 |
-
"url": "https://api.github.com/repos/composer/semver/zipball/
|
964 |
-
"reference": "
|
965 |
"shasum": ""
|
966 |
},
|
967 |
"require": {
|
@@ -1013,7 +1374,7 @@
|
|
1013 |
"support": {
|
1014 |
"irc": "irc://irc.freenode.org/composer",
|
1015 |
"issues": "https://github.com/composer/semver/issues",
|
1016 |
-
"source": "https://github.com/composer/semver/tree/3.2.
|
1017 |
},
|
1018 |
"funding": [
|
1019 |
{
|
@@ -1029,29 +1390,31 @@
|
|
1029 |
"type": "tidelift"
|
1030 |
}
|
1031 |
],
|
1032 |
-
"time": "
|
1033 |
},
|
1034 |
{
|
1035 |
"name": "composer/xdebug-handler",
|
1036 |
-
"version": "2.0.
|
1037 |
"source": {
|
1038 |
"type": "git",
|
1039 |
"url": "https://github.com/composer/xdebug-handler.git",
|
1040 |
-
"reference": "
|
1041 |
},
|
1042 |
"dist": {
|
1043 |
"type": "zip",
|
1044 |
-
"url": "https://api.github.com/repos/composer/xdebug-handler/zipball/
|
1045 |
-
"reference": "
|
1046 |
"shasum": ""
|
1047 |
},
|
1048 |
"require": {
|
|
|
1049 |
"php": "^5.3.2 || ^7.0 || ^8.0",
|
1050 |
"psr/log": "^1 || ^2 || ^3"
|
1051 |
},
|
1052 |
"require-dev": {
|
1053 |
-
"phpstan/phpstan": "^0
|
1054 |
-
"
|
|
|
1055 |
},
|
1056 |
"type": "library",
|
1057 |
"autoload": {
|
@@ -1077,7 +1440,7 @@
|
|
1077 |
"support": {
|
1078 |
"irc": "irc://irc.freenode.org/composer",
|
1079 |
"issues": "https://github.com/composer/xdebug-handler/issues",
|
1080 |
-
"source": "https://github.com/composer/xdebug-handler/tree/2.0.
|
1081 |
},
|
1082 |
"funding": [
|
1083 |
{
|
@@ -1093,31 +1456,32 @@
|
|
1093 |
"type": "tidelift"
|
1094 |
}
|
1095 |
],
|
1096 |
-
"time": "
|
1097 |
},
|
1098 |
{
|
1099 |
"name": "consolidation/annotated-command",
|
1100 |
-
"version": "4.
|
1101 |
"source": {
|
1102 |
"type": "git",
|
1103 |
"url": "https://github.com/consolidation/annotated-command.git",
|
1104 |
-
"reference": "
|
1105 |
},
|
1106 |
"dist": {
|
1107 |
"type": "zip",
|
1108 |
-
"url": "https://api.github.com/repos/consolidation/annotated-command/zipball/
|
1109 |
-
"reference": "
|
1110 |
"shasum": ""
|
1111 |
},
|
1112 |
"require": {
|
1113 |
"consolidation/output-formatters": "^4.1.1",
|
1114 |
"php": ">=7.1.3",
|
1115 |
"psr/log": "^1|^2",
|
1116 |
-
"symfony/console": "^4.4.8
|
1117 |
-
"symfony/event-dispatcher": "^4.4.8|^5",
|
1118 |
-
"symfony/finder": "^4.4.8|^5"
|
1119 |
},
|
1120 |
"require-dev": {
|
|
|
1121 |
"phpunit/phpunit": "^7.5.20 || ^8 || ^9",
|
1122 |
"squizlabs/php_codesniffer": "^3",
|
1123 |
"yoast/phpunit-polyfills": "^0.2.0"
|
@@ -1146,22 +1510,22 @@
|
|
1146 |
"description": "Initialize Symfony Console commands from annotated command class methods.",
|
1147 |
"support": {
|
1148 |
"issues": "https://github.com/consolidation/annotated-command/issues",
|
1149 |
-
"source": "https://github.com/consolidation/annotated-command/tree/4.
|
1150 |
},
|
1151 |
-
"time": "2021-
|
1152 |
},
|
1153 |
{
|
1154 |
"name": "consolidation/config",
|
1155 |
-
"version": "2.0.
|
1156 |
"source": {
|
1157 |
"type": "git",
|
1158 |
"url": "https://github.com/consolidation/config.git",
|
1159 |
-
"reference": "
|
1160 |
},
|
1161 |
"dist": {
|
1162 |
"type": "zip",
|
1163 |
-
"url": "https://api.github.com/repos/consolidation/config/zipball/
|
1164 |
-
"reference": "
|
1165 |
"shasum": ""
|
1166 |
},
|
1167 |
"require": {
|
@@ -1206,28 +1570,28 @@
|
|
1206 |
"description": "Provide configuration services for a commandline tool.",
|
1207 |
"support": {
|
1208 |
"issues": "https://github.com/consolidation/config/issues",
|
1209 |
-
"source": "https://github.com/consolidation/config/tree/2.0.
|
1210 |
},
|
1211 |
-
"time": "
|
1212 |
},
|
1213 |
{
|
1214 |
"name": "consolidation/log",
|
1215 |
-
"version": "2.0.
|
1216 |
"source": {
|
1217 |
"type": "git",
|
1218 |
"url": "https://github.com/consolidation/log.git",
|
1219 |
-
"reference": "
|
1220 |
},
|
1221 |
"dist": {
|
1222 |
"type": "zip",
|
1223 |
-
"url": "https://api.github.com/repos/consolidation/log/zipball/
|
1224 |
-
"reference": "
|
1225 |
"shasum": ""
|
1226 |
},
|
1227 |
"require": {
|
1228 |
"php": ">=7.1.3",
|
1229 |
"psr/log": "^1.0",
|
1230 |
-
"symfony/console": "^4
|
1231 |
},
|
1232 |
"require-dev": {
|
1233 |
"phpunit/phpunit": ">=7.5.20",
|
@@ -1258,36 +1622,36 @@
|
|
1258 |
"description": "Improved Psr-3 / Psr\\Log logger based on Symfony Console components.",
|
1259 |
"support": {
|
1260 |
"issues": "https://github.com/consolidation/log/issues",
|
1261 |
-
"source": "https://github.com/consolidation/log/tree/2.0.
|
1262 |
},
|
1263 |
-
"time": "
|
1264 |
},
|
1265 |
{
|
1266 |
"name": "consolidation/output-formatters",
|
1267 |
-
"version": "4.1
|
1268 |
"source": {
|
1269 |
"type": "git",
|
1270 |
"url": "https://github.com/consolidation/output-formatters.git",
|
1271 |
-
"reference": "
|
1272 |
},
|
1273 |
"dist": {
|
1274 |
"type": "zip",
|
1275 |
-
"url": "https://api.github.com/repos/consolidation/output-formatters/zipball/
|
1276 |
-
"reference": "
|
1277 |
"shasum": ""
|
1278 |
},
|
1279 |
"require": {
|
1280 |
"dflydev/dot-access-data": "^1.1.0",
|
1281 |
"php": ">=7.1.3",
|
1282 |
-
"symfony/console": "^4|^5",
|
1283 |
-
"symfony/finder": "^4|^5"
|
1284 |
},
|
1285 |
"require-dev": {
|
1286 |
"php-coveralls/php-coveralls": "^2.4.2",
|
1287 |
"phpunit/phpunit": ">=7",
|
1288 |
"squizlabs/php_codesniffer": "^3",
|
1289 |
-
"symfony/var-dumper": "^4",
|
1290 |
-
"symfony/yaml": "^4",
|
1291 |
"yoast/phpunit-polyfills": "^0.2.0"
|
1292 |
},
|
1293 |
"suggest": {
|
@@ -1317,38 +1681,38 @@
|
|
1317 |
"description": "Format text by applying transformations provided by plug-in formatters.",
|
1318 |
"support": {
|
1319 |
"issues": "https://github.com/consolidation/output-formatters/issues",
|
1320 |
-
"source": "https://github.com/consolidation/output-formatters/tree/4.1
|
1321 |
},
|
1322 |
-
"time": "
|
1323 |
},
|
1324 |
{
|
1325 |
"name": "consolidation/robo",
|
1326 |
-
"version": "3.0.
|
1327 |
"source": {
|
1328 |
"type": "git",
|
1329 |
-
"url": "https://github.com/consolidation/
|
1330 |
-
"reference": "
|
1331 |
},
|
1332 |
"dist": {
|
1333 |
"type": "zip",
|
1334 |
-
"url": "https://api.github.com/repos/consolidation/
|
1335 |
-
"reference": "
|
1336 |
"shasum": ""
|
1337 |
},
|
1338 |
"require": {
|
1339 |
"consolidation/annotated-command": "^4.3",
|
1340 |
-
"consolidation/config": "^1.2.1
|
1341 |
-
"consolidation/log": "^1.1.1
|
1342 |
"consolidation/output-formatters": "^4.1.2",
|
1343 |
"consolidation/self-update": "^2.0",
|
1344 |
"league/container": "^3.3.1",
|
1345 |
"php": ">=7.1.3",
|
1346 |
-
"symfony/console": "^4.4.19 || ^5",
|
1347 |
-
"symfony/event-dispatcher": "^4.4.19 || ^5",
|
1348 |
-
"symfony/filesystem": "^4.4.9 || ^5",
|
1349 |
-
"symfony/finder": "^4.4.9 || ^5",
|
1350 |
"symfony/process": "^4.4.9 || ^5",
|
1351 |
-
"symfony/yaml": "^4.4 || ^5"
|
1352 |
},
|
1353 |
"conflict": {
|
1354 |
"codegyre/robo": "*"
|
@@ -1357,7 +1721,7 @@
|
|
1357 |
"natxet/cssmin": "3.0.4",
|
1358 |
"patchwork/jsqueeze": "^2",
|
1359 |
"pear/archive_tar": "^1.4.4",
|
1360 |
-
"phpunit/phpunit": "^7.5.20
|
1361 |
"squizlabs/php_codesniffer": "^3.6",
|
1362 |
"yoast/phpunit-polyfills": "^0.2.0"
|
1363 |
},
|
@@ -1415,30 +1779,30 @@
|
|
1415 |
],
|
1416 |
"description": "Modern task runner",
|
1417 |
"support": {
|
1418 |
-
"issues": "https://github.com/consolidation/
|
1419 |
-
"source": "https://github.com/consolidation/
|
1420 |
},
|
1421 |
-
"time": "2021-
|
1422 |
},
|
1423 |
{
|
1424 |
"name": "consolidation/self-update",
|
1425 |
-
"version": "2.0.
|
1426 |
"source": {
|
1427 |
"type": "git",
|
1428 |
"url": "https://github.com/consolidation/self-update.git",
|
1429 |
-
"reference": "
|
1430 |
},
|
1431 |
"dist": {
|
1432 |
"type": "zip",
|
1433 |
-
"url": "https://api.github.com/repos/consolidation/self-update/zipball/
|
1434 |
-
"reference": "
|
1435 |
"shasum": ""
|
1436 |
},
|
1437 |
"require": {
|
1438 |
"composer/semver": "^3.2",
|
1439 |
"php": ">=5.5.0",
|
1440 |
-
"symfony/console": "^2.8
|
1441 |
-
"symfony/filesystem": "^2.5
|
1442 |
},
|
1443 |
"bin": [
|
1444 |
"scripts/release"
|
@@ -1471,9 +1835,9 @@
|
|
1471 |
"description": "Provides a self:update command for Symfony Console applications.",
|
1472 |
"support": {
|
1473 |
"issues": "https://github.com/consolidation/self-update/issues",
|
1474 |
-
"source": "https://github.com/consolidation/self-update/tree/2.0.
|
1475 |
},
|
1476 |
-
"time": "2021-
|
1477 |
},
|
1478 |
{
|
1479 |
"name": "dealerdirect/phpcodesniffer-composer-installer",
|
@@ -1651,6 +2015,115 @@
|
|
1651 |
},
|
1652 |
"time": "2019-09-10T21:36:25+00:00"
|
1653 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1654 |
{
|
1655 |
"name": "doctrine/inflector",
|
1656 |
"version": "2.0.4",
|
@@ -1792,24 +2265,294 @@
|
|
1792 |
"instantiate"
|
1793 |
],
|
1794 |
"support": {
|
1795 |
-
"issues": "https://github.com/doctrine/instantiator/issues",
|
1796 |
-
"source": "https://github.com/doctrine/instantiator/tree/1.4.0"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1797 |
},
|
1798 |
"funding": [
|
1799 |
{
|
1800 |
-
"url": "https://
|
1801 |
-
"type": "
|
1802 |
-
},
|
1803 |
-
{
|
1804 |
-
"url": "https://www.patreon.com/phpdoctrine",
|
1805 |
-
"type": "patreon"
|
1806 |
-
},
|
1807 |
-
{
|
1808 |
-
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
|
1809 |
-
"type": "tidelift"
|
1810 |
}
|
1811 |
],
|
1812 |
-
"time": "
|
1813 |
},
|
1814 |
{
|
1815 |
"name": "gettext/gettext",
|
@@ -2019,16 +2762,16 @@
|
|
2019 |
},
|
2020 |
{
|
2021 |
"name": "guzzlehttp/guzzle",
|
2022 |
-
"version": "7.4.
|
2023 |
"source": {
|
2024 |
"type": "git",
|
2025 |
"url": "https://github.com/guzzle/guzzle.git",
|
2026 |
-
"reference": "
|
2027 |
},
|
2028 |
"dist": {
|
2029 |
"type": "zip",
|
2030 |
-
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/
|
2031 |
-
"reference": "
|
2032 |
"shasum": ""
|
2033 |
},
|
2034 |
"require": {
|
@@ -2037,7 +2780,7 @@
|
|
2037 |
"guzzlehttp/psr7": "^1.8.3 || ^2.1",
|
2038 |
"php": "^7.2.5 || ^8.0",
|
2039 |
"psr/http-client": "^1.0",
|
2040 |
-
"symfony/deprecation-contracts": "^2.2"
|
2041 |
},
|
2042 |
"provide": {
|
2043 |
"psr/http-client-implementation": "1.0"
|
@@ -2123,7 +2866,7 @@
|
|
2123 |
],
|
2124 |
"support": {
|
2125 |
"issues": "https://github.com/guzzle/guzzle/issues",
|
2126 |
-
"source": "https://github.com/guzzle/guzzle/tree/7.4.
|
2127 |
},
|
2128 |
"funding": [
|
2129 |
{
|
@@ -2139,7 +2882,7 @@
|
|
2139 |
"type": "tidelift"
|
2140 |
}
|
2141 |
],
|
2142 |
-
"time": "2021-
|
2143 |
},
|
2144 |
{
|
2145 |
"name": "guzzlehttp/promises",
|
@@ -2342,16 +3085,16 @@
|
|
2342 |
},
|
2343 |
{
|
2344 |
"name": "illuminate/collections",
|
2345 |
-
"version": "v8.
|
2346 |
"source": {
|
2347 |
"type": "git",
|
2348 |
"url": "https://github.com/illuminate/collections.git",
|
2349 |
-
"reference": "
|
2350 |
},
|
2351 |
"dist": {
|
2352 |
"type": "zip",
|
2353 |
-
"url": "https://api.github.com/repos/illuminate/collections/zipball/
|
2354 |
-
"reference": "
|
2355 |
"shasum": ""
|
2356 |
},
|
2357 |
"require": {
|
@@ -2392,20 +3135,20 @@
|
|
2392 |
"issues": "https://github.com/laravel/framework/issues",
|
2393 |
"source": "https://github.com/laravel/framework"
|
2394 |
},
|
2395 |
-
"time": "
|
2396 |
},
|
2397 |
{
|
2398 |
"name": "illuminate/contracts",
|
2399 |
-
"version": "v8.
|
2400 |
"source": {
|
2401 |
"type": "git",
|
2402 |
"url": "https://github.com/illuminate/contracts.git",
|
2403 |
-
"reference": "
|
2404 |
},
|
2405 |
"dist": {
|
2406 |
"type": "zip",
|
2407 |
-
"url": "https://api.github.com/repos/illuminate/contracts/zipball/
|
2408 |
-
"reference": "
|
2409 |
"shasum": ""
|
2410 |
},
|
2411 |
"require": {
|
@@ -2440,11 +3183,11 @@
|
|
2440 |
"issues": "https://github.com/laravel/framework/issues",
|
2441 |
"source": "https://github.com/laravel/framework"
|
2442 |
},
|
2443 |
-
"time": "2021-
|
2444 |
},
|
2445 |
{
|
2446 |
"name": "illuminate/macroable",
|
2447 |
-
"version": "v8.
|
2448 |
"source": {
|
2449 |
"type": "git",
|
2450 |
"url": "https://github.com/illuminate/macroable.git",
|
@@ -2490,16 +3233,16 @@
|
|
2490 |
},
|
2491 |
{
|
2492 |
"name": "illuminate/support",
|
2493 |
-
"version": "v8.
|
2494 |
"source": {
|
2495 |
"type": "git",
|
2496 |
"url": "https://github.com/illuminate/support.git",
|
2497 |
-
"reference": "
|
2498 |
},
|
2499 |
"dist": {
|
2500 |
"type": "zip",
|
2501 |
-
"url": "https://api.github.com/repos/illuminate/support/zipball/
|
2502 |
-
"reference": "
|
2503 |
"shasum": ""
|
2504 |
},
|
2505 |
"require": {
|
@@ -2554,7 +3297,7 @@
|
|
2554 |
"issues": "https://github.com/laravel/framework/issues",
|
2555 |
"source": "https://github.com/laravel/framework"
|
2556 |
},
|
2557 |
-
"time": "
|
2558 |
},
|
2559 |
{
|
2560 |
"name": "justinrainbow/json-schema",
|
@@ -2707,16 +3450,16 @@
|
|
2707 |
},
|
2708 |
{
|
2709 |
"name": "lucatume/wp-browser",
|
2710 |
-
"version": "3.0.
|
2711 |
"source": {
|
2712 |
"type": "git",
|
2713 |
"url": "https://github.com/lucatume/wp-browser.git",
|
2714 |
-
"reference": "
|
2715 |
},
|
2716 |
"dist": {
|
2717 |
"type": "zip",
|
2718 |
-
"url": "https://api.github.com/repos/lucatume/wp-browser/zipball/
|
2719 |
-
"reference": "
|
2720 |
"shasum": ""
|
2721 |
},
|
2722 |
"require": {
|
@@ -2734,6 +3477,15 @@
|
|
2734 |
"wp-cli/wp-cli": ">=2.0 <3.0.0",
|
2735 |
"zordius/lightncandy": "^1.2"
|
2736 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2737 |
"require-dev": {
|
2738 |
"erusev/parsedown": "^1.7",
|
2739 |
"gumlet/php-image-resize": "^1.6",
|
@@ -2744,13 +3496,13 @@
|
|
2744 |
"wp-cli/wp-cli-bundle": "*"
|
2745 |
},
|
2746 |
"suggest": {
|
2747 |
-
"codeception/module-asserts": "Codeception 4.0 compatibility.",
|
2748 |
-
"codeception/module-cli": "Codeception 4.0 compatibility; required by the WPCLI module.",
|
2749 |
-
"codeception/module-db": "Codeception 4.0 compatibility; required by the WPDb module.",
|
2750 |
-
"codeception/module-filesystem": "Codeception 4.0 compatibility; required by the WPFilesystem module.",
|
2751 |
-
"codeception/module-phpbrowser": "Codeception 4.0 compatibility; required by the WPBrowser module.",
|
2752 |
-
"codeception/module-webdriver": "Codeception 4.0 compatibility; required by the WPWebDriver module.",
|
2753 |
-
"codeception/util-universalframework": "Codeception 4.0 compatibility; required by the WordPress framework module.",
|
2754 |
"gumlet/php-image-resize": "To handle runtime image modification in the WPDb::haveAttachmentInDatabase method.",
|
2755 |
"vlucas/phpdotenv:^4.0": "To manage more complex environment file based configuration of the suites."
|
2756 |
},
|
@@ -2788,7 +3540,7 @@
|
|
2788 |
],
|
2789 |
"support": {
|
2790 |
"issues": "https://github.com/lucatume/wp-browser/issues",
|
2791 |
-
"source": "https://github.com/lucatume/wp-browser/tree/3.0.
|
2792 |
},
|
2793 |
"funding": [
|
2794 |
{
|
@@ -2796,23 +3548,24 @@
|
|
2796 |
"type": "github"
|
2797 |
}
|
2798 |
],
|
2799 |
-
"time": "
|
2800 |
},
|
2801 |
{
|
2802 |
"name": "mck89/peast",
|
2803 |
-
"version": "v1.13.
|
2804 |
"source": {
|
2805 |
"type": "git",
|
2806 |
"url": "https://github.com/mck89/peast.git",
|
2807 |
-
"reference": "
|
2808 |
},
|
2809 |
"dist": {
|
2810 |
"type": "zip",
|
2811 |
-
"url": "https://api.github.com/repos/mck89/peast/zipball/
|
2812 |
-
"reference": "
|
2813 |
"shasum": ""
|
2814 |
},
|
2815 |
"require": {
|
|
|
2816 |
"php": ">=5.4.0"
|
2817 |
},
|
2818 |
"require-dev": {
|
@@ -2821,7 +3574,7 @@
|
|
2821 |
"type": "library",
|
2822 |
"extra": {
|
2823 |
"branch-alias": {
|
2824 |
-
"dev-master": "1.13.
|
2825 |
}
|
2826 |
},
|
2827 |
"autoload": {
|
@@ -2843,9 +3596,9 @@
|
|
2843 |
"description": "Peast is PHP library that generates AST for JavaScript code",
|
2844 |
"support": {
|
2845 |
"issues": "https://github.com/mck89/peast/issues",
|
2846 |
-
"source": "https://github.com/mck89/peast/tree/v1.13.
|
2847 |
},
|
2848 |
-
"time": "2021-
|
2849 |
},
|
2850 |
{
|
2851 |
"name": "mikehaertl/php-shellcommand",
|
@@ -2963,16 +3716,16 @@
|
|
2963 |
},
|
2964 |
{
|
2965 |
"name": "mustache/mustache",
|
2966 |
-
"version": "v2.
|
2967 |
"source": {
|
2968 |
"type": "git",
|
2969 |
"url": "https://github.com/bobthecow/mustache.php.git",
|
2970 |
-
"reference": "
|
2971 |
},
|
2972 |
"dist": {
|
2973 |
"type": "zip",
|
2974 |
-
"url": "https://api.github.com/repos/bobthecow/mustache.php/zipball/
|
2975 |
-
"reference": "
|
2976 |
"shasum": ""
|
2977 |
},
|
2978 |
"require": {
|
@@ -3007,9 +3760,9 @@
|
|
3007 |
],
|
3008 |
"support": {
|
3009 |
"issues": "https://github.com/bobthecow/mustache.php/issues",
|
3010 |
-
"source": "https://github.com/bobthecow/mustache.php/tree/
|
3011 |
},
|
3012 |
-
"time": "
|
3013 |
},
|
3014 |
{
|
3015 |
"name": "myclabs/deep-copy",
|
@@ -3181,16 +3934,16 @@
|
|
3181 |
},
|
3182 |
{
|
3183 |
"name": "nesbot/carbon",
|
3184 |
-
"version": "2.
|
3185 |
"source": {
|
3186 |
"type": "git",
|
3187 |
"url": "https://github.com/briannesbitt/Carbon.git",
|
3188 |
-
"reference": "
|
3189 |
},
|
3190 |
"dist": {
|
3191 |
"type": "zip",
|
3192 |
-
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/
|
3193 |
-
"reference": "
|
3194 |
"shasum": ""
|
3195 |
},
|
3196 |
"require": {
|
@@ -3198,7 +3951,7 @@
|
|
3198 |
"php": "^7.1.8 || ^8.0",
|
3199 |
"symfony/polyfill-mbstring": "^1.0",
|
3200 |
"symfony/polyfill-php80": "^1.16",
|
3201 |
-
"symfony/translation": "^3.4 || ^4.0 || ^5.0"
|
3202 |
},
|
3203 |
"require-dev": {
|
3204 |
"doctrine/dbal": "^2.0 || ^3.0",
|
@@ -3259,6 +4012,7 @@
|
|
3259 |
"time"
|
3260 |
],
|
3261 |
"support": {
|
|
|
3262 |
"issues": "https://github.com/briannesbitt/Carbon/issues",
|
3263 |
"source": "https://github.com/briannesbitt/Carbon"
|
3264 |
},
|
@@ -3272,7 +4026,167 @@
|
|
3272 |
"type": "tidelift"
|
3273 |
}
|
3274 |
],
|
3275 |
-
"time": "2021-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3276 |
},
|
3277 |
{
|
3278 |
"name": "overtrue/phplint",
|
@@ -3561,6 +4475,58 @@
|
|
3561 |
},
|
3562 |
"time": "2018-07-08T19:19:57+00:00"
|
3563 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3564 |
{
|
3565 |
"name": "php-webdriver/webdriver",
|
3566 |
"version": "1.12.0",
|
@@ -3800,16 +4766,16 @@
|
|
3800 |
},
|
3801 |
{
|
3802 |
"name": "phpdocumentor/type-resolver",
|
3803 |
-
"version": "1.
|
3804 |
"source": {
|
3805 |
"type": "git",
|
3806 |
"url": "https://github.com/phpDocumentor/TypeResolver.git",
|
3807 |
-
"reference": "
|
3808 |
},
|
3809 |
"dist": {
|
3810 |
"type": "zip",
|
3811 |
-
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/
|
3812 |
-
"reference": "
|
3813 |
"shasum": ""
|
3814 |
},
|
3815 |
"require": {
|
@@ -3844,22 +4810,22 @@
|
|
3844 |
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
|
3845 |
"support": {
|
3846 |
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
|
3847 |
-
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.
|
3848 |
},
|
3849 |
-
"time": "
|
3850 |
},
|
3851 |
{
|
3852 |
"name": "phpmd/phpmd",
|
3853 |
-
"version": "2.11.
|
3854 |
"source": {
|
3855 |
"type": "git",
|
3856 |
"url": "https://github.com/phpmd/phpmd.git",
|
3857 |
-
"reference": "
|
3858 |
},
|
3859 |
"dist": {
|
3860 |
"type": "zip",
|
3861 |
-
"url": "https://api.github.com/repos/phpmd/phpmd/zipball/
|
3862 |
-
"reference": "
|
3863 |
"shasum": ""
|
3864 |
},
|
3865 |
"require": {
|
@@ -3921,7 +4887,7 @@
|
|
3921 |
"support": {
|
3922 |
"irc": "irc://irc.freenode.org/phpmd",
|
3923 |
"issues": "https://github.com/phpmd/phpmd/issues",
|
3924 |
-
"source": "https://github.com/phpmd/phpmd/tree/2.11.
|
3925 |
},
|
3926 |
"funding": [
|
3927 |
{
|
@@ -3929,20 +4895,20 @@
|
|
3929 |
"type": "tidelift"
|
3930 |
}
|
3931 |
],
|
3932 |
-
"time": "2021-
|
3933 |
},
|
3934 |
{
|
3935 |
"name": "phpspec/prophecy",
|
3936 |
-
"version": "
|
3937 |
"source": {
|
3938 |
"type": "git",
|
3939 |
"url": "https://github.com/phpspec/prophecy.git",
|
3940 |
-
"reference": "
|
3941 |
},
|
3942 |
"dist": {
|
3943 |
"type": "zip",
|
3944 |
-
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/
|
3945 |
-
"reference": "
|
3946 |
"shasum": ""
|
3947 |
},
|
3948 |
"require": {
|
@@ -3994,9 +4960,73 @@
|
|
3994 |
],
|
3995 |
"support": {
|
3996 |
"issues": "https://github.com/phpspec/prophecy/issues",
|
3997 |
-
"source": "https://github.com/phpspec/prophecy/tree/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3998 |
},
|
3999 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4000 |
},
|
4001 |
{
|
4002 |
"name": "phpunit/php-code-coverage",
|
@@ -4074,16 +5104,16 @@
|
|
4074 |
},
|
4075 |
{
|
4076 |
"name": "phpunit/php-file-iterator",
|
4077 |
-
"version": "3.0.
|
4078 |
"source": {
|
4079 |
"type": "git",
|
4080 |
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
|
4081 |
-
"reference": "
|
4082 |
},
|
4083 |
"dist": {
|
4084 |
"type": "zip",
|
4085 |
-
"url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/
|
4086 |
-
"reference": "
|
4087 |
"shasum": ""
|
4088 |
},
|
4089 |
"require": {
|
@@ -4122,7 +5152,7 @@
|
|
4122 |
],
|
4123 |
"support": {
|
4124 |
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
|
4125 |
-
"source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.
|
4126 |
},
|
4127 |
"funding": [
|
4128 |
{
|
@@ -4130,7 +5160,7 @@
|
|
4130 |
"type": "github"
|
4131 |
}
|
4132 |
],
|
4133 |
-
"time": "
|
4134 |
},
|
4135 |
{
|
4136 |
"name": "phpunit/php-invoker",
|
@@ -4452,28 +5482,77 @@
|
|
4452 |
"role": "lead"
|
4453 |
}
|
4454 |
],
|
4455 |
-
"description": "The PHP Unit Testing framework.",
|
4456 |
-
"homepage": "https://phpunit.de/",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4457 |
"keywords": [
|
4458 |
-
"
|
4459 |
-
"
|
4460 |
-
"
|
4461 |
],
|
4462 |
"support": {
|
4463 |
-
"
|
4464 |
-
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.1.5"
|
4465 |
},
|
4466 |
-
"
|
4467 |
-
{
|
4468 |
-
"url": "https://phpunit.de/donate.html",
|
4469 |
-
"type": "custom"
|
4470 |
-
},
|
4471 |
-
{
|
4472 |
-
"url": "https://github.com/sebastianbergmann",
|
4473 |
-
"type": "github"
|
4474 |
-
}
|
4475 |
-
],
|
4476 |
-
"time": "2020-05-22T13:54:05+00:00"
|
4477 |
},
|
4478 |
{
|
4479 |
"name": "psr/container",
|
@@ -5938,16 +7017,16 @@
|
|
5938 |
},
|
5939 |
{
|
5940 |
"name": "squizlabs/php_codesniffer",
|
5941 |
-
"version": "3.6.
|
5942 |
"source": {
|
5943 |
"type": "git",
|
5944 |
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
|
5945 |
-
"reference": "
|
5946 |
},
|
5947 |
"dist": {
|
5948 |
"type": "zip",
|
5949 |
-
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/
|
5950 |
-
"reference": "
|
5951 |
"shasum": ""
|
5952 |
},
|
5953 |
"require": {
|
@@ -5990,20 +7069,20 @@
|
|
5990 |
"source": "https://github.com/squizlabs/PHP_CodeSniffer",
|
5991 |
"wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
|
5992 |
},
|
5993 |
-
"time": "2021-
|
5994 |
},
|
5995 |
{
|
5996 |
"name": "symfony/browser-kit",
|
5997 |
-
"version": "v5.4.
|
5998 |
"source": {
|
5999 |
"type": "git",
|
6000 |
"url": "https://github.com/symfony/browser-kit.git",
|
6001 |
-
"reference": "
|
6002 |
},
|
6003 |
"dist": {
|
6004 |
"type": "zip",
|
6005 |
-
"url": "https://api.github.com/repos/symfony/browser-kit/zipball/
|
6006 |
-
"reference": "
|
6007 |
"shasum": ""
|
6008 |
},
|
6009 |
"require": {
|
@@ -6046,7 +7125,7 @@
|
|
6046 |
"description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically",
|
6047 |
"homepage": "https://symfony.com",
|
6048 |
"support": {
|
6049 |
-
"source": "https://github.com/symfony/browser-kit/tree/v5.4.
|
6050 |
},
|
6051 |
"funding": [
|
6052 |
{
|
@@ -6062,20 +7141,20 @@
|
|
6062 |
"type": "tidelift"
|
6063 |
}
|
6064 |
],
|
6065 |
-
"time": "2021-
|
6066 |
},
|
6067 |
{
|
6068 |
"name": "symfony/config",
|
6069 |
-
"version": "v5.4.
|
6070 |
"source": {
|
6071 |
"type": "git",
|
6072 |
"url": "https://github.com/symfony/config.git",
|
6073 |
-
"reference": "
|
6074 |
},
|
6075 |
"dist": {
|
6076 |
"type": "zip",
|
6077 |
-
"url": "https://api.github.com/repos/symfony/config/zipball/
|
6078 |
-
"reference": "
|
6079 |
"shasum": ""
|
6080 |
},
|
6081 |
"require": {
|
@@ -6125,7 +7204,7 @@
|
|
6125 |
"description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
|
6126 |
"homepage": "https://symfony.com",
|
6127 |
"support": {
|
6128 |
-
"source": "https://github.com/symfony/config/tree/v5.4.
|
6129 |
},
|
6130 |
"funding": [
|
6131 |
{
|
@@ -6141,31 +7220,33 @@
|
|
6141 |
"type": "tidelift"
|
6142 |
}
|
6143 |
],
|
6144 |
-
"time": "2021-
|
6145 |
},
|
6146 |
{
|
6147 |
"name": "symfony/console",
|
6148 |
-
"version": "v5.
|
6149 |
"source": {
|
6150 |
"type": "git",
|
6151 |
"url": "https://github.com/symfony/console.git",
|
6152 |
-
"reference": "
|
6153 |
},
|
6154 |
"dist": {
|
6155 |
"type": "zip",
|
6156 |
-
"url": "https://api.github.com/repos/symfony/console/zipball/
|
6157 |
-
"reference": "
|
6158 |
"shasum": ""
|
6159 |
},
|
6160 |
"require": {
|
6161 |
"php": ">=7.2.5",
|
|
|
6162 |
"symfony/polyfill-mbstring": "~1.0",
|
6163 |
-
"symfony/polyfill-php73": "^1.
|
6164 |
-
"symfony/polyfill-php80": "^1.
|
6165 |
-
"symfony/service-contracts": "^1.1|^2",
|
6166 |
-
"symfony/string": "^5.1"
|
6167 |
},
|
6168 |
"conflict": {
|
|
|
6169 |
"symfony/dependency-injection": "<4.4",
|
6170 |
"symfony/dotenv": "<5.1",
|
6171 |
"symfony/event-dispatcher": "<4.4",
|
@@ -6173,16 +7254,16 @@
|
|
6173 |
"symfony/process": "<4.4"
|
6174 |
},
|
6175 |
"provide": {
|
6176 |
-
"psr/log-implementation": "1.0"
|
6177 |
},
|
6178 |
"require-dev": {
|
6179 |
-
"psr/log": "
|
6180 |
-
"symfony/config": "^4.4|^5.0",
|
6181 |
-
"symfony/dependency-injection": "^4.4|^5.0",
|
6182 |
-
"symfony/event-dispatcher": "^4.4|^5.0",
|
6183 |
-
"symfony/lock": "^4.4|^5.0",
|
6184 |
-
"symfony/process": "^4.4|^5.0",
|
6185 |
-
"symfony/var-dumper": "^4.4|^5.0"
|
6186 |
},
|
6187 |
"suggest": {
|
6188 |
"psr/log": "For using the console logger",
|
@@ -6215,8 +7296,14 @@
|
|
6215 |
],
|
6216 |
"description": "Eases the creation of beautiful and testable command line interfaces",
|
6217 |
"homepage": "https://symfony.com",
|
|
|
|
|
|
|
|
|
|
|
|
|
6218 |
"support": {
|
6219 |
-
"source": "https://github.com/symfony/console/tree/v5.
|
6220 |
},
|
6221 |
"funding": [
|
6222 |
{
|
@@ -6232,20 +7319,20 @@
|
|
6232 |
"type": "tidelift"
|
6233 |
}
|
6234 |
],
|
6235 |
-
"time": "2021-
|
6236 |
},
|
6237 |
{
|
6238 |
"name": "symfony/css-selector",
|
6239 |
-
"version": "v5.4.
|
6240 |
"source": {
|
6241 |
"type": "git",
|
6242 |
"url": "https://github.com/symfony/css-selector.git",
|
6243 |
-
"reference": "
|
6244 |
},
|
6245 |
"dist": {
|
6246 |
"type": "zip",
|
6247 |
-
"url": "https://api.github.com/repos/symfony/css-selector/zipball/
|
6248 |
-
"reference": "
|
6249 |
"shasum": ""
|
6250 |
},
|
6251 |
"require": {
|
@@ -6282,7 +7369,7 @@
|
|
6282 |
"description": "Converts CSS selectors to XPath expressions",
|
6283 |
"homepage": "https://symfony.com",
|
6284 |
"support": {
|
6285 |
-
"source": "https://github.com/symfony/css-selector/tree/v5.4.
|
6286 |
},
|
6287 |
"funding": [
|
6288 |
{
|
@@ -6298,20 +7385,20 @@
|
|
6298 |
"type": "tidelift"
|
6299 |
}
|
6300 |
],
|
6301 |
-
"time": "2021-
|
6302 |
},
|
6303 |
{
|
6304 |
"name": "symfony/dependency-injection",
|
6305 |
-
"version": "v5.4.
|
6306 |
"source": {
|
6307 |
"type": "git",
|
6308 |
"url": "https://github.com/symfony/dependency-injection.git",
|
6309 |
-
"reference": "
|
6310 |
},
|
6311 |
"dist": {
|
6312 |
"type": "zip",
|
6313 |
-
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/
|
6314 |
-
"reference": "
|
6315 |
"shasum": ""
|
6316 |
},
|
6317 |
"require": {
|
@@ -6371,7 +7458,7 @@
|
|
6371 |
"description": "Allows you to standardize and centralize the way objects are constructed in your application",
|
6372 |
"homepage": "https://symfony.com",
|
6373 |
"support": {
|
6374 |
-
"source": "https://github.com/symfony/dependency-injection/tree/v5.4.
|
6375 |
},
|
6376 |
"funding": [
|
6377 |
{
|
@@ -6387,7 +7474,7 @@
|
|
6387 |
"type": "tidelift"
|
6388 |
}
|
6389 |
],
|
6390 |
-
"time": "2021-
|
6391 |
},
|
6392 |
{
|
6393 |
"name": "symfony/deprecation-contracts",
|
@@ -6458,16 +7545,16 @@
|
|
6458 |
},
|
6459 |
{
|
6460 |
"name": "symfony/dom-crawler",
|
6461 |
-
"version": "v5.4.
|
6462 |
"source": {
|
6463 |
"type": "git",
|
6464 |
"url": "https://github.com/symfony/dom-crawler.git",
|
6465 |
-
"reference": "
|
6466 |
},
|
6467 |
"dist": {
|
6468 |
"type": "zip",
|
6469 |
-
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/
|
6470 |
-
"reference": "
|
6471 |
"shasum": ""
|
6472 |
},
|
6473 |
"require": {
|
@@ -6513,7 +7600,7 @@
|
|
6513 |
"description": "Eases DOM navigation for HTML and XML documents",
|
6514 |
"homepage": "https://symfony.com",
|
6515 |
"support": {
|
6516 |
-
"source": "https://github.com/symfony/dom-crawler/tree/v5.4.
|
6517 |
},
|
6518 |
"funding": [
|
6519 |
{
|
@@ -6529,7 +7616,7 @@
|
|
6529 |
"type": "tidelift"
|
6530 |
}
|
6531 |
],
|
6532 |
-
"time": "2021-
|
6533 |
},
|
6534 |
{
|
6535 |
"name": "symfony/event-dispatcher",
|
@@ -6761,16 +7848,16 @@
|
|
6761 |
},
|
6762 |
{
|
6763 |
"name": "symfony/finder",
|
6764 |
-
"version": "v5.4.
|
6765 |
"source": {
|
6766 |
"type": "git",
|
6767 |
"url": "https://github.com/symfony/finder.git",
|
6768 |
-
"reference": "
|
6769 |
},
|
6770 |
"dist": {
|
6771 |
"type": "zip",
|
6772 |
-
"url": "https://api.github.com/repos/symfony/finder/zipball/
|
6773 |
-
"reference": "
|
6774 |
"shasum": ""
|
6775 |
},
|
6776 |
"require": {
|
@@ -6804,7 +7891,76 @@
|
|
6804 |
"description": "Finds files and directories via an intuitive fluent interface",
|
6805 |
"homepage": "https://symfony.com",
|
6806 |
"support": {
|
6807 |
-
"source": "https://github.com/symfony/finder/tree/v5.4.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6808 |
},
|
6809 |
"funding": [
|
6810 |
{
|
@@ -6820,25 +7976,28 @@
|
|
6820 |
"type": "tidelift"
|
6821 |
}
|
6822 |
],
|
6823 |
-
"time": "2021-11-
|
6824 |
},
|
6825 |
{
|
6826 |
"name": "symfony/polyfill-ctype",
|
6827 |
-
"version": "v1.
|
6828 |
"source": {
|
6829 |
"type": "git",
|
6830 |
"url": "https://github.com/symfony/polyfill-ctype.git",
|
6831 |
-
"reference": "
|
6832 |
},
|
6833 |
"dist": {
|
6834 |
"type": "zip",
|
6835 |
-
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/
|
6836 |
-
"reference": "
|
6837 |
"shasum": ""
|
6838 |
},
|
6839 |
"require": {
|
6840 |
"php": ">=7.1"
|
6841 |
},
|
|
|
|
|
|
|
6842 |
"suggest": {
|
6843 |
"ext-ctype": "For best performance"
|
6844 |
},
|
@@ -6883,7 +8042,7 @@
|
|
6883 |
"portable"
|
6884 |
],
|
6885 |
"support": {
|
6886 |
-
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.
|
6887 |
},
|
6888 |
"funding": [
|
6889 |
{
|
@@ -6899,20 +8058,20 @@
|
|
6899 |
"type": "tidelift"
|
6900 |
}
|
6901 |
],
|
6902 |
-
"time": "2021-
|
6903 |
},
|
6904 |
{
|
6905 |
"name": "symfony/polyfill-intl-grapheme",
|
6906 |
-
"version": "v1.
|
6907 |
"source": {
|
6908 |
"type": "git",
|
6909 |
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
|
6910 |
-
"reference": "
|
6911 |
},
|
6912 |
"dist": {
|
6913 |
"type": "zip",
|
6914 |
-
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/
|
6915 |
-
"reference": "
|
6916 |
"shasum": ""
|
6917 |
},
|
6918 |
"require": {
|
@@ -6964,7 +8123,7 @@
|
|
6964 |
"shim"
|
6965 |
],
|
6966 |
"support": {
|
6967 |
-
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.
|
6968 |
},
|
6969 |
"funding": [
|
6970 |
{
|
@@ -6980,11 +8139,11 @@
|
|
6980 |
"type": "tidelift"
|
6981 |
}
|
6982 |
],
|
6983 |
-
"time": "2021-
|
6984 |
},
|
6985 |
{
|
6986 |
"name": "symfony/polyfill-intl-normalizer",
|
6987 |
-
"version": "v1.
|
6988 |
"source": {
|
6989 |
"type": "git",
|
6990 |
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
@@ -7048,7 +8207,7 @@
|
|
7048 |
"shim"
|
7049 |
],
|
7050 |
"support": {
|
7051 |
-
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.
|
7052 |
},
|
7053 |
"funding": [
|
7054 |
{
|
@@ -7068,21 +8227,24 @@
|
|
7068 |
},
|
7069 |
{
|
7070 |
"name": "symfony/polyfill-mbstring",
|
7071 |
-
"version": "v1.
|
7072 |
"source": {
|
7073 |
"type": "git",
|
7074 |
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
7075 |
-
"reference": "
|
7076 |
},
|
7077 |
"dist": {
|
7078 |
"type": "zip",
|
7079 |
-
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/
|
7080 |
-
"reference": "
|
7081 |
"shasum": ""
|
7082 |
},
|
7083 |
"require": {
|
7084 |
"php": ">=7.1"
|
7085 |
},
|
|
|
|
|
|
|
7086 |
"suggest": {
|
7087 |
"ext-mbstring": "For best performance"
|
7088 |
},
|
@@ -7128,7 +8290,7 @@
|
|
7128 |
"shim"
|
7129 |
],
|
7130 |
"support": {
|
7131 |
-
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.
|
7132 |
},
|
7133 |
"funding": [
|
7134 |
{
|
@@ -7144,20 +8306,20 @@
|
|
7144 |
"type": "tidelift"
|
7145 |
}
|
7146 |
],
|
7147 |
-
"time": "2021-
|
7148 |
},
|
7149 |
{
|
7150 |
"name": "symfony/polyfill-php73",
|
7151 |
-
"version": "v1.
|
7152 |
"source": {
|
7153 |
"type": "git",
|
7154 |
"url": "https://github.com/symfony/polyfill-php73.git",
|
7155 |
-
"reference": "
|
7156 |
},
|
7157 |
"dist": {
|
7158 |
"type": "zip",
|
7159 |
-
"url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/
|
7160 |
-
"reference": "
|
7161 |
"shasum": ""
|
7162 |
},
|
7163 |
"require": {
|
@@ -7207,7 +8369,7 @@
|
|
7207 |
"shim"
|
7208 |
],
|
7209 |
"support": {
|
7210 |
-
"source": "https://github.com/symfony/polyfill-php73/tree/v1.
|
7211 |
},
|
7212 |
"funding": [
|
7213 |
{
|
@@ -7223,20 +8385,20 @@
|
|
7223 |
"type": "tidelift"
|
7224 |
}
|
7225 |
],
|
7226 |
-
"time": "2021-
|
7227 |
},
|
7228 |
{
|
7229 |
"name": "symfony/polyfill-php80",
|
7230 |
-
"version": "v1.
|
7231 |
"source": {
|
7232 |
"type": "git",
|
7233 |
"url": "https://github.com/symfony/polyfill-php80.git",
|
7234 |
-
"reference": "
|
7235 |
},
|
7236 |
"dist": {
|
7237 |
"type": "zip",
|
7238 |
-
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/
|
7239 |
-
"reference": "
|
7240 |
"shasum": ""
|
7241 |
},
|
7242 |
"require": {
|
@@ -7290,7 +8452,7 @@
|
|
7290 |
"shim"
|
7291 |
],
|
7292 |
"support": {
|
7293 |
-
"source": "https://github.com/symfony/polyfill-php80/tree/v1.
|
7294 |
},
|
7295 |
"funding": [
|
7296 |
{
|
@@ -7306,20 +8468,20 @@
|
|
7306 |
"type": "tidelift"
|
7307 |
}
|
7308 |
],
|
7309 |
-
"time": "2021-
|
7310 |
},
|
7311 |
{
|
7312 |
"name": "symfony/polyfill-php81",
|
7313 |
-
"version": "v1.
|
7314 |
"source": {
|
7315 |
"type": "git",
|
7316 |
"url": "https://github.com/symfony/polyfill-php81.git",
|
7317 |
-
"reference": "
|
7318 |
},
|
7319 |
"dist": {
|
7320 |
"type": "zip",
|
7321 |
-
"url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/
|
7322 |
-
"reference": "
|
7323 |
"shasum": ""
|
7324 |
},
|
7325 |
"require": {
|
@@ -7369,7 +8531,7 @@
|
|
7369 |
"shim"
|
7370 |
],
|
7371 |
"support": {
|
7372 |
-
"source": "https://github.com/symfony/polyfill-php81/tree/v1.
|
7373 |
},
|
7374 |
"funding": [
|
7375 |
{
|
@@ -7385,20 +8547,20 @@
|
|
7385 |
"type": "tidelift"
|
7386 |
}
|
7387 |
],
|
7388 |
-
"time": "2021-
|
7389 |
},
|
7390 |
{
|
7391 |
"name": "symfony/process",
|
7392 |
-
"version": "v5.4.
|
7393 |
"source": {
|
7394 |
"type": "git",
|
7395 |
"url": "https://github.com/symfony/process.git",
|
7396 |
-
"reference": "
|
7397 |
},
|
7398 |
"dist": {
|
7399 |
"type": "zip",
|
7400 |
-
"url": "https://api.github.com/repos/symfony/process/zipball/
|
7401 |
-
"reference": "
|
7402 |
"shasum": ""
|
7403 |
},
|
7404 |
"require": {
|
@@ -7431,7 +8593,7 @@
|
|
7431 |
"description": "Executes commands in sub-processes",
|
7432 |
"homepage": "https://symfony.com",
|
7433 |
"support": {
|
7434 |
-
"source": "https://github.com/symfony/process/tree/v5.4.
|
7435 |
},
|
7436 |
"funding": [
|
7437 |
{
|
@@ -7447,7 +8609,7 @@
|
|
7447 |
"type": "tidelift"
|
7448 |
}
|
7449 |
],
|
7450 |
-
"time": "2021-
|
7451 |
},
|
7452 |
{
|
7453 |
"name": "symfony/service-contracts",
|
@@ -7533,17 +8695,79 @@
|
|
7533 |
"time": "2021-11-04T16:48:04+00:00"
|
7534 |
},
|
7535 |
{
|
7536 |
-
"name": "symfony/
|
7537 |
"version": "v5.4.0",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7538 |
"source": {
|
7539 |
"type": "git",
|
7540 |
"url": "https://github.com/symfony/string.git",
|
7541 |
-
"reference": "
|
7542 |
},
|
7543 |
"dist": {
|
7544 |
"type": "zip",
|
7545 |
-
"url": "https://api.github.com/repos/symfony/string/zipball/
|
7546 |
-
"reference": "
|
7547 |
"shasum": ""
|
7548 |
},
|
7549 |
"require": {
|
@@ -7600,7 +8824,7 @@
|
|
7600 |
"utf8"
|
7601 |
],
|
7602 |
"support": {
|
7603 |
-
"source": "https://github.com/symfony/string/tree/v5.4.
|
7604 |
},
|
7605 |
"funding": [
|
7606 |
{
|
@@ -7616,31 +8840,32 @@
|
|
7616 |
"type": "tidelift"
|
7617 |
}
|
7618 |
],
|
7619 |
-
"time": "2021-
|
7620 |
},
|
7621 |
{
|
7622 |
"name": "symfony/translation",
|
7623 |
-
"version": "v5.
|
7624 |
"source": {
|
7625 |
"type": "git",
|
7626 |
"url": "https://github.com/symfony/translation.git",
|
7627 |
-
"reference": "
|
7628 |
},
|
7629 |
"dist": {
|
7630 |
"type": "zip",
|
7631 |
-
"url": "https://api.github.com/repos/symfony/translation/zipball/
|
7632 |
-
"reference": "
|
7633 |
"shasum": ""
|
7634 |
},
|
7635 |
"require": {
|
7636 |
"php": ">=7.2.5",
|
7637 |
-
"symfony/deprecation-contracts": "^2.1",
|
7638 |
"symfony/polyfill-mbstring": "~1.0",
|
7639 |
"symfony/polyfill-php80": "^1.16",
|
7640 |
"symfony/translation-contracts": "^2.3"
|
7641 |
},
|
7642 |
"conflict": {
|
7643 |
"symfony/config": "<4.4",
|
|
|
7644 |
"symfony/dependency-injection": "<5.0",
|
7645 |
"symfony/http-kernel": "<5.0",
|
7646 |
"symfony/twig-bundle": "<5.0",
|
@@ -7651,15 +8876,16 @@
|
|
7651 |
},
|
7652 |
"require-dev": {
|
7653 |
"psr/log": "^1|^2|^3",
|
7654 |
-
"symfony/config": "^4.4|^5.0",
|
7655 |
-
"symfony/console": "^
|
7656 |
-
"symfony/dependency-injection": "^5.0",
|
7657 |
-
"symfony/finder": "^4.4|^5.0",
|
7658 |
-
"symfony/http-
|
7659 |
-
"symfony/
|
|
|
7660 |
"symfony/polyfill-intl-icu": "^1.21",
|
7661 |
-
"symfony/service-contracts": "^1.1.2|^2",
|
7662 |
-
"symfony/yaml": "^4.4|^5.0"
|
7663 |
},
|
7664 |
"suggest": {
|
7665 |
"psr/log-implementation": "To use logging capability in translator",
|
@@ -7695,7 +8921,7 @@
|
|
7695 |
"description": "Provides tools to internationalize your application",
|
7696 |
"homepage": "https://symfony.com",
|
7697 |
"support": {
|
7698 |
-
"source": "https://github.com/symfony/translation/tree/v5.
|
7699 |
},
|
7700 |
"funding": [
|
7701 |
{
|
@@ -7711,7 +8937,7 @@
|
|
7711 |
"type": "tidelift"
|
7712 |
}
|
7713 |
],
|
7714 |
-
"time": "2021-
|
7715 |
},
|
7716 |
{
|
7717 |
"name": "symfony/translation-contracts",
|
@@ -7793,28 +9019,28 @@
|
|
7793 |
},
|
7794 |
{
|
7795 |
"name": "symfony/yaml",
|
7796 |
-
"version": "v5.
|
7797 |
"source": {
|
7798 |
"type": "git",
|
7799 |
"url": "https://github.com/symfony/yaml.git",
|
7800 |
-
"reference": "
|
7801 |
},
|
7802 |
"dist": {
|
7803 |
"type": "zip",
|
7804 |
-
"url": "https://api.github.com/repos/symfony/yaml/zipball/
|
7805 |
-
"reference": "
|
7806 |
"shasum": ""
|
7807 |
},
|
7808 |
"require": {
|
7809 |
"php": ">=7.2.5",
|
7810 |
-
"symfony/deprecation-contracts": "^2.1",
|
7811 |
-
"symfony/polyfill-ctype": "
|
7812 |
},
|
7813 |
"conflict": {
|
7814 |
-
"symfony/console": "<
|
7815 |
},
|
7816 |
"require-dev": {
|
7817 |
-
"symfony/console": "^
|
7818 |
},
|
7819 |
"suggest": {
|
7820 |
"symfony/console": "For validating YAML files using the lint command"
|
@@ -7848,7 +9074,7 @@
|
|
7848 |
"description": "Loads and dumps YAML files",
|
7849 |
"homepage": "https://symfony.com",
|
7850 |
"support": {
|
7851 |
-
"source": "https://github.com/symfony/yaml/tree/v5.
|
7852 |
},
|
7853 |
"funding": [
|
7854 |
{
|
@@ -7864,7 +9090,7 @@
|
|
7864 |
"type": "tidelift"
|
7865 |
}
|
7866 |
],
|
7867 |
-
"time": "2021-
|
7868 |
},
|
7869 |
{
|
7870 |
"name": "theseer/fdomdocument",
|
@@ -7960,6 +9186,112 @@
|
|
7960 |
],
|
7961 |
"time": "2021-07-28T10:34:58+00:00"
|
7962 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7963 |
{
|
7964 |
"name": "voku/portable-ascii",
|
7965 |
"version": "1.5.6",
|
@@ -8145,28 +9477,79 @@
|
|
8145 |
},
|
8146 |
"time": "2021-03-09T10:59:23+00:00"
|
8147 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8148 |
{
|
8149 |
"name": "wp-cli/i18n-command",
|
8150 |
-
"version": "v2.2.
|
8151 |
"source": {
|
8152 |
"type": "git",
|
8153 |
"url": "https://github.com/wp-cli/i18n-command.git",
|
8154 |
-
"reference": "
|
8155 |
},
|
8156 |
"dist": {
|
8157 |
"type": "zip",
|
8158 |
-
"url": "https://api.github.com/repos/wp-cli/i18n-command/zipball/
|
8159 |
-
"reference": "
|
8160 |
"shasum": ""
|
8161 |
},
|
8162 |
"require": {
|
8163 |
"gettext/gettext": "^4.8",
|
8164 |
-
"mck89/peast": "^1.13",
|
8165 |
"wp-cli/wp-cli": "^2.5"
|
8166 |
},
|
8167 |
"require-dev": {
|
8168 |
"wp-cli/scaffold-command": "^1.2 || ^2",
|
8169 |
-
"wp-cli/wp-cli-tests": "^3.
|
8170 |
},
|
8171 |
"suggest": {
|
8172 |
"ext-mbstring": "Used for calculating include/exclude matches in code extraction"
|
@@ -8205,9 +9588,9 @@
|
|
8205 |
"homepage": "https://github.com/wp-cli/i18n-command",
|
8206 |
"support": {
|
8207 |
"issues": "https://github.com/wp-cli/i18n-command/issues",
|
8208 |
-
"source": "https://github.com/wp-cli/i18n-command/tree/v2.2.
|
8209 |
},
|
8210 |
-
"time": "2021-
|
8211 |
},
|
8212 |
{
|
8213 |
"name": "wp-cli/mustangostang-spyc",
|
4 |
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
5 |
"This file is @generated automatically"
|
6 |
],
|
7 |
+
"content-hash": "ac20c70e84aa3ad970f67eb2aa152a00",
|
8 |
"packages": [
|
9 |
{
|
10 |
"name": "publishpress/wordpress-reviews",
|
11 |
+
"version": "v1.1.18",
|
12 |
"source": {
|
13 |
"type": "git",
|
14 |
"url": "https://github.com/publishpress/wordpress-reviews.git",
|
15 |
+
"reference": "0020705b8f6a7177fc393c6c42c82171bf9e2fbd"
|
16 |
},
|
17 |
"dist": {
|
18 |
"type": "zip",
|
19 |
+
"url": "https://api.github.com/repos/publishpress/wordpress-reviews/zipball/0020705b8f6a7177fc393c6c42c82171bf9e2fbd",
|
20 |
+
"reference": "0020705b8f6a7177fc393c6c42c82171bf9e2fbd",
|
21 |
"shasum": ""
|
22 |
},
|
23 |
"require": {
|
70 |
],
|
71 |
"support": {
|
72 |
"issues": "https://github.com/publishpress/wordpress-reviews/issues",
|
73 |
+
"source": "https://github.com/publishpress/wordpress-reviews/tree/v1.1.18"
|
74 |
},
|
75 |
+
"time": "2021-12-15T00:03:53+00:00"
|
76 |
}
|
77 |
],
|
78 |
"packages-dev": [
|
79 |
+
{
|
80 |
+
"name": "amphp/amp",
|
81 |
+
"version": "v2.6.1",
|
82 |
+
"source": {
|
83 |
+
"type": "git",
|
84 |
+
"url": "https://github.com/amphp/amp.git",
|
85 |
+
"reference": "c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae"
|
86 |
+
},
|
87 |
+
"dist": {
|
88 |
+
"type": "zip",
|
89 |
+
"url": "https://api.github.com/repos/amphp/amp/zipball/c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae",
|
90 |
+
"reference": "c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae",
|
91 |
+
"shasum": ""
|
92 |
+
},
|
93 |
+
"require": {
|
94 |
+
"php": ">=7.1"
|
95 |
+
},
|
96 |
+
"require-dev": {
|
97 |
+
"amphp/php-cs-fixer-config": "dev-master",
|
98 |
+
"amphp/phpunit-util": "^1",
|
99 |
+
"ext-json": "*",
|
100 |
+
"jetbrains/phpstorm-stubs": "^2019.3",
|
101 |
+
"phpunit/phpunit": "^7 | ^8 | ^9",
|
102 |
+
"psalm/phar": "^3.11@dev",
|
103 |
+
"react/promise": "^2"
|
104 |
+
},
|
105 |
+
"type": "library",
|
106 |
+
"extra": {
|
107 |
+
"branch-alias": {
|
108 |
+
"dev-master": "2.x-dev"
|
109 |
+
}
|
110 |
+
},
|
111 |
+
"autoload": {
|
112 |
+
"psr-4": {
|
113 |
+
"Amp\\": "lib"
|
114 |
+
},
|
115 |
+
"files": [
|
116 |
+
"lib/functions.php",
|
117 |
+
"lib/Internal/functions.php"
|
118 |
+
]
|
119 |
+
},
|
120 |
+
"notification-url": "https://packagist.org/downloads/",
|
121 |
+
"license": [
|
122 |
+
"MIT"
|
123 |
+
],
|
124 |
+
"authors": [
|
125 |
+
{
|
126 |
+
"name": "Daniel Lowrey",
|
127 |
+
"email": "rdlowrey@php.net"
|
128 |
+
},
|
129 |
+
{
|
130 |
+
"name": "Aaron Piotrowski",
|
131 |
+
"email": "aaron@trowski.com"
|
132 |
+
},
|
133 |
+
{
|
134 |
+
"name": "Bob Weinand",
|
135 |
+
"email": "bobwei9@hotmail.com"
|
136 |
+
},
|
137 |
+
{
|
138 |
+
"name": "Niklas Keller",
|
139 |
+
"email": "me@kelunik.com"
|
140 |
+
}
|
141 |
+
],
|
142 |
+
"description": "A non-blocking concurrency framework for PHP applications.",
|
143 |
+
"homepage": "http://amphp.org/amp",
|
144 |
+
"keywords": [
|
145 |
+
"async",
|
146 |
+
"asynchronous",
|
147 |
+
"awaitable",
|
148 |
+
"concurrency",
|
149 |
+
"event",
|
150 |
+
"event-loop",
|
151 |
+
"future",
|
152 |
+
"non-blocking",
|
153 |
+
"promise"
|
154 |
+
],
|
155 |
+
"support": {
|
156 |
+
"irc": "irc://irc.freenode.org/amphp",
|
157 |
+
"issues": "https://github.com/amphp/amp/issues",
|
158 |
+
"source": "https://github.com/amphp/amp/tree/v2.6.1"
|
159 |
+
},
|
160 |
+
"funding": [
|
161 |
+
{
|
162 |
+
"url": "https://github.com/amphp",
|
163 |
+
"type": "github"
|
164 |
+
}
|
165 |
+
],
|
166 |
+
"time": "2021-09-23T18:43:08+00:00"
|
167 |
+
},
|
168 |
+
{
|
169 |
+
"name": "amphp/byte-stream",
|
170 |
+
"version": "v1.8.1",
|
171 |
+
"source": {
|
172 |
+
"type": "git",
|
173 |
+
"url": "https://github.com/amphp/byte-stream.git",
|
174 |
+
"reference": "acbd8002b3536485c997c4e019206b3f10ca15bd"
|
175 |
+
},
|
176 |
+
"dist": {
|
177 |
+
"type": "zip",
|
178 |
+
"url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd",
|
179 |
+
"reference": "acbd8002b3536485c997c4e019206b3f10ca15bd",
|
180 |
+
"shasum": ""
|
181 |
+
},
|
182 |
+
"require": {
|
183 |
+
"amphp/amp": "^2",
|
184 |
+
"php": ">=7.1"
|
185 |
+
},
|
186 |
+
"require-dev": {
|
187 |
+
"amphp/php-cs-fixer-config": "dev-master",
|
188 |
+
"amphp/phpunit-util": "^1.4",
|
189 |
+
"friendsofphp/php-cs-fixer": "^2.3",
|
190 |
+
"jetbrains/phpstorm-stubs": "^2019.3",
|
191 |
+
"phpunit/phpunit": "^6 || ^7 || ^8",
|
192 |
+
"psalm/phar": "^3.11.4"
|
193 |
+
},
|
194 |
+
"type": "library",
|
195 |
+
"extra": {
|
196 |
+
"branch-alias": {
|
197 |
+
"dev-master": "1.x-dev"
|
198 |
+
}
|
199 |
+
},
|
200 |
+
"autoload": {
|
201 |
+
"psr-4": {
|
202 |
+
"Amp\\ByteStream\\": "lib"
|
203 |
+
},
|
204 |
+
"files": [
|
205 |
+
"lib/functions.php"
|
206 |
+
]
|
207 |
+
},
|
208 |
+
"notification-url": "https://packagist.org/downloads/",
|
209 |
+
"license": [
|
210 |
+
"MIT"
|
211 |
+
],
|
212 |
+
"authors": [
|
213 |
+
{
|
214 |
+
"name": "Aaron Piotrowski",
|
215 |
+
"email": "aaron@trowski.com"
|
216 |
+
},
|
217 |
+
{
|
218 |
+
"name": "Niklas Keller",
|
219 |
+
"email": "me@kelunik.com"
|
220 |
+
}
|
221 |
+
],
|
222 |
+
"description": "A stream abstraction to make working with non-blocking I/O simple.",
|
223 |
+
"homepage": "http://amphp.org/byte-stream",
|
224 |
+
"keywords": [
|
225 |
+
"amp",
|
226 |
+
"amphp",
|
227 |
+
"async",
|
228 |
+
"io",
|
229 |
+
"non-blocking",
|
230 |
+
"stream"
|
231 |
+
],
|
232 |
+
"support": {
|
233 |
+
"irc": "irc://irc.freenode.org/amphp",
|
234 |
+
"issues": "https://github.com/amphp/byte-stream/issues",
|
235 |
+
"source": "https://github.com/amphp/byte-stream/tree/v1.8.1"
|
236 |
+
},
|
237 |
+
"funding": [
|
238 |
+
{
|
239 |
+
"url": "https://github.com/amphp",
|
240 |
+
"type": "github"
|
241 |
+
}
|
242 |
+
],
|
243 |
+
"time": "2021-03-30T17:13:30+00:00"
|
244 |
+
},
|
245 |
{
|
246 |
"name": "antecedent/patchwork",
|
247 |
"version": "2.1.17",
|
411 |
},
|
412 |
{
|
413 |
"name": "codeception/codeception",
|
414 |
+
"version": "4.1.27",
|
415 |
"source": {
|
416 |
"type": "git",
|
417 |
"url": "https://github.com/Codeception/Codeception.git",
|
418 |
+
"reference": "2d9a11e6f487e3bcc17e22b7552fb6a10cec5c7c"
|
419 |
},
|
420 |
"dist": {
|
421 |
"type": "zip",
|
422 |
+
"url": "https://api.github.com/repos/Codeception/Codeception/zipball/2d9a11e6f487e3bcc17e22b7552fb6a10cec5c7c",
|
423 |
+
"reference": "2d9a11e6f487e3bcc17e22b7552fb6a10cec5c7c",
|
424 |
"shasum": ""
|
425 |
},
|
426 |
"require": {
|
427 |
"behat/gherkin": "^4.4.0",
|
428 |
+
"codeception/lib-asserts": "^1.0 | 2.0.*@dev",
|
429 |
"codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.1.1 | ^9.0",
|
430 |
+
"codeception/stub": "^2.0 | ^3.0 | ^4.0",
|
431 |
"ext-curl": "*",
|
432 |
"ext-json": "*",
|
433 |
"ext-mbstring": "*",
|
440 |
"symfony/yaml": ">=2.7 <6.0"
|
441 |
},
|
442 |
"require-dev": {
|
443 |
+
"codeception/module-asserts": "^1.0 | 2.0.*@dev",
|
444 |
+
"codeception/module-cli": "^1.0 | 2.0.*@dev",
|
445 |
+
"codeception/module-db": "^1.0 | 2.0.*@dev",
|
446 |
+
"codeception/module-filesystem": "^1.0 | 2.0.*@dev",
|
447 |
+
"codeception/module-phpbrowser": "^1.0 | 2.0.*@dev",
|
448 |
"codeception/specify": "~0.3",
|
449 |
"codeception/util-universalframework": "*@dev",
|
450 |
"monolog/monolog": "~1.8",
|
470 |
"psr-4": {
|
471 |
"Codeception\\": "src/Codeception",
|
472 |
"Codeception\\Extension\\": "ext"
|
473 |
+
},
|
474 |
+
"files": [
|
475 |
+
"functions.php"
|
476 |
+
]
|
477 |
},
|
478 |
"notification-url": "https://packagist.org/downloads/",
|
479 |
"license": [
|
497 |
],
|
498 |
"support": {
|
499 |
"issues": "https://github.com/Codeception/Codeception/issues",
|
500 |
+
"source": "https://github.com/Codeception/Codeception/tree/4.1.27"
|
501 |
},
|
502 |
"funding": [
|
503 |
{
|
505 |
"type": "open_collective"
|
506 |
}
|
507 |
],
|
508 |
+
"time": "2021-12-22T06:40:46+00:00"
|
509 |
},
|
510 |
{
|
511 |
"name": "codeception/lib-asserts",
|
943 |
},
|
944 |
"time": "2021-11-18T18:58:15+00:00"
|
945 |
},
|
946 |
+
{
|
947 |
+
"name": "codeception/module-sequence",
|
948 |
+
"version": "2.0.0",
|
949 |
+
"source": {
|
950 |
+
"type": "git",
|
951 |
+
"url": "https://github.com/Codeception/module-sequence.git",
|
952 |
+
"reference": "60607ad04949806d15d18d1639cd3614b338f07a"
|
953 |
+
},
|
954 |
+
"dist": {
|
955 |
+
"type": "zip",
|
956 |
+
"url": "https://api.github.com/repos/Codeception/module-sequence/zipball/60607ad04949806d15d18d1639cd3614b338f07a",
|
957 |
+
"reference": "60607ad04949806d15d18d1639cd3614b338f07a",
|
958 |
+
"shasum": ""
|
959 |
+
},
|
960 |
+
"require": {
|
961 |
+
"codeception/codeception": "^4.0",
|
962 |
+
"php": "^7.4 | ^8.0"
|
963 |
+
},
|
964 |
+
"type": "library",
|
965 |
+
"autoload": {
|
966 |
+
"classmap": [
|
967 |
+
"src/"
|
968 |
+
]
|
969 |
+
},
|
970 |
+
"notification-url": "https://packagist.org/downloads/",
|
971 |
+
"license": [
|
972 |
+
"MIT"
|
973 |
+
],
|
974 |
+
"authors": [
|
975 |
+
{
|
976 |
+
"name": "Michael Bodnarchuk"
|
977 |
+
}
|
978 |
+
],
|
979 |
+
"description": "Sequence module for Codeception",
|
980 |
+
"homepage": "http://codeception.com/",
|
981 |
+
"keywords": [
|
982 |
+
"codeception"
|
983 |
+
],
|
984 |
+
"support": {
|
985 |
+
"issues": "https://github.com/Codeception/module-sequence/issues",
|
986 |
+
"source": "https://github.com/Codeception/module-sequence/tree/2.0.0"
|
987 |
+
},
|
988 |
+
"time": "2021-11-30T02:02:52+00:00"
|
989 |
+
},
|
990 |
{
|
991 |
"name": "codeception/module-webdriver",
|
992 |
"version": "1.4.0",
|
1094 |
},
|
1095 |
{
|
1096 |
"name": "codeception/stub",
|
1097 |
+
"version": "4.0.0",
|
1098 |
"source": {
|
1099 |
"type": "git",
|
1100 |
"url": "https://github.com/Codeception/Stub.git",
|
1101 |
+
"reference": "4c9cf3e19bd5f064e08e7f3ba6be651c218dc6ae"
|
1102 |
},
|
1103 |
"dist": {
|
1104 |
"type": "zip",
|
1105 |
+
"url": "https://api.github.com/repos/Codeception/Stub/zipball/4c9cf3e19bd5f064e08e7f3ba6be651c218dc6ae",
|
1106 |
+
"reference": "4c9cf3e19bd5f064e08e7f3ba6be651c218dc6ae",
|
1107 |
"shasum": ""
|
1108 |
},
|
1109 |
"require": {
|
1110 |
+
"php": "^7.4 | ^8.0",
|
1111 |
"phpunit/phpunit": "^8.4 | ^9.0"
|
1112 |
},
|
1113 |
+
"require-dev": {
|
1114 |
+
"consolidation/robo": "^3.0"
|
1115 |
+
},
|
1116 |
"type": "library",
|
1117 |
"autoload": {
|
1118 |
"psr-4": {
|
1126 |
"description": "Flexible Stub wrapper for PHPUnit's Mock Builder",
|
1127 |
"support": {
|
1128 |
"issues": "https://github.com/Codeception/Stub/issues",
|
1129 |
+
"source": "https://github.com/Codeception/Stub/tree/4.0.0"
|
1130 |
},
|
1131 |
+
"time": "2021-12-07T14:39:17+00:00"
|
1132 |
},
|
1133 |
{
|
1134 |
"name": "codeception/util-universalframework",
|
1167 |
},
|
1168 |
"time": "2019-09-22T06:06:49+00:00"
|
1169 |
},
|
1170 |
+
{
|
1171 |
+
"name": "composer/package-versions-deprecated",
|
1172 |
+
"version": "1.11.99.4",
|
1173 |
+
"source": {
|
1174 |
+
"type": "git",
|
1175 |
+
"url": "https://github.com/composer/package-versions-deprecated.git",
|
1176 |
+
"reference": "b174585d1fe49ceed21928a945138948cb394600"
|
1177 |
+
},
|
1178 |
+
"dist": {
|
1179 |
+
"type": "zip",
|
1180 |
+
"url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b174585d1fe49ceed21928a945138948cb394600",
|
1181 |
+
"reference": "b174585d1fe49ceed21928a945138948cb394600",
|
1182 |
+
"shasum": ""
|
1183 |
+
},
|
1184 |
+
"require": {
|
1185 |
+
"composer-plugin-api": "^1.1.0 || ^2.0",
|
1186 |
+
"php": "^7 || ^8"
|
1187 |
+
},
|
1188 |
+
"replace": {
|
1189 |
+
"ocramius/package-versions": "1.11.99"
|
1190 |
+
},
|
1191 |
+
"require-dev": {
|
1192 |
+
"composer/composer": "^1.9.3 || ^2.0@dev",
|
1193 |
+
"ext-zip": "^1.13",
|
1194 |
+
"phpunit/phpunit": "^6.5 || ^7"
|
1195 |
+
},
|
1196 |
+
"type": "composer-plugin",
|
1197 |
+
"extra": {
|
1198 |
+
"class": "PackageVersions\\Installer",
|
1199 |
+
"branch-alias": {
|
1200 |
+
"dev-master": "1.x-dev"
|
1201 |
+
}
|
1202 |
+
},
|
1203 |
+
"autoload": {
|
1204 |
+
"psr-4": {
|
1205 |
+
"PackageVersions\\": "src/PackageVersions"
|
1206 |
+
}
|
1207 |
+
},
|
1208 |
+
"notification-url": "https://packagist.org/downloads/",
|
1209 |
+
"license": [
|
1210 |
+
"MIT"
|
1211 |
+
],
|
1212 |
+
"authors": [
|
1213 |
+
{
|
1214 |
+
"name": "Marco Pivetta",
|
1215 |
+
"email": "ocramius@gmail.com"
|
1216 |
+
},
|
1217 |
+
{
|
1218 |
+
"name": "Jordi Boggiano",
|
1219 |
+
"email": "j.boggiano@seld.be"
|
1220 |
+
}
|
1221 |
+
],
|
1222 |
+
"description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
|
1223 |
+
"support": {
|
1224 |
+
"issues": "https://github.com/composer/package-versions-deprecated/issues",
|
1225 |
+
"source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.4"
|
1226 |
+
},
|
1227 |
+
"funding": [
|
1228 |
+
{
|
1229 |
+
"url": "https://packagist.com",
|
1230 |
+
"type": "custom"
|
1231 |
+
},
|
1232 |
+
{
|
1233 |
+
"url": "https://github.com/composer",
|
1234 |
+
"type": "github"
|
1235 |
+
},
|
1236 |
+
{
|
1237 |
+
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
|
1238 |
+
"type": "tidelift"
|
1239 |
+
}
|
1240 |
+
],
|
1241 |
+
"time": "2021-09-13T08:41:34+00:00"
|
1242 |
+
},
|
1243 |
+
{
|
1244 |
+
"name": "composer/pcre",
|
1245 |
+
"version": "1.0.0",
|
1246 |
+
"source": {
|
1247 |
+
"type": "git",
|
1248 |
+
"url": "https://github.com/composer/pcre.git",
|
1249 |
+
"reference": "3d322d715c43a1ac36c7fe215fa59336265500f2"
|
1250 |
+
},
|
1251 |
+
"dist": {
|
1252 |
+
"type": "zip",
|
1253 |
+
"url": "https://api.github.com/repos/composer/pcre/zipball/3d322d715c43a1ac36c7fe215fa59336265500f2",
|
1254 |
+
"reference": "3d322d715c43a1ac36c7fe215fa59336265500f2",
|
1255 |
+
"shasum": ""
|
1256 |
+
},
|
1257 |
+
"require": {
|
1258 |
+
"php": "^5.3.2 || ^7.0 || ^8.0"
|
1259 |
+
},
|
1260 |
+
"require-dev": {
|
1261 |
+
"phpstan/phpstan": "^1",
|
1262 |
+
"phpstan/phpstan-strict-rules": "^1.1",
|
1263 |
+
"symfony/phpunit-bridge": "^4.2 || ^5"
|
1264 |
+
},
|
1265 |
+
"type": "library",
|
1266 |
+
"extra": {
|
1267 |
+
"branch-alias": {
|
1268 |
+
"dev-main": "1.x-dev"
|
1269 |
+
}
|
1270 |
+
},
|
1271 |
+
"autoload": {
|
1272 |
+
"psr-4": {
|
1273 |
+
"Composer\\Pcre\\": "src"
|
1274 |
+
}
|
1275 |
+
},
|
1276 |
+
"notification-url": "https://packagist.org/downloads/",
|
1277 |
+
"license": [
|
1278 |
+
"MIT"
|
1279 |
+
],
|
1280 |
+
"authors": [
|
1281 |
+
{
|
1282 |
+
"name": "Jordi Boggiano",
|
1283 |
+
"email": "j.boggiano@seld.be",
|
1284 |
+
"homepage": "http://seld.be"
|
1285 |
+
}
|
1286 |
+
],
|
1287 |
+
"description": "PCRE wrapping library that offers type-safe preg_* replacements.",
|
1288 |
+
"keywords": [
|
1289 |
+
"PCRE",
|
1290 |
+
"preg",
|
1291 |
+
"regex",
|
1292 |
+
"regular expression"
|
1293 |
+
],
|
1294 |
+
"support": {
|
1295 |
+
"issues": "https://github.com/composer/pcre/issues",
|
1296 |
+
"source": "https://github.com/composer/pcre/tree/1.0.0"
|
1297 |
+
},
|
1298 |
+
"funding": [
|
1299 |
+
{
|
1300 |
+
"url": "https://packagist.com",
|
1301 |
+
"type": "custom"
|
1302 |
+
},
|
1303 |
+
{
|
1304 |
+
"url": "https://github.com/composer",
|
1305 |
+
"type": "github"
|
1306 |
+
},
|
1307 |
+
{
|
1308 |
+
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
|
1309 |
+
"type": "tidelift"
|
1310 |
+
}
|
1311 |
+
],
|
1312 |
+
"time": "2021-12-06T15:17:27+00:00"
|
1313 |
+
},
|
1314 |
{
|
1315 |
"name": "composer/semver",
|
1316 |
+
"version": "3.2.7",
|
1317 |
"source": {
|
1318 |
"type": "git",
|
1319 |
"url": "https://github.com/composer/semver.git",
|
1320 |
+
"reference": "deac27056b57e46faf136fae7b449eeaa71661ee"
|
1321 |
},
|
1322 |
"dist": {
|
1323 |
"type": "zip",
|
1324 |
+
"url": "https://api.github.com/repos/composer/semver/zipball/deac27056b57e46faf136fae7b449eeaa71661ee",
|
1325 |
+
"reference": "deac27056b57e46faf136fae7b449eeaa71661ee",
|
1326 |
"shasum": ""
|
1327 |
},
|
1328 |
"require": {
|
1374 |
"support": {
|
1375 |
"irc": "irc://irc.freenode.org/composer",
|
1376 |
"issues": "https://github.com/composer/semver/issues",
|
1377 |
+
"source": "https://github.com/composer/semver/tree/3.2.7"
|
1378 |
},
|
1379 |
"funding": [
|
1380 |
{
|
1390 |
"type": "tidelift"
|
1391 |
}
|
1392 |
],
|
1393 |
+
"time": "2022-01-04T09:57:54+00:00"
|
1394 |
},
|
1395 |
{
|
1396 |
"name": "composer/xdebug-handler",
|
1397 |
+
"version": "2.0.4",
|
1398 |
"source": {
|
1399 |
"type": "git",
|
1400 |
"url": "https://github.com/composer/xdebug-handler.git",
|
1401 |
+
"reference": "0c1a3925ec58a4ec98e992b9c7d171e9e184be0a"
|
1402 |
},
|
1403 |
"dist": {
|
1404 |
"type": "zip",
|
1405 |
+
"url": "https://api.github.com/repos/composer/xdebug-handler/zipball/0c1a3925ec58a4ec98e992b9c7d171e9e184be0a",
|
1406 |
+
"reference": "0c1a3925ec58a4ec98e992b9c7d171e9e184be0a",
|
1407 |
"shasum": ""
|
1408 |
},
|
1409 |
"require": {
|
1410 |
+
"composer/pcre": "^1",
|
1411 |
"php": "^5.3.2 || ^7.0 || ^8.0",
|
1412 |
"psr/log": "^1 || ^2 || ^3"
|
1413 |
},
|
1414 |
"require-dev": {
|
1415 |
+
"phpstan/phpstan": "^1.0",
|
1416 |
+
"phpstan/phpstan-strict-rules": "^1.1",
|
1417 |
+
"symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0"
|
1418 |
},
|
1419 |
"type": "library",
|
1420 |
"autoload": {
|
1440 |
"support": {
|
1441 |
"irc": "irc://irc.freenode.org/composer",
|
1442 |
"issues": "https://github.com/composer/xdebug-handler/issues",
|
1443 |
+
"source": "https://github.com/composer/xdebug-handler/tree/2.0.4"
|
1444 |
},
|
1445 |
"funding": [
|
1446 |
{
|
1456 |
"type": "tidelift"
|
1457 |
}
|
1458 |
],
|
1459 |
+
"time": "2022-01-04T17:06:45+00:00"
|
1460 |
},
|
1461 |
{
|
1462 |
"name": "consolidation/annotated-command",
|
1463 |
+
"version": "4.5.1",
|
1464 |
"source": {
|
1465 |
"type": "git",
|
1466 |
"url": "https://github.com/consolidation/annotated-command.git",
|
1467 |
+
"reference": "701a7abe8505abe89520837be798e15a3953a367"
|
1468 |
},
|
1469 |
"dist": {
|
1470 |
"type": "zip",
|
1471 |
+
"url": "https://api.github.com/repos/consolidation/annotated-command/zipball/701a7abe8505abe89520837be798e15a3953a367",
|
1472 |
+
"reference": "701a7abe8505abe89520837be798e15a3953a367",
|
1473 |
"shasum": ""
|
1474 |
},
|
1475 |
"require": {
|
1476 |
"consolidation/output-formatters": "^4.1.1",
|
1477 |
"php": ">=7.1.3",
|
1478 |
"psr/log": "^1|^2",
|
1479 |
+
"symfony/console": "^4.4.8|^5|^6",
|
1480 |
+
"symfony/event-dispatcher": "^4.4.8|^5|^6",
|
1481 |
+
"symfony/finder": "^4.4.8|^5|^6"
|
1482 |
},
|
1483 |
"require-dev": {
|
1484 |
+
"composer-runtime-api": "^2.0",
|
1485 |
"phpunit/phpunit": "^7.5.20 || ^8 || ^9",
|
1486 |
"squizlabs/php_codesniffer": "^3",
|
1487 |
"yoast/phpunit-polyfills": "^0.2.0"
|
1510 |
"description": "Initialize Symfony Console commands from annotated command class methods.",
|
1511 |
"support": {
|
1512 |
"issues": "https://github.com/consolidation/annotated-command/issues",
|
1513 |
+
"source": "https://github.com/consolidation/annotated-command/tree/4.5.1"
|
1514 |
},
|
1515 |
+
"time": "2021-12-30T04:00:37+00:00"
|
1516 |
},
|
1517 |
{
|
1518 |
"name": "consolidation/config",
|
1519 |
+
"version": "2.0.2",
|
1520 |
"source": {
|
1521 |
"type": "git",
|
1522 |
"url": "https://github.com/consolidation/config.git",
|
1523 |
+
"reference": "ce6a96fe858df4cc4252e2f48503151dc20a1559"
|
1524 |
},
|
1525 |
"dist": {
|
1526 |
"type": "zip",
|
1527 |
+
"url": "https://api.github.com/repos/consolidation/config/zipball/ce6a96fe858df4cc4252e2f48503151dc20a1559",
|
1528 |
+
"reference": "ce6a96fe858df4cc4252e2f48503151dc20a1559",
|
1529 |
"shasum": ""
|
1530 |
},
|
1531 |
"require": {
|
1570 |
"description": "Provide configuration services for a commandline tool.",
|
1571 |
"support": {
|
1572 |
"issues": "https://github.com/consolidation/config/issues",
|
1573 |
+
"source": "https://github.com/consolidation/config/tree/2.0.2"
|
1574 |
},
|
1575 |
+
"time": "2021-12-30T03:53:15+00:00"
|
1576 |
},
|
1577 |
{
|
1578 |
"name": "consolidation/log",
|
1579 |
+
"version": "2.0.4",
|
1580 |
"source": {
|
1581 |
"type": "git",
|
1582 |
"url": "https://github.com/consolidation/log.git",
|
1583 |
+
"reference": "fc9ec5476ba13a31778695bd2d4f2fa0b0684356"
|
1584 |
},
|
1585 |
"dist": {
|
1586 |
"type": "zip",
|
1587 |
+
"url": "https://api.github.com/repos/consolidation/log/zipball/fc9ec5476ba13a31778695bd2d4f2fa0b0684356",
|
1588 |
+
"reference": "fc9ec5476ba13a31778695bd2d4f2fa0b0684356",
|
1589 |
"shasum": ""
|
1590 |
},
|
1591 |
"require": {
|
1592 |
"php": ">=7.1.3",
|
1593 |
"psr/log": "^1.0",
|
1594 |
+
"symfony/console": "^4 || ^5 || ^6"
|
1595 |
},
|
1596 |
"require-dev": {
|
1597 |
"phpunit/phpunit": ">=7.5.20",
|
1622 |
"description": "Improved Psr-3 / Psr\\Log logger based on Symfony Console components.",
|
1623 |
"support": {
|
1624 |
"issues": "https://github.com/consolidation/log/issues",
|
1625 |
+
"source": "https://github.com/consolidation/log/tree/2.0.4"
|
1626 |
},
|
1627 |
+
"time": "2021-12-30T19:05:18+00:00"
|
1628 |
},
|
1629 |
{
|
1630 |
"name": "consolidation/output-formatters",
|
1631 |
+
"version": "4.2.1",
|
1632 |
"source": {
|
1633 |
"type": "git",
|
1634 |
"url": "https://github.com/consolidation/output-formatters.git",
|
1635 |
+
"reference": "4413d7c732afb5d7bdac565c41aa9c8c49c48888"
|
1636 |
},
|
1637 |
"dist": {
|
1638 |
"type": "zip",
|
1639 |
+
"url": "https://api.github.com/repos/consolidation/output-formatters/zipball/4413d7c732afb5d7bdac565c41aa9c8c49c48888",
|
1640 |
+
"reference": "4413d7c732afb5d7bdac565c41aa9c8c49c48888",
|
1641 |
"shasum": ""
|
1642 |
},
|
1643 |
"require": {
|
1644 |
"dflydev/dot-access-data": "^1.1.0",
|
1645 |
"php": ">=7.1.3",
|
1646 |
+
"symfony/console": "^4|^5|^6",
|
1647 |
+
"symfony/finder": "^4|^5|^6"
|
1648 |
},
|
1649 |
"require-dev": {
|
1650 |
"php-coveralls/php-coveralls": "^2.4.2",
|
1651 |
"phpunit/phpunit": ">=7",
|
1652 |
"squizlabs/php_codesniffer": "^3",
|
1653 |
+
"symfony/var-dumper": "^4|^5|^6",
|
1654 |
+
"symfony/yaml": "^4|^5|^6",
|
1655 |
"yoast/phpunit-polyfills": "^0.2.0"
|
1656 |
},
|
1657 |
"suggest": {
|
1681 |
"description": "Format text by applying transformations provided by plug-in formatters.",
|
1682 |
"support": {
|
1683 |
"issues": "https://github.com/consolidation/output-formatters/issues",
|
1684 |
+
"source": "https://github.com/consolidation/output-formatters/tree/4.2.1"
|
1685 |
},
|
1686 |
+
"time": "2021-12-30T03:58:00+00:00"
|
1687 |
},
|
1688 |
{
|
1689 |
"name": "consolidation/robo",
|
1690 |
+
"version": "3.0.7",
|
1691 |
"source": {
|
1692 |
"type": "git",
|
1693 |
+
"url": "https://github.com/consolidation/robo.git",
|
1694 |
+
"reference": "57012db2a93c904ed0a7b9d8676c0325c0366bc8"
|
1695 |
},
|
1696 |
"dist": {
|
1697 |
"type": "zip",
|
1698 |
+
"url": "https://api.github.com/repos/consolidation/robo/zipball/57012db2a93c904ed0a7b9d8676c0325c0366bc8",
|
1699 |
+
"reference": "57012db2a93c904ed0a7b9d8676c0325c0366bc8",
|
1700 |
"shasum": ""
|
1701 |
},
|
1702 |
"require": {
|
1703 |
"consolidation/annotated-command": "^4.3",
|
1704 |
+
"consolidation/config": "^1.2.1 || ^2.0.1",
|
1705 |
+
"consolidation/log": "^1.1.1 || ^2.0.2",
|
1706 |
"consolidation/output-formatters": "^4.1.2",
|
1707 |
"consolidation/self-update": "^2.0",
|
1708 |
"league/container": "^3.3.1",
|
1709 |
"php": ">=7.1.3",
|
1710 |
+
"symfony/console": "^4.4.19 || ^5 || ^6",
|
1711 |
+
"symfony/event-dispatcher": "^4.4.19 || ^5 || ^6",
|
1712 |
+
"symfony/filesystem": "^4.4.9 || ^5 || ^6",
|
1713 |
+
"symfony/finder": "^4.4.9 || ^5 || ^6",
|
1714 |
"symfony/process": "^4.4.9 || ^5",
|
1715 |
+
"symfony/yaml": "^4.4 || ^5 || ^6"
|
1716 |
},
|
1717 |
"conflict": {
|
1718 |
"codegyre/robo": "*"
|
1721 |
"natxet/cssmin": "3.0.4",
|
1722 |
"patchwork/jsqueeze": "^2",
|
1723 |
"pear/archive_tar": "^1.4.4",
|
1724 |
+
"phpunit/phpunit": "^7.5.20 || ^8",
|
1725 |
"squizlabs/php_codesniffer": "^3.6",
|
1726 |
"yoast/phpunit-polyfills": "^0.2.0"
|
1727 |
},
|
1779 |
],
|
1780 |
"description": "Modern task runner",
|
1781 |
"support": {
|
1782 |
+
"issues": "https://github.com/consolidation/robo/issues",
|
1783 |
+
"source": "https://github.com/consolidation/robo/tree/3.0.7"
|
1784 |
},
|
1785 |
+
"time": "2021-12-31T01:01:31+00:00"
|
1786 |
},
|
1787 |
{
|
1788 |
"name": "consolidation/self-update",
|
1789 |
+
"version": "2.0.3",
|
1790 |
"source": {
|
1791 |
"type": "git",
|
1792 |
"url": "https://github.com/consolidation/self-update.git",
|
1793 |
+
"reference": "117dcc9494dc970a6ae307103c41d654e6253bc4"
|
1794 |
},
|
1795 |
"dist": {
|
1796 |
"type": "zip",
|
1797 |
+
"url": "https://api.github.com/repos/consolidation/self-update/zipball/117dcc9494dc970a6ae307103c41d654e6253bc4",
|
1798 |
+
"reference": "117dcc9494dc970a6ae307103c41d654e6253bc4",
|
1799 |
"shasum": ""
|
1800 |
},
|
1801 |
"require": {
|
1802 |
"composer/semver": "^3.2",
|
1803 |
"php": ">=5.5.0",
|
1804 |
+
"symfony/console": "^2.8 || ^3 || ^4 || ^5 || ^6",
|
1805 |
+
"symfony/filesystem": "^2.5 || ^3 || ^4 || ^5 || ^6"
|
1806 |
},
|
1807 |
"bin": [
|
1808 |
"scripts/release"
|
1835 |
"description": "Provides a self:update command for Symfony Console applications.",
|
1836 |
"support": {
|
1837 |
"issues": "https://github.com/consolidation/self-update/issues",
|
1838 |
+
"source": "https://github.com/consolidation/self-update/tree/2.0.3"
|
1839 |
},
|
1840 |
+
"time": "2021-12-30T19:08:32+00:00"
|
1841 |
},
|
1842 |
{
|
1843 |
"name": "dealerdirect/phpcodesniffer-composer-installer",
|
2015 |
},
|
2016 |
"time": "2019-09-10T21:36:25+00:00"
|
2017 |
},
|
2018 |
+
{
|
2019 |
+
"name": "dnoegel/php-xdg-base-dir",
|
2020 |
+
"version": "v0.1.1",
|
2021 |
+
"source": {
|
2022 |
+
"type": "git",
|
2023 |
+
"url": "https://github.com/dnoegel/php-xdg-base-dir.git",
|
2024 |
+
"reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd"
|
2025 |
+
},
|
2026 |
+
"dist": {
|
2027 |
+
"type": "zip",
|
2028 |
+
"url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd",
|
2029 |
+
"reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd",
|
2030 |
+
"shasum": ""
|
2031 |
+
},
|
2032 |
+
"require": {
|
2033 |
+
"php": ">=5.3.2"
|
2034 |
+
},
|
2035 |
+
"require-dev": {
|
2036 |
+
"phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35"
|
2037 |
+
},
|
2038 |
+
"type": "library",
|
2039 |
+
"autoload": {
|
2040 |
+
"psr-4": {
|
2041 |
+
"XdgBaseDir\\": "src/"
|
2042 |
+
}
|
2043 |
+
},
|
2044 |
+
"notification-url": "https://packagist.org/downloads/",
|
2045 |
+
"license": [
|
2046 |
+
"MIT"
|
2047 |
+
],
|
2048 |
+
"description": "implementation of xdg base directory specification for php",
|
2049 |
+
"support": {
|
2050 |
+
"issues": "https://github.com/dnoegel/php-xdg-base-dir/issues",
|
2051 |
+
"source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1"
|
2052 |
+
},
|
2053 |
+
"time": "2019-12-04T15:06:13+00:00"
|
2054 |
+
},
|
2055 |
+
{
|
2056 |
+
"name": "doctrine/annotations",
|
2057 |
+
"version": "1.13.2",
|
2058 |
+
"source": {
|
2059 |
+
"type": "git",
|
2060 |
+
"url": "https://github.com/doctrine/annotations.git",
|
2061 |
+
"reference": "5b668aef16090008790395c02c893b1ba13f7e08"
|
2062 |
+
},
|
2063 |
+
"dist": {
|
2064 |
+
"type": "zip",
|
2065 |
+
"url": "https://api.github.com/repos/doctrine/annotations/zipball/5b668aef16090008790395c02c893b1ba13f7e08",
|
2066 |
+
"reference": "5b668aef16090008790395c02c893b1ba13f7e08",
|
2067 |
+
"shasum": ""
|
2068 |
+
},
|
2069 |
+
"require": {
|
2070 |
+
"doctrine/lexer": "1.*",
|
2071 |
+
"ext-tokenizer": "*",
|
2072 |
+
"php": "^7.1 || ^8.0",
|
2073 |
+
"psr/cache": "^1 || ^2 || ^3"
|
2074 |
+
},
|
2075 |
+
"require-dev": {
|
2076 |
+
"doctrine/cache": "^1.11 || ^2.0",
|
2077 |
+
"doctrine/coding-standard": "^6.0 || ^8.1",
|
2078 |
+
"phpstan/phpstan": "^0.12.20",
|
2079 |
+
"phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5",
|
2080 |
+
"symfony/cache": "^4.4 || ^5.2"
|
2081 |
+
},
|
2082 |
+
"type": "library",
|
2083 |
+
"autoload": {
|
2084 |
+
"psr-4": {
|
2085 |
+
"Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
|
2086 |
+
}
|
2087 |
+
},
|
2088 |
+
"notification-url": "https://packagist.org/downloads/",
|
2089 |
+
"license": [
|
2090 |
+
"MIT"
|
2091 |
+
],
|
2092 |
+
"authors": [
|
2093 |
+
{
|
2094 |
+
"name": "Guilherme Blanco",
|
2095 |
+
"email": "guilhermeblanco@gmail.com"
|
2096 |
+
},
|
2097 |
+
{
|
2098 |
+
"name": "Roman Borschel",
|
2099 |
+
"email": "roman@code-factory.org"
|
2100 |
+
},
|
2101 |
+
{
|
2102 |
+
"name": "Benjamin Eberlei",
|
2103 |
+
"email": "kontakt@beberlei.de"
|
2104 |
+
},
|
2105 |
+
{
|
2106 |
+
"name": "Jonathan Wage",
|
2107 |
+
"email": "jonwage@gmail.com"
|
2108 |
+
},
|
2109 |
+
{
|
2110 |
+
"name": "Johannes Schmitt",
|
2111 |
+
"email": "schmittjoh@gmail.com"
|
2112 |
+
}
|
2113 |
+
],
|
2114 |
+
"description": "Docblock Annotations Parser",
|
2115 |
+
"homepage": "https://www.doctrine-project.org/projects/annotations.html",
|
2116 |
+
"keywords": [
|
2117 |
+
"annotations",
|
2118 |
+
"docblock",
|
2119 |
+
"parser"
|
2120 |
+
],
|
2121 |
+
"support": {
|
2122 |
+
"issues": "https://github.com/doctrine/annotations/issues",
|
2123 |
+
"source": "https://github.com/doctrine/annotations/tree/1.13.2"
|
2124 |
+
},
|
2125 |
+
"time": "2021-08-05T19:00:23+00:00"
|
2126 |
+
},
|
2127 |
{
|
2128 |
"name": "doctrine/inflector",
|
2129 |
"version": "2.0.4",
|
2265 |
"instantiate"
|
2266 |
],
|
2267 |
"support": {
|
2268 |
+
"issues": "https://github.com/doctrine/instantiator/issues",
|
2269 |
+
"source": "https://github.com/doctrine/instantiator/tree/1.4.0"
|
2270 |
+
},
|
2271 |
+
"funding": [
|
2272 |
+
{
|
2273 |
+
"url": "https://www.doctrine-project.org/sponsorship.html",
|
2274 |
+
"type": "custom"
|
2275 |
+
},
|
2276 |
+
{
|
2277 |
+
"url": "https://www.patreon.com/phpdoctrine",
|
2278 |
+
"type": "patreon"
|
2279 |
+
},
|
2280 |
+
{
|
2281 |
+
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
|
2282 |
+
"type": "tidelift"
|
2283 |
+
}
|
2284 |
+
],
|
2285 |
+
"time": "2020-11-10T18:47:58+00:00"
|
2286 |
+
},
|
2287 |
+
{
|
2288 |
+
"name": "doctrine/lexer",
|
2289 |
+
"version": "1.2.1",
|
2290 |
+
"source": {
|
2291 |
+
"type": "git",
|
2292 |
+
"url": "https://github.com/doctrine/lexer.git",
|
2293 |
+
"reference": "e864bbf5904cb8f5bb334f99209b48018522f042"
|
2294 |
+
},
|
2295 |
+
"dist": {
|
2296 |
+
"type": "zip",
|
2297 |
+
"url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042",
|
2298 |
+
"reference": "e864bbf5904cb8f5bb334f99209b48018522f042",
|
2299 |
+
"shasum": ""
|
2300 |
+
},
|
2301 |
+
"require": {
|
2302 |
+
"php": "^7.2 || ^8.0"
|
2303 |
+
},
|
2304 |
+
"require-dev": {
|
2305 |
+
"doctrine/coding-standard": "^6.0",
|
2306 |
+
"phpstan/phpstan": "^0.11.8",
|
2307 |
+
"phpunit/phpunit": "^8.2"
|
2308 |
+
},
|
2309 |
+
"type": "library",
|
2310 |
+
"extra": {
|
2311 |
+
"branch-alias": {
|
2312 |
+
"dev-master": "1.2.x-dev"
|
2313 |
+
}
|
2314 |
+
},
|
2315 |
+
"autoload": {
|
2316 |
+
"psr-4": {
|
2317 |
+
"Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
|
2318 |
+
}
|
2319 |
+
},
|
2320 |
+
"notification-url": "https://packagist.org/downloads/",
|
2321 |
+
"license": [
|
2322 |
+
"MIT"
|
2323 |
+
],
|
2324 |
+
"authors": [
|
2325 |
+
{
|
2326 |
+
"name": "Guilherme Blanco",
|
2327 |
+
"email": "guilhermeblanco@gmail.com"
|
2328 |
+
},
|
2329 |
+
{
|
2330 |
+
"name": "Roman Borschel",
|
2331 |
+
"email": "roman@code-factory.org"
|
2332 |
+
},
|
2333 |
+
{
|
2334 |
+
"name": "Johannes Schmitt",
|
2335 |
+
"email": "schmittjoh@gmail.com"
|
2336 |
+
}
|
2337 |
+
],
|
2338 |
+
"description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
|
2339 |
+
"homepage": "https://www.doctrine-project.org/projects/lexer.html",
|
2340 |
+
"keywords": [
|
2341 |
+
"annotations",
|
2342 |
+
"docblock",
|
2343 |
+
"lexer",
|
2344 |
+
"parser",
|
2345 |
+
"php"
|
2346 |
+
],
|
2347 |
+
"support": {
|
2348 |
+
"issues": "https://github.com/doctrine/lexer/issues",
|
2349 |
+
"source": "https://github.com/doctrine/lexer/tree/1.2.1"
|
2350 |
+
},
|
2351 |
+
"funding": [
|
2352 |
+
{
|
2353 |
+
"url": "https://www.doctrine-project.org/sponsorship.html",
|
2354 |
+
"type": "custom"
|
2355 |
+
},
|
2356 |
+
{
|
2357 |
+
"url": "https://www.patreon.com/phpdoctrine",
|
2358 |
+
"type": "patreon"
|
2359 |
+
},
|
2360 |
+
{
|
2361 |
+
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
|
2362 |
+
"type": "tidelift"
|
2363 |
+
}
|
2364 |
+
],
|
2365 |
+
"time": "2020-05-25T17:44:05+00:00"
|
2366 |
+
},
|
2367 |
+
{
|
2368 |
+
"name": "felixfbecker/advanced-json-rpc",
|
2369 |
+
"version": "v3.2.1",
|
2370 |
+
"source": {
|
2371 |
+
"type": "git",
|
2372 |
+
"url": "https://github.com/felixfbecker/php-advanced-json-rpc.git",
|
2373 |
+
"reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447"
|
2374 |
+
},
|
2375 |
+
"dist": {
|
2376 |
+
"type": "zip",
|
2377 |
+
"url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447",
|
2378 |
+
"reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447",
|
2379 |
+
"shasum": ""
|
2380 |
+
},
|
2381 |
+
"require": {
|
2382 |
+
"netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
|
2383 |
+
"php": "^7.1 || ^8.0",
|
2384 |
+
"phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0"
|
2385 |
+
},
|
2386 |
+
"require-dev": {
|
2387 |
+
"phpunit/phpunit": "^7.0 || ^8.0"
|
2388 |
+
},
|
2389 |
+
"type": "library",
|
2390 |
+
"autoload": {
|
2391 |
+
"psr-4": {
|
2392 |
+
"AdvancedJsonRpc\\": "lib/"
|
2393 |
+
}
|
2394 |
+
},
|
2395 |
+
"notification-url": "https://packagist.org/downloads/",
|
2396 |
+
"license": [
|
2397 |
+
"ISC"
|
2398 |
+
],
|
2399 |
+
"authors": [
|
2400 |
+
{
|
2401 |
+
"name": "Felix Becker",
|
2402 |
+
"email": "felix.b@outlook.com"
|
2403 |
+
}
|
2404 |
+
],
|
2405 |
+
"description": "A more advanced JSONRPC implementation",
|
2406 |
+
"support": {
|
2407 |
+
"issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues",
|
2408 |
+
"source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1"
|
2409 |
+
},
|
2410 |
+
"time": "2021-06-11T22:34:44+00:00"
|
2411 |
+
},
|
2412 |
+
{
|
2413 |
+
"name": "felixfbecker/language-server-protocol",
|
2414 |
+
"version": "1.5.1",
|
2415 |
+
"source": {
|
2416 |
+
"type": "git",
|
2417 |
+
"url": "https://github.com/felixfbecker/php-language-server-protocol.git",
|
2418 |
+
"reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730"
|
2419 |
+
},
|
2420 |
+
"dist": {
|
2421 |
+
"type": "zip",
|
2422 |
+
"url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/9d846d1f5cf101deee7a61c8ba7caa0a975cd730",
|
2423 |
+
"reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730",
|
2424 |
+
"shasum": ""
|
2425 |
+
},
|
2426 |
+
"require": {
|
2427 |
+
"php": ">=7.1"
|
2428 |
+
},
|
2429 |
+
"require-dev": {
|
2430 |
+
"phpstan/phpstan": "*",
|
2431 |
+
"squizlabs/php_codesniffer": "^3.1",
|
2432 |
+
"vimeo/psalm": "^4.0"
|
2433 |
+
},
|
2434 |
+
"type": "library",
|
2435 |
+
"extra": {
|
2436 |
+
"branch-alias": {
|
2437 |
+
"dev-master": "1.x-dev"
|
2438 |
+
}
|
2439 |
+
},
|
2440 |
+
"autoload": {
|
2441 |
+
"psr-4": {
|
2442 |
+
"LanguageServerProtocol\\": "src/"
|
2443 |
+
}
|
2444 |
+
},
|
2445 |
+
"notification-url": "https://packagist.org/downloads/",
|
2446 |
+
"license": [
|
2447 |
+
"ISC"
|
2448 |
+
],
|
2449 |
+
"authors": [
|
2450 |
+
{
|
2451 |
+
"name": "Felix Becker",
|
2452 |
+
"email": "felix.b@outlook.com"
|
2453 |
+
}
|
2454 |
+
],
|
2455 |
+
"description": "PHP classes for the Language Server Protocol",
|
2456 |
+
"keywords": [
|
2457 |
+
"language",
|
2458 |
+
"microsoft",
|
2459 |
+
"php",
|
2460 |
+
"server"
|
2461 |
+
],
|
2462 |
+
"support": {
|
2463 |
+
"issues": "https://github.com/felixfbecker/php-language-server-protocol/issues",
|
2464 |
+
"source": "https://github.com/felixfbecker/php-language-server-protocol/tree/1.5.1"
|
2465 |
+
},
|
2466 |
+
"time": "2021-02-22T14:02:09+00:00"
|
2467 |
+
},
|
2468 |
+
{
|
2469 |
+
"name": "friendsofphp/php-cs-fixer",
|
2470 |
+
"version": "v3.4.0",
|
2471 |
+
"source": {
|
2472 |
+
"type": "git",
|
2473 |
+
"url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
|
2474 |
+
"reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad"
|
2475 |
+
},
|
2476 |
+
"dist": {
|
2477 |
+
"type": "zip",
|
2478 |
+
"url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/47177af1cfb9dab5d1cc4daf91b7179c2efe7fad",
|
2479 |
+
"reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad",
|
2480 |
+
"shasum": ""
|
2481 |
+
},
|
2482 |
+
"require": {
|
2483 |
+
"composer/semver": "^3.2",
|
2484 |
+
"composer/xdebug-handler": "^2.0",
|
2485 |
+
"doctrine/annotations": "^1.12",
|
2486 |
+
"ext-json": "*",
|
2487 |
+
"ext-tokenizer": "*",
|
2488 |
+
"php": "^7.2.5 || ^8.0",
|
2489 |
+
"php-cs-fixer/diff": "^2.0",
|
2490 |
+
"symfony/console": "^4.4.20 || ^5.1.3 || ^6.0",
|
2491 |
+
"symfony/event-dispatcher": "^4.4.20 || ^5.0 || ^6.0",
|
2492 |
+
"symfony/filesystem": "^4.4.20 || ^5.0 || ^6.0",
|
2493 |
+
"symfony/finder": "^4.4.20 || ^5.0 || ^6.0",
|
2494 |
+
"symfony/options-resolver": "^4.4.20 || ^5.0 || ^6.0",
|
2495 |
+
"symfony/polyfill-mbstring": "^1.23",
|
2496 |
+
"symfony/polyfill-php80": "^1.23",
|
2497 |
+
"symfony/polyfill-php81": "^1.23",
|
2498 |
+
"symfony/process": "^4.4.20 || ^5.0 || ^6.0",
|
2499 |
+
"symfony/stopwatch": "^4.4.20 || ^5.0 || ^6.0"
|
2500 |
+
},
|
2501 |
+
"require-dev": {
|
2502 |
+
"justinrainbow/json-schema": "^5.2",
|
2503 |
+
"keradus/cli-executor": "^1.5",
|
2504 |
+
"mikey179/vfsstream": "^1.6.8",
|
2505 |
+
"php-coveralls/php-coveralls": "^2.5.2",
|
2506 |
+
"php-cs-fixer/accessible-object": "^1.1",
|
2507 |
+
"php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2",
|
2508 |
+
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1",
|
2509 |
+
"phpspec/prophecy": "^1.15",
|
2510 |
+
"phpspec/prophecy-phpunit": "^1.1 || ^2.0",
|
2511 |
+
"phpunit/phpunit": "^8.5.21 || ^9.5",
|
2512 |
+
"phpunitgoodpractices/polyfill": "^1.5",
|
2513 |
+
"phpunitgoodpractices/traits": "^1.9.1",
|
2514 |
+
"symfony/phpunit-bridge": "^5.2.4 || ^6.0",
|
2515 |
+
"symfony/yaml": "^4.4.20 || ^5.0 || ^6.0"
|
2516 |
+
},
|
2517 |
+
"suggest": {
|
2518 |
+
"ext-dom": "For handling output formats in XML",
|
2519 |
+
"ext-mbstring": "For handling non-UTF8 characters."
|
2520 |
+
},
|
2521 |
+
"bin": [
|
2522 |
+
"php-cs-fixer"
|
2523 |
+
],
|
2524 |
+
"type": "application",
|
2525 |
+
"autoload": {
|
2526 |
+
"psr-4": {
|
2527 |
+
"PhpCsFixer\\": "src/"
|
2528 |
+
}
|
2529 |
+
},
|
2530 |
+
"notification-url": "https://packagist.org/downloads/",
|
2531 |
+
"license": [
|
2532 |
+
"MIT"
|
2533 |
+
],
|
2534 |
+
"authors": [
|
2535 |
+
{
|
2536 |
+
"name": "Fabien Potencier",
|
2537 |
+
"email": "fabien@symfony.com"
|
2538 |
+
},
|
2539 |
+
{
|
2540 |
+
"name": "Dariusz Rumiński",
|
2541 |
+
"email": "dariusz.ruminski@gmail.com"
|
2542 |
+
}
|
2543 |
+
],
|
2544 |
+
"description": "A tool to automatically fix PHP code style",
|
2545 |
+
"support": {
|
2546 |
+
"issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues",
|
2547 |
+
"source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.4.0"
|
2548 |
},
|
2549 |
"funding": [
|
2550 |
{
|
2551 |
+
"url": "https://github.com/keradus",
|
2552 |
+
"type": "github"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2553 |
}
|
2554 |
],
|
2555 |
+
"time": "2021-12-11T16:25:08+00:00"
|
2556 |
},
|
2557 |
{
|
2558 |
"name": "gettext/gettext",
|
2762 |
},
|
2763 |
{
|
2764 |
"name": "guzzlehttp/guzzle",
|
2765 |
+
"version": "7.4.1",
|
2766 |
"source": {
|
2767 |
"type": "git",
|
2768 |
"url": "https://github.com/guzzle/guzzle.git",
|
2769 |
+
"reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79"
|
2770 |
},
|
2771 |
"dist": {
|
2772 |
"type": "zip",
|
2773 |
+
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee0a041b1760e6a53d2a39c8c34115adc2af2c79",
|
2774 |
+
"reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79",
|
2775 |
"shasum": ""
|
2776 |
},
|
2777 |
"require": {
|
2780 |
"guzzlehttp/psr7": "^1.8.3 || ^2.1",
|
2781 |
"php": "^7.2.5 || ^8.0",
|
2782 |
"psr/http-client": "^1.0",
|
2783 |
+
"symfony/deprecation-contracts": "^2.2 || ^3.0"
|
2784 |
},
|
2785 |
"provide": {
|
2786 |
"psr/http-client-implementation": "1.0"
|
2866 |
],
|
2867 |
"support": {
|
2868 |
"issues": "https://github.com/guzzle/guzzle/issues",
|
2869 |
+
"source": "https://github.com/guzzle/guzzle/tree/7.4.1"
|
2870 |
},
|
2871 |
"funding": [
|
2872 |
{
|
2882 |
"type": "tidelift"
|
2883 |
}
|
2884 |
],
|
2885 |
+
"time": "2021-12-06T18:43:05+00:00"
|
2886 |
},
|
2887 |
{
|
2888 |
"name": "guzzlehttp/promises",
|
3085 |
},
|
3086 |
{
|
3087 |
"name": "illuminate/collections",
|
3088 |
+
"version": "v8.78.1",
|
3089 |
"source": {
|
3090 |
"type": "git",
|
3091 |
"url": "https://github.com/illuminate/collections.git",
|
3092 |
+
"reference": "e8c1cbd7a4cc8fb0e6a8978a55ef6d49c90bea59"
|
3093 |
},
|
3094 |
"dist": {
|
3095 |
"type": "zip",
|
3096 |
+
"url": "https://api.github.com/repos/illuminate/collections/zipball/e8c1cbd7a4cc8fb0e6a8978a55ef6d49c90bea59",
|
3097 |
+
"reference": "e8c1cbd7a4cc8fb0e6a8978a55ef6d49c90bea59",
|
3098 |
"shasum": ""
|
3099 |
},
|
3100 |
"require": {
|
3135 |
"issues": "https://github.com/laravel/framework/issues",
|
3136 |
"source": "https://github.com/laravel/framework"
|
3137 |
},
|
3138 |
+
"time": "2022-01-04T18:54:15+00:00"
|
3139 |
},
|
3140 |
{
|
3141 |
"name": "illuminate/contracts",
|
3142 |
+
"version": "v8.78.1",
|
3143 |
"source": {
|
3144 |
"type": "git",
|
3145 |
"url": "https://github.com/illuminate/contracts.git",
|
3146 |
+
"reference": "9baa9f781071e67d7b171775bd3be7ead13ddd29"
|
3147 |
},
|
3148 |
"dist": {
|
3149 |
"type": "zip",
|
3150 |
+
"url": "https://api.github.com/repos/illuminate/contracts/zipball/9baa9f781071e67d7b171775bd3be7ead13ddd29",
|
3151 |
+
"reference": "9baa9f781071e67d7b171775bd3be7ead13ddd29",
|
3152 |
"shasum": ""
|
3153 |
},
|
3154 |
"require": {
|
3183 |
"issues": "https://github.com/laravel/framework/issues",
|
3184 |
"source": "https://github.com/laravel/framework"
|
3185 |
},
|
3186 |
+
"time": "2021-12-14T14:40:44+00:00"
|
3187 |
},
|
3188 |
{
|
3189 |
"name": "illuminate/macroable",
|
3190 |
+
"version": "v8.78.1",
|
3191 |
"source": {
|
3192 |
"type": "git",
|
3193 |
"url": "https://github.com/illuminate/macroable.git",
|
3233 |
},
|
3234 |
{
|
3235 |
"name": "illuminate/support",
|
3236 |
+
"version": "v8.78.1",
|
3237 |
"source": {
|
3238 |
"type": "git",
|
3239 |
"url": "https://github.com/illuminate/support.git",
|
3240 |
+
"reference": "0c2a4db0c60b33d30af0ae6bc2b31159d6c49361"
|
3241 |
},
|
3242 |
"dist": {
|
3243 |
"type": "zip",
|
3244 |
+
"url": "https://api.github.com/repos/illuminate/support/zipball/0c2a4db0c60b33d30af0ae6bc2b31159d6c49361",
|
3245 |
+
"reference": "0c2a4db0c60b33d30af0ae6bc2b31159d6c49361",
|
3246 |
"shasum": ""
|
3247 |
},
|
3248 |
"require": {
|
3297 |
"issues": "https://github.com/laravel/framework/issues",
|
3298 |
"source": "https://github.com/laravel/framework"
|
3299 |
},
|
3300 |
+
"time": "2022-01-04T16:02:54+00:00"
|
3301 |
},
|
3302 |
{
|
3303 |
"name": "justinrainbow/json-schema",
|
3450 |
},
|
3451 |
{
|
3452 |
"name": "lucatume/wp-browser",
|
3453 |
+
"version": "3.0.18",
|
3454 |
"source": {
|
3455 |
"type": "git",
|
3456 |
"url": "https://github.com/lucatume/wp-browser.git",
|
3457 |
+
"reference": "eff4b188a7f651ab857cbb452d49235eedbc55f1"
|
3458 |
},
|
3459 |
"dist": {
|
3460 |
"type": "zip",
|
3461 |
+
"url": "https://api.github.com/repos/lucatume/wp-browser/zipball/eff4b188a7f651ab857cbb452d49235eedbc55f1",
|
3462 |
+
"reference": "eff4b188a7f651ab857cbb452d49235eedbc55f1",
|
3463 |
"shasum": ""
|
3464 |
},
|
3465 |
"require": {
|
3477 |
"wp-cli/wp-cli": ">=2.0 <3.0.0",
|
3478 |
"zordius/lightncandy": "^1.2"
|
3479 |
},
|
3480 |
+
"conflict": {
|
3481 |
+
"codeception/module-asserts": ">=2.0",
|
3482 |
+
"codeception/module-cli": ">=2.0",
|
3483 |
+
"codeception/module-db": ">=2.0",
|
3484 |
+
"codeception/module-filesystem": ">=2.0",
|
3485 |
+
"codeception/module-phpbrowser": ">=2.0",
|
3486 |
+
"codeception/module-webdriver": ">=2.0",
|
3487 |
+
"codeception/util-universalframework": ">=2.0"
|
3488 |
+
},
|
3489 |
"require-dev": {
|
3490 |
"erusev/parsedown": "^1.7",
|
3491 |
"gumlet/php-image-resize": "^1.6",
|
3496 |
"wp-cli/wp-cli-bundle": "*"
|
3497 |
},
|
3498 |
"suggest": {
|
3499 |
+
"codeception/module-asserts:^1.0": "Codeception 4.0 compatibility.",
|
3500 |
+
"codeception/module-cli:^1.0": "Codeception 4.0 compatibility; required by the WPCLI module.",
|
3501 |
+
"codeception/module-db:^1.0": "Codeception 4.0 compatibility; required by the WPDb module, PHP 5.6 compatible version.",
|
3502 |
+
"codeception/module-filesystem:^1.0": "Codeception 4.0 compatibility; required by the WPFilesystem module.",
|
3503 |
+
"codeception/module-phpbrowser:^1.0": "Codeception 4.0 compatibility; required by the WPBrowser module.",
|
3504 |
+
"codeception/module-webdriver:^1.0": "Codeception 4.0 compatibility; required by the WPWebDriver module.",
|
3505 |
+
"codeception/util-universalframework:^1.0": "Codeception 4.0 compatibility; required by the WordPress framework module.",
|
3506 |
"gumlet/php-image-resize": "To handle runtime image modification in the WPDb::haveAttachmentInDatabase method.",
|
3507 |
"vlucas/phpdotenv:^4.0": "To manage more complex environment file based configuration of the suites."
|
3508 |
},
|
3540 |
],
|
3541 |
"support": {
|
3542 |
"issues": "https://github.com/lucatume/wp-browser/issues",
|
3543 |
+
"source": "https://github.com/lucatume/wp-browser/tree/3.0.18"
|
3544 |
},
|
3545 |
"funding": [
|
3546 |
{
|
3548 |
"type": "github"
|
3549 |
}
|
3550 |
],
|
3551 |
+
"time": "2022-01-05T09:25:36+00:00"
|
3552 |
},
|
3553 |
{
|
3554 |
"name": "mck89/peast",
|
3555 |
+
"version": "v1.13.10",
|
3556 |
"source": {
|
3557 |
"type": "git",
|
3558 |
"url": "https://github.com/mck89/peast.git",
|
3559 |
+
"reference": "05ad3e6f66e6b35aa2247ef69b1a0c23c45a567b"
|
3560 |
},
|
3561 |
"dist": {
|
3562 |
"type": "zip",
|
3563 |
+
"url": "https://api.github.com/repos/mck89/peast/zipball/05ad3e6f66e6b35aa2247ef69b1a0c23c45a567b",
|
3564 |
+
"reference": "05ad3e6f66e6b35aa2247ef69b1a0c23c45a567b",
|
3565 |
"shasum": ""
|
3566 |
},
|
3567 |
"require": {
|
3568 |
+
"ext-mbstring": "*",
|
3569 |
"php": ">=5.4.0"
|
3570 |
},
|
3571 |
"require-dev": {
|
3574 |
"type": "library",
|
3575 |
"extra": {
|
3576 |
"branch-alias": {
|
3577 |
+
"dev-master": "1.13.10-dev"
|
3578 |
}
|
3579 |
},
|
3580 |
"autoload": {
|
3596 |
"description": "Peast is PHP library that generates AST for JavaScript code",
|
3597 |
"support": {
|
3598 |
"issues": "https://github.com/mck89/peast/issues",
|
3599 |
+
"source": "https://github.com/mck89/peast/tree/v1.13.10"
|
3600 |
},
|
3601 |
+
"time": "2021-12-24T10:38:18+00:00"
|
3602 |
},
|
3603 |
{
|
3604 |
"name": "mikehaertl/php-shellcommand",
|
3716 |
},
|
3717 |
{
|
3718 |
"name": "mustache/mustache",
|
3719 |
+
"version": "v2.14.0",
|
3720 |
"source": {
|
3721 |
"type": "git",
|
3722 |
"url": "https://github.com/bobthecow/mustache.php.git",
|
3723 |
+
"reference": "4e2724dd40ae9499a55e7db7df82665be0ab7e34"
|
3724 |
},
|
3725 |
"dist": {
|
3726 |
"type": "zip",
|
3727 |
+
"url": "https://api.github.com/repos/bobthecow/mustache.php/zipball/4e2724dd40ae9499a55e7db7df82665be0ab7e34",
|
3728 |
+
"reference": "4e2724dd40ae9499a55e7db7df82665be0ab7e34",
|
3729 |
"shasum": ""
|
3730 |
},
|
3731 |
"require": {
|
3760 |
],
|
3761 |
"support": {
|
3762 |
"issues": "https://github.com/bobthecow/mustache.php/issues",
|
3763 |
+
"source": "https://github.com/bobthecow/mustache.php/tree/v2.14.0"
|
3764 |
},
|
3765 |
+
"time": "2021-12-14T14:42:17+00:00"
|
3766 |
},
|
3767 |
{
|
3768 |
"name": "myclabs/deep-copy",
|
3934 |
},
|
3935 |
{
|
3936 |
"name": "nesbot/carbon",
|
3937 |
+
"version": "2.55.2",
|
3938 |
"source": {
|
3939 |
"type": "git",
|
3940 |
"url": "https://github.com/briannesbitt/Carbon.git",
|
3941 |
+
"reference": "8c2a18ce3e67c34efc1b29f64fe61304368259a2"
|
3942 |
},
|
3943 |
"dist": {
|
3944 |
"type": "zip",
|
3945 |
+
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/8c2a18ce3e67c34efc1b29f64fe61304368259a2",
|
3946 |
+
"reference": "8c2a18ce3e67c34efc1b29f64fe61304368259a2",
|
3947 |
"shasum": ""
|
3948 |
},
|
3949 |
"require": {
|
3951 |
"php": "^7.1.8 || ^8.0",
|
3952 |
"symfony/polyfill-mbstring": "^1.0",
|
3953 |
"symfony/polyfill-php80": "^1.16",
|
3954 |
+
"symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0"
|
3955 |
},
|
3956 |
"require-dev": {
|
3957 |
"doctrine/dbal": "^2.0 || ^3.0",
|
4012 |
"time"
|
4013 |
],
|
4014 |
"support": {
|
4015 |
+
"docs": "https://carbon.nesbot.com/docs",
|
4016 |
"issues": "https://github.com/briannesbitt/Carbon/issues",
|
4017 |
"source": "https://github.com/briannesbitt/Carbon"
|
4018 |
},
|
4026 |
"type": "tidelift"
|
4027 |
}
|
4028 |
],
|
4029 |
+
"time": "2021-12-03T14:59:52+00:00"
|
4030 |
+
},
|
4031 |
+
{
|
4032 |
+
"name": "netresearch/jsonmapper",
|
4033 |
+
"version": "v4.0.0",
|
4034 |
+
"source": {
|
4035 |
+
"type": "git",
|
4036 |
+
"url": "https://github.com/cweiske/jsonmapper.git",
|
4037 |
+
"reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d"
|
4038 |
+
},
|
4039 |
+
"dist": {
|
4040 |
+
"type": "zip",
|
4041 |
+
"url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d",
|
4042 |
+
"reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d",
|
4043 |
+
"shasum": ""
|
4044 |
+
},
|
4045 |
+
"require": {
|
4046 |
+
"ext-json": "*",
|
4047 |
+
"ext-pcre": "*",
|
4048 |
+
"ext-reflection": "*",
|
4049 |
+
"ext-spl": "*",
|
4050 |
+
"php": ">=7.1"
|
4051 |
+
},
|
4052 |
+
"require-dev": {
|
4053 |
+
"phpunit/phpunit": "~7.5 || ~8.0 || ~9.0",
|
4054 |
+
"squizlabs/php_codesniffer": "~3.5"
|
4055 |
+
},
|
4056 |
+
"type": "library",
|
4057 |
+
"autoload": {
|
4058 |
+
"psr-0": {
|
4059 |
+
"JsonMapper": "src/"
|
4060 |
+
}
|
4061 |
+
},
|
4062 |
+
"notification-url": "https://packagist.org/downloads/",
|
4063 |
+
"license": [
|
4064 |
+
"OSL-3.0"
|
4065 |
+
],
|
4066 |
+
"authors": [
|
4067 |
+
{
|
4068 |
+
"name": "Christian Weiske",
|
4069 |
+
"email": "cweiske@cweiske.de",
|
4070 |
+
"homepage": "http://github.com/cweiske/jsonmapper/",
|
4071 |
+
"role": "Developer"
|
4072 |
+
}
|
4073 |
+
],
|
4074 |
+
"description": "Map nested JSON structures onto PHP classes",
|
4075 |
+
"support": {
|
4076 |
+
"email": "cweiske@cweiske.de",
|
4077 |
+
"issues": "https://github.com/cweiske/jsonmapper/issues",
|
4078 |
+
"source": "https://github.com/cweiske/jsonmapper/tree/v4.0.0"
|
4079 |
+
},
|
4080 |
+
"time": "2020-12-01T19:48:11+00:00"
|
4081 |
+
},
|
4082 |
+
{
|
4083 |
+
"name": "nikic/php-parser",
|
4084 |
+
"version": "v4.13.2",
|
4085 |
+
"source": {
|
4086 |
+
"type": "git",
|
4087 |
+
"url": "https://github.com/nikic/PHP-Parser.git",
|
4088 |
+
"reference": "210577fe3cf7badcc5814d99455df46564f3c077"
|
4089 |
+
},
|
4090 |
+
"dist": {
|
4091 |
+
"type": "zip",
|
4092 |
+
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/210577fe3cf7badcc5814d99455df46564f3c077",
|
4093 |
+
"reference": "210577fe3cf7badcc5814d99455df46564f3c077",
|
4094 |
+
"shasum": ""
|
4095 |
+
},
|
4096 |
+
"require": {
|
4097 |
+
"ext-tokenizer": "*",
|
4098 |
+
"php": ">=7.0"
|
4099 |
+
},
|
4100 |
+
"require-dev": {
|
4101 |
+
"ircmaxell/php-yacc": "^0.0.7",
|
4102 |
+
"phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
|
4103 |
+
},
|
4104 |
+
"bin": [
|
4105 |
+
"bin/php-parse"
|
4106 |
+
],
|
4107 |
+
"type": "library",
|
4108 |
+
"extra": {
|
4109 |
+
"branch-alias": {
|
4110 |
+
"dev-master": "4.9-dev"
|
4111 |
+
}
|
4112 |
+
},
|
4113 |
+
"autoload": {
|
4114 |
+
"psr-4": {
|
4115 |
+
"PhpParser\\": "lib/PhpParser"
|
4116 |
+
}
|
4117 |
+
},
|
4118 |
+
"notification-url": "https://packagist.org/downloads/",
|
4119 |
+
"license": [
|
4120 |
+
"BSD-3-Clause"
|
4121 |
+
],
|
4122 |
+
"authors": [
|
4123 |
+
{
|
4124 |
+
"name": "Nikita Popov"
|
4125 |
+
}
|
4126 |
+
],
|
4127 |
+
"description": "A PHP parser written in PHP",
|
4128 |
+
"keywords": [
|
4129 |
+
"parser",
|
4130 |
+
"php"
|
4131 |
+
],
|
4132 |
+
"support": {
|
4133 |
+
"issues": "https://github.com/nikic/PHP-Parser/issues",
|
4134 |
+
"source": "https://github.com/nikic/PHP-Parser/tree/v4.13.2"
|
4135 |
+
},
|
4136 |
+
"time": "2021-11-30T19:35:32+00:00"
|
4137 |
+
},
|
4138 |
+
{
|
4139 |
+
"name": "openlss/lib-array2xml",
|
4140 |
+
"version": "1.0.0",
|
4141 |
+
"source": {
|
4142 |
+
"type": "git",
|
4143 |
+
"url": "https://github.com/nullivex/lib-array2xml.git",
|
4144 |
+
"reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90"
|
4145 |
+
},
|
4146 |
+
"dist": {
|
4147 |
+
"type": "zip",
|
4148 |
+
"url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90",
|
4149 |
+
"reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90",
|
4150 |
+
"shasum": ""
|
4151 |
+
},
|
4152 |
+
"require": {
|
4153 |
+
"php": ">=5.3.2"
|
4154 |
+
},
|
4155 |
+
"type": "library",
|
4156 |
+
"autoload": {
|
4157 |
+
"psr-0": {
|
4158 |
+
"LSS": ""
|
4159 |
+
}
|
4160 |
+
},
|
4161 |
+
"notification-url": "https://packagist.org/downloads/",
|
4162 |
+
"license": [
|
4163 |
+
"Apache-2.0"
|
4164 |
+
],
|
4165 |
+
"authors": [
|
4166 |
+
{
|
4167 |
+
"name": "Bryan Tong",
|
4168 |
+
"email": "bryan@nullivex.com",
|
4169 |
+
"homepage": "https://www.nullivex.com"
|
4170 |
+
},
|
4171 |
+
{
|
4172 |
+
"name": "Tony Butler",
|
4173 |
+
"email": "spudz76@gmail.com",
|
4174 |
+
"homepage": "https://www.nullivex.com"
|
4175 |
+
}
|
4176 |
+
],
|
4177 |
+
"description": "Array2XML conversion library credit to lalit.org",
|
4178 |
+
"homepage": "https://www.nullivex.com",
|
4179 |
+
"keywords": [
|
4180 |
+
"array",
|
4181 |
+
"array conversion",
|
4182 |
+
"xml",
|
4183 |
+
"xml conversion"
|
4184 |
+
],
|
4185 |
+
"support": {
|
4186 |
+
"issues": "https://github.com/nullivex/lib-array2xml/issues",
|
4187 |
+
"source": "https://github.com/nullivex/lib-array2xml/tree/master"
|
4188 |
+
},
|
4189 |
+
"time": "2019-03-29T20:06:56+00:00"
|
4190 |
},
|
4191 |
{
|
4192 |
"name": "overtrue/phplint",
|
4475 |
},
|
4476 |
"time": "2018-07-08T19:19:57+00:00"
|
4477 |
},
|
4478 |
+
{
|
4479 |
+
"name": "php-cs-fixer/diff",
|
4480 |
+
"version": "v2.0.2",
|
4481 |
+
"source": {
|
4482 |
+
"type": "git",
|
4483 |
+
"url": "https://github.com/PHP-CS-Fixer/diff.git",
|
4484 |
+
"reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3"
|
4485 |
+
},
|
4486 |
+
"dist": {
|
4487 |
+
"type": "zip",
|
4488 |
+
"url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/29dc0d507e838c4580d018bd8b5cb412474f7ec3",
|
4489 |
+
"reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3",
|
4490 |
+
"shasum": ""
|
4491 |
+
},
|
4492 |
+
"require": {
|
4493 |
+
"php": "^5.6 || ^7.0 || ^8.0"
|
4494 |
+
},
|
4495 |
+
"require-dev": {
|
4496 |
+
"phpunit/phpunit": "^5.7.23 || ^6.4.3 || ^7.0",
|
4497 |
+
"symfony/process": "^3.3"
|
4498 |
+
},
|
4499 |
+
"type": "library",
|
4500 |
+
"autoload": {
|
4501 |
+
"classmap": [
|
4502 |
+
"src/"
|
4503 |
+
]
|
4504 |
+
},
|
4505 |
+
"notification-url": "https://packagist.org/downloads/",
|
4506 |
+
"license": [
|
4507 |
+
"BSD-3-Clause"
|
4508 |
+
],
|
4509 |
+
"authors": [
|
4510 |
+
{
|
4511 |
+
"name": "Sebastian Bergmann",
|
4512 |
+
"email": "sebastian@phpunit.de"
|
4513 |
+
},
|
4514 |
+
{
|
4515 |
+
"name": "Kore Nordmann",
|
4516 |
+
"email": "mail@kore-nordmann.de"
|
4517 |
+
}
|
4518 |
+
],
|
4519 |
+
"description": "sebastian/diff v3 backport support for PHP 5.6+",
|
4520 |
+
"homepage": "https://github.com/PHP-CS-Fixer",
|
4521 |
+
"keywords": [
|
4522 |
+
"diff"
|
4523 |
+
],
|
4524 |
+
"support": {
|
4525 |
+
"issues": "https://github.com/PHP-CS-Fixer/diff/issues",
|
4526 |
+
"source": "https://github.com/PHP-CS-Fixer/diff/tree/v2.0.2"
|
4527 |
+
},
|
4528 |
+
"time": "2020-10-14T08:32:19+00:00"
|
4529 |
+
},
|
4530 |
{
|
4531 |
"name": "php-webdriver/webdriver",
|
4532 |
"version": "1.12.0",
|
4766 |
},
|
4767 |
{
|
4768 |
"name": "phpdocumentor/type-resolver",
|
4769 |
+
"version": "1.6.0",
|
4770 |
"source": {
|
4771 |
"type": "git",
|
4772 |
"url": "https://github.com/phpDocumentor/TypeResolver.git",
|
4773 |
+
"reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706"
|
4774 |
},
|
4775 |
"dist": {
|
4776 |
"type": "zip",
|
4777 |
+
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/93ebd0014cab80c4ea9f5e297ea48672f1b87706",
|
4778 |
+
"reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706",
|
4779 |
"shasum": ""
|
4780 |
},
|
4781 |
"require": {
|
4810 |
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
|
4811 |
"support": {
|
4812 |
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
|
4813 |
+
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.0"
|
4814 |
},
|
4815 |
+
"time": "2022-01-04T19:58:01+00:00"
|
4816 |
},
|
4817 |
{
|
4818 |
"name": "phpmd/phpmd",
|
4819 |
+
"version": "2.11.1",
|
4820 |
"source": {
|
4821 |
"type": "git",
|
4822 |
"url": "https://github.com/phpmd/phpmd.git",
|
4823 |
+
"reference": "08b60a2eb7e14c23f46ff8865b510ae08b75d0fd"
|
4824 |
},
|
4825 |
"dist": {
|
4826 |
"type": "zip",
|
4827 |
+
"url": "https://api.github.com/repos/phpmd/phpmd/zipball/08b60a2eb7e14c23f46ff8865b510ae08b75d0fd",
|
4828 |
+
"reference": "08b60a2eb7e14c23f46ff8865b510ae08b75d0fd",
|
4829 |
"shasum": ""
|
4830 |
},
|
4831 |
"require": {
|
4887 |
"support": {
|
4888 |
"irc": "irc://irc.freenode.org/phpmd",
|
4889 |
"issues": "https://github.com/phpmd/phpmd/issues",
|
4890 |
+
"source": "https://github.com/phpmd/phpmd/tree/2.11.1"
|
4891 |
},
|
4892 |
"funding": [
|
4893 |
{
|
4895 |
"type": "tidelift"
|
4896 |
}
|
4897 |
],
|
4898 |
+
"time": "2021-12-17T11:25:43+00:00"
|
4899 |
},
|
4900 |
{
|
4901 |
"name": "phpspec/prophecy",
|
4902 |
+
"version": "v1.15.0",
|
4903 |
"source": {
|
4904 |
"type": "git",
|
4905 |
"url": "https://github.com/phpspec/prophecy.git",
|
4906 |
+
"reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13"
|
4907 |
},
|
4908 |
"dist": {
|
4909 |
"type": "zip",
|
4910 |
+
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
|
4911 |
+
"reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
|
4912 |
"shasum": ""
|
4913 |
},
|
4914 |
"require": {
|
4960 |
],
|
4961 |
"support": {
|
4962 |
"issues": "https://github.com/phpspec/prophecy/issues",
|
4963 |
+
"source": "https://github.com/phpspec/prophecy/tree/v1.15.0"
|
4964 |
+
},
|
4965 |
+
"time": "2021-12-08T12:19:24+00:00"
|
4966 |
+
},
|
4967 |
+
{
|
4968 |
+
"name": "phpstan/phpstan",
|
4969 |
+
"version": "1.3.1",
|
4970 |
+
"source": {
|
4971 |
+
"type": "git",
|
4972 |
+
"url": "https://github.com/phpstan/phpstan.git",
|
4973 |
+
"reference": "c3e7a5837829b3cd5907b895da73a4da084a9f8f"
|
4974 |
+
},
|
4975 |
+
"dist": {
|
4976 |
+
"type": "zip",
|
4977 |
+
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/c3e7a5837829b3cd5907b895da73a4da084a9f8f",
|
4978 |
+
"reference": "c3e7a5837829b3cd5907b895da73a4da084a9f8f",
|
4979 |
+
"shasum": ""
|
4980 |
+
},
|
4981 |
+
"require": {
|
4982 |
+
"php": "^7.1|^8.0"
|
4983 |
+
},
|
4984 |
+
"conflict": {
|
4985 |
+
"phpstan/phpstan-shim": "*"
|
4986 |
+
},
|
4987 |
+
"bin": [
|
4988 |
+
"phpstan",
|
4989 |
+
"phpstan.phar"
|
4990 |
+
],
|
4991 |
+
"type": "library",
|
4992 |
+
"extra": {
|
4993 |
+
"branch-alias": {
|
4994 |
+
"dev-master": "1.3-dev"
|
4995 |
+
}
|
4996 |
+
},
|
4997 |
+
"autoload": {
|
4998 |
+
"files": [
|
4999 |
+
"bootstrap.php"
|
5000 |
+
]
|
5001 |
+
},
|
5002 |
+
"notification-url": "https://packagist.org/downloads/",
|
5003 |
+
"license": [
|
5004 |
+
"MIT"
|
5005 |
+
],
|
5006 |
+
"description": "PHPStan - PHP Static Analysis Tool",
|
5007 |
+
"support": {
|
5008 |
+
"issues": "https://github.com/phpstan/phpstan/issues",
|
5009 |
+
"source": "https://github.com/phpstan/phpstan/tree/1.3.1"
|
5010 |
},
|
5011 |
+
"funding": [
|
5012 |
+
{
|
5013 |
+
"url": "https://github.com/ondrejmirtes",
|
5014 |
+
"type": "github"
|
5015 |
+
},
|
5016 |
+
{
|
5017 |
+
"url": "https://github.com/phpstan",
|
5018 |
+
"type": "github"
|
5019 |
+
},
|
5020 |
+
{
|
5021 |
+
"url": "https://www.patreon.com/phpstan",
|
5022 |
+
"type": "patreon"
|
5023 |
+
},
|
5024 |
+
{
|
5025 |
+
"url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan",
|
5026 |
+
"type": "tidelift"
|
5027 |
+
}
|
5028 |
+
],
|
5029 |
+
"time": "2022-01-04T17:12:37+00:00"
|
5030 |
},
|
5031 |
{
|
5032 |
"name": "phpunit/php-code-coverage",
|
5104 |
},
|
5105 |
{
|
5106 |
"name": "phpunit/php-file-iterator",
|
5107 |
+
"version": "3.0.6",
|
5108 |
"source": {
|
5109 |
"type": "git",
|
5110 |
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
|
5111 |
+
"reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
|
5112 |
},
|
5113 |
"dist": {
|
5114 |
"type": "zip",
|
5115 |
+
"url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
|
5116 |
+
"reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
|
5117 |
"shasum": ""
|
5118 |
},
|
5119 |
"require": {
|
5152 |
],
|
5153 |
"support": {
|
5154 |
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
|
5155 |
+
"source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
|
5156 |
},
|
5157 |
"funding": [
|
5158 |
{
|
5160 |
"type": "github"
|
5161 |
}
|
5162 |
],
|
5163 |
+
"time": "2021-12-02T12:48:52+00:00"
|
5164 |
},
|
5165 |
{
|
5166 |
"name": "phpunit/php-invoker",
|
5482 |
"role": "lead"
|
5483 |
}
|
5484 |
],
|
5485 |
+
"description": "The PHP Unit Testing framework.",
|
5486 |
+
"homepage": "https://phpunit.de/",
|
5487 |
+
"keywords": [
|
5488 |
+
"phpunit",
|
5489 |
+
"testing",
|
5490 |
+
"xunit"
|
5491 |
+
],
|
5492 |
+
"support": {
|
5493 |
+
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
5494 |
+
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.1.5"
|
5495 |
+
},
|
5496 |
+
"funding": [
|
5497 |
+
{
|
5498 |
+
"url": "https://phpunit.de/donate.html",
|
5499 |
+
"type": "custom"
|
5500 |
+
},
|
5501 |
+
{
|
5502 |
+
"url": "https://github.com/sebastianbergmann",
|
5503 |
+
"type": "github"
|
5504 |
+
}
|
5505 |
+
],
|
5506 |
+
"time": "2020-05-22T13:54:05+00:00"
|
5507 |
+
},
|
5508 |
+
{
|
5509 |
+
"name": "psr/cache",
|
5510 |
+
"version": "1.0.1",
|
5511 |
+
"source": {
|
5512 |
+
"type": "git",
|
5513 |
+
"url": "https://github.com/php-fig/cache.git",
|
5514 |
+
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
|
5515 |
+
},
|
5516 |
+
"dist": {
|
5517 |
+
"type": "zip",
|
5518 |
+
"url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
|
5519 |
+
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
|
5520 |
+
"shasum": ""
|
5521 |
+
},
|
5522 |
+
"require": {
|
5523 |
+
"php": ">=5.3.0"
|
5524 |
+
},
|
5525 |
+
"type": "library",
|
5526 |
+
"extra": {
|
5527 |
+
"branch-alias": {
|
5528 |
+
"dev-master": "1.0.x-dev"
|
5529 |
+
}
|
5530 |
+
},
|
5531 |
+
"autoload": {
|
5532 |
+
"psr-4": {
|
5533 |
+
"Psr\\Cache\\": "src/"
|
5534 |
+
}
|
5535 |
+
},
|
5536 |
+
"notification-url": "https://packagist.org/downloads/",
|
5537 |
+
"license": [
|
5538 |
+
"MIT"
|
5539 |
+
],
|
5540 |
+
"authors": [
|
5541 |
+
{
|
5542 |
+
"name": "PHP-FIG",
|
5543 |
+
"homepage": "http://www.php-fig.org/"
|
5544 |
+
}
|
5545 |
+
],
|
5546 |
+
"description": "Common interface for caching libraries",
|
5547 |
"keywords": [
|
5548 |
+
"cache",
|
5549 |
+
"psr",
|
5550 |
+
"psr-6"
|
5551 |
],
|
5552 |
"support": {
|
5553 |
+
"source": "https://github.com/php-fig/cache/tree/master"
|
|
|
5554 |
},
|
5555 |
+
"time": "2016-08-06T20:24:11+00:00"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5556 |
},
|
5557 |
{
|
5558 |
"name": "psr/container",
|
7017 |
},
|
7018 |
{
|
7019 |
"name": "squizlabs/php_codesniffer",
|
7020 |
+
"version": "3.6.2",
|
7021 |
"source": {
|
7022 |
"type": "git",
|
7023 |
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
|
7024 |
+
"reference": "5e4e71592f69da17871dba6e80dd51bce74a351a"
|
7025 |
},
|
7026 |
"dist": {
|
7027 |
"type": "zip",
|
7028 |
+
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/5e4e71592f69da17871dba6e80dd51bce74a351a",
|
7029 |
+
"reference": "5e4e71592f69da17871dba6e80dd51bce74a351a",
|
7030 |
"shasum": ""
|
7031 |
},
|
7032 |
"require": {
|
7069 |
"source": "https://github.com/squizlabs/PHP_CodeSniffer",
|
7070 |
"wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
|
7071 |
},
|
7072 |
+
"time": "2021-12-12T21:44:58+00:00"
|
7073 |
},
|
7074 |
{
|
7075 |
"name": "symfony/browser-kit",
|
7076 |
+
"version": "v5.4.2",
|
7077 |
"source": {
|
7078 |
"type": "git",
|
7079 |
"url": "https://github.com/symfony/browser-kit.git",
|
7080 |
+
"reference": "1fb93b0aab42392aa0a742db205173b49afaf80f"
|
7081 |
},
|
7082 |
"dist": {
|
7083 |
"type": "zip",
|
7084 |
+
"url": "https://api.github.com/repos/symfony/browser-kit/zipball/1fb93b0aab42392aa0a742db205173b49afaf80f",
|
7085 |
+
"reference": "1fb93b0aab42392aa0a742db205173b49afaf80f",
|
7086 |
"shasum": ""
|
7087 |
},
|
7088 |
"require": {
|
7125 |
"description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically",
|
7126 |
"homepage": "https://symfony.com",
|
7127 |
"support": {
|
7128 |
+
"source": "https://github.com/symfony/browser-kit/tree/v5.4.2"
|
7129 |
},
|
7130 |
"funding": [
|
7131 |
{
|
7141 |
"type": "tidelift"
|
7142 |
}
|
7143 |
],
|
7144 |
+
"time": "2021-12-16T21:58:21+00:00"
|
7145 |
},
|
7146 |
{
|
7147 |
"name": "symfony/config",
|
7148 |
+
"version": "v5.4.2",
|
7149 |
"source": {
|
7150 |
"type": "git",
|
7151 |
"url": "https://github.com/symfony/config.git",
|
7152 |
+
"reference": "2e082dae50da563c639119b7b52347a2a3db4ba5"
|
7153 |
},
|
7154 |
"dist": {
|
7155 |
"type": "zip",
|
7156 |
+
"url": "https://api.github.com/repos/symfony/config/zipball/2e082dae50da563c639119b7b52347a2a3db4ba5",
|
7157 |
+
"reference": "2e082dae50da563c639119b7b52347a2a3db4ba5",
|
7158 |
"shasum": ""
|
7159 |
},
|
7160 |
"require": {
|
7204 |
"description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
|
7205 |
"homepage": "https://symfony.com",
|
7206 |
"support": {
|
7207 |
+
"source": "https://github.com/symfony/config/tree/v5.4.2"
|
7208 |
},
|
7209 |
"funding": [
|
7210 |
{
|
7220 |
"type": "tidelift"
|
7221 |
}
|
7222 |
],
|
7223 |
+
"time": "2021-12-15T11:06:13+00:00"
|
7224 |
},
|
7225 |
{
|
7226 |
"name": "symfony/console",
|
7227 |
+
"version": "v5.4.2",
|
7228 |
"source": {
|
7229 |
"type": "git",
|
7230 |
"url": "https://github.com/symfony/console.git",
|
7231 |
+
"reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e"
|
7232 |
},
|
7233 |
"dist": {
|
7234 |
"type": "zip",
|
7235 |
+
"url": "https://api.github.com/repos/symfony/console/zipball/a2c6b7ced2eb7799a35375fb9022519282b5405e",
|
7236 |
+
"reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e",
|
7237 |
"shasum": ""
|
7238 |
},
|
7239 |
"require": {
|
7240 |
"php": ">=7.2.5",
|
7241 |
+
"symfony/deprecation-contracts": "^2.1|^3",
|
7242 |
"symfony/polyfill-mbstring": "~1.0",
|
7243 |
+
"symfony/polyfill-php73": "^1.9",
|
7244 |
+
"symfony/polyfill-php80": "^1.16",
|
7245 |
+
"symfony/service-contracts": "^1.1|^2|^3",
|
7246 |
+
"symfony/string": "^5.1|^6.0"
|
7247 |
},
|
7248 |
"conflict": {
|
7249 |
+
"psr/log": ">=3",
|
7250 |
"symfony/dependency-injection": "<4.4",
|
7251 |
"symfony/dotenv": "<5.1",
|
7252 |
"symfony/event-dispatcher": "<4.4",
|
7254 |
"symfony/process": "<4.4"
|
7255 |
},
|
7256 |
"provide": {
|
7257 |
+
"psr/log-implementation": "1.0|2.0"
|
7258 |
},
|
7259 |
"require-dev": {
|
7260 |
+
"psr/log": "^1|^2",
|
7261 |
+
"symfony/config": "^4.4|^5.0|^6.0",
|
7262 |
+
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
|
7263 |
+
"symfony/event-dispatcher": "^4.4|^5.0|^6.0",
|
7264 |
+
"symfony/lock": "^4.4|^5.0|^6.0",
|
7265 |
+
"symfony/process": "^4.4|^5.0|^6.0",
|
7266 |
+
"symfony/var-dumper": "^4.4|^5.0|^6.0"
|
7267 |
},
|
7268 |
"suggest": {
|
7269 |
"psr/log": "For using the console logger",
|
7296 |
],
|
7297 |
"description": "Eases the creation of beautiful and testable command line interfaces",
|
7298 |
"homepage": "https://symfony.com",
|
7299 |
+
"keywords": [
|
7300 |
+
"cli",
|
7301 |
+
"command line",
|
7302 |
+
"console",
|
7303 |
+
"terminal"
|
7304 |
+
],
|
7305 |
"support": {
|
7306 |
+
"source": "https://github.com/symfony/console/tree/v5.4.2"
|
7307 |
},
|
7308 |
"funding": [
|
7309 |
{
|
7319 |
"type": "tidelift"
|
7320 |
}
|
7321 |
],
|
7322 |
+
"time": "2021-12-20T16:11:12+00:00"
|
7323 |
},
|
7324 |
{
|
7325 |
"name": "symfony/css-selector",
|
7326 |
+
"version": "v5.4.2",
|
7327 |
"source": {
|
7328 |
"type": "git",
|
7329 |
"url": "https://github.com/symfony/css-selector.git",
|
7330 |
+
"reference": "cfcbee910e159df402603502fe387e8b677c22fd"
|
7331 |
},
|
7332 |
"dist": {
|
7333 |
"type": "zip",
|
7334 |
+
"url": "https://api.github.com/repos/symfony/css-selector/zipball/cfcbee910e159df402603502fe387e8b677c22fd",
|
7335 |
+
"reference": "cfcbee910e159df402603502fe387e8b677c22fd",
|
7336 |
"shasum": ""
|
7337 |
},
|
7338 |
"require": {
|
7369 |
"description": "Converts CSS selectors to XPath expressions",
|
7370 |
"homepage": "https://symfony.com",
|
7371 |
"support": {
|
7372 |
+
"source": "https://github.com/symfony/css-selector/tree/v5.4.2"
|
7373 |
},
|
7374 |
"funding": [
|
7375 |
{
|
7385 |
"type": "tidelift"
|
7386 |
}
|
7387 |
],
|
7388 |
+
"time": "2021-12-16T21:58:21+00:00"
|
7389 |
},
|
7390 |
{
|
7391 |
"name": "symfony/dependency-injection",
|
7392 |
+
"version": "v5.4.2",
|
7393 |
"source": {
|
7394 |
"type": "git",
|
7395 |
"url": "https://github.com/symfony/dependency-injection.git",
|
7396 |
+
"reference": "ba94559be9738d77cd29e24b5d81cf3b89b7d628"
|
7397 |
},
|
7398 |
"dist": {
|
7399 |
"type": "zip",
|
7400 |
+
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/ba94559be9738d77cd29e24b5d81cf3b89b7d628",
|
7401 |
+
"reference": "ba94559be9738d77cd29e24b5d81cf3b89b7d628",
|
7402 |
"shasum": ""
|
7403 |
},
|
7404 |
"require": {
|
7458 |
"description": "Allows you to standardize and centralize the way objects are constructed in your application",
|
7459 |
"homepage": "https://symfony.com",
|
7460 |
"support": {
|
7461 |
+
"source": "https://github.com/symfony/dependency-injection/tree/v5.4.2"
|
7462 |
},
|
7463 |
"funding": [
|
7464 |
{
|
7474 |
"type": "tidelift"
|
7475 |
}
|
7476 |
],
|
7477 |
+
"time": "2021-12-29T10:10:35+00:00"
|
7478 |
},
|
7479 |
{
|
7480 |
"name": "symfony/deprecation-contracts",
|
7545 |
},
|
7546 |
{
|
7547 |
"name": "symfony/dom-crawler",
|
7548 |
+
"version": "v5.4.2",
|
7549 |
"source": {
|
7550 |
"type": "git",
|
7551 |
"url": "https://github.com/symfony/dom-crawler.git",
|
7552 |
+
"reference": "bb3bc3699779fc6d9646270789026a7e2cec7ec7"
|
7553 |
},
|
7554 |
"dist": {
|
7555 |
"type": "zip",
|
7556 |
+
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/bb3bc3699779fc6d9646270789026a7e2cec7ec7",
|
7557 |
+
"reference": "bb3bc3699779fc6d9646270789026a7e2cec7ec7",
|
7558 |
"shasum": ""
|
7559 |
},
|
7560 |
"require": {
|
7600 |
"description": "Eases DOM navigation for HTML and XML documents",
|
7601 |
"homepage": "https://symfony.com",
|
7602 |
"support": {
|
7603 |
+
"source": "https://github.com/symfony/dom-crawler/tree/v5.4.2"
|
7604 |
},
|
7605 |
"funding": [
|
7606 |
{
|
7616 |
"type": "tidelift"
|
7617 |
}
|
7618 |
],
|
7619 |
+
"time": "2021-12-28T17:15:56+00:00"
|
7620 |
},
|
7621 |
{
|
7622 |
"name": "symfony/event-dispatcher",
|
7848 |
},
|
7849 |
{
|
7850 |
"name": "symfony/finder",
|
7851 |
+
"version": "v5.4.2",
|
7852 |
"source": {
|
7853 |
"type": "git",
|
7854 |
"url": "https://github.com/symfony/finder.git",
|
7855 |
+
"reference": "e77046c252be48c48a40816187ed527703c8f76c"
|
7856 |
},
|
7857 |
"dist": {
|
7858 |
"type": "zip",
|
7859 |
+
"url": "https://api.github.com/repos/symfony/finder/zipball/e77046c252be48c48a40816187ed527703c8f76c",
|
7860 |
+
"reference": "e77046c252be48c48a40816187ed527703c8f76c",
|
7861 |
"shasum": ""
|
7862 |
},
|
7863 |
"require": {
|
7891 |
"description": "Finds files and directories via an intuitive fluent interface",
|
7892 |
"homepage": "https://symfony.com",
|
7893 |
"support": {
|
7894 |
+
"source": "https://github.com/symfony/finder/tree/v5.4.2"
|
7895 |
+
},
|
7896 |
+
"funding": [
|
7897 |
+
{
|
7898 |
+
"url": "https://symfony.com/sponsor",
|
7899 |
+
"type": "custom"
|
7900 |
+
},
|
7901 |
+
{
|
7902 |
+
"url": "https://github.com/fabpot",
|
7903 |
+
"type": "github"
|
7904 |
+
},
|
7905 |
+
{
|
7906 |
+
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
7907 |
+
"type": "tidelift"
|
7908 |
+
}
|
7909 |
+
],
|
7910 |
+
"time": "2021-12-15T11:06:13+00:00"
|
7911 |
+
},
|
7912 |
+
{
|
7913 |
+
"name": "symfony/options-resolver",
|
7914 |
+
"version": "v5.4.0",
|
7915 |
+
"source": {
|
7916 |
+
"type": "git",
|
7917 |
+
"url": "https://github.com/symfony/options-resolver.git",
|
7918 |
+
"reference": "b0fb78576487af19c500aaddb269fd36701d4847"
|
7919 |
+
},
|
7920 |
+
"dist": {
|
7921 |
+
"type": "zip",
|
7922 |
+
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/b0fb78576487af19c500aaddb269fd36701d4847",
|
7923 |
+
"reference": "b0fb78576487af19c500aaddb269fd36701d4847",
|
7924 |
+
"shasum": ""
|
7925 |
+
},
|
7926 |
+
"require": {
|
7927 |
+
"php": ">=7.2.5",
|
7928 |
+
"symfony/deprecation-contracts": "^2.1|^3",
|
7929 |
+
"symfony/polyfill-php73": "~1.0",
|
7930 |
+
"symfony/polyfill-php80": "^1.16"
|
7931 |
+
},
|
7932 |
+
"type": "library",
|
7933 |
+
"autoload": {
|
7934 |
+
"psr-4": {
|
7935 |
+
"Symfony\\Component\\OptionsResolver\\": ""
|
7936 |
+
},
|
7937 |
+
"exclude-from-classmap": [
|
7938 |
+
"/Tests/"
|
7939 |
+
]
|
7940 |
+
},
|
7941 |
+
"notification-url": "https://packagist.org/downloads/",
|
7942 |
+
"license": [
|
7943 |
+
"MIT"
|
7944 |
+
],
|
7945 |
+
"authors": [
|
7946 |
+
{
|
7947 |
+
"name": "Fabien Potencier",
|
7948 |
+
"email": "fabien@symfony.com"
|
7949 |
+
},
|
7950 |
+
{
|
7951 |
+
"name": "Symfony Community",
|
7952 |
+
"homepage": "https://symfony.com/contributors"
|
7953 |
+
}
|
7954 |
+
],
|
7955 |
+
"description": "Provides an improved replacement for the array_replace PHP function",
|
7956 |
+
"homepage": "https://symfony.com",
|
7957 |
+
"keywords": [
|
7958 |
+
"config",
|
7959 |
+
"configuration",
|
7960 |
+
"options"
|
7961 |
+
],
|
7962 |
+
"support": {
|
7963 |
+
"source": "https://github.com/symfony/options-resolver/tree/v5.4.0"
|
7964 |
},
|
7965 |
"funding": [
|
7966 |
{
|
7976 |
"type": "tidelift"
|
7977 |
}
|
7978 |
],
|
7979 |
+
"time": "2021-11-23T10:19:22+00:00"
|
7980 |
},
|
7981 |
{
|
7982 |
"name": "symfony/polyfill-ctype",
|
7983 |
+
"version": "v1.24.0",
|
7984 |
"source": {
|
7985 |
"type": "git",
|
7986 |
"url": "https://github.com/symfony/polyfill-ctype.git",
|
7987 |
+
"reference": "30885182c981ab175d4d034db0f6f469898070ab"
|
7988 |
},
|
7989 |
"dist": {
|
7990 |
"type": "zip",
|
7991 |
+
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab",
|
7992 |
+
"reference": "30885182c981ab175d4d034db0f6f469898070ab",
|
7993 |
"shasum": ""
|
7994 |
},
|
7995 |
"require": {
|
7996 |
"php": ">=7.1"
|
7997 |
},
|
7998 |
+
"provide": {
|
7999 |
+
"ext-ctype": "*"
|
8000 |
+
},
|
8001 |
"suggest": {
|
8002 |
"ext-ctype": "For best performance"
|
8003 |
},
|
8042 |
"portable"
|
8043 |
],
|
8044 |
"support": {
|
8045 |
+
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0"
|
8046 |
},
|
8047 |
"funding": [
|
8048 |
{
|
8058 |
"type": "tidelift"
|
8059 |
}
|
8060 |
],
|
8061 |
+
"time": "2021-10-20T20:35:02+00:00"
|
8062 |
},
|
8063 |
{
|
8064 |
"name": "symfony/polyfill-intl-grapheme",
|
8065 |
+
"version": "v1.24.0",
|
8066 |
"source": {
|
8067 |
"type": "git",
|
8068 |
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
|
8069 |
+
"reference": "81b86b50cf841a64252b439e738e97f4a34e2783"
|
8070 |
},
|
8071 |
"dist": {
|
8072 |
"type": "zip",
|
8073 |
+
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/81b86b50cf841a64252b439e738e97f4a34e2783",
|
8074 |
+
"reference": "81b86b50cf841a64252b439e738e97f4a34e2783",
|
8075 |
"shasum": ""
|
8076 |
},
|
8077 |
"require": {
|
8123 |
"shim"
|
8124 |
],
|
8125 |
"support": {
|
8126 |
+
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.24.0"
|
8127 |
},
|
8128 |
"funding": [
|
8129 |
{
|
8139 |
"type": "tidelift"
|
8140 |
}
|
8141 |
],
|
8142 |
+
"time": "2021-11-23T21:10:46+00:00"
|
8143 |
},
|
8144 |
{
|
8145 |
"name": "symfony/polyfill-intl-normalizer",
|
8146 |
+
"version": "v1.24.0",
|
8147 |
"source": {
|
8148 |
"type": "git",
|
8149 |
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
8207 |
"shim"
|
8208 |
],
|
8209 |
"support": {
|
8210 |
+
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0"
|
8211 |
},
|
8212 |
"funding": [
|
8213 |
{
|
8227 |
},
|
8228 |
{
|
8229 |
"name": "symfony/polyfill-mbstring",
|
8230 |
+
"version": "v1.24.0",
|
8231 |
"source": {
|
8232 |
"type": "git",
|
8233 |
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
8234 |
+
"reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825"
|
8235 |
},
|
8236 |
"dist": {
|
8237 |
"type": "zip",
|
8238 |
+
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825",
|
8239 |
+
"reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825",
|
8240 |
"shasum": ""
|
8241 |
},
|
8242 |
"require": {
|
8243 |
"php": ">=7.1"
|
8244 |
},
|
8245 |
+
"provide": {
|
8246 |
+
"ext-mbstring": "*"
|
8247 |
+
},
|
8248 |
"suggest": {
|
8249 |
"ext-mbstring": "For best performance"
|
8250 |
},
|
8290 |
"shim"
|
8291 |
],
|
8292 |
"support": {
|
8293 |
+
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0"
|
8294 |
},
|
8295 |
"funding": [
|
8296 |
{
|
8306 |
"type": "tidelift"
|
8307 |
}
|
8308 |
],
|
8309 |
+
"time": "2021-11-30T18:21:41+00:00"
|
8310 |
},
|
8311 |
{
|
8312 |
"name": "symfony/polyfill-php73",
|
8313 |
+
"version": "v1.24.0",
|
8314 |
"source": {
|
8315 |
"type": "git",
|
8316 |
"url": "https://github.com/symfony/polyfill-php73.git",
|
8317 |
+
"reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5"
|
8318 |
},
|
8319 |
"dist": {
|
8320 |
"type": "zip",
|
8321 |
+
"url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/cc5db0e22b3cb4111010e48785a97f670b350ca5",
|
8322 |
+
"reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5",
|
8323 |
"shasum": ""
|
8324 |
},
|
8325 |
"require": {
|
8369 |
"shim"
|
8370 |
],
|
8371 |
"support": {
|
8372 |
+
"source": "https://github.com/symfony/polyfill-php73/tree/v1.24.0"
|
8373 |
},
|
8374 |
"funding": [
|
8375 |
{
|
8385 |
"type": "tidelift"
|
8386 |
}
|
8387 |
],
|
8388 |
+
"time": "2021-06-05T21:20:04+00:00"
|
8389 |
},
|
8390 |
{
|
8391 |
"name": "symfony/polyfill-php80",
|
8392 |
+
"version": "v1.24.0",
|
8393 |
"source": {
|
8394 |
"type": "git",
|
8395 |
"url": "https://github.com/symfony/polyfill-php80.git",
|
8396 |
+
"reference": "57b712b08eddb97c762a8caa32c84e037892d2e9"
|
8397 |
},
|
8398 |
"dist": {
|
8399 |
"type": "zip",
|
8400 |
+
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9",
|
8401 |
+
"reference": "57b712b08eddb97c762a8caa32c84e037892d2e9",
|
8402 |
"shasum": ""
|
8403 |
},
|
8404 |
"require": {
|
8452 |
"shim"
|
8453 |
],
|
8454 |
"support": {
|
8455 |
+
"source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0"
|
8456 |
},
|
8457 |
"funding": [
|
8458 |
{
|
8468 |
"type": "tidelift"
|
8469 |
}
|
8470 |
],
|
8471 |
+
"time": "2021-09-13T13:58:33+00:00"
|
8472 |
},
|
8473 |
{
|
8474 |
"name": "symfony/polyfill-php81",
|
8475 |
+
"version": "v1.24.0",
|
8476 |
"source": {
|
8477 |
"type": "git",
|
8478 |
"url": "https://github.com/symfony/polyfill-php81.git",
|
8479 |
+
"reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f"
|
8480 |
},
|
8481 |
"dist": {
|
8482 |
"type": "zip",
|
8483 |
+
"url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/5de4ba2d41b15f9bd0e19b2ab9674135813ec98f",
|
8484 |
+
"reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f",
|
8485 |
"shasum": ""
|
8486 |
},
|
8487 |
"require": {
|
8531 |
"shim"
|
8532 |
],
|
8533 |
"support": {
|
8534 |
+
"source": "https://github.com/symfony/polyfill-php81/tree/v1.24.0"
|
8535 |
},
|
8536 |
"funding": [
|
8537 |
{
|
8547 |
"type": "tidelift"
|
8548 |
}
|
8549 |
],
|
8550 |
+
"time": "2021-09-13T13:58:11+00:00"
|
8551 |
},
|
8552 |
{
|
8553 |
"name": "symfony/process",
|
8554 |
+
"version": "v5.4.2",
|
8555 |
"source": {
|
8556 |
"type": "git",
|
8557 |
"url": "https://github.com/symfony/process.git",
|
8558 |
+
"reference": "2b3ba8722c4aaf3e88011be5e7f48710088fb5e4"
|
8559 |
},
|
8560 |
"dist": {
|
8561 |
"type": "zip",
|
8562 |
+
"url": "https://api.github.com/repos/symfony/process/zipball/2b3ba8722c4aaf3e88011be5e7f48710088fb5e4",
|
8563 |
+
"reference": "2b3ba8722c4aaf3e88011be5e7f48710088fb5e4",
|
8564 |
"shasum": ""
|
8565 |
},
|
8566 |
"require": {
|
8593 |
"description": "Executes commands in sub-processes",
|
8594 |
"homepage": "https://symfony.com",
|
8595 |
"support": {
|
8596 |
+
"source": "https://github.com/symfony/process/tree/v5.4.2"
|
8597 |
},
|
8598 |
"funding": [
|
8599 |
{
|
8609 |
"type": "tidelift"
|
8610 |
}
|
8611 |
],
|
8612 |
+
"time": "2021-12-27T21:01:00+00:00"
|
8613 |
},
|
8614 |
{
|
8615 |
"name": "symfony/service-contracts",
|
8695 |
"time": "2021-11-04T16:48:04+00:00"
|
8696 |
},
|
8697 |
{
|
8698 |
+
"name": "symfony/stopwatch",
|
8699 |
"version": "v5.4.0",
|
8700 |
+
"source": {
|
8701 |
+
"type": "git",
|
8702 |
+
"url": "https://github.com/symfony/stopwatch.git",
|
8703 |
+
"reference": "208ef96122bfed82a8f3a61458a07113a08bdcfe"
|
8704 |
+
},
|
8705 |
+
"dist": {
|
8706 |
+
"type": "zip",
|
8707 |
+
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/208ef96122bfed82a8f3a61458a07113a08bdcfe",
|
8708 |
+
"reference": "208ef96122bfed82a8f3a61458a07113a08bdcfe",
|
8709 |
+
"shasum": ""
|
8710 |
+
},
|
8711 |
+
"require": {
|
8712 |
+
"php": ">=7.2.5",
|
8713 |
+
"symfony/service-contracts": "^1|^2|^3"
|
8714 |
+
},
|
8715 |
+
"type": "library",
|
8716 |
+
"autoload": {
|
8717 |
+
"psr-4": {
|
8718 |
+
"Symfony\\Component\\Stopwatch\\": ""
|
8719 |
+
},
|
8720 |
+
"exclude-from-classmap": [
|
8721 |
+
"/Tests/"
|
8722 |
+
]
|
8723 |
+
},
|
8724 |
+
"notification-url": "https://packagist.org/downloads/",
|
8725 |
+
"license": [
|
8726 |
+
"MIT"
|
8727 |
+
],
|
8728 |
+
"authors": [
|
8729 |
+
{
|
8730 |
+
"name": "Fabien Potencier",
|
8731 |
+
"email": "fabien@symfony.com"
|
8732 |
+
},
|
8733 |
+
{
|
8734 |
+
"name": "Symfony Community",
|
8735 |
+
"homepage": "https://symfony.com/contributors"
|
8736 |
+
}
|
8737 |
+
],
|
8738 |
+
"description": "Provides a way to profile code",
|
8739 |
+
"homepage": "https://symfony.com",
|
8740 |
+
"support": {
|
8741 |
+
"source": "https://github.com/symfony/stopwatch/tree/v5.4.0"
|
8742 |
+
},
|
8743 |
+
"funding": [
|
8744 |
+
{
|
8745 |
+
"url": "https://symfony.com/sponsor",
|
8746 |
+
"type": "custom"
|
8747 |
+
},
|
8748 |
+
{
|
8749 |
+
"url": "https://github.com/fabpot",
|
8750 |
+
"type": "github"
|
8751 |
+
},
|
8752 |
+
{
|
8753 |
+
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
8754 |
+
"type": "tidelift"
|
8755 |
+
}
|
8756 |
+
],
|
8757 |
+
"time": "2021-11-23T10:19:22+00:00"
|
8758 |
+
},
|
8759 |
+
{
|
8760 |
+
"name": "symfony/string",
|
8761 |
+
"version": "v5.4.2",
|
8762 |
"source": {
|
8763 |
"type": "git",
|
8764 |
"url": "https://github.com/symfony/string.git",
|
8765 |
+
"reference": "e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d"
|
8766 |
},
|
8767 |
"dist": {
|
8768 |
"type": "zip",
|
8769 |
+
"url": "https://api.github.com/repos/symfony/string/zipball/e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d",
|
8770 |
+
"reference": "e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d",
|
8771 |
"shasum": ""
|
8772 |
},
|
8773 |
"require": {
|
8824 |
"utf8"
|
8825 |
],
|
8826 |
"support": {
|
8827 |
+
"source": "https://github.com/symfony/string/tree/v5.4.2"
|
8828 |
},
|
8829 |
"funding": [
|
8830 |
{
|
8840 |
"type": "tidelift"
|
8841 |
}
|
8842 |
],
|
8843 |
+
"time": "2021-12-16T21:52:00+00:00"
|
8844 |
},
|
8845 |
{
|
8846 |
"name": "symfony/translation",
|
8847 |
+
"version": "v5.4.2",
|
8848 |
"source": {
|
8849 |
"type": "git",
|
8850 |
"url": "https://github.com/symfony/translation.git",
|
8851 |
+
"reference": "ff8bb2107b6a549dc3c5dd9c498dcc82c9c098ca"
|
8852 |
},
|
8853 |
"dist": {
|
8854 |
"type": "zip",
|
8855 |
+
"url": "https://api.github.com/repos/symfony/translation/zipball/ff8bb2107b6a549dc3c5dd9c498dcc82c9c098ca",
|
8856 |
+
"reference": "ff8bb2107b6a549dc3c5dd9c498dcc82c9c098ca",
|
8857 |
"shasum": ""
|
8858 |
},
|
8859 |
"require": {
|
8860 |
"php": ">=7.2.5",
|
8861 |
+
"symfony/deprecation-contracts": "^2.1|^3",
|
8862 |
"symfony/polyfill-mbstring": "~1.0",
|
8863 |
"symfony/polyfill-php80": "^1.16",
|
8864 |
"symfony/translation-contracts": "^2.3"
|
8865 |
},
|
8866 |
"conflict": {
|
8867 |
"symfony/config": "<4.4",
|
8868 |
+
"symfony/console": "<5.3",
|
8869 |
"symfony/dependency-injection": "<5.0",
|
8870 |
"symfony/http-kernel": "<5.0",
|
8871 |
"symfony/twig-bundle": "<5.0",
|
8876 |
},
|
8877 |
"require-dev": {
|
8878 |
"psr/log": "^1|^2|^3",
|
8879 |
+
"symfony/config": "^4.4|^5.0|^6.0",
|
8880 |
+
"symfony/console": "^5.4|^6.0",
|
8881 |
+
"symfony/dependency-injection": "^5.0|^6.0",
|
8882 |
+
"symfony/finder": "^4.4|^5.0|^6.0",
|
8883 |
+
"symfony/http-client-contracts": "^1.1|^2.0|^3.0",
|
8884 |
+
"symfony/http-kernel": "^5.0|^6.0",
|
8885 |
+
"symfony/intl": "^4.4|^5.0|^6.0",
|
8886 |
"symfony/polyfill-intl-icu": "^1.21",
|
8887 |
+
"symfony/service-contracts": "^1.1.2|^2|^3",
|
8888 |
+
"symfony/yaml": "^4.4|^5.0|^6.0"
|
8889 |
},
|
8890 |
"suggest": {
|
8891 |
"psr/log-implementation": "To use logging capability in translator",
|
8921 |
"description": "Provides tools to internationalize your application",
|
8922 |
"homepage": "https://symfony.com",
|
8923 |
"support": {
|
8924 |
+
"source": "https://github.com/symfony/translation/tree/v5.4.2"
|
8925 |
},
|
8926 |
"funding": [
|
8927 |
{
|
8937 |
"type": "tidelift"
|
8938 |
}
|
8939 |
],
|
8940 |
+
"time": "2021-12-25T19:45:36+00:00"
|
8941 |
},
|
8942 |
{
|
8943 |
"name": "symfony/translation-contracts",
|
9019 |
},
|
9020 |
{
|
9021 |
"name": "symfony/yaml",
|
9022 |
+
"version": "v5.4.2",
|
9023 |
"source": {
|
9024 |
"type": "git",
|
9025 |
"url": "https://github.com/symfony/yaml.git",
|
9026 |
+
"reference": "b9eb163846a61bb32dfc147f7859e274fab38b58"
|
9027 |
},
|
9028 |
"dist": {
|
9029 |
"type": "zip",
|
9030 |
+
"url": "https://api.github.com/repos/symfony/yaml/zipball/b9eb163846a61bb32dfc147f7859e274fab38b58",
|
9031 |
+
"reference": "b9eb163846a61bb32dfc147f7859e274fab38b58",
|
9032 |
"shasum": ""
|
9033 |
},
|
9034 |
"require": {
|
9035 |
"php": ">=7.2.5",
|
9036 |
+
"symfony/deprecation-contracts": "^2.1|^3",
|
9037 |
+
"symfony/polyfill-ctype": "^1.8"
|
9038 |
},
|
9039 |
"conflict": {
|
9040 |
+
"symfony/console": "<5.3"
|
9041 |
},
|
9042 |
"require-dev": {
|
9043 |
+
"symfony/console": "^5.3|^6.0"
|
9044 |
},
|
9045 |
"suggest": {
|
9046 |
"symfony/console": "For validating YAML files using the lint command"
|
9074 |
"description": "Loads and dumps YAML files",
|
9075 |
"homepage": "https://symfony.com",
|
9076 |
"support": {
|
9077 |
+
"source": "https://github.com/symfony/yaml/tree/v5.4.2"
|
9078 |
},
|
9079 |
"funding": [
|
9080 |
{
|
9090 |
"type": "tidelift"
|
9091 |
}
|
9092 |
],
|
9093 |
+
"time": "2021-12-16T21:58:21+00:00"
|
9094 |
},
|
9095 |
{
|
9096 |
"name": "theseer/fdomdocument",
|
9186 |
],
|
9187 |
"time": "2021-07-28T10:34:58+00:00"
|
9188 |
},
|
9189 |
+
{
|
9190 |
+
"name": "vimeo/psalm",
|
9191 |
+
"version": "4.17.0",
|
9192 |
+
"source": {
|
9193 |
+
"type": "git",
|
9194 |
+
"url": "https://github.com/vimeo/psalm.git",
|
9195 |
+
"reference": "6f4707aa41c9174353a6434bba3fc8840f981d9c"
|
9196 |
+
},
|
9197 |
+
"dist": {
|
9198 |
+
"type": "zip",
|
9199 |
+
"url": "https://api.github.com/repos/vimeo/psalm/zipball/6f4707aa41c9174353a6434bba3fc8840f981d9c",
|
9200 |
+
"reference": "6f4707aa41c9174353a6434bba3fc8840f981d9c",
|
9201 |
+
"shasum": ""
|
9202 |
+
},
|
9203 |
+
"require": {
|
9204 |
+
"amphp/amp": "^2.4.2",
|
9205 |
+
"amphp/byte-stream": "^1.5",
|
9206 |
+
"composer/package-versions-deprecated": "^1.8.0",
|
9207 |
+
"composer/semver": "^1.4 || ^2.0 || ^3.0",
|
9208 |
+
"composer/xdebug-handler": "^1.1 || ^2.0 || ^3.0",
|
9209 |
+
"dnoegel/php-xdg-base-dir": "^0.1.1",
|
9210 |
+
"ext-ctype": "*",
|
9211 |
+
"ext-dom": "*",
|
9212 |
+
"ext-json": "*",
|
9213 |
+
"ext-libxml": "*",
|
9214 |
+
"ext-mbstring": "*",
|
9215 |
+
"ext-simplexml": "*",
|
9216 |
+
"ext-tokenizer": "*",
|
9217 |
+
"felixfbecker/advanced-json-rpc": "^3.0.3",
|
9218 |
+
"felixfbecker/language-server-protocol": "^1.5",
|
9219 |
+
"netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
|
9220 |
+
"nikic/php-parser": "^4.13",
|
9221 |
+
"openlss/lib-array2xml": "^1.0",
|
9222 |
+
"php": "^7.1|^8",
|
9223 |
+
"sebastian/diff": "^3.0 || ^4.0",
|
9224 |
+
"symfony/console": "^3.4.17 || ^4.1.6 || ^5.0 || ^6.0",
|
9225 |
+
"webmozart/path-util": "^2.3"
|
9226 |
+
},
|
9227 |
+
"provide": {
|
9228 |
+
"psalm/psalm": "self.version"
|
9229 |
+
},
|
9230 |
+
"require-dev": {
|
9231 |
+
"bamarni/composer-bin-plugin": "^1.2",
|
9232 |
+
"brianium/paratest": "^4.0||^6.0",
|
9233 |
+
"ext-curl": "*",
|
9234 |
+
"php-parallel-lint/php-parallel-lint": "^1.2",
|
9235 |
+
"phpdocumentor/reflection-docblock": "^5",
|
9236 |
+
"phpmyadmin/sql-parser": "5.1.0||dev-master",
|
9237 |
+
"phpspec/prophecy": ">=1.9.0",
|
9238 |
+
"phpunit/phpunit": "^9.0",
|
9239 |
+
"psalm/plugin-phpunit": "^0.16",
|
9240 |
+
"slevomat/coding-standard": "^7.0",
|
9241 |
+
"squizlabs/php_codesniffer": "^3.5",
|
9242 |
+
"symfony/process": "^4.3 || ^5.0 || ^6.0",
|
9243 |
+
"weirdan/prophecy-shim": "^1.0 || ^2.0"
|
9244 |
+
},
|
9245 |
+
"suggest": {
|
9246 |
+
"ext-curl": "In order to send data to shepherd",
|
9247 |
+
"ext-igbinary": "^2.0.5 is required, used to serialize caching data"
|
9248 |
+
},
|
9249 |
+
"bin": [
|
9250 |
+
"psalm",
|
9251 |
+
"psalm-language-server",
|
9252 |
+
"psalm-plugin",
|
9253 |
+
"psalm-refactor",
|
9254 |
+
"psalter"
|
9255 |
+
],
|
9256 |
+
"type": "library",
|
9257 |
+
"extra": {
|
9258 |
+
"branch-alias": {
|
9259 |
+
"dev-master": "4.x-dev",
|
9260 |
+
"dev-3.x": "3.x-dev",
|
9261 |
+
"dev-2.x": "2.x-dev",
|
9262 |
+
"dev-1.x": "1.x-dev"
|
9263 |
+
}
|
9264 |
+
},
|
9265 |
+
"autoload": {
|
9266 |
+
"psr-4": {
|
9267 |
+
"Psalm\\": "src/Psalm/"
|
9268 |
+
},
|
9269 |
+
"files": [
|
9270 |
+
"src/functions.php",
|
9271 |
+
"src/spl_object_id.php"
|
9272 |
+
]
|
9273 |
+
},
|
9274 |
+
"notification-url": "https://packagist.org/downloads/",
|
9275 |
+
"license": [
|
9276 |
+
"MIT"
|
9277 |
+
],
|
9278 |
+
"authors": [
|
9279 |
+
{
|
9280 |
+
"name": "Matthew Brown"
|
9281 |
+
}
|
9282 |
+
],
|
9283 |
+
"description": "A static analysis tool for finding errors in PHP applications",
|
9284 |
+
"keywords": [
|
9285 |
+
"code",
|
9286 |
+
"inspection",
|
9287 |
+
"php"
|
9288 |
+
],
|
9289 |
+
"support": {
|
9290 |
+
"issues": "https://github.com/vimeo/psalm/issues",
|
9291 |
+
"source": "https://github.com/vimeo/psalm/tree/4.17.0"
|
9292 |
+
},
|
9293 |
+
"time": "2022-01-01T18:39:47+00:00"
|
9294 |
+
},
|
9295 |
{
|
9296 |
"name": "voku/portable-ascii",
|
9297 |
"version": "1.5.6",
|
9477 |
},
|
9478 |
"time": "2021-03-09T10:59:23+00:00"
|
9479 |
},
|
9480 |
+
{
|
9481 |
+
"name": "webmozart/path-util",
|
9482 |
+
"version": "2.3.0",
|
9483 |
+
"source": {
|
9484 |
+
"type": "git",
|
9485 |
+
"url": "https://github.com/webmozart/path-util.git",
|
9486 |
+
"reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725"
|
9487 |
+
},
|
9488 |
+
"dist": {
|
9489 |
+
"type": "zip",
|
9490 |
+
"url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725",
|
9491 |
+
"reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725",
|
9492 |
+
"shasum": ""
|
9493 |
+
},
|
9494 |
+
"require": {
|
9495 |
+
"php": ">=5.3.3",
|
9496 |
+
"webmozart/assert": "~1.0"
|
9497 |
+
},
|
9498 |
+
"require-dev": {
|
9499 |
+
"phpunit/phpunit": "^4.6",
|
9500 |
+
"sebastian/version": "^1.0.1"
|
9501 |
+
},
|
9502 |
+
"type": "library",
|
9503 |
+
"extra": {
|
9504 |
+
"branch-alias": {
|
9505 |
+
"dev-master": "2.3-dev"
|
9506 |
+
}
|
9507 |
+
},
|
9508 |
+
"autoload": {
|
9509 |
+
"psr-4": {
|
9510 |
+
"Webmozart\\PathUtil\\": "src/"
|
9511 |
+
}
|
9512 |
+
},
|
9513 |
+
"notification-url": "https://packagist.org/downloads/",
|
9514 |
+
"license": [
|
9515 |
+
"MIT"
|
9516 |
+
],
|
9517 |
+
"authors": [
|
9518 |
+
{
|
9519 |
+
"name": "Bernhard Schussek",
|
9520 |
+
"email": "bschussek@gmail.com"
|
9521 |
+
}
|
9522 |
+
],
|
9523 |
+
"description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.",
|
9524 |
+
"support": {
|
9525 |
+
"issues": "https://github.com/webmozart/path-util/issues",
|
9526 |
+
"source": "https://github.com/webmozart/path-util/tree/2.3.0"
|
9527 |
+
},
|
9528 |
+
"abandoned": "symfony/filesystem",
|
9529 |
+
"time": "2015-12-17T08:42:14+00:00"
|
9530 |
+
},
|
9531 |
{
|
9532 |
"name": "wp-cli/i18n-command",
|
9533 |
+
"version": "v2.2.10",
|
9534 |
"source": {
|
9535 |
"type": "git",
|
9536 |
"url": "https://github.com/wp-cli/i18n-command.git",
|
9537 |
+
"reference": "e9eef8aab4b5e43c3aa09bf60e1e7a9d6d30d302"
|
9538 |
},
|
9539 |
"dist": {
|
9540 |
"type": "zip",
|
9541 |
+
"url": "https://api.github.com/repos/wp-cli/i18n-command/zipball/e9eef8aab4b5e43c3aa09bf60e1e7a9d6d30d302",
|
9542 |
+
"reference": "e9eef8aab4b5e43c3aa09bf60e1e7a9d6d30d302",
|
9543 |
"shasum": ""
|
9544 |
},
|
9545 |
"require": {
|
9546 |
"gettext/gettext": "^4.8",
|
9547 |
+
"mck89/peast": "^1.13.9",
|
9548 |
"wp-cli/wp-cli": "^2.5"
|
9549 |
},
|
9550 |
"require-dev": {
|
9551 |
"wp-cli/scaffold-command": "^1.2 || ^2",
|
9552 |
+
"wp-cli/wp-cli-tests": "^3.1"
|
9553 |
},
|
9554 |
"suggest": {
|
9555 |
"ext-mbstring": "Used for calculating include/exclude matches in code extraction"
|
9588 |
"homepage": "https://github.com/wp-cli/i18n-command",
|
9589 |
"support": {
|
9590 |
"issues": "https://github.com/wp-cli/i18n-command/issues",
|
9591 |
+
"source": "https://github.com/wp-cli/i18n-command/tree/v2.2.10"
|
9592 |
},
|
9593 |
+
"time": "2021-12-03T22:10:38+00:00"
|
9594 |
},
|
9595 |
{
|
9596 |
"name": "wp-cli/mustangostang-spyc",
|
legacy-functions.php
CHANGED
@@ -61,3 +61,24 @@ if (! function_exists('_postExpiratorExpireType')) {
|
|
61 |
return ob_get_clean();
|
62 |
}
|
63 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
return ob_get_clean();
|
62 |
}
|
63 |
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Get correct URL (HTTP or HTTPS)
|
67 |
+
*
|
68 |
+
* @internal
|
69 |
+
* @access private
|
70 |
+
*
|
71 |
+
* @deprecated 2.7.1
|
72 |
+
*/
|
73 |
+
function expirationdate_get_blog_url()
|
74 |
+
{
|
75 |
+
_deprecated_function(__FUNCTION__, '2.7.1');
|
76 |
+
|
77 |
+
if (is_multisite()) {
|
78 |
+
$url = network_home_url('/');
|
79 |
+
} else {
|
80 |
+
$url = home_url('/');
|
81 |
+
}
|
82 |
+
|
83 |
+
echo esc_url($url);
|
84 |
+
}
|
post-expirator-debug.php
CHANGED
@@ -74,16 +74,16 @@ class PostExpiratorDebug
|
|
74 |
global $wpdb;
|
75 |
$results = $wpdb->get_results("SELECT * FROM {$this->debug_table} ORDER BY `id` DESC");
|
76 |
if (empty($results)) {
|
77 |
-
print '<p>' .
|
78 |
|
79 |
return;
|
80 |
}
|
81 |
print '<table class="post-expirator-debug">';
|
82 |
-
print '<tr><th class="post-expirator-timestamp">' .
|
83 |
-
print '<th>' .
|
84 |
foreach ($results as $result) {
|
85 |
-
print '<tr><td>' . $result->timestamp . '</td>';
|
86 |
-
print '<td>' . $result->message . '</td></tr>';
|
87 |
}
|
88 |
print '</table>';
|
89 |
}
|
74 |
global $wpdb;
|
75 |
$results = $wpdb->get_results("SELECT * FROM {$this->debug_table} ORDER BY `id` DESC");
|
76 |
if (empty($results)) {
|
77 |
+
print '<p>' . esc_html__('Debugging table is currently empty.', 'post-expirator') . '</p>';
|
78 |
|
79 |
return;
|
80 |
}
|
81 |
print '<table class="post-expirator-debug">';
|
82 |
+
print '<tr><th class="post-expirator-timestamp">' . esc_html__('Timestamp', 'post-expirator') . '</th>';
|
83 |
+
print '<th>' . esc_html__('Message', 'post-expirator') . '</th></tr>';
|
84 |
foreach ($results as $result) {
|
85 |
+
print '<tr><td>' . esc_html($result->timestamp) . '</td>';
|
86 |
+
print '<td>' . esc_html($result->message) . '</td></tr>';
|
87 |
}
|
88 |
print '</table>';
|
89 |
}
|
post-expirator.php
CHANGED
@@ -4,14 +4,14 @@ Plugin Name: PublishPress Future
|
|
4 |
Plugin URI: http://wordpress.org/extend/plugins/post-expirator/
|
5 |
Description: Allows you to add an expiration date (minute) to posts which you can configure to either delete the post, change it to a draft, or update the post categories at expiration time.
|
6 |
Author: PublishPress
|
7 |
-
Version: 2.7.
|
8 |
Author URI: http://publishpress.com
|
9 |
Text Domain: post-expirator
|
10 |
Domain Path: /languages
|
11 |
*/
|
12 |
|
13 |
// Default Values
|
14 |
-
define('POSTEXPIRATOR_VERSION', '2.7.
|
15 |
define('POSTEXPIRATOR_DATEFORMAT', __('l F jS, Y', 'post-expirator'));
|
16 |
define('POSTEXPIRATOR_TIMEFORMAT', __('g:ia', 'post-expirator'));
|
17 |
define('POSTEXPIRATOR_FOOTERCONTENTS', __('Post expires at EXPIRATIONTIME on EXPIRATIONDATE', 'post-expirator'));
|
@@ -27,7 +27,13 @@ define('POSTEXPIRATOR_BASENAME', basename(__FILE__));
|
|
27 |
define('POSTEXPIRATOR_BASEURL', plugins_url('/', __FILE__));
|
28 |
|
29 |
require_once POSTEXPIRATOR_BASEDIR . '/functions.php';
|
30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
/**
|
33 |
* Adds links to the plugin listing screen.
|
@@ -61,6 +67,12 @@ function postexpirator_init()
|
|
61 |
load_plugin_textdomain('post-expirator', null, $plugin_dir . '/languages/');
|
62 |
|
63 |
PostExpirator_Reviews::init();
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
}
|
65 |
|
66 |
add_action('plugins_loaded', 'postexpirator_init');
|
@@ -105,7 +117,7 @@ function postexpirator_manage_sortable_columns()
|
|
105 |
}
|
106 |
}
|
107 |
|
108 |
-
add_action('
|
109 |
|
110 |
/**
|
111 |
* Adds an 'Expires' column to the post display table.
|
@@ -368,59 +380,92 @@ add_action('add_meta_boxes', 'postexpirator_meta_custom');
|
|
368 |
*/
|
369 |
function postexpirator_meta_box($post)
|
370 |
{
|
371 |
-
|
372 |
-
$
|
373 |
-
$firstsave = get_post_meta($post->ID, '_expiration-date-status', true);
|
374 |
|
375 |
-
$
|
376 |
-
$
|
377 |
-
if (empty($
|
378 |
-
$
|
379 |
|
380 |
-
$
|
381 |
-
$
|
382 |
-
$
|
383 |
-
$
|
384 |
-
$
|
385 |
|
386 |
-
$enabled = '';
|
387 |
$categories = get_option('expirationdateCategoryDefaults');
|
388 |
|
389 |
-
if (isset($
|
390 |
-
$expireType = $
|
391 |
-
}
|
392 |
-
|
393 |
-
// phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
|
394 |
-
if (isset($defaults['autoEnable']) && ($firstsave !== 'saved') && ($defaults['autoEnable'] === true || $defaults['autoEnable'] == 1)) {
|
395 |
-
$enabled = ' checked="checked"';
|
396 |
}
|
397 |
} else {
|
398 |
-
$
|
399 |
-
$
|
400 |
-
$
|
401 |
-
$
|
402 |
-
$
|
403 |
-
$enabled = ' checked="checked"';
|
404 |
|
405 |
$attributes = PostExpirator_Facade::get_expire_principles($post->ID);
|
406 |
$expireType = $attributes['expireType'];
|
407 |
$categories = $attributes['category'];
|
408 |
}
|
409 |
|
|
|
|
|
|
|
|
|
410 |
PostExpirator_Display::getInstance()->render_template(
|
411 |
-
'classic-metabox',
|
412 |
'post' => $post,
|
413 |
'enabled' => $enabled,
|
414 |
'default' => $default,
|
415 |
-
'
|
416 |
-
'defaultmonth' => $
|
417 |
-
'defaultday' => $
|
418 |
-
'defaulthour' => $
|
419 |
-
'defaultyear' => $
|
420 |
-
'defaultminute' => $
|
421 |
'categories' => $categories,
|
422 |
'expireType' => $expireType,
|
423 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
424 |
);
|
425 |
}
|
426 |
|
@@ -471,22 +516,6 @@ function postexpirator_js_admin_header()
|
|
471 |
|
472 |
add_action('admin_head', 'postexpirator_js_admin_header');
|
473 |
|
474 |
-
/**
|
475 |
-
* Get correct URL (HTTP or HTTPS)
|
476 |
-
*
|
477 |
-
* @internal
|
478 |
-
*
|
479 |
-
* @access private
|
480 |
-
*/
|
481 |
-
function expirationdate_get_blog_url()
|
482 |
-
{
|
483 |
-
if (is_multisite()) {
|
484 |
-
echo network_home_url('/');
|
485 |
-
} else {
|
486 |
-
echo home_url('/');
|
487 |
-
}
|
488 |
-
}
|
489 |
-
|
490 |
/**
|
491 |
* Called when post is saved - stores expiration-date meta value
|
492 |
*
|
@@ -502,12 +531,12 @@ function postexpirator_update_post_meta($id)
|
|
502 |
}
|
503 |
|
504 |
// don't run the echo if the function is called for saving revision.
|
505 |
-
$posttype = get_post_type($id);
|
506 |
if ($posttype === 'revision') {
|
507 |
return;
|
508 |
}
|
509 |
|
510 |
-
// Do not process Bulk edit here
|
511 |
if (isset($_GET['postexpirator_view']) && $_GET['postexpirator_view'] === 'bulk-edit') {
|
512 |
return;
|
513 |
}
|
@@ -523,6 +552,12 @@ function postexpirator_update_post_meta($id)
|
|
523 |
$opts = [];
|
524 |
|
525 |
if (isset($_POST['postexpirator_view'])) {
|
|
|
|
|
|
|
|
|
|
|
|
|
526 |
// Classic editor, quick edit
|
527 |
$shouldSchedule = isset($_POST['enable-expirationdate']);
|
528 |
|
@@ -578,7 +613,7 @@ function postexpirator_update_post_meta($id)
|
|
578 |
}
|
579 |
}
|
580 |
} else {
|
581 |
-
// Gutenberg or script
|
582 |
$payload = @file_get_contents('php://input');
|
583 |
|
584 |
if (empty($payload)) {
|
@@ -734,6 +769,8 @@ function postexpirator_expire_post($id)
|
|
734 |
{
|
735 |
$debug = postexpirator_debug(); // check for/load debug
|
736 |
|
|
|
|
|
737 |
if (empty($id)) {
|
738 |
if (POSTEXPIRATOR_DEBUG) {
|
739 |
$debug->save(array('message' => 'No Post ID found - exiting'));
|
@@ -750,11 +787,20 @@ function postexpirator_expire_post($id)
|
|
750 |
return false;
|
751 |
}
|
752 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
753 |
$posttype = get_post_type($id);
|
754 |
$posttitle = get_the_title($id);
|
755 |
$postlink = get_post_permalink($id);
|
756 |
|
757 |
-
$postoptions = PostExpirator_Facade::get_expire_principles($id);
|
758 |
$expireType = $category = $categoryTaxonomy = null;
|
759 |
|
760 |
if (isset($postoptions['expireType'])) {
|
@@ -792,6 +838,8 @@ function postexpirator_expire_post($id)
|
|
792 |
// we are only changing the post status/meta information and not touching the content.
|
793 |
kses_remove_filters();
|
794 |
|
|
|
|
|
795 |
// Do Work
|
796 |
if ($expireType === 'draft') {
|
797 |
if (wp_update_post(array('ID' => $id, 'post_status' => 'draft')) === 0) {
|
@@ -814,6 +862,8 @@ function postexpirator_expire_post($id)
|
|
814 |
array('message' => $id . ' -> PROCESSED ' . $expireType . ' ' . print_r($postoptions, true))
|
815 |
);
|
816 |
}
|
|
|
|
|
817 |
}
|
818 |
} elseif ($expireType === 'private') {
|
819 |
if (wp_update_post(array('ID' => $id, 'post_status' => 'private')) === 0) {
|
@@ -836,6 +886,8 @@ function postexpirator_expire_post($id)
|
|
836 |
array('message' => $id . ' -> PROCESSED ' . $expireType . ' ' . print_r($postoptions, true))
|
837 |
);
|
838 |
}
|
|
|
|
|
839 |
}
|
840 |
} elseif ($expireType === 'delete') {
|
841 |
if (wp_delete_post($id) === false) {
|
@@ -858,6 +910,8 @@ function postexpirator_expire_post($id)
|
|
858 |
array('message' => $id . ' -> PROCESSED ' . $expireType . ' ' . print_r($postoptions, true))
|
859 |
);
|
860 |
}
|
|
|
|
|
861 |
}
|
862 |
} elseif ($expireType === 'trash') {
|
863 |
if (wp_trash_post($id) === false) {
|
@@ -880,6 +934,8 @@ function postexpirator_expire_post($id)
|
|
880 |
array('message' => $id . ' -> PROCESSED ' . $expireType . ' ' . print_r($postoptions, true))
|
881 |
);
|
882 |
}
|
|
|
|
|
883 |
}
|
884 |
} elseif ($expireType === 'stick') {
|
885 |
if (stick_post($id) === false) {
|
@@ -899,6 +955,8 @@ function postexpirator_expire_post($id)
|
|
899 |
array('message' => $id . ' -> PROCESSED ' . $expireType . ' ' . print_r($postoptions, true))
|
900 |
);
|
901 |
}
|
|
|
|
|
902 |
}
|
903 |
} elseif ($expireType === 'unstick') {
|
904 |
if (unstick_post($id) === false) {
|
@@ -921,6 +979,8 @@ function postexpirator_expire_post($id)
|
|
921 |
array('message' => $id . ' -> PROCESSED ' . $expireType . ' ' . print_r($postoptions, true))
|
922 |
);
|
923 |
}
|
|
|
|
|
924 |
}
|
925 |
} elseif ($expireType === 'category') {
|
926 |
if (! empty($category)) {
|
@@ -964,6 +1024,8 @@ function postexpirator_expire_post($id)
|
|
964 |
)
|
965 |
);
|
966 |
}
|
|
|
|
|
967 |
}
|
968 |
} else {
|
969 |
$terms = array_map('intval', $category);
|
@@ -1006,6 +1068,8 @@ function postexpirator_expire_post($id)
|
|
1006 |
)
|
1007 |
);
|
1008 |
}
|
|
|
|
|
1009 |
}
|
1010 |
}
|
1011 |
} else {
|
@@ -1065,6 +1129,8 @@ function postexpirator_expire_post($id)
|
|
1065 |
)
|
1066 |
);
|
1067 |
}
|
|
|
|
|
1068 |
}
|
1069 |
} else {
|
1070 |
$terms = array_map('intval', $category);
|
@@ -1108,6 +1174,8 @@ function postexpirator_expire_post($id)
|
|
1108 |
)
|
1109 |
);
|
1110 |
}
|
|
|
|
|
1111 |
}
|
1112 |
}
|
1113 |
} else {
|
@@ -1173,6 +1241,8 @@ function postexpirator_expire_post($id)
|
|
1173 |
)
|
1174 |
);
|
1175 |
}
|
|
|
|
|
1176 |
}
|
1177 |
} else {
|
1178 |
$terms = wp_get_object_terms($id, $categoryTaxonomy, array('fields' => 'ids'));
|
@@ -1223,6 +1293,8 @@ function postexpirator_expire_post($id)
|
|
1223 |
)
|
1224 |
);
|
1225 |
}
|
|
|
|
|
1226 |
}
|
1227 |
}
|
1228 |
} else {
|
@@ -1241,6 +1313,7 @@ function postexpirator_expire_post($id)
|
|
1241 |
|
1242 |
// Process Email
|
1243 |
$emailenabled = get_option('expirationdateEmailNotification', POSTEXPIRATOR_EMAILNOTIFICATION);
|
|
|
1244 |
// phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
|
1245 |
if ($emailenabled == 1 && isset($emailBody)) {
|
1246 |
$subj = sprintf(__('Post Expiration Complete "%s"', 'post-expirator'), $posttitle);
|
@@ -1297,6 +1370,10 @@ function postexpirator_expire_post($id)
|
|
1297 |
}
|
1298 |
}
|
1299 |
}
|
|
|
|
|
|
|
|
|
1300 |
}
|
1301 |
|
1302 |
add_action('postExpiratorExpire', 'postexpirator_expire_post');
|
@@ -1717,7 +1794,6 @@ function expirationdate_deactivate()
|
|
1717 |
return;
|
1718 |
}
|
1719 |
|
1720 |
-
global $current_blog;
|
1721 |
delete_option('expirationdateExpiredPostStatus');
|
1722 |
delete_option('expirationdateExpiredPageStatus');
|
1723 |
delete_option('expirationdateDefaultDateFormat');
|
@@ -1737,8 +1813,11 @@ function expirationdate_deactivate()
|
|
1737 |
delete_option('expirationdateDefaultsPost');
|
1738 |
delete_option('expirationdateGutenbergSupport');
|
1739 |
delete_option('expirationdatePreserveData');
|
1740 |
-
|
|
|
1741 |
if (is_multisite()) {
|
|
|
|
|
1742 |
wp_clear_scheduled_hook('expirationdate_delete_' . $current_blog->blog_id);
|
1743 |
} else {
|
1744 |
wp_clear_scheduled_hook('expirationdate_delete');
|
@@ -1928,18 +2007,18 @@ function _postexpirator_taxonomy($opts)
|
|
1928 |
$rv = array();
|
1929 |
if ($taxonomies) {
|
1930 |
// phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
|
1931 |
-
$rv[] = '<select name="' . $name . '" id="' . $id . '"' . ($disabled == true ? ' disabled="disabled"' : '') . ' onchange="' . $onchange . '">';
|
1932 |
foreach ($taxonomies as $taxonomy) {
|
1933 |
-
$rv[] = '<option value="' . $taxonomy->name . '" ' . ($selected === $taxonomy->name ? 'selected="selected"' : '') . '>' . $taxonomy->label . '</option>';
|
1934 |
}
|
1935 |
|
1936 |
$rv[] = '</select>';
|
1937 |
-
$rv[] = '<p class="description">' .
|
1938 |
'Select the hierarchical taxonomy to be used for "category" based expiration.',
|
1939 |
'post-expirator'
|
1940 |
) . '</p>';
|
1941 |
} else {
|
1942 |
-
$rv[] =
|
1943 |
}
|
1944 |
|
1945 |
return implode("<br/>\n", $rv);
|
@@ -1986,8 +2065,8 @@ function postexpirator_date_save_bulk_edit()
|
|
1986 |
|
1987 |
if (! $facade->current_user_can_expire_posts()) {
|
1988 |
wp_die(
|
1989 |
-
|
1990 |
-
|
1991 |
403
|
1992 |
);
|
1993 |
}
|
4 |
Plugin URI: http://wordpress.org/extend/plugins/post-expirator/
|
5 |
Description: Allows you to add an expiration date (minute) to posts which you can configure to either delete the post, change it to a draft, or update the post categories at expiration time.
|
6 |
Author: PublishPress
|
7 |
+
Version: 2.7.1
|
8 |
Author URI: http://publishpress.com
|
9 |
Text Domain: post-expirator
|
10 |
Domain Path: /languages
|
11 |
*/
|
12 |
|
13 |
// Default Values
|
14 |
+
define('POSTEXPIRATOR_VERSION', '2.7.1');
|
15 |
define('POSTEXPIRATOR_DATEFORMAT', __('l F jS, Y', 'post-expirator'));
|
16 |
define('POSTEXPIRATOR_TIMEFORMAT', __('g:ia', 'post-expirator'));
|
17 |
define('POSTEXPIRATOR_FOOTERCONTENTS', __('Post expires at EXPIRATIONTIME on EXPIRATIONDATE', 'post-expirator'));
|
27 |
define('POSTEXPIRATOR_BASEURL', plugins_url('/', __FILE__));
|
28 |
|
29 |
require_once POSTEXPIRATOR_BASEDIR . '/functions.php';
|
30 |
+
|
31 |
+
$autoloadPath = POSTEXPIRATOR_BASEDIR . '/vendor/autoload.php';
|
32 |
+
if (false === class_exists('PublishPressFuture\\DummyForAutoloadDetection')
|
33 |
+
&& true === file_exists($autoloadPath)
|
34 |
+
) {
|
35 |
+
include_once $autoloadPath;
|
36 |
+
}
|
37 |
|
38 |
/**
|
39 |
* Adds links to the plugin listing screen.
|
67 |
load_plugin_textdomain('post-expirator', null, $plugin_dir . '/languages/');
|
68 |
|
69 |
PostExpirator_Reviews::init();
|
70 |
+
|
71 |
+
if (class_exists('WP_CLI')) {
|
72 |
+
PostExpirator_Cli::getInstance();
|
73 |
+
}
|
74 |
+
|
75 |
+
add_action('wp_insert_post', 'postexpirator_set_default_meta_for_post', 10, 3);
|
76 |
}
|
77 |
|
78 |
add_action('plugins_loaded', 'postexpirator_init');
|
117 |
}
|
118 |
}
|
119 |
|
120 |
+
add_action('admin_init', 'postexpirator_manage_sortable_columns', 100);
|
121 |
|
122 |
/**
|
123 |
* Adds an 'Expires' column to the post display table.
|
380 |
*/
|
381 |
function postexpirator_meta_box($post)
|
382 |
{
|
383 |
+
$postMetaDate = get_post_meta($post->ID, '_expiration-date', true);
|
384 |
+
$postMetaStatus = get_post_meta($post->ID, '_expiration-date-status', true);
|
|
|
385 |
|
386 |
+
$expireType = $default = $enabled = '';
|
387 |
+
$defaultsOption = get_option('expirationdateDefaults' . ucfirst($post->post_type));
|
388 |
+
if (empty($postMetaDate)) {
|
389 |
+
$defaultExpire = PostExpirator_Facade::get_default_expiry($post->post_type);
|
390 |
|
391 |
+
$defaultMonth = $defaultExpire['month'];
|
392 |
+
$defaultDay = $defaultExpire['day'];
|
393 |
+
$defaultHour = $defaultExpire['hour'];
|
394 |
+
$defaultYear = $defaultExpire['year'];
|
395 |
+
$defaultMinute = $defaultExpire['minute'];
|
396 |
|
|
|
397 |
$categories = get_option('expirationdateCategoryDefaults');
|
398 |
|
399 |
+
if (isset($defaultsOption['expireType'])) {
|
400 |
+
$expireType = $defaultsOption['expireType'];
|
|
|
|
|
|
|
|
|
|
|
401 |
}
|
402 |
} else {
|
403 |
+
$defaultMonth = get_date_from_gmt(gmdate('Y-m-d H:i:s', $postMetaDate), 'm');
|
404 |
+
$defaultDay = get_date_from_gmt(gmdate('Y-m-d H:i:s', $postMetaDate), 'd');
|
405 |
+
$defaultYear = get_date_from_gmt(gmdate('Y-m-d H:i:s', $postMetaDate), 'Y');
|
406 |
+
$defaultHour = get_date_from_gmt(gmdate('Y-m-d H:i:s', $postMetaDate), 'H');
|
407 |
+
$defaultMinute = get_date_from_gmt(gmdate('Y-m-d H:i:s', $postMetaDate), 'i');
|
|
|
408 |
|
409 |
$attributes = PostExpirator_Facade::get_expire_principles($post->ID);
|
410 |
$expireType = $attributes['expireType'];
|
411 |
$categories = $attributes['category'];
|
412 |
}
|
413 |
|
414 |
+
if ($postMetaStatus === 'saved') {
|
415 |
+
$enabled = ' checked="checked"';
|
416 |
+
}
|
417 |
+
|
418 |
PostExpirator_Display::getInstance()->render_template(
|
419 |
+
'classic-metabox', [
|
420 |
'post' => $post,
|
421 |
'enabled' => $enabled,
|
422 |
'default' => $default,
|
423 |
+
'defaultsOption' => $defaultsOption,
|
424 |
+
'defaultmonth' => $defaultMonth,
|
425 |
+
'defaultday' => $defaultDay,
|
426 |
+
'defaulthour' => $defaultHour,
|
427 |
+
'defaultyear' => $defaultYear,
|
428 |
+
'defaultminute' => $defaultMinute,
|
429 |
'categories' => $categories,
|
430 |
'expireType' => $expireType,
|
431 |
+
]
|
432 |
+
);
|
433 |
+
}
|
434 |
+
|
435 |
+
function postexpirator_set_default_meta_for_post($postId, $post, $update)
|
436 |
+
{
|
437 |
+
if ($update) {
|
438 |
+
return;
|
439 |
+
}
|
440 |
+
|
441 |
+
$postTypeDefaults = get_option('expirationdateDefaults' . ucfirst($post->post_type));
|
442 |
+
|
443 |
+
if (empty($postTypeDefaults) || (int)$postTypeDefaults['autoEnable'] !== 1) {
|
444 |
+
return;
|
445 |
+
}
|
446 |
+
|
447 |
+
$defaultExpire = PostExpirator_Facade::get_default_expiry($post->post_type);
|
448 |
+
|
449 |
+
$categories = get_option('expirationdateCategoryDefaults');
|
450 |
+
|
451 |
+
$status = ! empty($defaultExpire['ts']) ? 'saved' : '';
|
452 |
+
|
453 |
+
$opts = [
|
454 |
+
'expireType' => $postTypeDefaults['expireType'],
|
455 |
+
'category' => $categories,
|
456 |
+
'categoryTaxonomy' => '',
|
457 |
+
'enabled' => $status === 'saved',
|
458 |
+
];
|
459 |
+
|
460 |
+
update_post_meta($post->ID, '_expiration-date', $defaultExpire['ts']);
|
461 |
+
update_post_meta($post->ID, '_expiration-date-status', $status);
|
462 |
+
update_post_meta($post->ID, '_expiration-date-options', $opts);
|
463 |
+
update_post_meta($post->ID, '_expiration-date-type', $postTypeDefaults['expireType']);
|
464 |
+
update_post_meta($post->ID, '_expiration-date-categories', (array)$categories);
|
465 |
+
update_post_meta(
|
466 |
+
$post->ID,
|
467 |
+
'_expiration-date-taxonomy',
|
468 |
+
$opts['categoryTaxonomy']
|
469 |
);
|
470 |
}
|
471 |
|
516 |
|
517 |
add_action('admin_head', 'postexpirator_js_admin_header');
|
518 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
519 |
/**
|
520 |
* Called when post is saved - stores expiration-date meta value
|
521 |
*
|
531 |
}
|
532 |
|
533 |
// don't run the echo if the function is called for saving revision.
|
534 |
+
$posttype = get_post_type((int) $id);
|
535 |
if ($posttype === 'revision') {
|
536 |
return;
|
537 |
}
|
538 |
|
539 |
+
// Do not process Bulk edit here. It is processed on the function "postexpirator_date_save_bulk_edit"
|
540 |
if (isset($_GET['postexpirator_view']) && $_GET['postexpirator_view'] === 'bulk-edit') {
|
541 |
return;
|
542 |
}
|
552 |
$opts = [];
|
553 |
|
554 |
if (isset($_POST['postexpirator_view'])) {
|
555 |
+
if (defined('DOING_AJAX') && DOING_AJAX) {
|
556 |
+
check_ajax_referer('__postexpirator', '_postexpiratornonce');
|
557 |
+
} else {
|
558 |
+
check_admin_referer('__postexpirator', '_postexpiratornonce');
|
559 |
+
}
|
560 |
+
|
561 |
// Classic editor, quick edit
|
562 |
$shouldSchedule = isset($_POST['enable-expirationdate']);
|
563 |
|
613 |
}
|
614 |
}
|
615 |
} else {
|
616 |
+
// Gutenberg or script request
|
617 |
$payload = @file_get_contents('php://input');
|
618 |
|
619 |
if (empty($payload)) {
|
769 |
{
|
770 |
$debug = postexpirator_debug(); // check for/load debug
|
771 |
|
772 |
+
$id = (int)$id;
|
773 |
+
|
774 |
if (empty($id)) {
|
775 |
if (POSTEXPIRATOR_DEBUG) {
|
776 |
$debug->save(array('message' => 'No Post ID found - exiting'));
|
787 |
return false;
|
788 |
}
|
789 |
|
790 |
+
$postoptions = PostExpirator_Facade::get_expire_principles($id);
|
791 |
+
|
792 |
+
if ($postoptions['enabled'] === false) {
|
793 |
+
if (POSTEXPIRATOR_DEBUG) {
|
794 |
+
$debug->save(array('message' => $id . ' -> Post expire data exist but is not activated'));
|
795 |
+
}
|
796 |
+
|
797 |
+
return false;
|
798 |
+
}
|
799 |
+
|
800 |
$posttype = get_post_type($id);
|
801 |
$posttitle = get_the_title($id);
|
802 |
$postlink = get_post_permalink($id);
|
803 |
|
|
|
804 |
$expireType = $category = $categoryTaxonomy = null;
|
805 |
|
806 |
if (isset($postoptions['expireType'])) {
|
838 |
// we are only changing the post status/meta information and not touching the content.
|
839 |
kses_remove_filters();
|
840 |
|
841 |
+
$postWasExpired = false;
|
842 |
+
|
843 |
// Do Work
|
844 |
if ($expireType === 'draft') {
|
845 |
if (wp_update_post(array('ID' => $id, 'post_status' => 'draft')) === 0) {
|
862 |
array('message' => $id . ' -> PROCESSED ' . $expireType . ' ' . print_r($postoptions, true))
|
863 |
);
|
864 |
}
|
865 |
+
|
866 |
+
$postWasExpired = true;
|
867 |
}
|
868 |
} elseif ($expireType === 'private') {
|
869 |
if (wp_update_post(array('ID' => $id, 'post_status' => 'private')) === 0) {
|
886 |
array('message' => $id . ' -> PROCESSED ' . $expireType . ' ' . print_r($postoptions, true))
|
887 |
);
|
888 |
}
|
889 |
+
|
890 |
+
$postWasExpired = true;
|
891 |
}
|
892 |
} elseif ($expireType === 'delete') {
|
893 |
if (wp_delete_post($id) === false) {
|
910 |
array('message' => $id . ' -> PROCESSED ' . $expireType . ' ' . print_r($postoptions, true))
|
911 |
);
|
912 |
}
|
913 |
+
|
914 |
+
$postWasExpired = true;
|
915 |
}
|
916 |
} elseif ($expireType === 'trash') {
|
917 |
if (wp_trash_post($id) === false) {
|
934 |
array('message' => $id . ' -> PROCESSED ' . $expireType . ' ' . print_r($postoptions, true))
|
935 |
);
|
936 |
}
|
937 |
+
|
938 |
+
$postWasExpired = true;
|
939 |
}
|
940 |
} elseif ($expireType === 'stick') {
|
941 |
if (stick_post($id) === false) {
|
955 |
array('message' => $id . ' -> PROCESSED ' . $expireType . ' ' . print_r($postoptions, true))
|
956 |
);
|
957 |
}
|
958 |
+
|
959 |
+
$postWasExpired = true;
|
960 |
}
|
961 |
} elseif ($expireType === 'unstick') {
|
962 |
if (unstick_post($id) === false) {
|
979 |
array('message' => $id . ' -> PROCESSED ' . $expireType . ' ' . print_r($postoptions, true))
|
980 |
);
|
981 |
}
|
982 |
+
|
983 |
+
$postWasExpired = true;
|
984 |
}
|
985 |
} elseif ($expireType === 'category') {
|
986 |
if (! empty($category)) {
|
1024 |
)
|
1025 |
);
|
1026 |
}
|
1027 |
+
|
1028 |
+
$postWasExpired = true;
|
1029 |
}
|
1030 |
} else {
|
1031 |
$terms = array_map('intval', $category);
|
1068 |
)
|
1069 |
);
|
1070 |
}
|
1071 |
+
|
1072 |
+
$postWasExpired = true;
|
1073 |
}
|
1074 |
}
|
1075 |
} else {
|
1129 |
)
|
1130 |
);
|
1131 |
}
|
1132 |
+
|
1133 |
+
$postWasExpired = true;
|
1134 |
}
|
1135 |
} else {
|
1136 |
$terms = array_map('intval', $category);
|
1174 |
)
|
1175 |
);
|
1176 |
}
|
1177 |
+
|
1178 |
+
$postWasExpired = true;
|
1179 |
}
|
1180 |
}
|
1181 |
} else {
|
1241 |
)
|
1242 |
);
|
1243 |
}
|
1244 |
+
|
1245 |
+
$postWasExpired = true;
|
1246 |
}
|
1247 |
} else {
|
1248 |
$terms = wp_get_object_terms($id, $categoryTaxonomy, array('fields' => 'ids'));
|
1293 |
)
|
1294 |
);
|
1295 |
}
|
1296 |
+
|
1297 |
+
$postWasExpired = true;
|
1298 |
}
|
1299 |
}
|
1300 |
} else {
|
1313 |
|
1314 |
// Process Email
|
1315 |
$emailenabled = get_option('expirationdateEmailNotification', POSTEXPIRATOR_EMAILNOTIFICATION);
|
1316 |
+
|
1317 |
// phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
|
1318 |
if ($emailenabled == 1 && isset($emailBody)) {
|
1319 |
$subj = sprintf(__('Post Expiration Complete "%s"', 'post-expirator'), $posttitle);
|
1370 |
}
|
1371 |
}
|
1372 |
}
|
1373 |
+
|
1374 |
+
if (true === $postWasExpired) {
|
1375 |
+
postexpirator_unschedule_event($id);
|
1376 |
+
}
|
1377 |
}
|
1378 |
|
1379 |
add_action('postExpiratorExpire', 'postexpirator_expire_post');
|
1794 |
return;
|
1795 |
}
|
1796 |
|
|
|
1797 |
delete_option('expirationdateExpiredPostStatus');
|
1798 |
delete_option('expirationdateExpiredPageStatus');
|
1799 |
delete_option('expirationdateDefaultDateFormat');
|
1813 |
delete_option('expirationdateDefaultsPost');
|
1814 |
delete_option('expirationdateGutenbergSupport');
|
1815 |
delete_option('expirationdatePreserveData');
|
1816 |
+
|
1817 |
+
// what about custom post types? - how to clean up?
|
1818 |
if (is_multisite()) {
|
1819 |
+
global $current_blog;
|
1820 |
+
|
1821 |
wp_clear_scheduled_hook('expirationdate_delete_' . $current_blog->blog_id);
|
1822 |
} else {
|
1823 |
wp_clear_scheduled_hook('expirationdate_delete');
|
2007 |
$rv = array();
|
2008 |
if ($taxonomies) {
|
2009 |
// phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
|
2010 |
+
$rv[] = '<select name="' . esc_attr($name) . '" id="' . esc_attr($id) . '"' . ($disabled == true ? ' disabled="disabled"' : '') . ' onchange="' . esc_attr($onchange) . '">';
|
2011 |
foreach ($taxonomies as $taxonomy) {
|
2012 |
+
$rv[] = '<option value="' . esc_attr($taxonomy->name) . '" ' . ($selected === esc_attr($taxonomy->name) ? 'selected="selected"' : '') . '>' . esc_html($taxonomy->label) . '</option>';
|
2013 |
}
|
2014 |
|
2015 |
$rv[] = '</select>';
|
2016 |
+
$rv[] = '<p class="description">' . esc_html(
|
2017 |
'Select the hierarchical taxonomy to be used for "category" based expiration.',
|
2018 |
'post-expirator'
|
2019 |
) . '</p>';
|
2020 |
} else {
|
2021 |
+
$rv[] = esc_html__('No taxonomies found', 'post-expirator');
|
2022 |
}
|
2023 |
|
2024 |
return implode("<br/>\n", $rv);
|
2065 |
|
2066 |
if (! $facade->current_user_can_expire_posts()) {
|
2067 |
wp_die(
|
2068 |
+
esc_html__('You\'re not allowed to set posts to expire', 'post-expirator'),
|
2069 |
+
esc_html__('Forbidden', 'post-expirator'),
|
2070 |
403
|
2071 |
);
|
2072 |
}
|
readme.txt
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
-
=== PublishPress Future: Automatically Unpublish Posts
|
2 |
-
Contributors: publishpress, kevinB, stevejburge, andergmartins
|
3 |
Author: publishpress
|
4 |
Author URI: https://publishpress.com
|
5 |
-
Tags: expire, posts, pages, schedule
|
6 |
-
Requires at least: 5.
|
7 |
Tested up to: 5.8
|
8 |
-
Stable tag: 2.7.
|
9 |
|
10 |
Add an expiration date to posts. When your post is automatically unpublished, you can delete the post, change the status, or update the post categories.
|
11 |
|
@@ -22,8 +22,6 @@ Here's an overview of what you can do with PublishPress Future:
|
|
22 |
* Receive email notifications when your content expires.
|
23 |
* Show expiry dates in your content, automatically or with shortcodes.
|
24 |
|
25 |
-
This plugin was previously known as "Post Expirator".
|
26 |
-
|
27 |
## Options for Expiring Posts
|
28 |
|
29 |
When your posts expire, you can perform these changes on your content:
|
@@ -42,7 +40,7 @@ When your posts expire, you can perform these changes on your content:
|
|
42 |
|
43 |
## Display the Expiry Date in Your Content
|
44 |
|
45 |
-
PublishPress Future allows you to automatically show the expiry date inside your articles. The expiry will be added at the bottom of your post.
|
46 |
|
47 |
[Click here to see the Footer Display options](https://publishpress.com/knowledge-base/footer-display/).
|
48 |
|
@@ -64,7 +62,7 @@ The PublishPress Future plugin can send you email notifications when your conten
|
|
64 |
|
65 |
## Details on How Post Expiry Works
|
66 |
|
67 |
-
For each expiration event, a custom cron job is scheduled. This can help reduce server overhead for busy sites. This plugin REQUIRES that WP-CRON is
|
68 |
|
69 |
[Click here to see the technical details for this plugin](https://publishpress.com/knowledge-base/scheduling-cron-jobs/).
|
70 |
|
@@ -83,6 +81,30 @@ This section describes how to install the plugin and get it working.
|
|
83 |
|
84 |
== Changelog ==
|
85 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
= [2.7.0] - 02 Dec 2021 =
|
87 |
|
88 |
* Changed: Rename the plugin from Post Expirator to PublishpPress Future, #14;
|
1 |
+
=== PublishPress Future: Automatically Unpublish WordPress Posts ===
|
2 |
+
Contributors: publishpress, kevinB, stevejburge, andergmartins, rozroz
|
3 |
Author: publishpress
|
4 |
Author URI: https://publishpress.com
|
5 |
+
Tags: expire, posts, pages, schedule
|
6 |
+
Requires at least: 5.3
|
7 |
Tested up to: 5.8
|
8 |
+
Stable tag: 2.7.1
|
9 |
|
10 |
Add an expiration date to posts. When your post is automatically unpublished, you can delete the post, change the status, or update the post categories.
|
11 |
|
22 |
* Receive email notifications when your content expires.
|
23 |
* Show expiry dates in your content, automatically or with shortcodes.
|
24 |
|
|
|
|
|
25 |
## Options for Expiring Posts
|
26 |
|
27 |
When your posts expire, you can perform these changes on your content:
|
40 |
|
41 |
## Display the Expiry Date in Your Content
|
42 |
|
43 |
+
PublishPress Future allows you to place automatically show the expiry date inside your articles. The expiry will be added at the bottom of your post.
|
44 |
|
45 |
[Click here to see the Footer Display options](https://publishpress.com/knowledge-base/footer-display/).
|
46 |
|
62 |
|
63 |
## Details on How Post Expiry Works
|
64 |
|
65 |
+
For each expiration event, a custom cron job is scheduled. This can help reduce server overhead for busy sites. This plugin REQUIRES that WP-CRON is setup and functional on your webhost. Some hosts do not support this, so please check and confirm if you run into issues using the plugin.
|
66 |
|
67 |
[Click here to see the technical details for this plugin](https://publishpress.com/knowledge-base/scheduling-cron-jobs/).
|
68 |
|
81 |
|
82 |
== Changelog ==
|
83 |
|
84 |
+
= [2.7.1] - 12 Jan 2021 =
|
85 |
+
|
86 |
+
* Added: Add visual indicator to the cron event status in the settings page, #155;
|
87 |
+
* Added: Add small help text to the Expires column icon to say if the event is scheduled or not;
|
88 |
+
* Added: Add additional permission check before loading the settings page;
|
89 |
+
* Added: Add CLI command to expire a post, #206;
|
90 |
+
* Changed: Remove the plugin description from the settings page, #194;
|
91 |
+
* Changed: Deprecated a not used function called "expirationdate_get_blog_url";
|
92 |
+
* Changed: Updated the min required WP to 5.3 due to the requirement of using the function 'wp_date';
|
93 |
+
* Fixed: Fix PHP error while purging the debug log, #135;
|
94 |
+
* Fixed: Fix composer's autoloader path;
|
95 |
+
* Fixed: Code cleanup. Removed comments and dead code;
|
96 |
+
* Fixed: Fixed the block for direct access to view files;
|
97 |
+
* Fixed: Added check for is_admin before checking if the user has permission to see the settings page;
|
98 |
+
* Fixed: Avoid running sortable column code if not in the admin;
|
99 |
+
* Fixed: Cross-site scripting (XSS) was possible if a third party allowed html or javascript into a database setting or language file;
|
100 |
+
* Fixed: Fix the URL for the View Debug Log admin page, #196;
|
101 |
+
* Fixed: Removed unopened span tag from a form;
|
102 |
+
* Fixed: Added a secondary admin and ajax referer check when saving expiration post data;
|
103 |
+
* Fixed: Fix the option "Preserve data after deactivating the plugin" that was not saving the setting, #198;
|
104 |
+
* Fixed: Fix the post expiration function to make sure a post is not expired if the checkbox is not checked on it, #199;
|
105 |
+
* Fixed: Fix the post expiration meta not being cleanup after a post expires, #207;
|
106 |
+
* Fixed: Fix the post expiration checkbox status when post type is set configured to check it by default;
|
107 |
+
|
108 |
= [2.7.0] - 02 Dec 2021 =
|
109 |
|
110 |
* Changed: Rename the plugin from Post Expirator to PublishpPress Future, #14;
|
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 ComposerAutoloaderInit1d63918176b7b346c50a6bf376bce514::getLoader();
|
vendor/composer/InstalledVersions.php
CHANGED
@@ -24,8 +24,21 @@ use Composer\Semver\VersionParser;
|
|
24 |
*/
|
25 |
class InstalledVersions
|
26 |
{
|
|
|
|
|
|
|
|
|
27 |
private static $installed;
|
|
|
|
|
|
|
|
|
28 |
private static $canGetVendors;
|
|
|
|
|
|
|
|
|
|
|
29 |
private static $installedByVendor = array();
|
30 |
|
31 |
/**
|
24 |
*/
|
25 |
class InstalledVersions
|
26 |
{
|
27 |
+
/**
|
28 |
+
* @var mixed[]|null
|
29 |
+
* @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}|array{}|null
|
30 |
+
*/
|
31 |
private static $installed;
|
32 |
+
|
33 |
+
/**
|
34 |
+
* @var bool|null
|
35 |
+
*/
|
36 |
private static $canGetVendors;
|
37 |
+
|
38 |
+
/**
|
39 |
+
* @var array[]
|
40 |
+
* @psalm-var array<string, array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
|
41 |
+
*/
|
42 |
private static $installedByVendor = array();
|
43 |
|
44 |
/**
|
vendor/composer/autoload_files.php
CHANGED
@@ -7,4 +7,5 @@ $baseDir = dirname($vendorDir);
|
|
7 |
|
8 |
return array(
|
9 |
'41c664bd04a95c2d6a2f2a3e00f06593' => $vendorDir . '/publishpress/wordpress-reviews/ReviewsController.php',
|
|
|
10 |
);
|
7 |
|
8 |
return array(
|
9 |
'41c664bd04a95c2d6a2f2a3e00f06593' => $vendorDir . '/publishpress/wordpress-reviews/ReviewsController.php',
|
10 |
+
'042dd0ae2433f2c5951d75563af2394e' => $baseDir . '/classes/DummyForAutoloadDetection.php',
|
11 |
);
|
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 |
|
@@ -24,15 +24,15 @@ class ComposerAutoloaderInitb4c7c32b9bcab4f54643f778f077efdc
|
|
24 |
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
-
spl_autoload_register(array('
|
28 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
29 |
-
spl_autoload_unregister(array('
|
30 |
|
31 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
32 |
if ($useStaticLoader) {
|
33 |
require __DIR__ . '/autoload_static.php';
|
34 |
|
35 |
-
call_user_func(\Composer\Autoload\
|
36 |
} else {
|
37 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
38 |
foreach ($map as $namespace => $path) {
|
@@ -53,19 +53,19 @@ class ComposerAutoloaderInitb4c7c32b9bcab4f54643f778f077efdc
|
|
53 |
$loader->register(true);
|
54 |
|
55 |
if ($useStaticLoader) {
|
56 |
-
$includeFiles = Composer\Autoload\
|
57 |
} else {
|
58 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
59 |
}
|
60 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
61 |
-
|
62 |
}
|
63 |
|
64 |
return $loader;
|
65 |
}
|
66 |
}
|
67 |
|
68 |
-
function
|
69 |
{
|
70 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
71 |
require $file;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit1d63918176b7b346c50a6bf376bce514
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
24 |
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
+
spl_autoload_register(array('ComposerAutoloaderInit1d63918176b7b346c50a6bf376bce514', 'loadClassLoader'), true, true);
|
28 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
29 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit1d63918176b7b346c50a6bf376bce514', 'loadClassLoader'));
|
30 |
|
31 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
32 |
if ($useStaticLoader) {
|
33 |
require __DIR__ . '/autoload_static.php';
|
34 |
|
35 |
+
call_user_func(\Composer\Autoload\ComposerStaticInit1d63918176b7b346c50a6bf376bce514::getInitializer($loader));
|
36 |
} else {
|
37 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
38 |
foreach ($map as $namespace => $path) {
|
53 |
$loader->register(true);
|
54 |
|
55 |
if ($useStaticLoader) {
|
56 |
+
$includeFiles = Composer\Autoload\ComposerStaticInit1d63918176b7b346c50a6bf376bce514::$files;
|
57 |
} else {
|
58 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
59 |
}
|
60 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
61 |
+
composerRequire1d63918176b7b346c50a6bf376bce514($fileIdentifier, $file);
|
62 |
}
|
63 |
|
64 |
return $loader;
|
65 |
}
|
66 |
}
|
67 |
|
68 |
+
function composerRequire1d63918176b7b346c50a6bf376bce514($fileIdentifier, $file)
|
69 |
{
|
70 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
71 |
require $file;
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,10 +4,11 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'41c664bd04a95c2d6a2f2a3e00f06593' => __DIR__ . '/..' . '/publishpress/wordpress-reviews/ReviewsController.php',
|
|
|
11 |
);
|
12 |
|
13 |
public static $classMap = array (
|
@@ -17,7 +18,7 @@ class ComposerStaticInitb4c7c32b9bcab4f54643f778f077efdc
|
|
17 |
public static function getInitializer(ClassLoader $loader)
|
18 |
{
|
19 |
return \Closure::bind(function () use ($loader) {
|
20 |
-
$loader->classMap =
|
21 |
|
22 |
}, null, ClassLoader::class);
|
23 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInit1d63918176b7b346c50a6bf376bce514
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'41c664bd04a95c2d6a2f2a3e00f06593' => __DIR__ . '/..' . '/publishpress/wordpress-reviews/ReviewsController.php',
|
11 |
+
'042dd0ae2433f2c5951d75563af2394e' => __DIR__ . '/../..' . '/classes/DummyForAutoloadDetection.php',
|
12 |
);
|
13 |
|
14 |
public static $classMap = array (
|
18 |
public static function getInitializer(ClassLoader $loader)
|
19 |
{
|
20 |
return \Closure::bind(function () use ($loader) {
|
21 |
+
$loader->classMap = ComposerStaticInit1d63918176b7b346c50a6bf376bce514::$classMap;
|
22 |
|
23 |
}, null, ClassLoader::class);
|
24 |
}
|
vendor/composer/installed.json
CHANGED
@@ -2,17 +2,17 @@
|
|
2 |
"packages": [
|
3 |
{
|
4 |
"name": "publishpress/wordpress-reviews",
|
5 |
-
"version": "v1.1.
|
6 |
-
"version_normalized": "1.1.
|
7 |
"source": {
|
8 |
"type": "git",
|
9 |
"url": "https://github.com/publishpress/wordpress-reviews.git",
|
10 |
-
"reference": "
|
11 |
},
|
12 |
"dist": {
|
13 |
"type": "zip",
|
14 |
-
"url": "https://api.github.com/repos/publishpress/wordpress-reviews/zipball/
|
15 |
-
"reference": "
|
16 |
"shasum": ""
|
17 |
},
|
18 |
"require": {
|
@@ -36,7 +36,7 @@
|
|
36 |
"wp-cli/i18n-command": "^2.2",
|
37 |
"wp-cli/wp-cli": "^2.5"
|
38 |
},
|
39 |
-
"time": "2021-12-
|
40 |
"type": "library",
|
41 |
"installation-source": "dist",
|
42 |
"autoload": {
|
@@ -67,7 +67,7 @@
|
|
67 |
],
|
68 |
"support": {
|
69 |
"issues": "https://github.com/publishpress/wordpress-reviews/issues",
|
70 |
-
"source": "https://github.com/publishpress/wordpress-reviews/tree/v1.1.
|
71 |
},
|
72 |
"install-path": "../publishpress/wordpress-reviews"
|
73 |
}
|
2 |
"packages": [
|
3 |
{
|
4 |
"name": "publishpress/wordpress-reviews",
|
5 |
+
"version": "v1.1.18",
|
6 |
+
"version_normalized": "1.1.18.0",
|
7 |
"source": {
|
8 |
"type": "git",
|
9 |
"url": "https://github.com/publishpress/wordpress-reviews.git",
|
10 |
+
"reference": "0020705b8f6a7177fc393c6c42c82171bf9e2fbd"
|
11 |
},
|
12 |
"dist": {
|
13 |
"type": "zip",
|
14 |
+
"url": "https://api.github.com/repos/publishpress/wordpress-reviews/zipball/0020705b8f6a7177fc393c6c42c82171bf9e2fbd",
|
15 |
+
"reference": "0020705b8f6a7177fc393c6c42c82171bf9e2fbd",
|
16 |
"shasum": ""
|
17 |
},
|
18 |
"require": {
|
36 |
"wp-cli/i18n-command": "^2.2",
|
37 |
"wp-cli/wp-cli": "^2.5"
|
38 |
},
|
39 |
+
"time": "2021-12-15T00:03:53+00:00",
|
40 |
"type": "library",
|
41 |
"installation-source": "dist",
|
42 |
"autoload": {
|
67 |
],
|
68 |
"support": {
|
69 |
"issues": "https://github.com/publishpress/wordpress-reviews/issues",
|
70 |
+
"source": "https://github.com/publishpress/wordpress-reviews/tree/v1.1.18"
|
71 |
},
|
72 |
"install-path": "../publishpress/wordpress-reviews"
|
73 |
}
|
vendor/composer/installed.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
'type' => 'wordpress-plugin',
|
6 |
'install_path' => __DIR__ . '/../../',
|
7 |
'aliases' => array(),
|
8 |
-
'reference' => '
|
9 |
'name' => 'publishpress/post-expirator',
|
10 |
'dev' => false,
|
11 |
),
|
@@ -16,16 +16,16 @@
|
|
16 |
'type' => 'wordpress-plugin',
|
17 |
'install_path' => __DIR__ . '/../../',
|
18 |
'aliases' => array(),
|
19 |
-
'reference' => '
|
20 |
'dev_requirement' => false,
|
21 |
),
|
22 |
'publishpress/wordpress-reviews' => array(
|
23 |
-
'pretty_version' => 'v1.1.
|
24 |
-
'version' => '1.1.
|
25 |
'type' => 'library',
|
26 |
'install_path' => __DIR__ . '/../publishpress/wordpress-reviews',
|
27 |
'aliases' => array(),
|
28 |
-
'reference' => '
|
29 |
'dev_requirement' => false,
|
30 |
),
|
31 |
),
|
5 |
'type' => 'wordpress-plugin',
|
6 |
'install_path' => __DIR__ . '/../../',
|
7 |
'aliases' => array(),
|
8 |
+
'reference' => 'ac0b7c2907e628fbe2025d0736f2475461b598b3',
|
9 |
'name' => 'publishpress/post-expirator',
|
10 |
'dev' => false,
|
11 |
),
|
16 |
'type' => 'wordpress-plugin',
|
17 |
'install_path' => __DIR__ . '/../../',
|
18 |
'aliases' => array(),
|
19 |
+
'reference' => 'ac0b7c2907e628fbe2025d0736f2475461b598b3',
|
20 |
'dev_requirement' => false,
|
21 |
),
|
22 |
'publishpress/wordpress-reviews' => array(
|
23 |
+
'pretty_version' => 'v1.1.18',
|
24 |
+
'version' => '1.1.18.0',
|
25 |
'type' => 'library',
|
26 |
'install_path' => __DIR__ . '/../publishpress/wordpress-reviews',
|
27 |
'aliases' => array(),
|
28 |
+
'reference' => '0020705b8f6a7177fc393c6c42c82171bf9e2fbd',
|
29 |
'dev_requirement' => false,
|
30 |
),
|
31 |
),
|
vendor/publishpress/wordpress-reviews/ReviewsController.php
CHANGED
@@ -56,11 +56,6 @@ class ReviewsController
|
|
56 |
*/
|
57 |
private $pluginName;
|
58 |
|
59 |
-
/**
|
60 |
-
* @var string
|
61 |
-
*/
|
62 |
-
private $apiUrl = '';
|
63 |
-
|
64 |
/**
|
65 |
* @var array
|
66 |
*/
|
@@ -265,7 +260,7 @@ class ReviewsController
|
|
265 |
$selected = [];
|
266 |
}
|
267 |
|
268 |
-
if (!
|
269 |
$dismissedTriggers = $this->getDismissedTriggerGroups();
|
270 |
|
271 |
$triggers = $this->getTriggers();
|
@@ -283,7 +278,7 @@ class ReviewsController
|
|
283 |
}
|
284 |
}
|
285 |
|
286 |
-
if (
|
287 |
break;
|
288 |
}
|
289 |
}
|
@@ -332,7 +327,7 @@ class ReviewsController
|
|
332 |
$triggers = [];
|
333 |
}
|
334 |
|
335 |
-
if (!
|
336 |
$timeMessage = __(
|
337 |
'Hey, you\'ve been using %1$s for %2$s on your site. We hope the plugin has been useful. Please could you quickly leave a 5-star rating on WordPress.org? It really does help to keep %1$s growing.',
|
338 |
$this->pluginSlug
|
@@ -387,13 +382,14 @@ class ReviewsController
|
|
387 |
}
|
388 |
|
389 |
if (isset($group)) {
|
390 |
-
if (!
|
|
|
391 |
return false;
|
392 |
}
|
393 |
|
394 |
if (! isset($code)) {
|
395 |
$return = $triggers[$this->pluginSlug][$group];
|
396 |
-
} elseif (
|
397 |
$return = $triggers[$this->pluginSlug][$group]['triggers'][$code];
|
398 |
} else {
|
399 |
$return = false;
|
@@ -416,7 +412,7 @@ class ReviewsController
|
|
416 |
$selected = [];
|
417 |
}
|
418 |
|
419 |
-
if (!
|
420 |
$dismissedTriggers = $this->getDismissedTriggerGroups();
|
421 |
|
422 |
foreach ($this->getTriggers() as $g => $group) {
|
@@ -432,13 +428,13 @@ class ReviewsController
|
|
432 |
}
|
433 |
}
|
434 |
|
435 |
-
if (
|
436 |
break;
|
437 |
}
|
438 |
}
|
439 |
}
|
440 |
|
441 |
-
if (!
|
442 |
return false;
|
443 |
}
|
444 |
|
@@ -463,7 +459,7 @@ class ReviewsController
|
|
463 |
|
464 |
if (empty($key)) {
|
465 |
$return = $trigger;
|
466 |
-
} elseif (
|
467 |
$return = $trigger[$key];
|
468 |
} else {
|
469 |
$return = false;
|
@@ -569,20 +565,6 @@ class ReviewsController
|
|
569 |
reason: reason
|
570 |
}
|
571 |
});
|
572 |
-
|
573 |
-
<?php if (! empty($this->apiUrl)) : ?>
|
574 |
-
$.ajax({
|
575 |
-
method: "POST",
|
576 |
-
dataType: "json",
|
577 |
-
url: '<?php echo $this->apiUrl; ?>',
|
578 |
-
data: {
|
579 |
-
trigger_group: trigger.group,
|
580 |
-
trigger_code: trigger.code,
|
581 |
-
reason: reason,
|
582 |
-
uuid: '<?php echo $uuid; ?>'
|
583 |
-
}
|
584 |
-
});
|
585 |
-
<?php endif; ?>
|
586 |
}
|
587 |
|
588 |
$(document)
|
@@ -616,7 +598,7 @@ class ReviewsController
|
|
616 |
<img src="<?php
|
617 |
echo $this->iconUrl; ?>" class="notice-icon" alt="<?php
|
618 |
echo $this->pluginName; ?> logo"/>
|
619 |
-
|
620 |
endif; ?>
|
621 |
|
622 |
<p><?php
|
@@ -626,7 +608,7 @@ class ReviewsController
|
|
626 |
echo "$this->pluginSlug-dismiss"; ?>"
|
627 |
target="_blank"
|
628 |
href="<?php
|
629 |
-
|
630 |
data-reason="am_now"
|
631 |
>
|
632 |
<strong><?php
|
56 |
*/
|
57 |
private $pluginName;
|
58 |
|
|
|
|
|
|
|
|
|
|
|
59 |
/**
|
60 |
* @var array
|
61 |
*/
|
260 |
$selected = [];
|
261 |
}
|
262 |
|
263 |
+
if (! array_key_exists($this->pluginSlug, $selected)) {
|
264 |
$dismissedTriggers = $this->getDismissedTriggerGroups();
|
265 |
|
266 |
$triggers = $this->getTriggers();
|
278 |
}
|
279 |
}
|
280 |
|
281 |
+
if (array_key_exists($this->pluginSlug, $selected)) {
|
282 |
break;
|
283 |
}
|
284 |
}
|
327 |
$triggers = [];
|
328 |
}
|
329 |
|
330 |
+
if (! array_key_exists($this->pluginSlug, $triggers)) {
|
331 |
$timeMessage = __(
|
332 |
'Hey, you\'ve been using %1$s for %2$s on your site. We hope the plugin has been useful. Please could you quickly leave a 5-star rating on WordPress.org? It really does help to keep %1$s growing.',
|
333 |
$this->pluginSlug
|
382 |
}
|
383 |
|
384 |
if (isset($group)) {
|
385 |
+
if (! array_key_exists($this->pluginSlug, $triggers)
|
386 |
+
|| ! array_key_exists($group, $triggers[$this->pluginSlug])) {
|
387 |
return false;
|
388 |
}
|
389 |
|
390 |
if (! isset($code)) {
|
391 |
$return = $triggers[$this->pluginSlug][$group];
|
392 |
+
} elseif (array_key_exists($code, $triggers[$this->pluginSlug][$group]['triggers'])) {
|
393 |
$return = $triggers[$this->pluginSlug][$group]['triggers'][$code];
|
394 |
} else {
|
395 |
$return = false;
|
412 |
$selected = [];
|
413 |
}
|
414 |
|
415 |
+
if (! array_key_exists($this->pluginSlug, $selected)) {
|
416 |
$dismissedTriggers = $this->getDismissedTriggerGroups();
|
417 |
|
418 |
foreach ($this->getTriggers() as $g => $group) {
|
428 |
}
|
429 |
}
|
430 |
|
431 |
+
if (array_key_exists($this->pluginSlug, $selected)) {
|
432 |
break;
|
433 |
}
|
434 |
}
|
435 |
}
|
436 |
|
437 |
+
if (! array_key_exists($this->pluginSlug, $selected)) {
|
438 |
return false;
|
439 |
}
|
440 |
|
459 |
|
460 |
if (empty($key)) {
|
461 |
$return = $trigger;
|
462 |
+
} elseif (array_key_exists($key, $trigger)) {
|
463 |
$return = $trigger[$key];
|
464 |
} else {
|
465 |
$return = false;
|
565 |
reason: reason
|
566 |
}
|
567 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
568 |
}
|
569 |
|
570 |
$(document)
|
598 |
<img src="<?php
|
599 |
echo $this->iconUrl; ?>" class="notice-icon" alt="<?php
|
600 |
echo $this->pluginName; ?> logo"/>
|
601 |
+
<?php
|
602 |
endif; ?>
|
603 |
|
604 |
<p><?php
|
608 |
echo "$this->pluginSlug-dismiss"; ?>"
|
609 |
target="_blank"
|
610 |
href="<?php
|
611 |
+
echo $trigger['link']; ?>"
|
612 |
data-reason="am_now"
|
613 |
>
|
614 |
<strong><?php
|
views/bulk-edit.php
CHANGED
@@ -1,5 +1,7 @@
|
|
1 |
<?php
|
2 |
|
|
|
|
|
3 |
$defaults = PostExpirator_Facade::get_default_expiry($post_type);
|
4 |
|
5 |
$year = $defaults['year'];
|
@@ -13,40 +15,40 @@ $minute = $defaults['minute'];
|
|
13 |
<div class="inline-edit-col">
|
14 |
<div class="inline-edit-group">
|
15 |
<legend class="inline-edit-legend"><?php
|
16 |
-
|
17 |
<fieldset class="inline-edit-date">
|
18 |
<div class="pe-qe-fields">
|
19 |
<div>
|
20 |
<legend><span class="title"><?php
|
21 |
-
|
22 |
<label>
|
23 |
<span class="screen-reader-text"><?php
|
24 |
-
|
25 |
<select name="expirationdate_status">
|
26 |
<option value="no-change" data-show-fields="false" selected>
|
27 |
--<?php
|
28 |
-
|
29 |
</option>
|
30 |
<option value="change-only" data-show-fields="true"
|
31 |
title="<?php
|
32 |
-
|
33 |
-
|
34 |
<option value="add-only" data-show-fields="true"
|
35 |
title="<?php
|
36 |
-
|
37 |
-
|
38 |
<option value="change-add"
|
39 |
data-show-fields="true"><?php
|
40 |
-
|
41 |
<option value="remove-only"
|
42 |
data-show-fields="false"><?php
|
43 |
-
|
44 |
</select>
|
45 |
</label>
|
46 |
<span class="post-expirator-date-fields">
|
47 |
<label>
|
48 |
<span class="screen-reader-text"><?php
|
49 |
-
|
50 |
<select name="expirationdate_month">
|
51 |
<?php
|
52 |
for ($x = 1; $x <= 12; $x++) {
|
@@ -57,12 +59,12 @@ $minute = $defaults['minute'];
|
|
57 |
$selected = $monthNumeric == $defaults['month'] ? 'selected' : '';
|
58 |
?>
|
59 |
<option value="<?php
|
60 |
-
echo $monthNumeric; ?>"
|
61 |
data-text="<?php
|
62 |
-
echo $monthStr; ?>" <?php
|
63 |
-
echo $selected; ?>><?php
|
64 |
-
echo $monthNumeric; ?>-<?php
|
65 |
-
echo $monthStr; ?></option>
|
66 |
<?php
|
67 |
} ?>
|
68 |
|
@@ -70,43 +72,43 @@ $minute = $defaults['minute'];
|
|
70 |
</label>
|
71 |
<label>
|
72 |
<span class="screen-reader-text"><?php
|
73 |
-
|
74 |
<input name="expirationdate_day" placeholder="<?php
|
75 |
-
echo $day; ?>" value="" size="2"
|
76 |
maxlength="2" autocomplete="off" type="text">
|
77 |
</label>,
|
78 |
<label>
|
79 |
<span class="screen-reader-text"><?php
|
80 |
-
|
81 |
<input name="expirationdate_year" placeholder="<?php
|
82 |
-
echo $year; ?>" value="" size="4"
|
83 |
maxlength="4" autocomplete="off" type="text">
|
84 |
</label> @
|
85 |
<label>
|
86 |
<span class="screen-reader-text"><?php
|
87 |
-
|
88 |
<input name="expirationdate_hour" placeholder="<?php
|
89 |
-
echo $hour; ?>" value="" size="2"
|
90 |
maxlength="2" autocomplete="off" type="text">
|
91 |
</label> :
|
92 |
<label>
|
93 |
<span class="screen-reader-text"><?php
|
94 |
-
|
95 |
<input name="expirationdate_minute" placeholder="<?php
|
96 |
-
echo $minute; ?>" value=""
|
97 |
size="2" maxlength="2" autocomplete="off" type="text">
|
98 |
</label>
|
99 |
|
100 |
<?php
|
101 |
-
echo PostExpirator_Util::wp_timezone_string(); ?>
|
102 |
</span>
|
103 |
</div>
|
104 |
<div class="post-expirator-date-fields">
|
105 |
<legend>
|
106 |
<span class="title"><?php
|
107 |
-
|
108 |
<span class="screen-reader-text"><?php
|
109 |
-
|
110 |
</legend>
|
111 |
<label>
|
112 |
<?php
|
@@ -122,9 +124,9 @@ $minute = $defaults['minute'];
|
|
122 |
<div class="pe-category-list">
|
123 |
<legend>
|
124 |
<span class="title"><?php
|
125 |
-
echo $tax_label; ?></span>
|
126 |
<span class="screen-reader-text"><?php
|
127 |
-
|
128 |
</legend>
|
129 |
<ul id="categorychecklist"
|
130 |
class="list:category categorychecklist cat-checklist category-checklist">
|
@@ -140,7 +142,6 @@ $minute = $defaults['minute'];
|
|
140 |
?>
|
141 |
</ul>
|
142 |
</div>
|
143 |
-
</span>
|
144 |
</div>
|
145 |
<input name="expirationdate_quickedit" value="true" type="hidden"/>
|
146 |
<input name="postexpirator_view" value="bulk-edit" type="hidden"/>
|
1 |
<?php
|
2 |
|
3 |
+
defined('ABSPATH') or die('Direct access not allowed.');
|
4 |
+
|
5 |
$defaults = PostExpirator_Facade::get_default_expiry($post_type);
|
6 |
|
7 |
$year = $defaults['year'];
|
15 |
<div class="inline-edit-col">
|
16 |
<div class="inline-edit-group">
|
17 |
<legend class="inline-edit-legend"><?php
|
18 |
+
esc_html_e('PublishPress Future', 'post-expirator'); ?></legend>
|
19 |
<fieldset class="inline-edit-date">
|
20 |
<div class="pe-qe-fields">
|
21 |
<div>
|
22 |
<legend><span class="title"><?php
|
23 |
+
esc_html_e('Date', 'post-expirator'); ?></span></legend>
|
24 |
<label>
|
25 |
<span class="screen-reader-text"><?php
|
26 |
+
esc_html_e('Enable Post Expiration', 'post-expirator'); ?></span>
|
27 |
<select name="expirationdate_status">
|
28 |
<option value="no-change" data-show-fields="false" selected>
|
29 |
--<?php
|
30 |
+
esc_html_e('No Change', 'post-expirator'); ?>--
|
31 |
</option>
|
32 |
<option value="change-only" data-show-fields="true"
|
33 |
title="<?php
|
34 |
+
esc_html_e('Change expiry date if enabled on posts', 'post-expirator'); ?>"><?php
|
35 |
+
esc_html_e('Change on posts', 'post-expirator'); ?></option>
|
36 |
<option value="add-only" data-show-fields="true"
|
37 |
title="<?php
|
38 |
+
esc_html_e('Add expiry date if not enabled on posts', 'post-expirator'); ?>"><?php
|
39 |
+
esc_html_e('Add to posts', 'post-expirator'); ?></option>
|
40 |
<option value="change-add"
|
41 |
data-show-fields="true"><?php
|
42 |
+
esc_html_e('Change & Add', 'post-expirator'); ?></option>
|
43 |
<option value="remove-only"
|
44 |
data-show-fields="false"><?php
|
45 |
+
esc_html_e('Remove from posts', 'post-expirator'); ?></option>
|
46 |
</select>
|
47 |
</label>
|
48 |
<span class="post-expirator-date-fields">
|
49 |
<label>
|
50 |
<span class="screen-reader-text"><?php
|
51 |
+
esc_html_e('Month', 'post-expirator'); ?></span>
|
52 |
<select name="expirationdate_month">
|
53 |
<?php
|
54 |
for ($x = 1; $x <= 12; $x++) {
|
59 |
$selected = $monthNumeric == $defaults['month'] ? 'selected' : '';
|
60 |
?>
|
61 |
<option value="<?php
|
62 |
+
echo esc_attr($monthNumeric); ?>"
|
63 |
data-text="<?php
|
64 |
+
echo esc_attr($monthStr); ?>" <?php
|
65 |
+
echo esc_attr($selected); ?>><?php
|
66 |
+
echo esc_html($monthNumeric); ?>-<?php
|
67 |
+
echo esc_html($monthStr); ?></option>
|
68 |
<?php
|
69 |
} ?>
|
70 |
|
72 |
</label>
|
73 |
<label>
|
74 |
<span class="screen-reader-text"><?php
|
75 |
+
esc_html_e('Day', 'post-expirator'); ?></span>
|
76 |
<input name="expirationdate_day" placeholder="<?php
|
77 |
+
echo esc_attr($day); ?>" value="" size="2"
|
78 |
maxlength="2" autocomplete="off" type="text">
|
79 |
</label>,
|
80 |
<label>
|
81 |
<span class="screen-reader-text"><?php
|
82 |
+
esc_html_e('Year', 'post-expirator'); ?></span>
|
83 |
<input name="expirationdate_year" placeholder="<?php
|
84 |
+
echo esc_attr($year); ?>" value="" size="4"
|
85 |
maxlength="4" autocomplete="off" type="text">
|
86 |
</label> @
|
87 |
<label>
|
88 |
<span class="screen-reader-text"><?php
|
89 |
+
esc_html_e('Hour', 'post-expirator'); ?></span>
|
90 |
<input name="expirationdate_hour" placeholder="<?php
|
91 |
+
echo esc_attr($hour); ?>" value="" size="2"
|
92 |
maxlength="2" autocomplete="off" type="text">
|
93 |
</label> :
|
94 |
<label>
|
95 |
<span class="screen-reader-text"><?php
|
96 |
+
esc_html_e('Minute', 'post-expirator'); ?></span>
|
97 |
<input name="expirationdate_minute" placeholder="<?php
|
98 |
+
echo esc_attr($minute); ?>" value=""
|
99 |
size="2" maxlength="2" autocomplete="off" type="text">
|
100 |
</label>
|
101 |
|
102 |
<?php
|
103 |
+
echo esc_html(PostExpirator_Util::wp_timezone_string()); ?>
|
104 |
</span>
|
105 |
</div>
|
106 |
<div class="post-expirator-date-fields">
|
107 |
<legend>
|
108 |
<span class="title"><?php
|
109 |
+
esc_html_e('Type', 'post-expirator'); ?></span>
|
110 |
<span class="screen-reader-text"><?php
|
111 |
+
esc_html_e('How to expire', 'post-expirator'); ?></span>
|
112 |
</legend>
|
113 |
<label>
|
114 |
<?php
|
124 |
<div class="pe-category-list">
|
125 |
<legend>
|
126 |
<span class="title"><?php
|
127 |
+
echo esc_html($tax_label); ?></span>
|
128 |
<span class="screen-reader-text"><?php
|
129 |
+
esc_html_e('Expiration Categories', 'post-expirator'); ?></span>
|
130 |
</legend>
|
131 |
<ul id="categorychecklist"
|
132 |
class="list:category categorychecklist cat-checklist category-checklist">
|
142 |
?>
|
143 |
</ul>
|
144 |
</div>
|
|
|
145 |
</div>
|
146 |
<input name="expirationdate_quickedit" value="true" type="hidden"/>
|
147 |
<input name="postexpirator_view" value="bulk-edit" type="hidden"/>
|
views/classic-metabox.php
CHANGED
@@ -1,16 +1,21 @@
|
|
|
|
|
|
|
|
|
|
1 |
<p>
|
2 |
-
<input type="checkbox" name="enable-expirationdate" id="enable-expirationdate" value="checked"
|
3 |
-
|
|
|
4 |
echo $enabled; ?>/>
|
5 |
<label for="enable-expirationdate"><?php
|
6 |
-
|
7 |
</p>
|
8 |
|
9 |
<?php
|
10 |
if ($default === 'publish') {
|
11 |
?>
|
12 |
<em><?php
|
13 |
-
|
14 |
<?php
|
15 |
return;
|
16 |
}
|
@@ -19,7 +24,7 @@ if ($default === 'publish') {
|
|
19 |
echo empty($enabled) ? 'none' : 'flex'; ?>">
|
20 |
<div>
|
21 |
<label><?php
|
22 |
-
|
23 |
<select name="expirationdate_year" id="expirationdate_year">
|
24 |
<?php
|
25 |
$currentyear = date('Y');
|
@@ -37,9 +42,10 @@ echo empty($enabled) ? 'none' : 'flex'; ?>">
|
|
37 |
}
|
38 |
?>
|
39 |
<option <?php
|
|
|
40 |
echo $selected; ?> value="<?php
|
41 |
-
echo $i; ?>"><?php
|
42 |
-
echo $i; ?></option>
|
43 |
<?php
|
44 |
}
|
45 |
?>
|
@@ -47,7 +53,7 @@ echo empty($enabled) ? 'none' : 'flex'; ?>">
|
|
47 |
</div>
|
48 |
<div>
|
49 |
<label><?php
|
50 |
-
|
51 |
<select name="expirationdate_month" id="expirationdate_month">
|
52 |
<?php
|
53 |
for ($i = 1; $i <= 12; $i++) {
|
@@ -58,9 +64,10 @@ echo empty($enabled) ? 'none' : 'flex'; ?>">
|
|
58 |
}
|
59 |
?>
|
60 |
<option value="<?php
|
61 |
-
echo date_i18n('m', mktime(0, 0, 0, $i, 1, date_i18n('Y'))); ?>" <?php
|
|
|
62 |
echo $selected; ?>><?php
|
63 |
-
echo date_i18n('F', mktime(0, 0, 0, $i, 1, date_i18n('Y'))); ?></option>
|
64 |
<?php
|
65 |
}
|
66 |
?>
|
@@ -68,16 +75,16 @@ echo empty($enabled) ? 'none' : 'flex'; ?>">
|
|
68 |
</div>
|
69 |
<div>
|
70 |
<label><?php
|
71 |
-
|
72 |
<input type="text" id="expirationdate_day" name="expirationdate_day" value="<?php
|
73 |
-
echo $defaultday; ?>"
|
74 |
size="2"/>
|
75 |
</div>
|
76 |
<div>
|
77 |
<label><?php
|
78 |
-
|
79 |
(<?php
|
80 |
-
echo date_i18n('T', mktime(0, 0, 0, $i, 1, date_i18n('Y'))); ?>)</label>
|
81 |
<select name="expirationdate_hour" id="expirationdate_hour">
|
82 |
<?php
|
83 |
for ($i = 1; $i <= 24; $i++) {
|
@@ -89,9 +96,10 @@ echo empty($enabled) ? 'none' : 'flex'; ?>">
|
|
89 |
}
|
90 |
?>
|
91 |
<option value="<?php
|
92 |
-
echo $hour; ?>" <?php
|
|
|
93 |
echo $selected; ?>><?php
|
94 |
-
echo $hour; ?></option>
|
95 |
<?php
|
96 |
}
|
97 |
?>
|
@@ -99,14 +107,14 @@ echo empty($enabled) ? 'none' : 'flex'; ?>">
|
|
99 |
</div>
|
100 |
<div>
|
101 |
<label><?php
|
102 |
-
|
103 |
<input type="text" id="expirationdate_minute" name="expirationdate_minute" value="<?php
|
104 |
-
echo $defaultminute; ?>"
|
105 |
size="2"/>
|
106 |
</div>
|
107 |
<div>
|
108 |
<label><?php
|
109 |
-
|
110 |
<?php
|
111 |
_postexpirator_expire_type(array(
|
112 |
'type' => $post->post_type,
|
@@ -123,8 +131,8 @@ echo empty($enabled) ? 'none' : 'flex'; ?>">
|
|
123 |
$catdisplay = 'none';
|
124 |
}
|
125 |
|
126 |
-
echo '<div id="expired-category-selection" style="display: ' . $catdisplay . '">';
|
127 |
-
echo '<br/>' .
|
128 |
|
129 |
echo '<div class="wp-tab-panel" id="post-expirator-cat-list">';
|
130 |
echo '<ul id="categorychecklist" class="list:category categorychecklist form-no-clear">';
|
@@ -132,33 +140,33 @@ echo empty($enabled) ? 'none' : 'flex'; ?>">
|
|
132 |
$taxonomies = get_object_taxonomies($post->post_type, 'object');
|
133 |
$taxonomies = wp_filter_object_list($taxonomies, array('hierarchical' => true));
|
134 |
if (sizeof($taxonomies) === 0) {
|
135 |
-
echo '<p>' .
|
136 |
'You must assign a heirarchical taxonomy to this post type to use this feature.',
|
137 |
'post-expirator'
|
138 |
) . '</p>';
|
139 |
-
} elseif (sizeof($taxonomies) > 1 && ! isset($
|
140 |
-
echo '<p>' .
|
141 |
'More than 1 heirachical taxonomy detected. You must assign a default taxonomy on the settings screen.',
|
142 |
'post-expirator'
|
143 |
) . '</p>';
|
144 |
} else {
|
145 |
$keys = array_keys($taxonomies);
|
146 |
-
$taxonomy = isset($
|
147 |
wp_terms_checklist(0, array(
|
148 |
'taxonomy' => $taxonomy,
|
149 |
'walker' => $walker,
|
150 |
'selected_cats' => $categories,
|
151 |
'checked_ontop' => false
|
152 |
));
|
153 |
-
echo '<input type="hidden" name="taxonomy-heirarchical" value="' . $taxonomy . '" />';
|
154 |
}
|
155 |
echo '</ul>';
|
156 |
echo '</div>';
|
157 |
if (isset($taxonomy)) {
|
158 |
-
echo '<p class="post-expirator-taxonomy-name">' .
|
159 |
'Taxonomy Name',
|
160 |
'post-expirator'
|
161 |
-
) . ': ' . $taxonomy . '</p>';
|
162 |
}
|
163 |
echo '</div>';
|
164 |
}
|
@@ -168,4 +176,4 @@ echo empty($enabled) ? 'none' : 'flex'; ?>">
|
|
168 |
<input name="expirationdate_formcheck" value="true" type="hidden"/>
|
169 |
<input name="postexpirator_view" value="classic-metabox" type="hidden"/>
|
170 |
<?php
|
171 |
-
wp_nonce_field('__postexpirator', '_postexpiratornonce');
|
1 |
+
<?php
|
2 |
+
defined('ABSPATH') or die('Direct access not allowed.');
|
3 |
+
?>
|
4 |
+
|
5 |
<p>
|
6 |
+
<input type="checkbox" name="enable-expirationdate" id="enable-expirationdate" value="checked"
|
7 |
+
<?php
|
8 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
9 |
echo $enabled; ?>/>
|
10 |
<label for="enable-expirationdate"><?php
|
11 |
+
esc_html_e('Enable Post Expiration', 'post-expirator'); ?></label>
|
12 |
</p>
|
13 |
|
14 |
<?php
|
15 |
if ($default === 'publish') {
|
16 |
?>
|
17 |
<em><?php
|
18 |
+
esc_html_e('The published date/time will be used as the expiration value', 'post-expirator'); ?></em>
|
19 |
<?php
|
20 |
return;
|
21 |
}
|
24 |
echo empty($enabled) ? 'none' : 'flex'; ?>">
|
25 |
<div>
|
26 |
<label><?php
|
27 |
+
esc_html_e('Year', 'post-expirator'); ?></label>
|
28 |
<select name="expirationdate_year" id="expirationdate_year">
|
29 |
<?php
|
30 |
$currentyear = date('Y');
|
42 |
}
|
43 |
?>
|
44 |
<option <?php
|
45 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
46 |
echo $selected; ?> value="<?php
|
47 |
+
echo esc_attr($i); ?>"><?php
|
48 |
+
echo esc_html($i); ?></option>
|
49 |
<?php
|
50 |
}
|
51 |
?>
|
53 |
</div>
|
54 |
<div>
|
55 |
<label><?php
|
56 |
+
esc_html_e('Month', 'post-expirator'); ?></label>
|
57 |
<select name="expirationdate_month" id="expirationdate_month">
|
58 |
<?php
|
59 |
for ($i = 1; $i <= 12; $i++) {
|
64 |
}
|
65 |
?>
|
66 |
<option value="<?php
|
67 |
+
echo esc_attr(date_i18n('m', mktime(0, 0, 0, $i, 1, date_i18n('Y')))); ?>" <?php
|
68 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
69 |
echo $selected; ?>><?php
|
70 |
+
echo esc_html(date_i18n('F', mktime(0, 0, 0, $i, 1, date_i18n('Y')))); ?></option>
|
71 |
<?php
|
72 |
}
|
73 |
?>
|
75 |
</div>
|
76 |
<div>
|
77 |
<label><?php
|
78 |
+
esc_html_e('Day', 'post-expirator'); ?></label>
|
79 |
<input type="text" id="expirationdate_day" name="expirationdate_day" value="<?php
|
80 |
+
echo esc_attr($defaultday); ?>"
|
81 |
size="2"/>
|
82 |
</div>
|
83 |
<div>
|
84 |
<label><?php
|
85 |
+
esc_html_e('Hour', 'post-expirator'); ?>
|
86 |
(<?php
|
87 |
+
echo esc_html(date_i18n('T', mktime(0, 0, 0, $i, 1, date_i18n('Y')))); ?>)</label>
|
88 |
<select name="expirationdate_hour" id="expirationdate_hour">
|
89 |
<?php
|
90 |
for ($i = 1; $i <= 24; $i++) {
|
96 |
}
|
97 |
?>
|
98 |
<option value="<?php
|
99 |
+
echo esc_attr($hour); ?>" <?php
|
100 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
101 |
echo $selected; ?>><?php
|
102 |
+
echo esc_html($hour); ?></option>
|
103 |
<?php
|
104 |
}
|
105 |
?>
|
107 |
</div>
|
108 |
<div>
|
109 |
<label><?php
|
110 |
+
esc_html_e('Minute', 'post-expirator'); ?></label>
|
111 |
<input type="text" id="expirationdate_minute" name="expirationdate_minute" value="<?php
|
112 |
+
echo esc_attr($defaultminute); ?>"
|
113 |
size="2"/>
|
114 |
</div>
|
115 |
<div>
|
116 |
<label><?php
|
117 |
+
esc_html_e('How to expire', 'post-expirator'); ?></label>
|
118 |
<?php
|
119 |
_postexpirator_expire_type(array(
|
120 |
'type' => $post->post_type,
|
131 |
$catdisplay = 'none';
|
132 |
}
|
133 |
|
134 |
+
echo '<div id="expired-category-selection" style="display: ' . esc_attr($catdisplay) . '">';
|
135 |
+
echo '<br/>' . esc_html__('Expiration Categories', 'post-expirator') . ':<br/>';
|
136 |
|
137 |
echo '<div class="wp-tab-panel" id="post-expirator-cat-list">';
|
138 |
echo '<ul id="categorychecklist" class="list:category categorychecklist form-no-clear">';
|
140 |
$taxonomies = get_object_taxonomies($post->post_type, 'object');
|
141 |
$taxonomies = wp_filter_object_list($taxonomies, array('hierarchical' => true));
|
142 |
if (sizeof($taxonomies) === 0) {
|
143 |
+
echo '<p>' . esc_html__(
|
144 |
'You must assign a heirarchical taxonomy to this post type to use this feature.',
|
145 |
'post-expirator'
|
146 |
) . '</p>';
|
147 |
+
} elseif (sizeof($taxonomies) > 1 && ! isset($defaultsOption['taxonomy'])) {
|
148 |
+
echo '<p>' . esc_html__(
|
149 |
'More than 1 heirachical taxonomy detected. You must assign a default taxonomy on the settings screen.',
|
150 |
'post-expirator'
|
151 |
) . '</p>';
|
152 |
} else {
|
153 |
$keys = array_keys($taxonomies);
|
154 |
+
$taxonomy = isset($defaultsOption['taxonomy']) ? $defaultsOption['taxonomy'] : $keys[0];
|
155 |
wp_terms_checklist(0, array(
|
156 |
'taxonomy' => $taxonomy,
|
157 |
'walker' => $walker,
|
158 |
'selected_cats' => $categories,
|
159 |
'checked_ontop' => false
|
160 |
));
|
161 |
+
echo '<input type="hidden" name="taxonomy-heirarchical" value="' . esc_attr($taxonomy) . '" />';
|
162 |
}
|
163 |
echo '</ul>';
|
164 |
echo '</div>';
|
165 |
if (isset($taxonomy)) {
|
166 |
+
echo '<p class="post-expirator-taxonomy-name">' . esc_html__(
|
167 |
'Taxonomy Name',
|
168 |
'post-expirator'
|
169 |
+
) . ': ' . esc_html($taxonomy) . '</p>';
|
170 |
}
|
171 |
echo '</div>';
|
172 |
}
|
176 |
<input name="expirationdate_formcheck" value="true" type="hidden"/>
|
177 |
<input name="postexpirator_view" value="classic-metabox" type="hidden"/>
|
178 |
<?php
|
179 |
+
wp_nonce_field('__postexpirator', '_postexpiratornonce');
|
views/expire-column.php
CHANGED
@@ -1,15 +1,28 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
|
|
5 |
<?php
|
|
|
|
|
|
|
6 |
$expirationEnabled = PostExpirator_Facade::is_expiration_enabled_for_post($id);
|
7 |
$expirationDate = get_post_meta($id, '_expiration-date', true);
|
|
|
8 |
if ($expirationDate && $expirationEnabled) {
|
9 |
$format = get_option('date_format') . ' ' . get_option('time_format');
|
10 |
$display = PostExpirator_Util::get_wp_date($format, $expirationDate);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
} else {
|
12 |
$display = __('Never', 'post-expirator');
|
|
|
13 |
}
|
14 |
|
15 |
$defaults = get_option('expirationdateDefaults' . ucfirst($post_type));
|
@@ -52,15 +65,16 @@ echo esc_attr($id); ?>"
|
|
52 |
}
|
53 |
|
54 |
// the hidden fields will be used by quick edit
|
55 |
-
|
56 |
?>
|
|
|
|
|
57 |
<?php echo esc_html($display); ?>
|
58 |
-
<input type="hidden" id="expirationdate_year-<?php echo $id; ?>" value="<?php echo $year; ?>" />
|
59 |
-
<input type="hidden" id="expirationdate_month-<?php echo $id; ?>" value="<?php echo $month; ?>" />
|
60 |
-
<input type="hidden" id="expirationdate_day-<?php echo $id; ?>" value="<?php echo $day; ?>" />
|
61 |
-
<input type="hidden" id="expirationdate_hour-<?php echo $id; ?>" value="<?php echo $hour; ?>" />
|
62 |
-
<input type="hidden" id="expirationdate_minute-<?php echo $id; ?>" value="<?php echo $minute; ?>" />
|
63 |
-
<input type="hidden" id="expirationdate_enabled-<?php echo $id; ?>" value="<?php echo $enabled; ?>" />
|
64 |
-
<input type="hidden" id="expirationdate_expireType-<?php echo $id; ?>" value="<?php echo $expireType; ?>" />
|
65 |
-
<input type="hidden" id="expirationdate_categories-<?php echo $id; ?>" value="<?php echo $categories; ?>" />
|
66 |
</div>
|
1 |
+
<?php
|
2 |
+
defined('ABSPATH') or die('Direct access not allowed.');
|
3 |
+
?>
|
4 |
+
<div class="post-expire-col" data-id="<?php echo esc_attr($id); ?>"
|
5 |
+
data-expire-attributes="<?php echo esc_attr(json_encode($attributes)); ?>">
|
6 |
<?php
|
7 |
+
$iconClass = '';
|
8 |
+
$iconTitle = '';
|
9 |
+
|
10 |
$expirationEnabled = PostExpirator_Facade::is_expiration_enabled_for_post($id);
|
11 |
$expirationDate = get_post_meta($id, '_expiration-date', true);
|
12 |
+
|
13 |
if ($expirationDate && $expirationEnabled) {
|
14 |
$format = get_option('date_format') . ' ' . get_option('time_format');
|
15 |
$display = PostExpirator_Util::get_wp_date($format, $expirationDate);
|
16 |
+
if (PostExpirator_CronFacade::post_has_scheduled_task($id)) {
|
17 |
+
$iconClass = 'clock icon-scheduled';
|
18 |
+
$iconTitle = __('Cron event scheduled.', 'post-expirator');
|
19 |
+
} else {
|
20 |
+
$iconClass = 'warning icon-missed';
|
21 |
+
$iconTitle = __('Cron event not found!', 'post-expirator');
|
22 |
+
}
|
23 |
} else {
|
24 |
$display = __('Never', 'post-expirator');
|
25 |
+
$iconClass = 'marker icon-never';
|
26 |
}
|
27 |
|
28 |
$defaults = get_option('expirationdateDefaults' . ucfirst($post_type));
|
65 |
}
|
66 |
|
67 |
// the hidden fields will be used by quick edit
|
|
|
68 |
?>
|
69 |
+
<span class="dashicons dashicons-<?php echo esc_attr($iconClass); ?>" title="<?php echo esc_attr($iconTitle); ?>"></span>
|
70 |
+
|
71 |
<?php echo esc_html($display); ?>
|
72 |
+
<input type="hidden" id="expirationdate_year-<?php echo esc_attr($id); ?>" value="<?php echo esc_attr($year); ?>" />
|
73 |
+
<input type="hidden" id="expirationdate_month-<?php echo esc_attr($id); ?>" value="<?php echo esc_attr($month); ?>" />
|
74 |
+
<input type="hidden" id="expirationdate_day-<?php echo esc_attr($id); ?>" value="<?php echo esc_attr($day); ?>" />
|
75 |
+
<input type="hidden" id="expirationdate_hour-<?php echo esc_attr($id); ?>" value="<?php echo esc_attr($hour); ?>" />
|
76 |
+
<input type="hidden" id="expirationdate_minute-<?php echo esc_attr($id); ?>" value="<?php echo esc_attr($minute); ?>" />
|
77 |
+
<input type="hidden" id="expirationdate_enabled-<?php echo esc_attr($id); ?>" value="<?php echo esc_attr($enabled); ?>" />
|
78 |
+
<input type="hidden" id="expirationdate_expireType-<?php echo esc_attr($id); ?>" value="<?php echo esc_attr($expireType); ?>" />
|
79 |
+
<input type="hidden" id="expirationdate_categories-<?php echo esc_attr($id); ?>" value="<?php echo esc_attr($categories); ?>" />
|
80 |
</div>
|
views/how-to-expire.php
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
<?php
|
|
|
2 |
|
3 |
// @TODO remove extract
|
4 |
extract($opts);
|
@@ -20,37 +21,37 @@ if (empty($type) && isset($opts['post_type'])) {
|
|
20 |
|
21 |
?>
|
22 |
<select name="<?php
|
23 |
-
echo $name; ?>" id="<?php
|
24 |
-
echo $id; ?>" class="pe-howtoexpire">
|
25 |
<option value="draft" <?php
|
26 |
echo $selected === 'draft' ? 'selected="selected"' : ''; ?>><?php
|
27 |
-
|
28 |
<option value="delete" <?php
|
29 |
echo $selected === 'delete' ? 'selected="selected"' : ''; ?>><?php
|
30 |
-
|
31 |
<option value="trash" <?php
|
32 |
echo $selected === 'trash' ? 'selected="selected"' : ''; ?>><?php
|
33 |
-
|
34 |
<option value="private" <?php
|
35 |
echo $selected === 'private' ? 'selected="selected"' : ''; ?>><?php
|
36 |
-
|
37 |
<option value="stick" <?php
|
38 |
echo $selected === 'stick' ? 'selected="selected"' : ''; ?>><?php
|
39 |
-
|
40 |
<option value="unstick" <?php
|
41 |
echo $selected === 'unstick' ? 'selected="selected"' : ''; ?>><?php
|
42 |
-
|
43 |
<?php
|
44 |
if ($type !== 'page') { ?>
|
45 |
<option value="category" <?php
|
46 |
echo $selected === 'category' ? 'selected="selected"' : ''; ?>><?php
|
47 |
-
|
48 |
<option value="category-add" <?php
|
49 |
echo $selected === 'category-add' ? 'selected="selected"' : ''; ?>><?php
|
50 |
-
|
51 |
<option value="category-remove" <?php
|
52 |
echo $selected === 'category-remove' ? 'selected="selected"' : ''; ?>><?php
|
53 |
-
|
54 |
<?php
|
55 |
} ?>
|
56 |
</select>
|
1 |
<?php
|
2 |
+
defined('ABSPATH') or die('Direct access not allowed.');
|
3 |
|
4 |
// @TODO remove extract
|
5 |
extract($opts);
|
21 |
|
22 |
?>
|
23 |
<select name="<?php
|
24 |
+
echo esc_attr($name); ?>" id="<?php
|
25 |
+
echo esc_attr($id); ?>" class="pe-howtoexpire">
|
26 |
<option value="draft" <?php
|
27 |
echo $selected === 'draft' ? 'selected="selected"' : ''; ?>><?php
|
28 |
+
esc_html_e('Draft', 'post-expirator'); ?></option>
|
29 |
<option value="delete" <?php
|
30 |
echo $selected === 'delete' ? 'selected="selected"' : ''; ?>><?php
|
31 |
+
esc_html_e('Delete', 'post-expirator'); ?></option>
|
32 |
<option value="trash" <?php
|
33 |
echo $selected === 'trash' ? 'selected="selected"' : ''; ?>><?php
|
34 |
+
esc_html_e('Trash', 'post-expirator'); ?></option>
|
35 |
<option value="private" <?php
|
36 |
echo $selected === 'private' ? 'selected="selected"' : ''; ?>><?php
|
37 |
+
esc_html_e('Private', 'post-expirator'); ?></option>
|
38 |
<option value="stick" <?php
|
39 |
echo $selected === 'stick' ? 'selected="selected"' : ''; ?>><?php
|
40 |
+
esc_html_e('Stick', 'post-expirator'); ?></option>
|
41 |
<option value="unstick" <?php
|
42 |
echo $selected === 'unstick' ? 'selected="selected"' : ''; ?>><?php
|
43 |
+
esc_html_e('Unstick', 'post-expirator'); ?></option>
|
44 |
<?php
|
45 |
if ($type !== 'page') { ?>
|
46 |
<option value="category" <?php
|
47 |
echo $selected === 'category' ? 'selected="selected"' : ''; ?>><?php
|
48 |
+
esc_html_e('Category: Replace', 'post-expirator'); ?></option>
|
49 |
<option value="category-add" <?php
|
50 |
echo $selected === 'category-add' ? 'selected="selected"' : ''; ?>><?php
|
51 |
+
esc_html_e('Category: Add', 'post-expirator'); ?></option>
|
52 |
<option value="category-remove" <?php
|
53 |
echo $selected === 'category-remove' ? 'selected="selected"' : ''; ?>><?php
|
54 |
+
esc_html_e('Category: Remove', 'post-expirator'); ?></option>
|
55 |
<?php
|
56 |
} ?>
|
57 |
</select>
|
views/menu-advanced.php
CHANGED
@@ -1,4 +1,7 @@
|
|
1 |
<?php
|
|
|
|
|
|
|
2 |
// Get Option
|
3 |
$preserveData = (bool)get_option('expirationdatePreserveData', true);
|
4 |
|
1 |
<?php
|
2 |
+
|
3 |
+
defined('ABSPATH') or die('Direct access not allowed.');
|
4 |
+
|
5 |
// Get Option
|
6 |
$preserveData = (bool)get_option('expirationdatePreserveData', true);
|
7 |
|
views/menu-defaults.php
CHANGED
@@ -1,11 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
1 |
<form method="post">
|
2 |
<?php
|
3 |
wp_nonce_field('postexpirator_menu_defaults', '_postExpiratorMenuDefaults_nonce'); ?>
|
4 |
<h3><?php
|
5 |
-
|
6 |
|
7 |
<p><?php
|
8 |
-
|
9 |
'Use the values below to set the default actions/values to be used for each for the corresponding post types. These values can all be overwritten when creating/editing the post/page.',
|
10 |
'post-expirator'
|
11 |
); ?></p>
|
@@ -13,8 +18,9 @@
|
|
13 |
<?php
|
14 |
foreach ($types as $type) {
|
15 |
$post_type_object = get_post_type_object($type);
|
|
|
16 |
echo '<fieldset>';
|
17 |
-
echo
|
18 |
$defaults = get_option('expirationdateDefaults' . ucfirst($type));
|
19 |
|
20 |
// phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
|
@@ -55,24 +61,26 @@
|
|
55 |
<table class="form-table">
|
56 |
<tr valign="top">
|
57 |
<th scope="row"><label for="expirationdate_activemeta-<?php
|
58 |
-
echo $type; ?>"><?php
|
59 |
-
|
60 |
<td>
|
61 |
<input type="radio" name="expirationdate_activemeta-<?php
|
62 |
-
echo $type; ?>" id="expirationdate_activemeta-true-<?php
|
63 |
-
echo $type; ?>" value="active" <?php
|
|
|
64 |
echo $expiredactivemetaenabled; ?>/> <label for="expirationdate_activemeta-true-<?php
|
65 |
-
echo $type; ?>"><?php
|
66 |
-
|
67 |
|
68 |
<input type="radio" name="expirationdate_activemeta-<?php
|
69 |
-
echo $type; ?>" id="expirationdate_activemeta-false-<?php
|
70 |
-
echo $type; ?>" value="inactive" <?php
|
|
|
71 |
echo $expiredactivemetadisabled; ?>/> <label for="expirationdate_activemeta-false-<?php
|
72 |
-
echo $type; ?>"><?php
|
73 |
-
|
74 |
<p class="description"><?php
|
75 |
-
|
76 |
'Select whether the PublishPress Future meta box is active for this post type.',
|
77 |
'post-expirator'
|
78 |
); ?></p>
|
@@ -80,40 +88,42 @@
|
|
80 |
</tr>
|
81 |
<tr valign="top">
|
82 |
<th scope="row"><label for="expirationdate_expiretype-<?php
|
83 |
-
echo $type; ?>"><?php
|
84 |
-
|
85 |
<td>
|
86 |
<?php
|
87 |
_postexpirator_expire_type(
|
88 |
array(
|
89 |
-
'name' => 'expirationdate_expiretype-' . $type,
|
90 |
'selected' => (isset($defaults['expireType']) ? $defaults['expireType'] : '')
|
91 |
)
|
92 |
); ?>
|
93 |
<p class="description"><?php
|
94 |
-
|
95 |
</td>
|
96 |
</tr>
|
97 |
<tr valign="top">
|
98 |
<th scope="row"><label for="expirationdate_autoenable-<?php
|
99 |
-
echo $type; ?>"><?php
|
100 |
-
|
101 |
<td>
|
102 |
<input type="radio" name="expirationdate_autoenable-<?php
|
103 |
-
echo $type; ?>" id="expirationdate_autoenable-true-<?php
|
104 |
-
echo $type; ?>" value="1" <?php
|
|
|
105 |
echo $expiredautoenabled; ?>/> <label for="expirationdate_autoenable-true-<?php
|
106 |
-
echo $type; ?>"><?php
|
107 |
-
|
108 |
|
109 |
<input type="radio" name="expirationdate_autoenable-<?php
|
110 |
-
echo $type; ?>" id="expirationdate_autoenable-false-<?php
|
111 |
-
echo $type; ?>" value="0" <?php
|
|
|
112 |
echo $expiredautodisabled; ?>/> <label for="expirationdate_autoenable-false-<?php
|
113 |
-
echo $type; ?>"><?php
|
114 |
-
|
115 |
<p class="description"><?php
|
116 |
-
|
117 |
'Select whether the PublishPress Future is enabled for all new posts.',
|
118 |
'post-expirator'
|
119 |
); ?></p>
|
@@ -121,30 +131,39 @@
|
|
121 |
</tr>
|
122 |
<tr valign="top">
|
123 |
<th scope="row"><label for="expirationdate_taxonomy-<?php
|
124 |
-
echo $type; ?>"><?php
|
125 |
-
|
126 |
<td>
|
127 |
<?php
|
128 |
-
echo
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
</td>
|
136 |
</tr>
|
137 |
<tr valign="top">
|
138 |
<th scope="row"><label for="expirationdate_emailnotification-<?php
|
139 |
-
echo $type; ?>"><?php
|
140 |
-
|
141 |
<td>
|
142 |
<input class="large-text" type="text" name="expirationdate_emailnotification-<?php
|
143 |
-
echo $type; ?>" id="expirationdate_emailnotification-<?php
|
144 |
-
echo $type; ?>" value="<?php
|
145 |
-
echo $defaults['emailnotification']; ?>"/>
|
146 |
<p class="description"><?php
|
147 |
-
|
148 |
'Enter a comma separate list of emails that you would like to be notified when the post expires.',
|
149 |
'post-expirator'
|
150 |
); ?></p>
|
@@ -152,10 +171,10 @@
|
|
152 |
</tr>
|
153 |
<?php
|
154 |
$values = array(
|
155 |
-
'' =>
|
156 |
-
'inherit' =>
|
157 |
-
'custom' =>
|
158 |
-
'publish' =>
|
159 |
);
|
160 |
|
161 |
$show = 'none';
|
@@ -169,40 +188,40 @@
|
|
169 |
|
170 |
<tr valign="top">
|
171 |
<th scope="row"><label for="expired-default-date-<?php
|
172 |
-
echo $type; ?>"><?php
|
173 |
-
|
174 |
<td>
|
175 |
<select name="expired-default-date-<?php
|
176 |
-
echo $type; ?>" id="expired-default-date-<?php
|
177 |
-
echo $type; ?>" class="pe-custom-date-toggle">
|
178 |
<?php
|
179 |
foreach ($values as $value => $label) { ?>
|
180 |
<option value="<?php
|
181 |
-
echo $value; ?>" <?php
|
182 |
selected($value, $defaults['default-expire-type']); ?>><?php
|
183 |
-
echo $label; ?></option>
|
184 |
<?php
|
185 |
} ?>
|
186 |
</select>
|
187 |
<p class="description"><?php
|
188 |
-
|
189 |
'Set the default expiration date to be used when creating a new post of this type.',
|
190 |
'post-expirator'
|
191 |
); ?></p>
|
192 |
<div id="expired-custom-container-<?php
|
193 |
-
echo $type; ?>" class="pe-custom-date-container" style="display: <?php
|
194 |
-
echo $show; ?>;">
|
195 |
<br/>
|
196 |
<label for="expired-custom-date-<?php
|
197 |
-
echo $type; ?>"><?php
|
198 |
-
|
199 |
<input type="text" value="<?php
|
200 |
-
echo $customDate; ?>" name="expired-custom-date-<?php
|
201 |
-
echo $type; ?>" id="expired-custom-date-<?php
|
202 |
-
echo $type; ?>"/>
|
203 |
<p class="description"><?php
|
204 |
echo sprintf(
|
205 |
-
|
206 |
'Set the custom value to use for the default expiration date. For information on formatting, see %1$s. For example, you could enter %2$s+1 month%3$s or %4$s+1 week 2 days 4 hours 2 seconds%5$s or %6$snext Thursday%7$s.',
|
207 |
'post-expirator'
|
208 |
),
|
@@ -225,6 +244,6 @@
|
|
225 |
?>
|
226 |
<p class="submit">
|
227 |
<input type="submit" name="expirationdateSaveDefaults" class="button-primary" value="<?php
|
228 |
-
|
229 |
</p>
|
230 |
</form>
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined('ABSPATH') or die('Direct access not allowed.');
|
4 |
+
?>
|
5 |
+
|
6 |
<form method="post">
|
7 |
<?php
|
8 |
wp_nonce_field('postexpirator_menu_defaults', '_postExpiratorMenuDefaults_nonce'); ?>
|
9 |
<h3><?php
|
10 |
+
esc_html_e('Default Expiration Values', 'post-expirator'); ?></h3>
|
11 |
|
12 |
<p><?php
|
13 |
+
esc_html_e(
|
14 |
'Use the values below to set the default actions/values to be used for each for the corresponding post types. These values can all be overwritten when creating/editing the post/page.',
|
15 |
'post-expirator'
|
16 |
); ?></p>
|
18 |
<?php
|
19 |
foreach ($types as $type) {
|
20 |
$post_type_object = get_post_type_object($type);
|
21 |
+
$singularName = $post_type_object->labels->singular_name;
|
22 |
echo '<fieldset>';
|
23 |
+
echo '<legend> ' . esc_html($singularName) . ' </legend>';
|
24 |
$defaults = get_option('expirationdateDefaults' . ucfirst($type));
|
25 |
|
26 |
// phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
|
61 |
<table class="form-table">
|
62 |
<tr valign="top">
|
63 |
<th scope="row"><label for="expirationdate_activemeta-<?php
|
64 |
+
echo esc_attr($type); ?>"><?php
|
65 |
+
esc_html_e('Active', 'post-expirator'); ?></label></th>
|
66 |
<td>
|
67 |
<input type="radio" name="expirationdate_activemeta-<?php
|
68 |
+
echo esc_attr($type); ?>" id="expirationdate_activemeta-true-<?php
|
69 |
+
echo esc_attr($type); ?>" value="active" <?php
|
70 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
71 |
echo $expiredactivemetaenabled; ?>/> <label for="expirationdate_activemeta-true-<?php
|
72 |
+
echo esc_attr($type); ?>"><?php
|
73 |
+
esc_html_e('Active', 'post-expirator'); ?></label>
|
74 |
|
75 |
<input type="radio" name="expirationdate_activemeta-<?php
|
76 |
+
echo esc_attr($type); ?>" id="expirationdate_activemeta-false-<?php
|
77 |
+
echo esc_attr($type); ?>" value="inactive" <?php
|
78 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
79 |
echo $expiredactivemetadisabled; ?>/> <label for="expirationdate_activemeta-false-<?php
|
80 |
+
echo esc_attr($type); ?>"><?php
|
81 |
+
esc_html_e('Inactive', 'post-expirator'); ?></label>
|
82 |
<p class="description"><?php
|
83 |
+
esc_html_e(
|
84 |
'Select whether the PublishPress Future meta box is active for this post type.',
|
85 |
'post-expirator'
|
86 |
); ?></p>
|
88 |
</tr>
|
89 |
<tr valign="top">
|
90 |
<th scope="row"><label for="expirationdate_expiretype-<?php
|
91 |
+
echo esc_attr($type); ?>"><?php
|
92 |
+
esc_html_e('How to expire', 'post-expirator'); ?></label></th>
|
93 |
<td>
|
94 |
<?php
|
95 |
_postexpirator_expire_type(
|
96 |
array(
|
97 |
+
'name' => 'expirationdate_expiretype-' . esc_attr($type),
|
98 |
'selected' => (isset($defaults['expireType']) ? $defaults['expireType'] : '')
|
99 |
)
|
100 |
); ?>
|
101 |
<p class="description"><?php
|
102 |
+
esc_html_e('Select the default expire action for the post type.', 'post-expirator'); ?></p>
|
103 |
</td>
|
104 |
</tr>
|
105 |
<tr valign="top">
|
106 |
<th scope="row"><label for="expirationdate_autoenable-<?php
|
107 |
+
echo esc_attr($type); ?>"><?php
|
108 |
+
esc_html_e('Auto-Enable?', 'post-expirator'); ?></label></th>
|
109 |
<td>
|
110 |
<input type="radio" name="expirationdate_autoenable-<?php
|
111 |
+
echo esc_attr($type); ?>" id="expirationdate_autoenable-true-<?php
|
112 |
+
echo esc_attr($type); ?>" value="1" <?php
|
113 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
114 |
echo $expiredautoenabled; ?>/> <label for="expirationdate_autoenable-true-<?php
|
115 |
+
echo esc_attr($type); ?>"><?php
|
116 |
+
esc_html_e('Enabled', 'post-expirator'); ?></label>
|
117 |
|
118 |
<input type="radio" name="expirationdate_autoenable-<?php
|
119 |
+
echo esc_attr($type); ?>" id="expirationdate_autoenable-false-<?php
|
120 |
+
echo esc_attr($type); ?>" value="0" <?php
|
121 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
122 |
echo $expiredautodisabled; ?>/> <label for="expirationdate_autoenable-false-<?php
|
123 |
+
echo esc_attr($type); ?>"><?php
|
124 |
+
esc_html_e('Disabled', 'post-expirator'); ?></label>
|
125 |
<p class="description"><?php
|
126 |
+
esc_html_e(
|
127 |
'Select whether the PublishPress Future is enabled for all new posts.',
|
128 |
'post-expirator'
|
129 |
); ?></p>
|
131 |
</tr>
|
132 |
<tr valign="top">
|
133 |
<th scope="row"><label for="expirationdate_taxonomy-<?php
|
134 |
+
echo esc_attr($type); ?>"><?php
|
135 |
+
esc_html_e('Taxonomy (hierarchical)', 'post-expirator'); ?></label></th>
|
136 |
<td>
|
137 |
<?php
|
138 |
+
echo wp_kses(
|
139 |
+
_postexpirator_taxonomy(
|
140 |
+
[
|
141 |
+
'type' => $type,
|
142 |
+
'name' => 'expirationdate_taxonomy-' . $type,
|
143 |
+
'selected' => $defaults['taxonomy']
|
144 |
+
]
|
145 |
+
),
|
146 |
+
[
|
147 |
+
'select' => [],
|
148 |
+
'option' => [],
|
149 |
+
'p' => [],
|
150 |
+
|
151 |
+
]
|
152 |
+
);
|
153 |
+
?>
|
154 |
</td>
|
155 |
</tr>
|
156 |
<tr valign="top">
|
157 |
<th scope="row"><label for="expirationdate_emailnotification-<?php
|
158 |
+
echo esc_attr($type); ?>"><?php
|
159 |
+
esc_html_e('Who to notify', 'post-expirator'); ?></label></th>
|
160 |
<td>
|
161 |
<input class="large-text" type="text" name="expirationdate_emailnotification-<?php
|
162 |
+
echo esc_attr($type); ?>" id="expirationdate_emailnotification-<?php
|
163 |
+
echo esc_attr($type); ?>" value="<?php
|
164 |
+
echo esc_attr($defaults['emailnotification']); ?>"/>
|
165 |
<p class="description"><?php
|
166 |
+
esc_html_e(
|
167 |
'Enter a comma separate list of emails that you would like to be notified when the post expires.',
|
168 |
'post-expirator'
|
169 |
); ?></p>
|
171 |
</tr>
|
172 |
<?php
|
173 |
$values = array(
|
174 |
+
'' => esc_html__('None', 'post-expirator'),
|
175 |
+
'inherit' => esc_html__('Inherit from General Settings', 'post-expirator'),
|
176 |
+
'custom' => esc_html__('Custom', 'post-expirator'),
|
177 |
+
'publish' => esc_html__('Publish Time', 'post-expirator'),
|
178 |
);
|
179 |
|
180 |
$show = 'none';
|
188 |
|
189 |
<tr valign="top">
|
190 |
<th scope="row"><label for="expired-default-date-<?php
|
191 |
+
echo esc_attr($type); ?>"><?php
|
192 |
+
esc_html_e('Default Date/Time Duration', 'post-expirator'); ?></label></th>
|
193 |
<td>
|
194 |
<select name="expired-default-date-<?php
|
195 |
+
echo esc_attr($type); ?>" id="expired-default-date-<?php
|
196 |
+
echo esc_attr($type); ?>" class="pe-custom-date-toggle">
|
197 |
<?php
|
198 |
foreach ($values as $value => $label) { ?>
|
199 |
<option value="<?php
|
200 |
+
echo esc_attr($value); ?>" <?php
|
201 |
selected($value, $defaults['default-expire-type']); ?>><?php
|
202 |
+
echo esc_html($label); ?></option>
|
203 |
<?php
|
204 |
} ?>
|
205 |
</select>
|
206 |
<p class="description"><?php
|
207 |
+
esc_html_e(
|
208 |
'Set the default expiration date to be used when creating a new post of this type.',
|
209 |
'post-expirator'
|
210 |
); ?></p>
|
211 |
<div id="expired-custom-container-<?php
|
212 |
+
echo esc_attr($type); ?>" class="pe-custom-date-container" style="display: <?php
|
213 |
+
echo esc_attr($show); ?>;">
|
214 |
<br/>
|
215 |
<label for="expired-custom-date-<?php
|
216 |
+
echo esc_attr($type); ?>"><?php
|
217 |
+
esc_html_e('Custom', 'post-expirator'); ?>:</label>
|
218 |
<input type="text" value="<?php
|
219 |
+
echo esc_attr($customDate); ?>" name="expired-custom-date-<?php
|
220 |
+
echo esc_attr($type); ?>" id="expired-custom-date-<?php
|
221 |
+
echo esc_attr($type); ?>"/>
|
222 |
<p class="description"><?php
|
223 |
echo sprintf(
|
224 |
+
esc_html__(
|
225 |
'Set the custom value to use for the default expiration date. For information on formatting, see %1$s. For example, you could enter %2$s+1 month%3$s or %4$s+1 week 2 days 4 hours 2 seconds%5$s or %6$snext Thursday%7$s.',
|
226 |
'post-expirator'
|
227 |
),
|
244 |
?>
|
245 |
<p class="submit">
|
246 |
<input type="submit" name="expirationdateSaveDefaults" class="button-primary" value="<?php
|
247 |
+
esc_html_e('Save Changes', 'post-expirator'); ?>"/>
|
248 |
</p>
|
249 |
</form>
|
views/menu-diagnostics.php
CHANGED
@@ -1,32 +1,36 @@
|
|
|
|
|
|
|
|
|
|
1 |
<form method="post" id="postExpiratorMenuUpgrade">
|
2 |
<?php
|
3 |
wp_nonce_field('postexpirator_menu_diagnostics', '_postExpiratorMenuDiagnostics_nonce'); ?>
|
4 |
<h3><?php
|
5 |
-
|
6 |
<table class="form-table">
|
7 |
<tr>
|
8 |
<th scope="row"><label for="postexpirator-log"><?php
|
9 |
-
|
10 |
<td>
|
11 |
<?php
|
12 |
if (defined('POSTEXPIRATOR_DEBUG') && POSTEXPIRATOR_DEBUG) : ?>
|
13 |
<i class="dashicons dashicons-yes-alt pe-status pe-status-enabled"></i> <span><?php
|
14 |
-
|
15 |
<?php
|
16 |
-
echo '<input type="submit" class="button" name="debugging-disable" id="debugging-disable" value=" ' .
|
17 |
'Disable Debugging',
|
18 |
'post-expirator'
|
19 |
) . '" />'; ?>
|
20 |
<?php
|
21 |
-
echo '<a href="' . admin_url(
|
22 |
-
'
|
23 |
-
) . '">' .
|
24 |
<?php
|
25 |
else: ?>
|
26 |
<i class="dashicons dashicons-no-alt pe-status pe-status-disabled"></i> <span><?php
|
27 |
-
|
28 |
<?php
|
29 |
-
echo '<input type="submit" class="button" name="debugging-enable" id="debugging-enable" value=" ' .
|
30 |
'Enable Debugging',
|
31 |
'post-expirator'
|
32 |
) . '" />'; ?>
|
@@ -37,24 +41,24 @@
|
|
37 |
</tr>
|
38 |
<tr>
|
39 |
<th scope="row"><?php
|
40 |
-
|
41 |
<td>
|
42 |
<input type="submit" class="button" name="purge-debug" id="purge-debug" value="<?php
|
43 |
-
|
44 |
</td>
|
45 |
</tr>
|
46 |
<tr>
|
47 |
<th scope="row"><?php
|
48 |
-
|
49 |
<td>
|
50 |
<?php
|
51 |
if (PostExpirator_CronFacade::is_cron_enabled()) : ?>
|
52 |
<i class="dashicons dashicons-yes pe-status pe-status-enabled"></i> <span><?php
|
53 |
-
|
54 |
<?php
|
55 |
else: ?>
|
56 |
<i class="dashicons dashicons-no pe-status pe-status-disabled"></i> <span><?php
|
57 |
-
|
58 |
<?php
|
59 |
endif;
|
60 |
?>
|
@@ -62,7 +66,7 @@
|
|
62 |
</tr/>
|
63 |
<tr>
|
64 |
<th scope="row"><label for="cron-schedule"><?php
|
65 |
-
|
66 |
<td>
|
67 |
<?php
|
68 |
$cron = PostExpirator_CronFacade::get_plugin_cron_events();
|
@@ -70,7 +74,7 @@
|
|
70 |
if (empty($cron)) {
|
71 |
?>
|
72 |
<p><?php
|
73 |
-
|
74 |
'No cron events found for the plugin.',
|
75 |
'post-expirator'
|
76 |
); ?></p>
|
@@ -78,7 +82,7 @@
|
|
78 |
} else {
|
79 |
?>
|
80 |
<p><?php
|
81 |
-
|
82 |
'The below table will show all currently scheduled cron events for the pluginwith the next run time.',
|
83 |
'post-expirator'
|
84 |
); ?></p>
|
@@ -87,21 +91,21 @@
|
|
87 |
<table class="striped">
|
88 |
<tr>
|
89 |
<th><?php
|
90 |
-
|
91 |
<th><?php
|
92 |
-
|
93 |
<th><?php
|
94 |
-
|
95 |
<th><?php
|
96 |
-
|
97 |
</tr>
|
98 |
<?php
|
99 |
|
100 |
foreach ($cron as $time => $value) {
|
101 |
foreach ($value as $eventkey => $eventvalue) {
|
102 |
echo '<tr class="pe-event">';
|
103 |
-
echo '<td>' . PostExpirator_Util::get_wp_date('r', $time) . '</td>';
|
104 |
-
echo '<td>' . $eventkey . '</td>';
|
105 |
$arrkey = array_keys($eventvalue);
|
106 |
$firstArgsUid = null;
|
107 |
echo '<td>';
|
@@ -110,22 +114,20 @@
|
|
110 |
$firstArgsUid = $eventguid;
|
111 |
}
|
112 |
if (empty($eventvalue[$eventguid]['args'])) {
|
113 |
-
echo '<div>' .
|
114 |
} else {
|
115 |
echo '<div>';
|
116 |
-
$args = array();
|
117 |
foreach ($eventvalue[$eventguid]['args'] as $key => $value) {
|
118 |
-
|
119 |
}
|
120 |
-
echo implode("<br/>\n", $args);
|
121 |
echo '</div>';
|
122 |
}
|
123 |
}
|
124 |
echo ' / ';
|
125 |
if (empty($eventvalue[$eventguid]['schedule'])) {
|
126 |
-
echo
|
127 |
} else {
|
128 |
-
echo $eventvalue[$eventguid]['schedule'] . ' (' . $eventvalue[$eventguid]['interval'] . ')';
|
129 |
}
|
130 |
echo '</td>';
|
131 |
|
@@ -139,7 +141,7 @@
|
|
139 |
$post = get_post((int)$eventvalue[$firstArgsUid]['args'][0]);
|
140 |
|
141 |
if (! empty($post) && ! is_wp_error($post) && is_object($post)) {
|
142 |
-
echo "{$post->ID}: {$post->post_title} ({$post->post_status})";
|
143 |
}
|
144 |
}
|
145 |
echo '</td>';
|
1 |
+
<?php
|
2 |
+
defined('ABSPATH') or die('Direct access not allowed.');
|
3 |
+
?>
|
4 |
+
|
5 |
<form method="post" id="postExpiratorMenuUpgrade">
|
6 |
<?php
|
7 |
wp_nonce_field('postexpirator_menu_diagnostics', '_postExpiratorMenuDiagnostics_nonce'); ?>
|
8 |
<h3><?php
|
9 |
+
esc_html_e('Advanced Diagnostics', 'post-expirator'); ?></h3>
|
10 |
<table class="form-table">
|
11 |
<tr>
|
12 |
<th scope="row"><label for="postexpirator-log"><?php
|
13 |
+
esc_html_e('Debug Logging', 'post-expirator'); ?></label></th>
|
14 |
<td>
|
15 |
<?php
|
16 |
if (defined('POSTEXPIRATOR_DEBUG') && POSTEXPIRATOR_DEBUG) : ?>
|
17 |
<i class="dashicons dashicons-yes-alt pe-status pe-status-enabled"></i> <span><?php
|
18 |
+
esc_html_e('Enabled', 'post-expirator'); ?></span>
|
19 |
<?php
|
20 |
+
echo '<input type="submit" class="button" name="debugging-disable" id="debugging-disable" value=" ' . esc_html__(
|
21 |
'Disable Debugging',
|
22 |
'post-expirator'
|
23 |
) . '" />'; ?>
|
24 |
<?php
|
25 |
+
echo '<a href="' . esc_url(admin_url(
|
26 |
+
'admin.php?page=publishpress-future&tab=viewdebug'
|
27 |
+
)) . '">' . esc_html__('View Debug Logs', 'post-expirator') . '</a>'; ?>
|
28 |
<?php
|
29 |
else: ?>
|
30 |
<i class="dashicons dashicons-no-alt pe-status pe-status-disabled"></i> <span><?php
|
31 |
+
esc_html_e('Disabled', 'post-expirator'); ?></span>
|
32 |
<?php
|
33 |
+
echo '<input type="submit" class="button" name="debugging-enable" id="debugging-enable" value=" ' . esc_html__(
|
34 |
'Enable Debugging',
|
35 |
'post-expirator'
|
36 |
) . '" />'; ?>
|
41 |
</tr>
|
42 |
<tr>
|
43 |
<th scope="row"><?php
|
44 |
+
esc_html_e('Purge Debug Log', 'post-expirator'); ?></th>
|
45 |
<td>
|
46 |
<input type="submit" class="button" name="purge-debug" id="purge-debug" value="<?php
|
47 |
+
esc_html_e('Purge Debug Log', 'post-expirator'); ?>"/>
|
48 |
</td>
|
49 |
</tr>
|
50 |
<tr>
|
51 |
<th scope="row"><?php
|
52 |
+
esc_html_e('WP-Cron Status', 'post-expirator'); ?></th>
|
53 |
<td>
|
54 |
<?php
|
55 |
if (PostExpirator_CronFacade::is_cron_enabled()) : ?>
|
56 |
<i class="dashicons dashicons-yes pe-status pe-status-enabled"></i> <span><?php
|
57 |
+
esc_html_e('Enabled', 'post-expirator'); ?></span>
|
58 |
<?php
|
59 |
else: ?>
|
60 |
<i class="dashicons dashicons-no pe-status pe-status-disabled"></i> <span><?php
|
61 |
+
esc_html_e('Disabled', 'post-expirator'); ?></span>
|
62 |
<?php
|
63 |
endif;
|
64 |
?>
|
66 |
</tr/>
|
67 |
<tr>
|
68 |
<th scope="row"><label for="cron-schedule"><?php
|
69 |
+
esc_html_e('Current Cron Schedule', 'post-expirator'); ?></label></th>
|
70 |
<td>
|
71 |
<?php
|
72 |
$cron = PostExpirator_CronFacade::get_plugin_cron_events();
|
74 |
if (empty($cron)) {
|
75 |
?>
|
76 |
<p><?php
|
77 |
+
esc_html_e(
|
78 |
'No cron events found for the plugin.',
|
79 |
'post-expirator'
|
80 |
); ?></p>
|
82 |
} else {
|
83 |
?>
|
84 |
<p><?php
|
85 |
+
esc_html_e(
|
86 |
'The below table will show all currently scheduled cron events for the pluginwith the next run time.',
|
87 |
'post-expirator'
|
88 |
); ?></p>
|
91 |
<table class="striped">
|
92 |
<tr>
|
93 |
<th><?php
|
94 |
+
esc_html_e('Date', 'post-expirator'); ?></th>
|
95 |
<th><?php
|
96 |
+
esc_html_e('Event', 'post-expirator'); ?></th>
|
97 |
<th><?php
|
98 |
+
esc_html_e('Arguments / Schedule', 'post-expirator'); ?></th>
|
99 |
<th><?php
|
100 |
+
esc_html_e('Post', 'post-expirator'); ?></th>
|
101 |
</tr>
|
102 |
<?php
|
103 |
|
104 |
foreach ($cron as $time => $value) {
|
105 |
foreach ($value as $eventkey => $eventvalue) {
|
106 |
echo '<tr class="pe-event">';
|
107 |
+
echo '<td>' . esc_html(PostExpirator_Util::get_wp_date('r', $time)) . '</td>';
|
108 |
+
echo '<td>' . esc_html($eventkey) . '</td>';
|
109 |
$arrkey = array_keys($eventvalue);
|
110 |
$firstArgsUid = null;
|
111 |
echo '<td>';
|
114 |
$firstArgsUid = $eventguid;
|
115 |
}
|
116 |
if (empty($eventvalue[$eventguid]['args'])) {
|
117 |
+
echo '<div>' . esc_html__('No Arguments', 'post-expirator') . '</div>';
|
118 |
} else {
|
119 |
echo '<div>';
|
|
|
120 |
foreach ($eventvalue[$eventguid]['args'] as $key => $value) {
|
121 |
+
echo esc_html("$key => $value") . '<br>';
|
122 |
}
|
|
|
123 |
echo '</div>';
|
124 |
}
|
125 |
}
|
126 |
echo ' / ';
|
127 |
if (empty($eventvalue[$eventguid]['schedule'])) {
|
128 |
+
echo esc_html__('Single Event', 'post-expirator');
|
129 |
} else {
|
130 |
+
echo esc_html($eventvalue[$eventguid]['schedule']) . ' (' . esc_html($eventvalue[$eventguid]['interval']) . ')';
|
131 |
}
|
132 |
echo '</td>';
|
133 |
|
141 |
$post = get_post((int)$eventvalue[$firstArgsUid]['args'][0]);
|
142 |
|
143 |
if (! empty($post) && ! is_wp_error($post) && is_object($post)) {
|
144 |
+
echo esc_html("{$post->ID}: {$post->post_title} ({$post->post_status})");
|
145 |
}
|
146 |
}
|
147 |
echo '</td>';
|
views/menu-display.php
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
<?php
|
2 |
// phpcs:disable WordPress.NamingConventions.ValidVariableName.InterpolatedVariableNotSnakeCase
|
3 |
// phpcs:disable WordPress.PHP.StrictComparisons.LooseComparison
|
@@ -24,13 +28,13 @@ $expirationdateDefaultTimeFormat = get_option('expirationdateDefaultTimeFormat',
|
|
24 |
wp_nonce_field('postexpirator_menu_display', '_postExpiratorMenuDisplay_nonce'); ?>
|
25 |
|
26 |
<h3><?php
|
27 |
-
|
28 |
<p><?php
|
29 |
-
echo sprintf(
|
30 |
<ul class="pe-list">
|
31 |
<li><p><?php
|
32 |
echo sprintf(
|
33 |
-
|
34 |
'%1$s - valid options are %2$sfull%3$s (default), %4$sdate%5$s, %6$stime%7$s',
|
35 |
'post-expirator'
|
36 |
),
|
@@ -44,12 +48,12 @@ $expirationdateDefaultTimeFormat = get_option('expirationdateDefaultTimeFormat',
|
|
44 |
); ?></p></li>
|
45 |
<li><p><?php
|
46 |
echo sprintf(
|
47 |
-
|
48 |
'<code>dateformat</code>'
|
49 |
); ?></p></li>
|
50 |
<li><p><?php
|
51 |
echo sprintf(
|
52 |
-
|
53 |
'<code>timeformat</code>'
|
54 |
); ?></p></li>
|
55 |
</ul>
|
@@ -57,26 +61,28 @@ $expirationdateDefaultTimeFormat = get_option('expirationdateDefaultTimeFormat',
|
|
57 |
<hr/>
|
58 |
|
59 |
<h3><?php
|
60 |
-
|
61 |
<p class="description"><?php
|
62 |
-
|
63 |
'Enabling this below will display the expiration date automatically at the end of any post which is set to expire.',
|
64 |
'post-expirator'
|
65 |
); ?></p>
|
66 |
<table class="form-table">
|
67 |
<tr valign="top">
|
68 |
<th scope="row"><?php
|
69 |
-
|
70 |
<td>
|
71 |
<input type="radio" name="expired-display-footer" id="expired-display-footer-true" value="1" <?php
|
|
|
72 |
echo $expireddisplayfooterenabled; ?>/> <label for="expired-display-footer-true"><?php
|
73 |
-
|
74 |
|
75 |
<input type="radio" name="expired-display-footer" id="expired-display-footer-false" value="0" <?php
|
|
|
76 |
echo $expireddisplayfooterdisabled; ?>/> <label for="expired-display-footer-false"><?php
|
77 |
-
|
78 |
<p class="description"><?php
|
79 |
-
|
80 |
'This will enable or disable displaying the post expiration date in the post footer.',
|
81 |
'post-expirator'
|
82 |
); ?></p>
|
@@ -84,46 +90,46 @@ $expirationdateDefaultTimeFormat = get_option('expirationdateDefaultTimeFormat',
|
|
84 |
</tr>
|
85 |
<tr valign="top">
|
86 |
<th scope="row"><label for="expired-footer-contents"><?php
|
87 |
-
|
88 |
<td>
|
89 |
<textarea id="expired-footer-contents" name="expired-footer-contents" rows="3" cols="50"><?php
|
90 |
-
echo $expirationdateFooterContents; ?></textarea>
|
91 |
<p class="description"><?php
|
92 |
-
|
93 |
'Enter the text you would like to appear at the bottom of every post that will expire. The following placeholders will be replaced with the post expiration date in the following format:',
|
94 |
'post-expirator'
|
95 |
); ?></p>
|
96 |
<ul class="pe-list">
|
97 |
<li><p class="description">EXPIRATIONFULL -> <?php
|
98 |
-
echo date_i18n(
|
99 |
"$expirationdateDefaultDateFormat $expirationdateDefaultTimeFormat"
|
100 |
-
); ?></p></li>
|
101 |
<li><p class="description">EXPIRATIONDATE -> <?php
|
102 |
-
echo date_i18n("$expirationdateDefaultDateFormat"); ?></p></li>
|
103 |
<li><p class="description">EXPIRATIONTIME -> <?php
|
104 |
-
echo date_i18n("$expirationdateDefaultTimeFormat"); ?></p></li>
|
105 |
</ul>
|
106 |
</td>
|
107 |
</tr>
|
108 |
<tr valign="top">
|
109 |
<th scope="row"><label for="expired-footer-style"><?php
|
110 |
-
|
111 |
<td>
|
112 |
<input type="text" name="expired-footer-style" id="expired-footer-style" value="<?php
|
113 |
-
echo $expirationdateFooterStyle; ?>" size="25"/>
|
114 |
(<span style="<?php
|
115 |
-
echo $expirationdateFooterStyle; ?>"><?php
|
116 |
-
|
117 |
-
echo date_i18n("$expirationdateDefaultDateFormat $expirationdateDefaultTimeFormat"); ?></span>)
|
118 |
<p class="description"><?php
|
119 |
-
|
120 |
</td>
|
121 |
</tr>
|
122 |
</table>
|
123 |
|
124 |
<p class="submit">
|
125 |
<input type="submit" name="expirationdateSaveDisplay" class="button-primary" value="<?php
|
126 |
-
|
127 |
</p>
|
128 |
</form>
|
129 |
|
1 |
+
<?php
|
2 |
+
defined('ABSPATH') or die('Direct access not allowed.');
|
3 |
+
?>
|
4 |
+
|
5 |
<?php
|
6 |
// phpcs:disable WordPress.NamingConventions.ValidVariableName.InterpolatedVariableNotSnakeCase
|
7 |
// phpcs:disable WordPress.PHP.StrictComparisons.LooseComparison
|
28 |
wp_nonce_field('postexpirator_menu_display', '_postExpiratorMenuDisplay_nonce'); ?>
|
29 |
|
30 |
<h3><?php
|
31 |
+
esc_html_e('Shortcode', 'post-expirator'); ?></h3>
|
32 |
<p><?php
|
33 |
+
echo sprintf(esc_html__('Valid %s attributes:', 'post-expirator'), '<code>[postexpirator]</code>'); ?></p>
|
34 |
<ul class="pe-list">
|
35 |
<li><p><?php
|
36 |
echo sprintf(
|
37 |
+
esc_html__(
|
38 |
'%1$s - valid options are %2$sfull%3$s (default), %4$sdate%5$s, %6$stime%7$s',
|
39 |
'post-expirator'
|
40 |
),
|
48 |
); ?></p></li>
|
49 |
<li><p><?php
|
50 |
echo sprintf(
|
51 |
+
esc_html__('%s - format set here will override the value set on the settings page', 'post-expirator'),
|
52 |
'<code>dateformat</code>'
|
53 |
); ?></p></li>
|
54 |
<li><p><?php
|
55 |
echo sprintf(
|
56 |
+
esc_html__('%s - format set here will override the value set on the settings page', 'post-expirator'),
|
57 |
'<code>timeformat</code>'
|
58 |
); ?></p></li>
|
59 |
</ul>
|
61 |
<hr/>
|
62 |
|
63 |
<h3><?php
|
64 |
+
esc_html_e('Post Footer Display', 'post-expirator'); ?></h3>
|
65 |
<p class="description"><?php
|
66 |
+
esc_html_e(
|
67 |
'Enabling this below will display the expiration date automatically at the end of any post which is set to expire.',
|
68 |
'post-expirator'
|
69 |
); ?></p>
|
70 |
<table class="form-table">
|
71 |
<tr valign="top">
|
72 |
<th scope="row"><?php
|
73 |
+
esc_html_e('Show in post footer?', 'post-expirator'); ?></th>
|
74 |
<td>
|
75 |
<input type="radio" name="expired-display-footer" id="expired-display-footer-true" value="1" <?php
|
76 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
77 |
echo $expireddisplayfooterenabled; ?>/> <label for="expired-display-footer-true"><?php
|
78 |
+
esc_html_e('Enabled', 'post-expirator'); ?></label>
|
79 |
|
80 |
<input type="radio" name="expired-display-footer" id="expired-display-footer-false" value="0" <?php
|
81 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
82 |
echo $expireddisplayfooterdisabled; ?>/> <label for="expired-display-footer-false"><?php
|
83 |
+
esc_html_e('Disabled', 'post-expirator'); ?></label>
|
84 |
<p class="description"><?php
|
85 |
+
esc_html_e(
|
86 |
'This will enable or disable displaying the post expiration date in the post footer.',
|
87 |
'post-expirator'
|
88 |
); ?></p>
|
90 |
</tr>
|
91 |
<tr valign="top">
|
92 |
<th scope="row"><label for="expired-footer-contents"><?php
|
93 |
+
esc_html_e('Footer Contents', 'post-expirator'); ?></label></th>
|
94 |
<td>
|
95 |
<textarea id="expired-footer-contents" name="expired-footer-contents" rows="3" cols="50"><?php
|
96 |
+
echo esc_textarea($expirationdateFooterContents); ?></textarea>
|
97 |
<p class="description"><?php
|
98 |
+
esc_html_e(
|
99 |
'Enter the text you would like to appear at the bottom of every post that will expire. The following placeholders will be replaced with the post expiration date in the following format:',
|
100 |
'post-expirator'
|
101 |
); ?></p>
|
102 |
<ul class="pe-list">
|
103 |
<li><p class="description">EXPIRATIONFULL -> <?php
|
104 |
+
echo esc_html(date_i18n(
|
105 |
"$expirationdateDefaultDateFormat $expirationdateDefaultTimeFormat"
|
106 |
+
)); ?></p></li>
|
107 |
<li><p class="description">EXPIRATIONDATE -> <?php
|
108 |
+
echo esc_html(date_i18n("$expirationdateDefaultDateFormat")); ?></p></li>
|
109 |
<li><p class="description">EXPIRATIONTIME -> <?php
|
110 |
+
echo esc_html(date_i18n("$expirationdateDefaultTimeFormat")); ?></p></li>
|
111 |
</ul>
|
112 |
</td>
|
113 |
</tr>
|
114 |
<tr valign="top">
|
115 |
<th scope="row"><label for="expired-footer-style"><?php
|
116 |
+
esc_html_e('Footer Style', 'post-expirator'); ?></label></th>
|
117 |
<td>
|
118 |
<input type="text" name="expired-footer-style" id="expired-footer-style" value="<?php
|
119 |
+
echo esc_attr($expirationdateFooterStyle); ?>" size="25"/>
|
120 |
(<span style="<?php
|
121 |
+
echo esc_attr($expirationdateFooterStyle); ?>"><?php
|
122 |
+
esc_html_e('This post will expire on', 'post-expirator'); ?><?php
|
123 |
+
echo esc_html(date_i18n("$expirationdateDefaultDateFormat $expirationdateDefaultTimeFormat")); ?></span>)
|
124 |
<p class="description"><?php
|
125 |
+
esc_html_e('The inline css which will be used to style the footer text.', 'post-expirator'); ?></p>
|
126 |
</td>
|
127 |
</tr>
|
128 |
</table>
|
129 |
|
130 |
<p class="submit">
|
131 |
<input type="submit" name="expirationdateSaveDisplay" class="button-primary" value="<?php
|
132 |
+
esc_html_e('Save Changes', 'post-expirator'); ?>"/>
|
133 |
</p>
|
134 |
</form>
|
135 |
|
views/menu-editor.php
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
<form method="post" id="expirationdate_save_options">
|
2 |
<?php
|
3 |
wp_nonce_field('postexpirator_menu_editor', '_postExpiratorMenuEditor_nonce'); ?>
|
1 |
+
<?php
|
2 |
+
defined('ABSPATH') or die('Direct access not allowed.');
|
3 |
+
?>
|
4 |
+
|
5 |
<form method="post" id="expirationdate_save_options">
|
6 |
<?php
|
7 |
wp_nonce_field('postexpirator_menu_editor', '_postExpiratorMenuEditor_nonce'); ?>
|
views/menu-general.php
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
<?php
|
|
|
2 |
|
3 |
// Get Option
|
4 |
$expirationdateDefaultDateFormat = get_option('expirationdateDefaultDateFormat', POSTEXPIRATOR_DATEFORMAT);
|
@@ -46,28 +47,22 @@ if ($expiredemailnotificationadmins == 0) {
|
|
46 |
$user_roles = wp_roles()->get_names();
|
47 |
$plugin_facade = PostExpirator_Facade::getInstance();
|
48 |
?>
|
49 |
-
<p><?php
|
50 |
-
_e(
|
51 |
-
'The PublishPress Future plugin sets a custom meta value, and then optionally allows you to select if you want the post changed to a draft status or deleted when it expires.',
|
52 |
-
'post-expirator'
|
53 |
-
); ?></p>
|
54 |
-
|
55 |
<form method="post" id="expirationdate_save_options">
|
56 |
<?php
|
57 |
wp_nonce_field('postexpirator_menu_general', '_postExpiratorMenuGeneral_nonce'); ?>
|
58 |
<h3><?php
|
59 |
-
|
60 |
<table class="form-table">
|
61 |
<tr valign="top">
|
62 |
<th scope="row"><label for="expired-default-date-format"><?php
|
63 |
-
|
64 |
<td>
|
65 |
<input type="text" name="expired-default-date-format" id="expired-default-date-format" value="<?php
|
66 |
-
echo $expirationdateDefaultDateFormat; ?>" size="25"/> <span class="description">(<?php
|
67 |
-
echo PostExpirator_Util::get_wp_date($expirationdateDefaultDateFormat, time()); ?>)</span>
|
68 |
<p class="description"><?php
|
69 |
echo sprintf(
|
70 |
-
|
71 |
'The default format to use when displaying the expiration date within a post using the shortcode or within the footer. For information on valid formatting options, see: %s.',
|
72 |
'post-expirator'
|
73 |
),
|
@@ -77,14 +72,14 @@ $plugin_facade = PostExpirator_Facade::getInstance();
|
|
77 |
</tr>
|
78 |
<tr valign="top">
|
79 |
<th scope="row"><label for="expired-default-time-format"><?php
|
80 |
-
|
81 |
<td>
|
82 |
<input type="text" name="expired-default-time-format" id="expired-default-time-format" value="<?php
|
83 |
-
echo $expirationdateDefaultTimeFormat; ?>" size="25"/> <span class="description">(<?php
|
84 |
-
echo PostExpirator_Util::get_wp_date($expirationdateDefaultTimeFormat, time()); ?>)</span>
|
85 |
<p class="description"><?php
|
86 |
echo sprintf(
|
87 |
-
|
88 |
'The default format to use when displaying the expiration time within a post using the shortcode or within the footer. For information on valid formatting options, see: %s.',
|
89 |
'post-expirator'
|
90 |
),
|
@@ -94,38 +89,38 @@ $plugin_facade = PostExpirator_Facade::getInstance();
|
|
94 |
</tr>
|
95 |
<tr valign="top">
|
96 |
<th scope="row"><label for="expired-default-expiration-date"><?php
|
97 |
-
|
98 |
<td>
|
99 |
<select name="expired-default-expiration-date" id="expired-default-expiration-date"
|
100 |
class="pe-custom-date-toggle">
|
101 |
<option value="null" <?php
|
102 |
echo ($expirationdateDefaultDate == 'null') ? ' selected="selected"' : ''; ?>><?php
|
103 |
-
|
104 |
<option value="custom" <?php
|
105 |
echo ($expirationdateDefaultDate == 'custom') ? ' selected="selected"' : ''; ?>><?php
|
106 |
-
|
107 |
<option value="publish" <?php
|
108 |
echo ($expirationdateDefaultDate == 'publish') ? ' selected="selected"' : ''; ?>><?php
|
109 |
-
|
110 |
</select>
|
111 |
<p class="description"><?php
|
112 |
-
|
113 |
'Set the default expiration date to be used when creating new posts and pages. Defaults to none.',
|
114 |
'post-expirator'
|
115 |
); ?></p>
|
116 |
<?php
|
117 |
$show = ($expirationdateDefaultDate == 'custom') ? 'block' : 'none'; ?>
|
118 |
<div id="expired-custom-container" style="display: <?php
|
119 |
-
echo $show; ?>;" class="pe-custom-date-container">
|
120 |
<br/>
|
121 |
<label for="expired-custom-expiration-date"><?php
|
122 |
-
|
123 |
<input type="text" value="<?php
|
124 |
-
echo $expirationdateDefaultDateCustom; ?>" name="expired-custom-expiration-date"
|
125 |
id="expired-custom-expiration-date"/>
|
126 |
<p class="description"><?php
|
127 |
echo sprintf(
|
128 |
-
|
129 |
'Set the custom value to use for the default expiration date. For information on formatting, see %1$s. For example, you could enter %2$s+1 month%3$s or %4$s+1 week 2 days 4 hours 2 seconds%5$s or %6$snext Thursday%7$s.',
|
130 |
'post-expirator'
|
131 |
),
|
@@ -142,7 +137,7 @@ $plugin_facade = PostExpirator_Facade::getInstance();
|
|
142 |
</tr>
|
143 |
<tr valign="top">
|
144 |
<th scope="row"><?php
|
145 |
-
|
146 |
<td>
|
147 |
<?php
|
148 |
echo '<div class="wp-tab-panel" id="post-expirator-cat-list">';
|
@@ -161,36 +156,38 @@ $plugin_facade = PostExpirator_Facade::getInstance();
|
|
161 |
echo '</div>';
|
162 |
?>
|
163 |
<p class="description"><?php
|
164 |
-
|
165 |
</td>
|
166 |
</tr>
|
167 |
</table>
|
168 |
|
169 |
<h3><?php
|
170 |
-
|
171 |
<p class="description"><?php
|
172 |
-
|
173 |
'Whenever a post expires, an email can be sent to alert users of the expiration.',
|
174 |
'post-expirator'
|
175 |
); ?></p>
|
176 |
<table class="form-table">
|
177 |
<tr valign="top">
|
178 |
<th scope="row"><?php
|
179 |
-
|
180 |
<td>
|
181 |
<input type="radio" name="expired-email-notification" id="expired-email-notification-true"
|
182 |
value="1" <?php
|
|
|
183 |
echo $expiredemailnotificationenabled; ?>/> <label
|
184 |
for="expired-email-notification-true"><?php
|
185 |
-
|
186 |
|
187 |
<input type="radio" name="expired-email-notification" id="expired-email-notification-false"
|
188 |
value="0" <?php
|
|
|
189 |
echo $expiredemailnotificationdisabled; ?>/> <label
|
190 |
for="expired-email-notification-false"><?php
|
191 |
-
|
192 |
<p class="description"><?php
|
193 |
-
|
194 |
'This will enable or disable the send of email notification on post expiration.',
|
195 |
'post-expirator'
|
196 |
); ?></p>
|
@@ -198,23 +195,25 @@ $plugin_facade = PostExpirator_Facade::getInstance();
|
|
198 |
</tr>
|
199 |
<tr valign="top">
|
200 |
<th scope="row"><?php
|
201 |
-
|
202 |
<td>
|
203 |
<input type="radio" name="expired-email-notification-admins"
|
204 |
id="expired-email-notification-admins-true"
|
205 |
value="1" <?php
|
|
|
206 |
echo $expiredemailnotificationadminsenabled; ?>/> <label
|
207 |
for="expired-email-notification-admins-true"><?php
|
208 |
-
|
209 |
|
210 |
<input type="radio" name="expired-email-notification-admins"
|
211 |
id="expired-email-notification-admins-false"
|
212 |
value="0" <?php
|
|
|
213 |
echo $expiredemailnotificationadminsdisabled; ?>/> <label
|
214 |
for="expired-email-notification-admins-false"><?php
|
215 |
-
|
216 |
<p class="description"><?php
|
217 |
-
|
218 |
'This will include all users with the role of "Administrator" in the post expiration email.',
|
219 |
'post-expirator'
|
220 |
); ?></p>
|
@@ -223,14 +222,14 @@ $plugin_facade = PostExpirator_Facade::getInstance();
|
|
223 |
<tr valign="top">
|
224 |
<th scope="row"><label
|
225 |
for="expired-email-notification-list"><?php
|
226 |
-
|
227 |
</th>
|
228 |
<td>
|
229 |
<input class="large-text" type="text" name="expired-email-notification-list"
|
230 |
id="expired-email-notification-list" value="<?php
|
231 |
-
echo $expiredemailnotificationlist; ?>"/>
|
232 |
<p class="description"><?php
|
233 |
-
|
234 |
'Enter a comma separate list of emails that you would like to be notified when the post expires. This will be applied to ALL post types. You can set post type specific emails on the Defaults tab.',
|
235 |
'post-expirator'
|
236 |
); ?></p>
|
@@ -241,7 +240,7 @@ $plugin_facade = PostExpirator_Facade::getInstance();
|
|
241 |
<p class="submit">
|
242 |
<input type="submit" name="expirationdateSave" class="button-primary"
|
243 |
value="<?php
|
244 |
-
|
245 |
</p>
|
246 |
</form>
|
247 |
|
1 |
<?php
|
2 |
+
defined('ABSPATH') or die('Direct access not allowed.');
|
3 |
|
4 |
// Get Option
|
5 |
$expirationdateDefaultDateFormat = get_option('expirationdateDefaultDateFormat', POSTEXPIRATOR_DATEFORMAT);
|
47 |
$user_roles = wp_roles()->get_names();
|
48 |
$plugin_facade = PostExpirator_Facade::getInstance();
|
49 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
<form method="post" id="expirationdate_save_options">
|
51 |
<?php
|
52 |
wp_nonce_field('postexpirator_menu_general', '_postExpiratorMenuGeneral_nonce'); ?>
|
53 |
<h3><?php
|
54 |
+
esc_html_e('Defaults', 'post-expirator'); ?></h3>
|
55 |
<table class="form-table">
|
56 |
<tr valign="top">
|
57 |
<th scope="row"><label for="expired-default-date-format"><?php
|
58 |
+
esc_html_e('Date Format', 'post-expirator'); ?></label></th>
|
59 |
<td>
|
60 |
<input type="text" name="expired-default-date-format" id="expired-default-date-format" value="<?php
|
61 |
+
echo esc_attr($expirationdateDefaultDateFormat); ?>" size="25"/> <span class="description">(<?php
|
62 |
+
echo esc_html(PostExpirator_Util::get_wp_date($expirationdateDefaultDateFormat, time())); ?>)</span>
|
63 |
<p class="description"><?php
|
64 |
echo sprintf(
|
65 |
+
esc_html__(
|
66 |
'The default format to use when displaying the expiration date within a post using the shortcode or within the footer. For information on valid formatting options, see: %s.',
|
67 |
'post-expirator'
|
68 |
),
|
72 |
</tr>
|
73 |
<tr valign="top">
|
74 |
<th scope="row"><label for="expired-default-time-format"><?php
|
75 |
+
esc_html_e('Time Format', 'post-expirator'); ?></label></th>
|
76 |
<td>
|
77 |
<input type="text" name="expired-default-time-format" id="expired-default-time-format" value="<?php
|
78 |
+
echo esc_attr($expirationdateDefaultTimeFormat); ?>" size="25"/> <span class="description">(<?php
|
79 |
+
echo esc_html(PostExpirator_Util::get_wp_date($expirationdateDefaultTimeFormat, time())); ?>)</span>
|
80 |
<p class="description"><?php
|
81 |
echo sprintf(
|
82 |
+
esc_html__(
|
83 |
'The default format to use when displaying the expiration time within a post using the shortcode or within the footer. For information on valid formatting options, see: %s.',
|
84 |
'post-expirator'
|
85 |
),
|
89 |
</tr>
|
90 |
<tr valign="top">
|
91 |
<th scope="row"><label for="expired-default-expiration-date"><?php
|
92 |
+
esc_html_e('Default Date/Time Duration', 'post-expirator'); ?></label></th>
|
93 |
<td>
|
94 |
<select name="expired-default-expiration-date" id="expired-default-expiration-date"
|
95 |
class="pe-custom-date-toggle">
|
96 |
<option value="null" <?php
|
97 |
echo ($expirationdateDefaultDate == 'null') ? ' selected="selected"' : ''; ?>><?php
|
98 |
+
esc_html_e('None', 'post-expirator'); ?></option>
|
99 |
<option value="custom" <?php
|
100 |
echo ($expirationdateDefaultDate == 'custom') ? ' selected="selected"' : ''; ?>><?php
|
101 |
+
esc_html_e('Custom', 'post-expirator'); ?></option>
|
102 |
<option value="publish" <?php
|
103 |
echo ($expirationdateDefaultDate == 'publish') ? ' selected="selected"' : ''; ?>><?php
|
104 |
+
esc_html_e('Post/Page Publish Time', 'post-expirator'); ?></option>
|
105 |
</select>
|
106 |
<p class="description"><?php
|
107 |
+
esc_html_e(
|
108 |
'Set the default expiration date to be used when creating new posts and pages. Defaults to none.',
|
109 |
'post-expirator'
|
110 |
); ?></p>
|
111 |
<?php
|
112 |
$show = ($expirationdateDefaultDate == 'custom') ? 'block' : 'none'; ?>
|
113 |
<div id="expired-custom-container" style="display: <?php
|
114 |
+
echo esc_attr($show); ?>;" class="pe-custom-date-container">
|
115 |
<br/>
|
116 |
<label for="expired-custom-expiration-date"><?php
|
117 |
+
esc_html_e('Custom', 'post-expirator'); ?>:</label>
|
118 |
<input type="text" value="<?php
|
119 |
+
echo esc_attr($expirationdateDefaultDateCustom); ?>" name="expired-custom-expiration-date"
|
120 |
id="expired-custom-expiration-date"/>
|
121 |
<p class="description"><?php
|
122 |
echo sprintf(
|
123 |
+
esc_html__(
|
124 |
'Set the custom value to use for the default expiration date. For information on formatting, see %1$s. For example, you could enter %2$s+1 month%3$s or %4$s+1 week 2 days 4 hours 2 seconds%5$s or %6$snext Thursday%7$s.',
|
125 |
'post-expirator'
|
126 |
),
|
137 |
</tr>
|
138 |
<tr valign="top">
|
139 |
<th scope="row"><?php
|
140 |
+
esc_html_e('Default Expiration Category', 'post-expirator'); ?></th>
|
141 |
<td>
|
142 |
<?php
|
143 |
echo '<div class="wp-tab-panel" id="post-expirator-cat-list">';
|
156 |
echo '</div>';
|
157 |
?>
|
158 |
<p class="description"><?php
|
159 |
+
esc_html_e('Sets the default expiration category for the post.', 'post-expirator'); ?></p>
|
160 |
</td>
|
161 |
</tr>
|
162 |
</table>
|
163 |
|
164 |
<h3><?php
|
165 |
+
esc_html_e('Expiration Email Notification', 'post-expirator'); ?></h3>
|
166 |
<p class="description"><?php
|
167 |
+
esc_html_e(
|
168 |
'Whenever a post expires, an email can be sent to alert users of the expiration.',
|
169 |
'post-expirator'
|
170 |
); ?></p>
|
171 |
<table class="form-table">
|
172 |
<tr valign="top">
|
173 |
<th scope="row"><?php
|
174 |
+
esc_html_e('Enable Email Notification?', 'post-expirator'); ?></th>
|
175 |
<td>
|
176 |
<input type="radio" name="expired-email-notification" id="expired-email-notification-true"
|
177 |
value="1" <?php
|
178 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
179 |
echo $expiredemailnotificationenabled; ?>/> <label
|
180 |
for="expired-email-notification-true"><?php
|
181 |
+
esc_html_e('Enabled', 'post-expirator'); ?></label>
|
182 |
|
183 |
<input type="radio" name="expired-email-notification" id="expired-email-notification-false"
|
184 |
value="0" <?php
|
185 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
186 |
echo $expiredemailnotificationdisabled; ?>/> <label
|
187 |
for="expired-email-notification-false"><?php
|
188 |
+
esc_html_e('Disabled', 'post-expirator'); ?></label>
|
189 |
<p class="description"><?php
|
190 |
+
esc_html_e(
|
191 |
'This will enable or disable the send of email notification on post expiration.',
|
192 |
'post-expirator'
|
193 |
); ?></p>
|
195 |
</tr>
|
196 |
<tr valign="top">
|
197 |
<th scope="row"><?php
|
198 |
+
esc_html_e('Include Blog Administrators?', 'post-expirator'); ?></th>
|
199 |
<td>
|
200 |
<input type="radio" name="expired-email-notification-admins"
|
201 |
id="expired-email-notification-admins-true"
|
202 |
value="1" <?php
|
203 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
204 |
echo $expiredemailnotificationadminsenabled; ?>/> <label
|
205 |
for="expired-email-notification-admins-true"><?php
|
206 |
+
esc_html_e('Enabled', 'post-expirator'); ?></label>
|
207 |
|
208 |
<input type="radio" name="expired-email-notification-admins"
|
209 |
id="expired-email-notification-admins-false"
|
210 |
value="0" <?php
|
211 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
212 |
echo $expiredemailnotificationadminsdisabled; ?>/> <label
|
213 |
for="expired-email-notification-admins-false"><?php
|
214 |
+
esc_html_e('Disabled', 'post-expirator'); ?></label>
|
215 |
<p class="description"><?php
|
216 |
+
esc_html_e(
|
217 |
'This will include all users with the role of "Administrator" in the post expiration email.',
|
218 |
'post-expirator'
|
219 |
); ?></p>
|
222 |
<tr valign="top">
|
223 |
<th scope="row"><label
|
224 |
for="expired-email-notification-list"><?php
|
225 |
+
esc_html_e('Who to notify', 'post-expirator'); ?></label>
|
226 |
</th>
|
227 |
<td>
|
228 |
<input class="large-text" type="text" name="expired-email-notification-list"
|
229 |
id="expired-email-notification-list" value="<?php
|
230 |
+
echo esc_attr($expiredemailnotificationlist); ?>"/>
|
231 |
<p class="description"><?php
|
232 |
+
esc_html_e(
|
233 |
'Enter a comma separate list of emails that you would like to be notified when the post expires. This will be applied to ALL post types. You can set post type specific emails on the Defaults tab.',
|
234 |
'post-expirator'
|
235 |
); ?></p>
|
240 |
<p class="submit">
|
241 |
<input type="submit" name="expirationdateSave" class="button-primary"
|
242 |
value="<?php
|
243 |
+
esc_html_e('Save Changes', 'post-expirator'); ?>"/>
|
244 |
</p>
|
245 |
</form>
|
246 |
|
views/quick-edit.php
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
<div style="clear:both"></div>
|
2 |
<fieldset class="inline-edit-col-left post-expirator-quickedit">
|
3 |
<div class="inline-edit-col">
|
@@ -5,16 +9,16 @@
|
|
5 |
<label>
|
6 |
<input name="enable-expirationdate" type="checkbox"/>
|
7 |
<span class=""><?php
|
8 |
-
|
9 |
</label>
|
10 |
<fieldset class="inline-edit-date">
|
11 |
<div class="pe-qe-fields" style="display: none">
|
12 |
<div>
|
13 |
<legend><span class="title"><?php
|
14 |
-
|
15 |
<label>
|
16 |
<span class="screen-reader-text"><?php
|
17 |
-
|
18 |
<select name="expirationdate_month">
|
19 |
<?php
|
20 |
for ($x = 1; $x <= 12; $x++) {
|
@@ -23,12 +27,12 @@
|
|
23 |
$monthStr = date_i18n('M', $now);
|
24 |
?>
|
25 |
<option value="<?php
|
26 |
-
echo $monthNumeric; ?>"
|
27 |
data-text="<?php
|
28 |
-
echo $monthStr; ?>"><?php
|
29 |
-
echo $monthNumeric; ?>
|
30 |
-<?php
|
31 |
-
echo $monthStr; ?></option>
|
32 |
<?php
|
33 |
} ?>
|
34 |
|
@@ -36,40 +40,40 @@
|
|
36 |
</label>
|
37 |
<label>
|
38 |
<span class="screen-reader-text"><?php
|
39 |
-
|
40 |
<input name="expirationdate_day" value="" size="2" maxlength="2" autocomplete="off"
|
41 |
type="text" placeholder="<?php
|
42 |
-
echo date('d'); ?>">
|
43 |
</label>,
|
44 |
<label>
|
45 |
<span class="screen-reader-text"><?php
|
46 |
-
|
47 |
<input name="expirationdate_year" value="" size="4" maxlength="4" autocomplete="off"
|
48 |
type="text" placeholder="<?php
|
49 |
-
echo date('Y'); ?>">
|
50 |
</label> @
|
51 |
<label>
|
52 |
<span class="screen-reader-text"><?php
|
53 |
-
|
54 |
<input name="expirationdate_hour" value="" size="2" maxlength="2" autocomplete="off"
|
55 |
type="text" placeholder="00">
|
56 |
</label> :
|
57 |
<label>
|
58 |
<span class="screen-reader-text"><?php
|
59 |
-
|
60 |
<input name="expirationdate_minute" value="" size="2" maxlength="2" autocomplete="off"
|
61 |
type="text" placeholder="00">
|
62 |
</label>
|
63 |
|
64 |
<?php
|
65 |
-
echo PostExpirator_Util::wp_timezone_string(); ?>
|
66 |
</div>
|
67 |
<div>
|
68 |
<legend>
|
69 |
<span class="title"><?php
|
70 |
-
|
71 |
<span class="screen-reader-text"><?php
|
72 |
-
|
73 |
</legend>
|
74 |
<?php
|
75 |
$defaults = get_option('expirationdateDefaults' . ucfirst($post_type));
|
@@ -83,9 +87,9 @@
|
|
83 |
<div class="pe-category-list">
|
84 |
<legend>
|
85 |
<span class="title"><?php
|
86 |
-
echo $tax_label; ?></span>
|
87 |
<span class="screen-reader-text"><?php
|
88 |
-
|
89 |
</legend>
|
90 |
<ul id="categorychecklist"
|
91 |
class="list:category categorychecklist cat-checklist category-checklist">
|
@@ -105,6 +109,7 @@
|
|
105 |
</div>
|
106 |
<input name="expirationdate_quickedit" value="true" type="hidden"/>
|
107 |
<input name="postexpirator_view" value="quick-edit" type="hidden"/>
|
|
|
108 |
</fieldset>
|
109 |
</div>
|
110 |
</div>
|
1 |
+
<?php
|
2 |
+
defined('ABSPATH') or die('Direct access not allowed.');
|
3 |
+
?>
|
4 |
+
|
5 |
<div style="clear:both"></div>
|
6 |
<fieldset class="inline-edit-col-left post-expirator-quickedit">
|
7 |
<div class="inline-edit-col">
|
9 |
<label>
|
10 |
<input name="enable-expirationdate" type="checkbox"/>
|
11 |
<span class=""><?php
|
12 |
+
esc_html_e('Enable Post Expiration', 'post-expirator'); ?></span>
|
13 |
</label>
|
14 |
<fieldset class="inline-edit-date">
|
15 |
<div class="pe-qe-fields" style="display: none">
|
16 |
<div>
|
17 |
<legend><span class="title"><?php
|
18 |
+
esc_html_e('Date', 'post-expirator'); ?></span></legend>
|
19 |
<label>
|
20 |
<span class="screen-reader-text"><?php
|
21 |
+
esc_html_e('Month', 'post-expirator'); ?></span>
|
22 |
<select name="expirationdate_month">
|
23 |
<?php
|
24 |
for ($x = 1; $x <= 12; $x++) {
|
27 |
$monthStr = date_i18n('M', $now);
|
28 |
?>
|
29 |
<option value="<?php
|
30 |
+
echo esc_attr($monthNumeric); ?>"
|
31 |
data-text="<?php
|
32 |
+
echo esc_attr($monthStr); ?>"><?php
|
33 |
+
echo esc_html($monthNumeric); ?>
|
34 |
-<?php
|
35 |
+
echo esc_html($monthStr); ?></option>
|
36 |
<?php
|
37 |
} ?>
|
38 |
|
40 |
</label>
|
41 |
<label>
|
42 |
<span class="screen-reader-text"><?php
|
43 |
+
esc_html_e('Day', 'post-expirator'); ?></span>
|
44 |
<input name="expirationdate_day" value="" size="2" maxlength="2" autocomplete="off"
|
45 |
type="text" placeholder="<?php
|
46 |
+
echo esc_attr(date('d')); ?>">
|
47 |
</label>,
|
48 |
<label>
|
49 |
<span class="screen-reader-text"><?php
|
50 |
+
esc_html_e('Year', 'post-expirator'); ?></span>
|
51 |
<input name="expirationdate_year" value="" size="4" maxlength="4" autocomplete="off"
|
52 |
type="text" placeholder="<?php
|
53 |
+
echo esc_attr(date('Y')); ?>">
|
54 |
</label> @
|
55 |
<label>
|
56 |
<span class="screen-reader-text"><?php
|
57 |
+
esc_html_e('Hour', 'post-expirator'); ?></span>
|
58 |
<input name="expirationdate_hour" value="" size="2" maxlength="2" autocomplete="off"
|
59 |
type="text" placeholder="00">
|
60 |
</label> :
|
61 |
<label>
|
62 |
<span class="screen-reader-text"><?php
|
63 |
+
esc_html_e('Minute', 'post-expirator'); ?></span>
|
64 |
<input name="expirationdate_minute" value="" size="2" maxlength="2" autocomplete="off"
|
65 |
type="text" placeholder="00">
|
66 |
</label>
|
67 |
|
68 |
<?php
|
69 |
+
echo esc_html(PostExpirator_Util::wp_timezone_string()); ?>
|
70 |
</div>
|
71 |
<div>
|
72 |
<legend>
|
73 |
<span class="title"><?php
|
74 |
+
esc_html_e('Type', 'post-expirator'); ?></span>
|
75 |
<span class="screen-reader-text"><?php
|
76 |
+
esc_html_e('How to expire', 'post-expirator'); ?></span>
|
77 |
</legend>
|
78 |
<?php
|
79 |
$defaults = get_option('expirationdateDefaults' . ucfirst($post_type));
|
87 |
<div class="pe-category-list">
|
88 |
<legend>
|
89 |
<span class="title"><?php
|
90 |
+
echo esc_html($tax_label); ?></span>
|
91 |
<span class="screen-reader-text"><?php
|
92 |
+
esc_html_e('Expiration Categories', 'post-expirator'); ?></span>
|
93 |
</legend>
|
94 |
<ul id="categorychecklist"
|
95 |
class="list:category categorychecklist cat-checklist category-checklist">
|
109 |
</div>
|
110 |
<input name="expirationdate_quickedit" value="true" type="hidden"/>
|
111 |
<input name="postexpirator_view" value="quick-edit" type="hidden"/>
|
112 |
+
<?php wp_nonce_field('__postexpirator', '_postexpiratornonce'); ?>
|
113 |
</fieldset>
|
114 |
</div>
|
115 |
</div>
|
views/tabs.php
CHANGED
@@ -1,50 +1,55 @@
|
|
1 |
<?php
|
2 |
|
|
|
|
|
3 |
$current_tab = empty($_GET['tab']) ? 'general' : sanitize_title(wp_unslash($_GET['tab']));
|
4 |
?>
|
5 |
|
6 |
<div class="wrap">
|
7 |
<h2><?php
|
8 |
-
|
9 |
<div id="pe-settings-tabs">
|
10 |
<nav class="nav-tab-wrapper postexpirator-nav-tab-wrapper">
|
11 |
<a href="<?php
|
12 |
-
echo admin_url('admin.php?page=publishpress-future&tab=general'); ?>"
|
13 |
class="pe-tab nav-tab <?php
|
14 |
-
echo($current_tab === 'general' ? 'nav-tab-active' : ''); ?>"><?php
|
15 |
-
|
16 |
<a href="<?php
|
17 |
-
echo admin_url('admin.php?page=publishpress-future&tab=display'); ?>"
|
18 |
class="pe-tab nav-tab <?php
|
19 |
-
echo($current_tab === 'display' ? 'nav-tab-active' : ''); ?>"><?php
|
20 |
-
|
21 |
<a href="<?php
|
22 |
-
echo admin_url('admin.php?page=publishpress-future&tab=defaults'); ?>"
|
23 |
class="pe-tab nav-tab <?php
|
24 |
-
echo($current_tab === 'defaults' ? 'nav-tab-active' : ''); ?>"><?php
|
25 |
-
|
26 |
<a href="<?php
|
27 |
-
echo admin_url('admin.php?page=publishpress-future&tab=diagnostics'); ?>"
|
28 |
class="pe-tab nav-tab <?php
|
29 |
-
echo($current_tab === 'diagnostics' ? 'nav-tab-active' : ''); ?>"><?php
|
30 |
-
|
31 |
<a href="<?php
|
32 |
-
echo admin_url('admin.php?page=publishpress-future&tab=advanced'); ?>"
|
33 |
class="pe-tab nav-tab <?php
|
34 |
-
echo($current_tab === 'advanced' ? 'nav-tab-active' : ''); ?>"><?php
|
35 |
-
|
36 |
<?php
|
37 |
if (POSTEXPIRATOR_DEBUG) { ?>
|
38 |
<a href="<?php
|
39 |
-
echo admin_url('admin.php?page=publishpress-future&tab=viewdebug'); ?>"
|
40 |
class="pe-tab nav-tab <?php
|
41 |
-
echo($current_tab === 'viewdebug' ? 'nav-tab-active' : ''); ?>"><?php
|
42 |
-
|
43 |
<?php
|
44 |
} ?>
|
45 |
</nav>
|
46 |
|
47 |
-
<?php
|
|
|
|
|
|
|
48 |
|
49 |
</div>
|
50 |
</div>
|
1 |
<?php
|
2 |
|
3 |
+
defined('ABSPATH') or die('Direct access not allowed.');
|
4 |
+
|
5 |
$current_tab = empty($_GET['tab']) ? 'general' : sanitize_title(wp_unslash($_GET['tab']));
|
6 |
?>
|
7 |
|
8 |
<div class="wrap">
|
9 |
<h2><?php
|
10 |
+
esc_html_e('PublishPress Future', 'post-expirator'); ?></h2>
|
11 |
<div id="pe-settings-tabs">
|
12 |
<nav class="nav-tab-wrapper postexpirator-nav-tab-wrapper">
|
13 |
<a href="<?php
|
14 |
+
echo esc_url(admin_url('admin.php?page=publishpress-future&tab=general')); ?>"
|
15 |
class="pe-tab nav-tab <?php
|
16 |
+
echo ($current_tab === 'general' ? 'nav-tab-active' : ''); ?>"><?php
|
17 |
+
esc_html_e('Defaults', 'post-expirator'); ?></a>
|
18 |
<a href="<?php
|
19 |
+
echo esc_url(admin_url('admin.php?page=publishpress-future&tab=display')); ?>"
|
20 |
class="pe-tab nav-tab <?php
|
21 |
+
echo ($current_tab === 'display' ? 'nav-tab-active' : ''); ?>"><?php
|
22 |
+
esc_html_e('Display', 'post-expirator'); ?></a>
|
23 |
<a href="<?php
|
24 |
+
echo esc_url(admin_url('admin.php?page=publishpress-future&tab=defaults')); ?>"
|
25 |
class="pe-tab nav-tab <?php
|
26 |
+
echo ($current_tab === 'defaults' ? 'nav-tab-active' : ''); ?>"><?php
|
27 |
+
esc_html_e('Post Types', 'post-expirator'); ?></a>
|
28 |
<a href="<?php
|
29 |
+
echo esc_url(admin_url('admin.php?page=publishpress-future&tab=diagnostics')); ?>"
|
30 |
class="pe-tab nav-tab <?php
|
31 |
+
echo ($current_tab === 'diagnostics' ? 'nav-tab-active' : ''); ?>"><?php
|
32 |
+
esc_html_e('Diagnostics', 'post-expirator'); ?></a>
|
33 |
<a href="<?php
|
34 |
+
echo esc_url(admin_url('admin.php?page=publishpress-future&tab=advanced')); ?>"
|
35 |
class="pe-tab nav-tab <?php
|
36 |
+
echo ($current_tab === 'advanced' ? 'nav-tab-active' : ''); ?>"><?php
|
37 |
+
esc_html_e('Advanced', 'post-expirator'); ?></a>
|
38 |
<?php
|
39 |
if (POSTEXPIRATOR_DEBUG) { ?>
|
40 |
<a href="<?php
|
41 |
+
echo esc_url(admin_url('admin.php?page=publishpress-future&tab=viewdebug')); ?>"
|
42 |
class="pe-tab nav-tab <?php
|
43 |
+
echo ($current_tab === 'viewdebug' ? 'nav-tab-active' : ''); ?>"><?php
|
44 |
+
esc_html_e('View Debug Logs', 'post-expirator'); ?></a>
|
45 |
<?php
|
46 |
} ?>
|
47 |
</nav>
|
48 |
|
49 |
+
<?php
|
50 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
51 |
+
echo $html;
|
52 |
+
?>
|
53 |
|
54 |
</div>
|
55 |
</div>
|