From 543654f78ea5189326aed07fd92624a7115b50a1 Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 15:59:32 +0100 Subject: [PATCH 01/21] Update build files --- build/admin.asset.php | 1 + build/admin.js | 2 +- build/{admin.css => admin.style.css} | 2 +- build/calendar.asset.php | 1 + build/calendar.css | 2 +- build/calendar.css.map | 1 - build/calendar.js | 2 +- build/calendar.style.css | 1 + build/events.asset.php | 1 + build/events.css | 1 - build/events.css.map | 1 - build/events.js | 1 + build/events.style.css | 1 + 13 files changed, 10 insertions(+), 7 deletions(-) create mode 100644 build/admin.asset.php rename build/{admin.css => admin.style.css} (58%) create mode 100644 build/calendar.asset.php delete mode 100644 build/calendar.css.map create mode 100644 build/calendar.style.css create mode 100644 build/events.asset.php delete mode 100644 build/events.css delete mode 100644 build/events.css.map create mode 100644 build/events.style.css diff --git a/build/admin.asset.php b/build/admin.asset.php new file mode 100644 index 00000000..3290faac --- /dev/null +++ b/build/admin.asset.php @@ -0,0 +1 @@ + array('jquery'), 'version' => '9f8ea6205d46043cf235'); diff --git a/build/admin.js b/build/admin.js index 4bbcf4db..b7adef68 100644 --- a/build/admin.js +++ b/build/admin.js @@ -1 +1 @@ -(()=>{var e={462:()=>{jQuery(document).ready((function(e){"use strict";var t="#041E42",n=e(".color-picker");function o(e){n.val(e)}function a(){""===n.val().replace("#","")?(n.val(t),o(t)):o(n.val())}n.wpColorPicker({change:function(){o(n.wpColorPicker("color"))},clear:function(){o("")}}),n.click(a),n.length>0&&a(),n.iris({palettes:["#041E42","#963B2F","#662938","#003E61","#14462D","#204251"]});var i=e("input#repeat"),r=e("select#repeat-interval"),l=e("input[name='repeat-monthly-type']"),d=e("body.post-new-php input#start_date"),p=e("body.post-new-php input#end_date");function c(){i.is(":checked")?(e("div.repeat").slideDown(),v()):e("div.repeat").slideUp()}function v(){var t=e("option:selected",r).val();"week"===t?(e("div.repeat-weekly").slideDown(),e("div.repeat-monthly").slideUp()):"month"===t&&(e("div.repeat-monthly").slideDown(),e("div.repeat-weekly").slideUp(),s())}function s(){var t=e("input[name='repeat-monthly-type']:checked").val();void 0===t?(e("div.repeat-monthly-date").hide(),e("div.repeat-monthly-dow").hide()):"dow"===t?(e("div.repeat-monthly-dow").slideDown(),e("div.repeat-monthly-date").slideUp()):"date"===t&&(e("div.repeat-monthly-date").slideDown(),e("div.repeat-monthly-dow").slideUp())}i.length>0&&c(),i.on("change",(function(){c()})),r.on("change",(function(){v()})),l.on("change",(function(){s()})),d.on("change",(function(){(!p.val()||p.val(){var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";n(462)})()})(); \ No newline at end of file +(()=>{"use strict";var e,t={572:(e,t,n)=>{n(504)},504:(e,t,n)=>{n(632)(document).ready((function(e){let t="#041E42",n=e(".color-picker");function o(e){n.val(e)}function r(){""===n.val().replace("#","")?(n.val(t),o(t)):o(n.val())}n.wpColorPicker({change:function(){o(n.wpColorPicker("color"))},clear:function(){o("")}}),n.click(r),n.length>0&&r(),n.iris({palettes:["#041E42","#963B2F","#662938","#003E61","#14462D","#204251"]});let i=e("input#repeat"),a=e("select#repeat-interval"),l=e("input[name='repeat-monthly-type']"),d=e("body.post-new-php input#start_date"),p=e("body.post-new-php input#end_date");function v(){i.is(":checked")?(e("div.repeat").slideDown(),c()):e("div.repeat").slideUp()}function c(){var t=e("option:selected",a).val();"week"===t?(e("div.repeat-weekly").slideDown(),e("div.repeat-monthly").slideUp()):"month"===t&&(e("div.repeat-monthly").slideDown(),e("div.repeat-weekly").slideUp(),h())}function h(){var t=e("input[name='repeat-monthly-type']:checked").val();void 0===t?(e("div.repeat-monthly-date").hide(),e("div.repeat-monthly-dow").hide()):"dow"===t?(e("div.repeat-monthly-dow").slideDown(),e("div.repeat-monthly-date").slideUp()):"date"===t&&(e("div.repeat-monthly-date").slideDown(),e("div.repeat-monthly-dow").slideUp())}i.length>0&&v(),i.on("change",(function(){v()})),a.on("change",(function(){c()})),l.on("change",(function(){h()})),d.on("change",(function(){(!p.val()||p.val(){e.exports=window.jQuery}},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var i=n[e]={exports:{}};return t[e](i,i.exports,o),i.exports}o.m=t,e=[],o.O=(t,n,r,i)=>{if(!n){var a=1/0;for(v=0;v=i)&&Object.keys(o.O).every((e=>o.O[e](n[d])))?n.splice(d--,1):(l=!1,i0&&e[v-1][2]>i;v--)e[v]=e[v-1];e[v]=[n,r,i]},o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={864:0,192:0};o.O.j=t=>0===e[t];var t=(t,n)=>{var r,i,[a,l,d]=n,p=0;if(a.some((t=>0!==e[t]))){for(r in l)o.o(l,r)&&(o.m[r]=l[r]);if(d)var v=d(o)}for(t&&t(n);po(572)));r=o.O(r)})(); \ No newline at end of file diff --git a/build/admin.css b/build/admin.style.css similarity index 58% rename from build/admin.css rename to build/admin.style.css index d057182c..beb91373 100644 --- a/build/admin.css +++ b/build/admin.style.css @@ -1 +1 @@ -.fixed .column-events,.fixed .column-updated{width:14%}.column-description,.form-field.term-description-wrap,.form-field.term-parent-wrap{display:none}.category-bgcolor{background-color:var(--category-bgcolor)!important;padding:.2rem!important}.category-color{color:var(--category-color)!important}form#addtag .wp-picker-container{margin-bottom:2rem}.wp-picker-open+.wp-picker-input-wrap{display:inline-flex}.wp-color-result-text{color:#fff}.post-type-calendar_event .cmb2-id-event-items ul.event-items{-moz-columns:150px 6;columns:150px 6}.post-type-calendar_event .cmb2-id-event-items .past{color:#666;text-decoration:line-through}.post-type-calendar_event .cmb2-id-event-items .description{border-top:1px solid #e9e9e9;margin-top:5px}span.deactivate a{color:#b32d2e} \ No newline at end of file +.fixed .column-events,.fixed .column-updated{width:14%}.column-description,.form-field.term-description-wrap,.form-field.term-parent-wrap{display:none}.category-bgcolor{background-color:var(--category-bgcolor)!important;padding:.2rem!important}.category-color{color:var(--category-color)!important}form#addtag .wp-picker-container{margin-bottom:2rem}.wp-picker-open+.wp-picker-input-wrap{display:inline-flex}.wp-color-result-text{color:#fff}.post-type-calendar_event .cmb2-id-event-items ul.event-items{columns:150px 6}.post-type-calendar_event .cmb2-id-event-items .past{color:#666;text-decoration:line-through}.post-type-calendar_event .cmb2-id-event-items .description{border-top:1px solid #e9e9e9;margin-top:5px}span.deactivate a{color:#b32d2e} diff --git a/build/calendar.asset.php b/build/calendar.asset.php new file mode 100644 index 00000000..c36c2013 --- /dev/null +++ b/build/calendar.asset.php @@ -0,0 +1 @@ + array('jquery'), 'version' => 'bcf78529296edab07460'); diff --git a/build/calendar.css b/build/calendar.css index 46f54678..5a4afea0 100644 --- a/build/calendar.css +++ b/build/calendar.css @@ -1 +1 @@ -.rrze-calendar{margin:1em 0}.rrze-calendar .cal-type-select{padding:0}.rrze-calendar .cal-type-select a{display:inline-block;margin-right:.5em;padding:.25em 1em;border:2px solid #666;border-radius:var(--border-radius-buttons, 4px);text-decoration:none;box-shadow:none}.rrze-calendar .cal-type-select a:hover,.rrze-calendar .cal-type-select a:focus,.rrze-calendar .cal-type-select a:active,.rrze-calendar .cal-type-select a.active{background:#666;color:#fff}.rrze-calendar .cal-day .calendar-header h2.title-year{padding-bottom:.5em;margin-bottom:1em;border-bottom:1px solid #ccc}.rrze-calendar .cal-day .event-date{color:#666;font-style:italic;display:inline;width:auto;height:auto;background:rgba(0,0,0,0);padding:0;margin:0}.rrze-calendar .calendar-year{clear:both;width:100%;display:flex;flex-wrap:wrap;justify-content:space-around;text-align:center}.rrze-calendar .calendar-year .calendar-month.mini table{width:100%}.rrze-calendar .calendar-month.mini table{width:auto;min-width:240px;text-align:center}.rrze-calendar .calendar-month.mini th{text-align:center}.rrze-calendar .calendar-month.mini th a{text-decoration:none}.rrze-calendar .calendar-month.mini th a:hover,.rrze-calendar .calendar-month.mini th a:focus,.rrze-calendar .calendar-month.mini th a:active{text-decoration:underline}.rrze-calendar .calendar-month.mini td{text-align:center}.rrze-calendar .calendar-month.mini td.has-events{background:#fdfad3;padding:0}.rrze-calendar .calendar-month.mini td.has-events a{display:block;padding:5px;box-shadow:none}.rrze-calendar .calendar-month.mini td.has-events a:hover,.rrze-calendar .calendar-month.mini td.has-events a:focus,.rrze-calendar .calendar-month.mini td.has-events a:active{color:unset;background:#fefdeb;font-weight:bold}.rrze-calendar .calendar-month.mini td.has-events:hover,.rrze-calendar .calendar-month.mini td.has-events:focus,.rrze-calendar .calendar-month.mini td.has-events:active{background:#fefdeb}.rrze-calendar .calendar-month.mini tr.days{border-bottom:none}.rrze-calendar .calendar-month.mini tr.days td{border-bottom:1px solid var(--color-primary-ci-hell, #003366)}.rrze-calendar .calendar-header{width:100%;position:relative}.rrze-calendar .calendar-header h2.title-year{text-align:center;margin-bottom:.25em}.rrze-calendar .calendar-header ul.calendar-pager{margin:0;padding:0}.rrze-calendar .calendar-header ul.calendar-pager li{list-style-type:none}@media screen and (min-width: 480px){.rrze-calendar .calendar-header ul.calendar-pager li{position:absolute;top:0;padding:10px 0}}.rrze-calendar .calendar-header ul.calendar-pager li.date-prev{float:left}@media screen and (min-width: 480px){.rrze-calendar .calendar-header ul.calendar-pager li.date-prev{float:none;left:0;right:auto}}.rrze-calendar .calendar-header ul.calendar-pager li.date-next{float:right}@media screen and (min-width: 480px){.rrze-calendar .calendar-header ul.calendar-pager li.date-next{float:none;right:0;left:auto}}.rrze-calendar .calendar-month{clear:both;padding:5px}.rrze-calendar .calendar-month tr.days td{border:none;border-bottom:1px solid #ccc}.rrze-calendar .calendar-month td{border:1px solid #fff}.rrze-calendar .calendar-month.mini{min-width:25%}.rrze-calendar .calendar-month.full{width:100%}@media screen and (min-width: 480px){.rrze-calendar .calendar-month.full .days,.rrze-calendar .calendar-month.full .week{display:grid;grid-template-columns:[day-1] 1fr [day-2] 1fr [day-3] 1fr [day-4] 1fr [day-5] 1fr [day-6] 1fr [day-7] 1fr;grid-template-rows:repeat(auto-fit, 1fr)}}.rrze-calendar .calendar-month.full .day-names{display:none}@media screen and (min-width: 480px){.rrze-calendar .calendar-month.full .day-names{display:block;font-weight:bold;text-align:center;font-style:italic;border:1px solid #ccc;border-bottom-color:#666}}.rrze-calendar .calendar-month.full .day{display:none}@media screen and (min-width: 480px){.rrze-calendar .calendar-month.full .day{display:block;border:1px solid #ccc;border-bottom-color:rgba(0,0,0,0);padding:5px 7px;text-align:right}}.rrze-calendar .calendar-month.full .empty-day{display:none}@media screen and (min-width: 480px){.rrze-calendar .calendar-month.full .empty-day{display:block;border:1px solid #ccc;background:#f6f6f6}}.rrze-calendar .calendar-month.full .no-event{display:none}@media screen and (min-width: 480px){.rrze-calendar .calendar-month.full .no-event{display:block;min-height:90px;border:1px solid #ccc;border-top-color:rgba(0,0,0,0)}}.rrze-calendar .calendar-month.full .event{display:block;position:relative;text-align:left;min-width:0;min-height:0;padding:10px;margin-bottom:5px;font-size:small;border:2px solid var(--color-primary-ci-hell, #003366);border-top-width:4px;background-color:#fff}@media screen and (min-width: 480px){.rrze-calendar .calendar-month.full .event{padding:3px 5px;line-height:1.3;margin-bottom:3px;min-height:25px;position:relative}}.rrze-calendar .calendar-month.full .event:before,.rrze-calendar .calendar-month.full .event:after{display:inline-block;width:16px;color:#666;font-style:normal}@media screen and (min-width: 480px){.rrze-calendar .calendar-month.full .event:before{content:"«";float:left}}@media screen and (min-width: 480px){.rrze-calendar .calendar-month.full .event:after{content:"»";text-align:right;position:absolute;bottom:0;right:5px}}.rrze-calendar .calendar-month.full .event p{margin-bottom:0;padding-bottom:0;font-size:.875rem;line-height:1.5}.rrze-calendar .calendar-month.full .event div[role=tooltip]{display:none}.rrze-calendar .calendar-month.full .event div[role=tooltip] .wp-post-image{margin-bottom:5px}.rrze-calendar .calendar-month.full .event div[role=tooltip] .event-title{display:block;font-weight:bold;font-size:1.2em;margin-bottom:5px}.rrze-calendar .calendar-month.full .event div[role=tooltip] .event-title a{white-space:normal}.rrze-calendar .calendar-month.full .event div[role=tooltip] .event-date-time{margin-bottom:5px}.rrze-calendar .calendar-month.full .event:hover div[role=tooltip]{display:block;position:absolute;bottom:1em;left:.5em;width:15em;padding:.5em;z-index:100;color:#000;background-color:#fefefe;border:solid 2px #ccc;border-radius:.2em;box-shadow:2px 2px 5px #ccc}.rrze-calendar .calendar-month.full .event a{text-decoration:none}@media screen and (min-width: 480px){.rrze-calendar .calendar-month.full .event a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.rrze-calendar .calendar-month.full .event a:hover,.rrze-calendar .calendar-month.full .event a:focus,.rrze-calendar .calendar-month.full .event a:active{text-decoration:underline}.rrze-calendar .calendar-month.full .event:not(.event-start){display:none}@media screen and (min-width: 480px){.rrze-calendar .calendar-month.full .event:not(.event-start){display:block;padding-left:5px}.rrze-calendar .calendar-month.full .event:not(.event-start) a{width:calc(100% - 20px)}}@media screen and (min-width: 480px){.rrze-calendar .calendar-month.full .event:not(.event-end){padding-right:5px}}@media screen and (min-width: 480px){.rrze-calendar .calendar-month.full .event:not(.event-start):not(.event-end) a{width:calc(100% - 40px)}}.rrze-calendar .calendar-month.full .event-date{width:auto;background:rgba(0,0,0,0);font-style:italic;color:#666;padding:0;margin:0;font-size:.875rem;line-height:1.5;text-align:left}.rrze-calendar .calendar-month.full .event-title{display:block;word-break:break-word}@media screen and (min-width: 960px){.rrze-calendar .calendar-month.full .event-title{word-break:break-word}}.rrze-calendar .calendar-month.full .mec-event-date,.rrze-calendar .calendar-month.full .event-time{font-style:italic;color:#666}.rrze-calendar .calendar-month.full .event-start:before{display:none;content:""}.rrze-calendar .calendar-month.full .event-end{float:none}.rrze-calendar .calendar-month.full .event-end:after{display:none;content:""}.rrze-calendar .calendar-month.full .more-events{padding:0 5px;font-size:smaller}.rrze-calendar ul.day-list li{margin-bottom:.5em}@media screen and (min-width: 480px){.rrze-calendar .hide-desktop{border:0;clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute !important;width:1px;word-wrap:normal !important}}/*# sourceMappingURL=calendar.css.map */ +.rrze-calendar .tooltip-container{display:flex}.rrze-calendar .tooltip-container .wrapper{display:flex;flex-wrap:wrap;gap:1rem;justify-content:left}.rrze-calendar .tooltip{align-items:left;column-gap:.5rem;display:flex;position:relative}.rrze-calendar .tooltip .icon{align-items:left;background-color:#fff3;border-radius:.188rem;display:flex;flex-shrink:0;font-size:.875rem;height:16px;justify-content:left;padding:2px;width:16px}.rrze-calendar .tooltip:hover .icon{background-color:#dedede}.rrze-calendar .tooltip:hover .input-icon{color:#dedede}.rrze-calendar .tooltip:hover .tooltip-drop{opacity:1}.rrze-calendar .tooltip:hover .tooltip-drop.tooltip-bottom,.rrze-calendar .tooltip:hover .tooltip-drop.tooltip-top{transform:translate(-50%)}.rrze-calendar .tooltip:hover .tooltip-drop.tooltip-left,.rrze-calendar .tooltip:hover .tooltip-drop.tooltip-right{transform:translateY(-50%)}.rrze-calendar .tooltip .tooltip-drop{background-color:#dedede;border-radius:.188rem;color:#fff;font-size:.875rem;max-width:200px;opacity:0;padding:.75rem .875rem;pointer-events:none;position:absolute;text-align:left;transition:all .15s ease-in-out;width:max-content;z-index:1}.rrze-calendar .tooltip .tooltip-drop:before{border:.375rem solid #0000;border-top-color:#dedede;content:"";height:0;position:absolute;width:0}.rrze-calendar .tooltip .tooltip-drop.tooltip-left,.rrze-calendar .tooltip .tooltip-drop.tooltip-left:before,.rrze-calendar .tooltip .tooltip-drop.tooltip-right,.rrze-calendar .tooltip .tooltip-drop.tooltip-right:before{top:50%}.rrze-calendar .tooltip .tooltip-drop.tooltip-left{right:calc(100% + .625rem);transform:translate(-.25rem,-50%)}.rrze-calendar .tooltip .tooltip-drop.tooltip-left:before{left:100%;transform:translateY(-50%) rotate(-90deg)}.rrze-calendar .tooltip .tooltip-drop.tooltip-right{left:calc(100% + .625rem);transform:translate(.25rem,-50%)}.rrze-calendar .tooltip .tooltip-drop.tooltip-right:before{right:100%;transform:translateY(-50%) rotate(90deg)}.rrze-calendar .tooltip .tooltip-drop.tooltip-bottom,.rrze-calendar .tooltip .tooltip-drop.tooltip-top{left:50%;transform:translate(-50%,.625rem)}.rrze-calendar .tooltip .tooltip-drop.tooltip-bottom:before,.rrze-calendar .tooltip .tooltip-drop.tooltip-top:before{left:50%}.rrze-calendar .tooltip .tooltip-drop.tooltip-top{bottom:calc(100% + .625rem)}.rrze-calendar .tooltip .tooltip-drop.tooltip-top:before{top:100%;transform:translate(-50%)}.rrze-calendar .tooltip .tooltip-drop.tooltip-bottom{top:calc(100% + .625rem)}.rrze-calendar .tooltip .tooltip-drop.tooltip-bottom:before{bottom:100%;transform:translate(-50%) rotate(180deg)}.rrze-calendar .input-group{align-items:left;display:flex;position:relative}.rrze-calendar .input-group.input-group-left-icon .tooltip,.rrze-calendar .input-group.input-group-right-icon .tooltip{height:100%;justify-content:left;position:absolute;width:34px}.rrze-calendar .input-group.input-group-left-icon .tooltip{left:0}.rrze-calendar .input-group.input-group-left-icon .input{padding-left:1.875rem}.rrze-calendar .input-group.input-group-right-icon .tooltip{right:0}.rrze-calendar .input-group.input-group-right-icon .input{padding-right:1.875rem}.rrze-calendar .input{border:2px solid #000;border-radius:.375rem;height:44px;outline:none;padding-left:.5rem;padding-right:.5rem;transition:.2s;width:100%}.rrze-calendar .input:focus{border-color:#dedede}.rrze-calendar .owner{bottom:1rem;color:#666;font-size:.875rem;position:absolute;text-decoration:none} diff --git a/build/calendar.css.map b/build/calendar.css.map deleted file mode 100644 index f7ed720d..00000000 --- a/build/calendar.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["../src/calendar/style.scss"],"names":[],"mappings":"CAAA,eACI,aACA,gCACI,UACA,kCACI,qBACA,kBACA,kBACA,sBACA,gDACA,qBACA,gBAEA,kKACI,gBACA,WAKR,uDACI,oBACA,kBACA,6BAEJ,oCACI,WACA,kBACA,eACA,WACA,YACA,yBACA,UACA,SAGR,8BACI,WACA,WACA,aACA,eACA,6BACA,kBAEI,yDACI,WAKR,0CACI,WACA,gBACA,kBAEJ,uCACI,kBACA,yCACI,qBACA,8IACI,0BAIZ,uCACI,kBACA,kDACI,mBACA,UACA,oDACI,cACA,YACA,gBACA,+KACI,YACA,mBACA,iBAGR,yKACI,mBAIZ,4CACI,mBACA,+CACI,8DAIZ,gCACI,WACA,kBACA,8CACI,kBACA,oBAEJ,kDACI,SACA,UACA,qDACI,qBACA,qCAFJ,qDAGQ,kBACA,MACA,gBAEJ,+DACI,WACA,qCAFJ,+DAGQ,WACA,OACA,YAGR,+DACI,YACA,qCAFJ,+DAGQ,WACA,QACA,WAOpB,+BACI,WACA,YACA,0CACI,YACA,6BAGJ,kCACI,sBAGJ,oCACI,cAEJ,oCACI,WAEI,qCADJ,oFAEQ,aACA,sBACA,oFAOA,mBACA,uBAGR,+CACI,aACA,qCAFJ,+CAGQ,cACA,iBACA,kBAEA,kBACA,sBACA,0BAGR,yCACI,aACA,qCAFJ,yCAGQ,cACA,sBACA,kCACA,gBACA,kBAGR,+CACI,aACA,qCAFJ,+CAGQ,cACA,sBACA,oBAGR,8CACI,aACA,qCAFJ,8CAGQ,cACA,gBACA,sBACA,gCAGR,2CACI,cACA,kBACA,gBACA,YACA,aACA,aACA,kBACA,gBACA,uDACA,qBACA,sBAKA,qCAhBJ,2CAiBQ,gBACA,gBAEA,kBACA,gBACA,mBAEJ,mGACI,qBACA,WACA,WACA,kBAGA,qCADJ,kDAEQ,YACA,YAIJ,qCADJ,iDAEQ,YACA,iBACA,kBACA,SACA,WAGR,6CACI,gBACA,iBACA,kBACA,gBAEJ,6DACI,aACA,4EACI,kBAEJ,0EACI,cACA,iBACA,gBACA,kBACA,4EACI,mBAGR,8EACI,kBAMR,mEACI,cACA,kBACA,WACA,UACA,WACA,aACA,YACA,WACA,yBACA,sBACA,mBACA,4BAEJ,6CAEI,qBACA,qCAHJ,6CAIQ,cACA,mBACA,gBACA,wBAEJ,0JACI,0BAGR,6DACI,aACA,qCAFJ,6DAGQ,cACA,iBACA,+DACI,yBAKR,qCADJ,2DAEQ,mBAIJ,qCACI,+EACI,yBAKhB,gDACI,WACA,yBACA,kBACA,WACA,UACA,SACA,kBACA,gBACA,gBAQJ,iDACI,cACA,sBAIA,qCANJ,iDAOQ,uBAGR,oGAEI,kBACA,WASA,wDACI,aACA,WAGR,+CAII,WACA,qDACI,aACA,WAGR,iDACI,cACA,kBAKR,8BACI,mBAIJ,qCADJ,6BAEQ,SACA,8BACA,qBACA,WACA,YACA,gBACA,UACA,6BACA,UACA","file":"calendar.css"} \ No newline at end of file diff --git a/build/calendar.js b/build/calendar.js index 5083a0a4..3558e38c 100644 --- a/build/calendar.js +++ b/build/calendar.js @@ -1 +1 @@ -"use strict";jQuery(document).ready(function($){var $loading=$("#loading").hide();$(document).ajaxStart(function(){$loading.show()}).ajaxStop(function(){$loading.hide()});$("div.rrze-calendar").on("click",".calendar-pager a",function(e){e.preventDefault();var calendar=$("div.calendar-wrapper");var period=calendar.data("period");var layout=calendar.data("layout");var abolink=calendar.data("abolink");var direction=$(this).data("direction");var taxquery=$(this).data("taxquery");$.post(rrze_calendar_ajax.ajax_url,{_ajax_nonce:rrze_calendar_ajax.nonce,action:"rrze-calendar-update-calendar",period:period,layout:layout,abolink:abolink,direction:direction,taxquery:taxquery},function(result){calendar.remove();$("div.rrze-calendar").append(result)})})}); \ No newline at end of file +(()=>{"use strict";var a,r={452:(a,r,e)=>{e(371)},371:(a,r,e)=>{e(632)(document).ready((function(a){var r=a("#loading").hide();a(document).ajaxStart((function(){r.show()})).ajaxStop((function(){r.hide()})),a("div.rrze-calendar").on("click",".calendar-pager a",(function(r){r.preventDefault();var e=a("div.calendar-wrapper"),n=e.data("period"),o=e.data("layout"),t=e.data("abolink"),i=a(this).data("direction"),d=a(this).data("taxquery");a.post(rrze_calendar_ajax.ajax_url,{_ajax_nonce:rrze_calendar_ajax.nonce,action:"rrze-calendar-update-calendar",period:n,layout:o,abolink:t,direction:i,taxquery:d},(function(r){e.remove(),a("div.rrze-calendar").append(r)}))}))}))},632:a=>{a.exports=window.jQuery}},e={};function n(a){var o=e[a];if(void 0!==o)return o.exports;var t=e[a]={exports:{}};return r[a](t,t.exports,n),t.exports}n.m=r,a=[],n.O=(r,e,o,t)=>{if(!e){var i=1/0;for(u=0;u=t)&&Object.keys(n.O).every((a=>n.O[a](e[l])))?e.splice(l--,1):(d=!1,t0&&a[u-1][2]>t;u--)a[u]=a[u-1];a[u]=[e,o,t]},n.n=a=>{var r=a&&a.__esModule?()=>a.default:()=>a;return n.d(r,{a:r}),r},n.d=(a,r)=>{for(var e in r)n.o(r,e)&&!n.o(a,e)&&Object.defineProperty(a,e,{enumerable:!0,get:r[e]})},n.o=(a,r)=>Object.prototype.hasOwnProperty.call(a,r),(()=>{var a={816:0,52:0};n.O.j=r=>0===a[r];var r=(r,e)=>{var o,t,[i,d,l]=e,c=0;if(i.some((r=>0!==a[r]))){for(o in d)n.o(d,o)&&(n.m[o]=d[o]);if(l)var u=l(n)}for(r&&r(e);cn(452)));o=n.O(o)})(); \ No newline at end of file diff --git a/build/calendar.style.css b/build/calendar.style.css new file mode 100644 index 00000000..c92e2d38 --- /dev/null +++ b/build/calendar.style.css @@ -0,0 +1 @@ +.rrze-calendar{margin:1em 0}.rrze-calendar .cal-type-select{padding:0}.rrze-calendar .cal-type-select a{border:2px solid #666;border-radius:var(--border-radius-buttons,4px);box-shadow:none;display:inline-block;margin-right:.5em;padding:.25em 1em;text-decoration:none}.rrze-calendar .cal-type-select a.active,.rrze-calendar .cal-type-select a:active,.rrze-calendar .cal-type-select a:focus,.rrze-calendar .cal-type-select a:hover{background:#666;color:#fff}.rrze-calendar .cal-day .calendar-header h2.title-year{border-bottom:1px solid #ccc;margin-bottom:1em;padding-bottom:.5em}.rrze-calendar .cal-day .event-date{background:#0000;color:#666;display:inline;font-style:italic;height:auto;margin:0;padding:0;width:auto}.rrze-calendar .calendar-year{clear:both;display:flex;flex-wrap:wrap;justify-content:space-around;text-align:center;width:100%}.rrze-calendar .calendar-year .calendar-month.mini table{width:100%}.rrze-calendar .calendar-month.mini table{min-width:240px;text-align:center;width:auto}.rrze-calendar .calendar-month.mini th{text-align:center}.rrze-calendar .calendar-month.mini th a{text-decoration:none}.rrze-calendar .calendar-month.mini th a:active,.rrze-calendar .calendar-month.mini th a:focus,.rrze-calendar .calendar-month.mini th a:hover{text-decoration:underline}.rrze-calendar .calendar-month.mini td{text-align:center}.rrze-calendar .calendar-month.mini td.has-events{background:#fdfad3;padding:0}.rrze-calendar .calendar-month.mini td.has-events a{box-shadow:none;display:block;padding:5px}.rrze-calendar .calendar-month.mini td.has-events a:active,.rrze-calendar .calendar-month.mini td.has-events a:focus,.rrze-calendar .calendar-month.mini td.has-events a:hover{background:#fefdeb;color:unset;font-weight:700}.rrze-calendar .calendar-month.mini td.has-events:active,.rrze-calendar .calendar-month.mini td.has-events:focus,.rrze-calendar .calendar-month.mini td.has-events:hover{background:#fefdeb}.rrze-calendar .calendar-month.mini tr.days{border-bottom:none}.rrze-calendar .calendar-month.mini tr.days td{border-bottom:1px solid var(--color-primary-ci-hell,#036)}.rrze-calendar .calendar-header{position:relative;width:100%}.rrze-calendar .calendar-header h2.title-year{margin-bottom:.25em;text-align:center}.rrze-calendar .calendar-header ul.calendar-pager{margin:0;padding:0}.rrze-calendar .calendar-header ul.calendar-pager li{list-style-type:none}@media screen and (min-width:480px){.rrze-calendar .calendar-header ul.calendar-pager li{padding:10px 0;position:absolute;top:0}}.rrze-calendar .calendar-header ul.calendar-pager li.date-prev{float:left}@media screen and (min-width:480px){.rrze-calendar .calendar-header ul.calendar-pager li.date-prev{float:none;left:0;right:auto}}.rrze-calendar .calendar-header ul.calendar-pager li.date-next{float:right}@media screen and (min-width:480px){.rrze-calendar .calendar-header ul.calendar-pager li.date-next{float:none;left:auto;right:0}}.rrze-calendar .calendar-month{clear:both;padding:5px}.rrze-calendar .calendar-month tr.days td{border:none;border-bottom:1px solid #ccc}.rrze-calendar .calendar-month td{border:1px solid #fff}.rrze-calendar .calendar-month.mini{min-width:25%}.rrze-calendar .calendar-month.full{width:100%}@media screen and (min-width:480px){.rrze-calendar .calendar-month.full .days,.rrze-calendar .calendar-month.full .week{display:grid;grid-template-columns:[day-1] 1fr [day-2] 1fr [day-3] 1fr [day-4] 1fr [day-5] 1fr [day-6] 1fr [day-7] 1fr;grid-template-rows:repeat(auto-fit,1fr)}}.rrze-calendar .calendar-month.full .day-names{display:none}@media screen and (min-width:480px){.rrze-calendar .calendar-month.full .day-names{border:1px solid;border-color:#ccc #ccc #666;display:block;font-style:italic;font-weight:700;text-align:center}}.rrze-calendar .calendar-month.full .day{display:none}@media screen and (min-width:480px){.rrze-calendar .calendar-month.full .day{border:1px solid;border-color:#ccc #ccc #0000;display:block;padding:5px 7px;text-align:right}}.rrze-calendar .calendar-month.full .empty-day{display:none}@media screen and (min-width:480px){.rrze-calendar .calendar-month.full .empty-day{background:#f6f6f6;border:1px solid #ccc;display:block}}.rrze-calendar .calendar-month.full .no-event{display:none}@media screen and (min-width:480px){.rrze-calendar .calendar-month.full .no-event{border:1px solid #ccc;border-top-color:#0000;display:block;min-height:90px}}.rrze-calendar .calendar-month.full .event{background-color:#fff;border-top-width:2px;border:2px solid var(--color-primary-ci-hell,#036);border-top:4px solid var(--color-primary-ci-hell,#036);display:block;font-size:small;margin-bottom:5px;min-height:0;min-width:0;padding:10px;position:relative;text-align:left}@media screen and (min-width:480px){.rrze-calendar .calendar-month.full .event{line-height:1.3;margin-bottom:3px;min-height:25px;padding:3px 5px;position:relative}}.rrze-calendar .calendar-month.full .event:after,.rrze-calendar .calendar-month.full .event:before{color:#666;display:inline-block;font-style:normal;width:16px}@media screen and (min-width:480px){.rrze-calendar .calendar-month.full .event:before{content:"«";float:left}.rrze-calendar .calendar-month.full .event:after{bottom:0;content:"»";position:absolute;right:5px;text-align:right}}.rrze-calendar .calendar-month.full .event p{font-size:.875rem;line-height:1.5;margin-bottom:0;padding-bottom:0}.rrze-calendar .calendar-month.full .event div[role=tooltip]{display:none}.rrze-calendar .calendar-month.full .event div[role=tooltip] .wp-post-image{margin-bottom:5px}.rrze-calendar .calendar-month.full .event div[role=tooltip] .event-title{display:block;font-size:1.2em;font-weight:700;margin-bottom:5px}.rrze-calendar .calendar-month.full .event div[role=tooltip] .event-title a{white-space:normal}.rrze-calendar .calendar-month.full .event div[role=tooltip] .event-date-time{margin-bottom:5px}.rrze-calendar .calendar-month.full .event:hover div[role=tooltip]{background-color:#fefefe;border:2px solid #ccc;border-radius:.2em;bottom:1em;box-shadow:2px 2px 5px #ccc;color:#000;display:block;left:.5em;padding:.5em;position:absolute;width:15em;z-index:100}.rrze-calendar .calendar-month.full .event a{text-decoration:none}@media screen and (min-width:480px){.rrze-calendar .calendar-month.full .event a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.rrze-calendar .calendar-month.full .event a:active,.rrze-calendar .calendar-month.full .event a:focus,.rrze-calendar .calendar-month.full .event a:hover{text-decoration:underline}.rrze-calendar .calendar-month.full .event:not(.event-start){display:none}@media screen and (min-width:480px){.rrze-calendar .calendar-month.full .event:not(.event-start){display:block;padding-left:5px}.rrze-calendar .calendar-month.full .event:not(.event-start) a{width:calc(100% - 20px)}.rrze-calendar .calendar-month.full .event:not(.event-end){padding-right:5px}.rrze-calendar .calendar-month.full .event:not(.event-start):not(.event-end) a{width:calc(100% - 40px)}}.rrze-calendar .calendar-month.full .event-date{background:#0000;color:#666;font-size:.875rem;font-style:italic;line-height:1.5;margin:0;padding:0;text-align:left;width:auto}.rrze-calendar .calendar-month.full .event-title{display:block;word-break:break-word}@media screen and (min-width:960px){.rrze-calendar .calendar-month.full .event-title{word-break:break-word}}.rrze-calendar .calendar-month.full .event-time,.rrze-calendar .calendar-month.full .mec-event-date{color:#666;font-style:italic}.rrze-calendar .calendar-month.full .event-start:before{content:"";display:none}.rrze-calendar .calendar-month.full .event-end{float:none}.rrze-calendar .calendar-month.full .event-end:after{content:"";display:none}.rrze-calendar .calendar-month.full .more-events{font-size:smaller;padding:0 5px}.rrze-calendar ul.day-list li{margin-bottom:.5em}@media screen and (min-width:480px){.rrze-calendar .hide-desktop{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}} diff --git a/build/events.asset.php b/build/events.asset.php new file mode 100644 index 00000000..5b1ff4cd --- /dev/null +++ b/build/events.asset.php @@ -0,0 +1 @@ + array(), 'version' => '46dc8b3e7f7ab239b817'); diff --git a/build/events.css b/build/events.css deleted file mode 100644 index 773782cd..00000000 --- a/build/events.css +++ /dev/null @@ -1 +0,0 @@ -.rrze-calendar ul.events-list{margin:0;padding:0;background:none}.rrze-calendar ul.events-list li.event-item{list-style:none;margin-bottom:1em;display:flex;flex-direction:row;gap:1em;align-items:flex-start}.rrze-calendar ul.events-list .event-date{flex:0 0 60px;margin:0;padding:.5em;text-align:center;width:auto;height:auto;background:var(--color-primary-ci-hell, #003366);color:var(--color-primary-ci-hell-kontrast, #fff);line-height:1.5}.rrze-2019 .rrze-calendar ul.events-list .event-date{background-color:#00458c}.rrze-calendar ul.events-list .event-date .day-month{padding:0;float:none;height:auto}.rrze-calendar ul.events-list .event-date .day-month .day{font-weight:bold;font-size:1.4rem}.rrze-calendar ul.events-list .event-date .day-month .month{font-size:1rem}.rrze-calendar ul.events-list .event-title{margin-top:0;margin-bottom:0;padding-top:0;font-size:1.1rem;line-height:1.5}.rrze-calendar ul.events-list .event-title a{color:var(--color-Text, #222);box-shadow:none;text-decoration:none}.rrze-calendar ul.events-list .event-title a:hover,.rrze-calendar ul.events-list .event-title a:focus,.rrze-calendar ul.events-list .event-title a:active{text-decoration:underline}.rrze-calendar ul.events-list .event-location{word-break:break-word}.rrze-calendar ul.events-list-short{margin-left:0}.rrze-calendar ul.events-list-short li{list-style:none;margin-bottom:.5em}.rrze-calendar ul.events-list-short .event-date{float:none;display:inline;background:unset;color:unset;padding:0}.rrze-calendar ul.events-list-short .event-title{font-weight:bold}.rrze-calendar ul.events-list-short .dashicons{color:#333;position:relative;top:2px}.rrze-calendar ul.events-list-short .dashicons.dashicons-clock{margin-left:.5em}.rrze-calendar a.standard-btn{margin-right:5px}.event-allday{text-transform:uppercase}.event-label{font-weight:700;margin:.5rem 0 .2rem}.single-calendar_event main{padding-left:15px;padding-right:15px}@media(min-width: 768px){.single-calendar_event main{padding-left:0;padding-right:0}}.single-calendar_event .rrze-event{margin-top:20px}@media(min-width: 1024px){.single-calendar_event .rrze-event{display:grid;column-gap:var(--gap-width, 30px);grid-template-columns:1fr var(--min-width-aside, 300px)}}@media(min-width: 1024px){.single-calendar_event .rrze-event .entry-header{grid-column:1/span 2}}@media(min-width: 1024px){.single-calendar_event .rrze-event-details{border-left:2px solid var(--color-primary-ci-hell2, #ced9e7);padding-left:15px}}.single-calendar_event .rrze-event-details h2{margin-top:0}.single-calendar_event .rrze-event-details p{margin-bottom:.5em}.single-calendar_event .rrze-event-details dt,.single-calendar_event .rrze-event-details dd,.single-calendar_event .rrze-event-details dt *,.single-calendar_event .rrze-event-details dd *{font-size:.875rem;line-height:1.313rem}.single-calendar_event .rrze-event-details dd{margin-left:0;margin-bottom:1em}.single-calendar_event .rrze-event-details dd p{margin:0;padding:0}.single-calendar_event .rrze-event-details ul.downloads{margin-left:0;overflow:hidden;padding-left:20px}.single-calendar_event .rrze-event-details div.prices{overflow:hidden}.single-calendar_event .rrze-event-details span.label{display:block;font-weight:bold}@media(min-width: 480px){.single-calendar_event .post-image{max-width:50%;margin-top:0}}@media(min-width: 992px){.single-calendar_event .post-image{max-width:30%}}@media(min-width: 480px){.single-calendar_event figure.post-thumbnail{float:right;margin:0 0 1em 1em}}.single-calendar_event figure.post-thumbnail .wp-caption-text{margin-bottom:0}@media(min-width: 480px){.single-calendar_event figure.post-thumbnail{width:auto}}.single-calendar_event .rrze-event-schedule{margin-bottom:1em}.single-calendar_event .rrze-event-schedule .rrze-event-date,.single-calendar_event .rrze-event-schedule .rrze-event-time,.single-calendar_event .rrze-event-schedule .rrze-event-location{display:block}@media(min-width: 768px){.single-calendar_event .rrze-event-schedule .rrze-event-date,.single-calendar_event .rrze-event-schedule .rrze-event-time{display:inline-block;margin-right:2em}}.single-calendar_event .rrze-event-schedule .rrze-event-location{margin-top:.5em}.single-calendar_event .rrze-event-schedule ul{margin-bottom:0;margin-left:0;padding-left:0}.single-calendar_event .rrze-event-schedule ul.cols-3{columns:300px 3;column-gap:20px;orphans:3;widows:3}.single-calendar_event .rrze-event-schedule ul li{list-style-type:none}.single-calendar_event .rrze-event-schedule ul li.past{text-decoration:line-through;filter:brightness(2)}.single-calendar_event .rrze-event-schedule ul li .rrze-event-date{display:inline}.single-calendar_event .rrze-event-schedule .dashicons{margin-right:5px;color:#333;position:relative;top:2px}.single-calendar_event .rrze-event-description span.label{font-weight:bold}/*# sourceMappingURL=events.css.map */ diff --git a/build/events.css.map b/build/events.css.map deleted file mode 100644 index 8c758f34..00000000 --- a/build/events.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["../src/events/style.scss"],"names":[],"mappings":"AACI,8BACI,SACA,UACA,gBACA,4CACI,gBACA,kBACA,aACA,mBACA,QACA,uBAEJ,0CACI,cACA,SACA,aACA,kBACA,WACA,YACA,iDACA,kDACA,gBACA,qDACI,yBAEJ,qDACI,UACA,WACA,YACA,0DACI,iBACA,iBAGJ,4DACI,eAQZ,2CACI,aACA,gBACA,cACA,iBACA,gBACA,6CACI,8BACA,gBACA,qBACA,0JACI,0BAIZ,8CACI,sBAGR,oCACI,cACA,uCACI,gBACA,mBAEJ,gDACI,WACA,eACA,iBACA,YACA,UAEJ,iDACI,iBAEJ,+CACI,WACA,kBACA,QACA,+DACI,iBAIZ,8BACI,iBAIR,cACI,yBAGJ,aACI,gBACA,qBAIA,4BACI,kBACA,mBACA,yBAHJ,4BAIQ,eACA,iBAIR,mCACI,gBACA,0BAFJ,mCAGQ,aACA,kCACA,yDAGA,0BADJ,iDAEQ,sBAKR,0BADJ,2CAEQ,6DACA,mBAEJ,8CACI,aAEJ,6CACI,mBAEJ,4LACI,kBACA,qBAEJ,8CACI,cACA,kBACA,gDACI,SACA,UAGR,wDACI,cACA,gBACA,kBAEJ,sDACI,gBAEJ,sDACI,cAEA,iBAIJ,yBADJ,mCAEQ,cACA,cAEJ,yBALJ,mCAMQ,eAIJ,yBADJ,6CAEQ,YACA,oBAEJ,8DACI,gBAEJ,yBARJ,6CASQ,YAGR,4CACI,kBACA,2LAGI,cAIA,yBAFJ,0HAGQ,qBACA,kBAGR,iEACI,gBAEJ,+CACI,gBACA,cACA,eACA,sDACI,gBACA,gBACA,UACA,SAEJ,kDACI,qBACA,uDACI,6BACA,qBAEJ,mEACI,eAIZ,uDACI,iBACA,WACA,kBACA,QAIJ,0DACI","file":"events.css"} \ No newline at end of file diff --git a/build/events.js b/build/events.js index e69de29b..0ef51fbe 100644 --- a/build/events.js +++ b/build/events.js @@ -0,0 +1 @@ +(()=>{"use strict";var r,e={4:()=>{}},o={};function t(r){var a=o[r];if(void 0!==a)return a.exports;var n=o[r]={exports:{}};return e[r](n,n.exports,t),n.exports}t.m=e,r=[],t.O=(e,o,a,n)=>{if(!o){var i=1/0;for(p=0;p=n)&&Object.keys(t.O).every((r=>t.O[r](o[v])))?o.splice(v--,1):(l=!1,n0&&r[p-1][2]>n;p--)r[p]=r[p-1];r[p]=[o,a,n]},t.o=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),(()=>{var r={728:0,320:0};t.O.j=e=>0===r[e];var e=(e,o)=>{var a,n,[i,l,v]=o,s=0;if(i.some((e=>0!==r[e]))){for(a in l)t.o(l,a)&&(t.m[a]=l[a]);if(v)var p=v(t)}for(e&&e(o);st(4)));a=t.O(a)})(); \ No newline at end of file diff --git a/build/events.style.css b/build/events.style.css new file mode 100644 index 00000000..92704739 --- /dev/null +++ b/build/events.style.css @@ -0,0 +1 @@ +.rrze-calendar ul.events-list{background:none;margin:0;padding:0}.rrze-calendar ul.events-list li.event-item{align-items:flex-start;display:flex;flex-direction:row;gap:1em;list-style:none;margin-bottom:1em}.rrze-calendar ul.events-list .event-date{background:var(--color-primary-ci-hell,#036);color:var(--color-primary-ci-hell-kontrast,#fff);flex:0 0 60px;height:auto;line-height:1.5;margin:0;padding:.5em;text-align:center;width:auto}.rrze-2019 .rrze-calendar ul.events-list .event-date{background-color:#00458c}.rrze-calendar ul.events-list .event-date .day-month{float:none;height:auto;padding:0}.rrze-calendar ul.events-list .event-date .day-month .day{font-size:1.4rem;font-weight:700}.rrze-calendar ul.events-list .event-date .day-month .month{font-size:1rem}.rrze-calendar ul.events-list .event-title{font-size:1.1rem;line-height:1.5;margin-bottom:0;margin-top:0;padding-top:0}.rrze-calendar ul.events-list .event-title a{box-shadow:none;color:var(--color-Text,#222);text-decoration:none}.rrze-calendar ul.events-list .event-title a:active,.rrze-calendar ul.events-list .event-title a:focus,.rrze-calendar ul.events-list .event-title a:hover{text-decoration:underline}.rrze-calendar ul.events-list .event-location{word-break:break-word}.rrze-calendar ul.events-list-short{margin-left:0}.rrze-calendar ul.events-list-short li{list-style:none;margin-bottom:.5em}.rrze-calendar ul.events-list-short .event-date{background:unset;color:unset;display:inline;float:none;padding:0}.rrze-calendar ul.events-list-short .event-title{font-weight:700}.rrze-calendar ul.events-list-short .dashicons{color:#333;position:relative;top:2px}.rrze-calendar ul.events-list-short .dashicons.dashicons-clock{margin-left:.5em}.rrze-calendar a.standard-btn{margin-right:5px}.event-allday{text-transform:uppercase}.event-label{font-weight:700;margin:.5rem 0 .2rem}.single-calendar_event main{padding-left:15px;padding-right:15px}@media(min-width:768px){.single-calendar_event main{padding-left:0;padding-right:0}}.single-calendar_event .rrze-event{margin-top:20px}@media(min-width:1024px){.single-calendar_event .rrze-event{column-gap:var(--gap-width,30px);display:grid;grid-template-columns:1fr var(--min-width-aside,300px)}.single-calendar_event .rrze-event .entry-header{grid-column:1/span 2}.single-calendar_event .rrze-event-details{border-left:2px solid var(--color-primary-ci-hell2,#ced9e7);padding-left:15px}}.single-calendar_event .rrze-event-details h2{margin-top:0}.single-calendar_event .rrze-event-details p{margin-bottom:.5em}.single-calendar_event .rrze-event-details dd,.single-calendar_event .rrze-event-details dd *,.single-calendar_event .rrze-event-details dt,.single-calendar_event .rrze-event-details dt *{font-size:.875rem;line-height:1.313rem}.single-calendar_event .rrze-event-details dd{margin-bottom:1em;margin-left:0}.single-calendar_event .rrze-event-details dd p{margin:0;padding:0}.single-calendar_event .rrze-event-details ul.downloads{margin-left:0;overflow:hidden;padding-left:20px}.single-calendar_event .rrze-event-details div.prices{overflow:hidden}.single-calendar_event .rrze-event-details span.label{display:block;font-weight:700}@media(min-width:480px){.single-calendar_event .post-image{margin-top:0;max-width:50%}}@media(min-width:992px){.single-calendar_event .post-image{max-width:30%}}@media(min-width:480px){.single-calendar_event figure.post-thumbnail{float:right;margin:0 0 1em 1em}}.single-calendar_event figure.post-thumbnail .wp-caption-text{margin-bottom:0}@media(min-width:480px){.single-calendar_event figure.post-thumbnail{width:auto}}.single-calendar_event .rrze-event-schedule{margin-bottom:1em}.single-calendar_event .rrze-event-schedule .rrze-event-date,.single-calendar_event .rrze-event-schedule .rrze-event-location,.single-calendar_event .rrze-event-schedule .rrze-event-time{display:block}@media(min-width:768px){.single-calendar_event .rrze-event-schedule .rrze-event-date,.single-calendar_event .rrze-event-schedule .rrze-event-time{display:inline-block;margin-right:2em}}.single-calendar_event .rrze-event-schedule .rrze-event-location{margin-top:.5em}.single-calendar_event .rrze-event-schedule ul{margin-bottom:0;margin-left:0;padding-left:0}.single-calendar_event .rrze-event-schedule ul.cols-3{column-gap:20px;columns:300px 3;orphans:3;widows:3}.single-calendar_event .rrze-event-schedule ul li{list-style-type:none}.single-calendar_event .rrze-event-schedule ul li.past{filter:brightness(2);text-decoration:line-through}.single-calendar_event .rrze-event-schedule ul li .rrze-event-date{display:inline}.single-calendar_event .rrze-event-schedule .dashicons{color:#333;margin-right:5px;position:relative;top:2px}.single-calendar_event .rrze-event-description span.label{font-weight:700} From 564b05a3273a17131f9360405bc9ea59bf62cdea Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 15:59:52 +0100 Subject: [PATCH 02/21] Update composer.json --- composer.json | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/composer.json b/composer.json index 80d28d2c..f1085055 100644 --- a/composer.json +++ b/composer.json @@ -1,20 +1,10 @@ { - "name": "rrze/rrze-calendar", - "description": "RRZE WordPress Plugin", - "version": "2.0.13", - "type": "wordpress-plugin", - "license": "GPL", "require": { - "php": "^8.0.0", - "rrze/wp": "^1.2.2", + "php": "^8.1.0", "johngrogg/ics-parser": "^3.3.1", "rlanvin/php-rrule": "^2.4.1", "cmb2/cmb2": "^2.10.1" }, - "suggest": { - "ext-mbstring": "*", - "ext-intl": "*" - }, "autoload": { "psr-0": { "ICal": "src/" From 510c24a6ffdeb998dddd49ac4ed95c42f2b21297 Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 15:59:54 +0100 Subject: [PATCH 03/21] Delete gulpfile.js --- gulpfile.js | 42 ------------------------------------------ 1 file changed, 42 deletions(-) delete mode 100644 gulpfile.js diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100644 index ef4f5104..00000000 --- a/gulpfile.js +++ /dev/null @@ -1,42 +0,0 @@ -let gulp = require("gulp"); -let bump = require("gulp-bump"); -let semver = require("semver"); -let touch = require("gulp-touch-cmd"); -let info = require("./package.json"); - -// Major: 1.0.0 -gulp.task("major", async () => { - let v = semver.inc(info.version, "major"); - gulp.src(["./" + info.main, "./package.json"]) - .pipe(bump({ version: v })) - .pipe(gulp.dest("./")) - .pipe(touch()); -}); - -// Minor: 0.1.0 -gulp.task("minor", async () => { - let v = semver.inc(info.version, "minor"); - gulp.src(["./" + info.main, "./package.json"]) - .pipe(bump({ version: v })) - .pipe(gulp.dest("./")) - .pipe(touch()); -}); - -// Patch: 0.0.2 -gulp.task("patch", async () => { - let v = semver.inc(info.version, "patch"); - gulp.src(["./" + info.main, "./package.json"]) - .pipe(bump({ version: v })) - .pipe(gulp.dest("./")) - .pipe(touch()); -}); - -// Prerelease: 0.0.1-2 -gulp.task("prerelease", async () => { - let v = semver.inc(info.version, "prerelease"); - gulp.src(["./" + info.main, "./package.json"]) - .pipe(bump({ version: v })) - .pipe(gulp.dest("./")) - .pipe(touch()); -}); - From ff9bfb629606052d8f2afc623be45788681d6b41 Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:00:06 +0100 Subject: [PATCH 04/21] Update CalendarEvent.php --- includes/CPT/CalendarEvent.php | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/includes/CPT/CalendarEvent.php b/includes/CPT/CalendarEvent.php index 4e46bcd9..699ecccd 100644 --- a/includes/CPT/CalendarEvent.php +++ b/includes/CPT/CalendarEvent.php @@ -138,7 +138,12 @@ public static function eventFields() $cmb_info->add_field([ 'id' => 'ics-warning', 'type' => 'title', - 'description' => '
' . sprintf(__('%sThis event is generated by feed import%s. Changes will be overwritten by the next sync.', 'rrze-calendar'), '', '') . '
', + 'description' => '
' . sprintf( + /* translators: 1: , 2: . */ + __('%1$sThis event is generated by feed import.%2$s Changes will be overwritten by the next sync.', 'rrze-calendar'), + '', + '' + ) . '
', 'show_on_cb' => [__CLASS__, 'showOnFeedImportOnly'], ]); $cmb_info->add_field([ @@ -285,17 +290,17 @@ public static function eventFields() 'time_format' => 'H:i', 'attributes' => array( // CMB2 checks for datepicker override data here: - 'data-datepicker' => json_encode(array( - 'firstDay' => 1, - 'dayNames' => Utils::getDaysOfWeek('short'), - 'dayNamesMin' => Utils::getDaysOfWeek('min'), - 'monthNamesShort' => Utils::getMonthNames('short'), - 'yearRange' => '-1:+10', - 'dateFormat' => 'dd.mm.yy', - )), - 'data-timepicker' => json_encode(array( - 'timeFormat' => 'HH:mm', - )), + 'data-datepicker' => json_encode(array( + 'firstDay' => 1, + 'dayNames' => Utils::getDaysOfWeek('short'), + 'dayNamesMin' => Utils::getDaysOfWeek('min'), + 'monthNamesShort' => Utils::getMonthNames('short'), + 'yearRange' => '-1:+10', + 'dateFormat' => 'dd.mm.yy', + )), + 'data-timepicker' => json_encode(array( + 'timeFormat' => 'HH:mm', + )), ), 'classes' => ['repeat'], ]); @@ -687,8 +692,7 @@ public static function displayEventMain($data) echo ''; // Download ICS - echo do_shortcode('[button link=' . Export::makeIcsLink(['ids' => [get_the_ID()]]) . ']' . __('Add to calendar', 'rrze-calendar') . '[/button]' ); - + echo do_shortcode('[button link=' . Export::makeIcsLink(['ids' => [get_the_ID()]]) . ']' . __('Add to calendar', 'rrze-calendar') . '[/button]'); } public static function displayEventDetails($data) From ee962467b48b75d5bb2ffb3500e7d6b3f2038d5e Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:00:21 +0100 Subject: [PATCH 05/21] Update CalendarFeed.php --- includes/CPT/CalendarFeed.php | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/includes/CPT/CalendarFeed.php b/includes/CPT/CalendarFeed.php index 8b228230..8313f981 100644 --- a/includes/CPT/CalendarFeed.php +++ b/includes/CPT/CalendarFeed.php @@ -60,8 +60,9 @@ public static function init() // Transition Feed Status. add_action('transition_post_status', [__CLASS__, 'maybeDelete'], 10, 3); - // Update Feed Items. - add_action('save_post', [__CLASS__, 'save'], 10, 2); + + // Save Feed Items. + add_action('save_post', [__CLASS__, 'savePost'], 10, 2); // Add Metabox. Metabox::init(); @@ -443,15 +444,16 @@ public static function hidePublishingActions() public static function maybeDelete($newStatus, $oldStatus, $post) { + $postId = $post->ID; if ( $newStatus != 'publish' && $oldStatus == 'publish' - && self::POST_TYPE == get_post_type($post->ID) + && self::POST_TYPE == get_post_type($postId) ) { - Events::deleteData($post->ID); + self::deleteData($postId); } } - public static function save($postId, $post) + public static function savePost($postId, $post) { // Check the post type. if ($post->post_type != self::POST_TYPE) { @@ -477,6 +479,12 @@ public static function save($postId, $post) if (wp_is_post_revision($postId)) { return; } + + self::saveData($postId); + } + + private static function saveData($postId) + { $valuePastDays = get_post_meta($postId, CalendarFeed::FEED_PAST_DAYS, true); if ($valuePastDays == '') { $valuePastDays = 365; @@ -486,4 +494,9 @@ public static function save($postId, $post) Events::updateItems($postId, false, $valuePastDays); Events::insertData($postId); } + + private static function deleteData($postId) + { + Events::deleteData($postId); + } } From 406c1daa10e2467861fdce81494947b120f23efa Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:00:24 +0100 Subject: [PATCH 06/21] Update Events.php --- includes/ICS/Events.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/includes/ICS/Events.php b/includes/ICS/Events.php index c69606c2..f274fee5 100644 --- a/includes/ICS/Events.php +++ b/includes/ICS/Events.php @@ -20,6 +20,8 @@ public static function updateFeedsItems() if ($post->post_status == 'publish') { self::updateItems($post->ID); self::insertData($post->ID); + } else { + self::deleteStaleData($post->ID); } } } @@ -29,7 +31,7 @@ private static function getFeeds(array $postIn = []) $args = [ 'numberposts' => -1, 'post_type' => CalendarFeed::POST_TYPE, - 'post_status' => 'publish' + 'post_status' => ['publish', 'future', 'draft', 'pending', 'private', 'trash'] ]; if (!empty($postIn)) { $args = array_merge($args, ['post__in' => $postIn]); @@ -637,6 +639,11 @@ public static function insertData(int $postId) } } + private static function deleteStaleData(int $feedId) + { + self::deleteData($feedId); + } + public static function deleteData(int $feedId) { $metaKey = 'ics_feed_id'; From 874eb2b7123f5788f876854350662b2d95a49d1f Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:00:30 +0100 Subject: [PATCH 07/21] Update Export.php --- includes/ICS/Export.php | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/includes/ICS/Export.php b/includes/ICS/Export.php index 7cacf016..a211b1ee 100644 --- a/includes/ICS/Export.php +++ b/includes/ICS/Export.php @@ -5,6 +5,7 @@ defined('ABSPATH') || exit; use RRZE\Calendar\CPT\CalendarEvent; +use RRule\RRule; use function RRZE\Calendar\plugin; @@ -102,14 +103,29 @@ private function getEvents(array $posts) $data = []; foreach ($posts as $post) { $meta = get_post_meta($post->ID, '', true); - $data[$post->ID] = [ + $args = [ 'summary' => $post->post_title, 'uid' => $meta['event-uid'][0] ?? '', 'description' => $meta['description'][0] ?? '', 'dtstart' => get_gmt_from_date(date('Y-m-d H:i', $meta['start'][0]), 'Y-m-d H:i:s'), - 'dtend' => get_gmt_from_date(date('Y-m-d H:i', $meta['end'][0]), 'Y-m-d H:i:s'), + 'dtend' => !empty($meta['end'][0]) ? get_gmt_from_date(date('Y-m-d H:i', $meta['end'][0]), 'Y-m-d H:i:s') : '', 'location' => $meta['location'][0] ?? '', ]; + $icsMeta = !empty($meta['ics_event_meta'][0]) ? maybe_unserialize($meta['ics_event_meta'][0]) : null; + $rrule = !empty($icsMeta['rrule']) ? maybe_unserialize($icsMeta['rrule']) : null; + if (empty($rrule)) { + $rrule = !empty($meta['event-rrule-args'][0]) ? json_decode($meta['event-rrule-args'][0], true) : null; + if (!empty($rrule) && is_array($rrule)) { + $rruleObj = new RRule($rrule); + $rrule = $rruleObj->rfcString(); + $rruleStartPos = strpos($rrule, 'RRULE:'); + if ($rruleStartPos !== false) { + $rrule = substr($rrule, $rruleStartPos + strlen('RRULE:')); + } + } + } + $args['rrule'] = !empty($rrule) ? $rrule : ''; + $data[$post->ID] = $args; } return $data; } From 542a83572cc9c02b2876c59d4d3d16a36b64bcbe Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:00:34 +0100 Subject: [PATCH 08/21] Update ICS.php --- includes/ICS/ICS.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/includes/ICS/ICS.php b/includes/ICS/ICS.php index 28287dd2..109999e9 100644 --- a/includes/ICS/ICS.php +++ b/includes/ICS/ICS.php @@ -26,7 +26,8 @@ class ICS 'dtend', 'dtstart', 'location', - 'summary' + 'summary', + 'rrule' ]; /** @@ -63,6 +64,9 @@ private function setProps(array $props): array $properties = []; foreach ($props as $key => $value) { if (in_array($key, $this->availableProperties)) { + if (empty($value)) { + continue; + } $properties[$key] = $this->sanitizeValue($value, $key); } } From 7b5861b59419807d93a9af60f077d3e520023508 Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:00:38 +0100 Subject: [PATCH 09/21] Update Main.php --- includes/Main.php | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/includes/Main.php b/includes/Main.php index abbc66f5..7be8b687 100644 --- a/includes/Main.php +++ b/includes/Main.php @@ -55,17 +55,21 @@ public function adminEnqueueScripts() if (is_null($screen)) { return; } + if (in_array($screen->post_type, [CalendarEvent::POST_TYPE, CalendarFeed::POST_TYPE])) { wp_enqueue_style( 'rrze-calendar-admin', - plugins_url('build/admin.css', plugin()->getBasename()), + plugins_url('build/admin.style.css', plugin()->getBasename()), [], plugin()->getVersion(true) ); + + $assetFile = include(plugin()->getPath('build') . 'admin.asset.php'); + $assetFile['dependencies'] = array_merge($assetFile['dependencies'], ['wp-color-picker']); wp_enqueue_script( 'rrze-calendar-admin', plugins_url('build/admin.js', plugin()->getBasename()), - ['jquery', 'wp-color-picker'], + $assetFile['dependencies'], plugin()->getVersion(true) ); } @@ -75,14 +79,16 @@ public function wpEnqueueScripts() { wp_register_style( 'rrze-calendar-sc-calendar', - plugins_url('build/calendar.css', plugin()->getBasename()), + plugins_url('build/calendar.style.css', plugin()->getBasename()), [], plugin()->getVersion(true) ); + + $assetFile = include(plugin()->getPath('build') . 'calendar.asset.php'); wp_register_script( 'rrze-calendar-sc-calendar', plugins_url('build/calendar.js', plugin()->getBasename()), - ['jquery'], + $assetFile['dependencies'], plugin()->getVersion(true) ); wp_localize_script('rrze-calendar-sc-calendar', 'rrze_calendar_i18n', array( @@ -91,11 +97,12 @@ public function wpEnqueueScripts() )); wp_localize_script('rrze-calendar-sc-calendar', 'rrze_calendar_ajax', [ 'ajax_url' => admin_url('admin-ajax.php'), - 'nonce' => wp_create_nonce( 'rrze-calendar-ajax-nonce' ), + 'nonce' => wp_create_nonce('rrze-calendar-ajax-nonce'), ]); + wp_register_style( 'rrze-calendar-sc-events', - plugins_url('build/events.css', plugin()->getBasename()), + plugins_url('build/events.style.css', plugin()->getBasename()), [], plugin()->getVersion(true) ); From 1db834c8ff98930f5db67ede8a1fd58b1e52fd5a Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:01:54 +0100 Subject: [PATCH 10/21] Add Settings/Options lib --- includes/Options/Builder.php | 27 ++ includes/Options/Encryption.php | 102 ++++++ includes/Options/Error.php | 45 +++ includes/Options/Fields/ButtonLink.php | 10 + includes/Options/Fields/Checkbox.php | 20 ++ includes/Options/Fields/CheckboxMultiple.php | 22 ++ includes/Options/Fields/Choices.php | 10 + includes/Options/Fields/Field.php | 107 ++++++ includes/Options/Fields/Password.php | 24 ++ includes/Options/Fields/Select.php | 10 + includes/Options/Fields/SelectMultiple.php | 22 ++ includes/Options/Fields/Text.php | 10 + includes/Options/Fields/TextSecure.php | 28 ++ includes/Options/Fields/Textarea.php | 15 + includes/Options/Flash.php | 29 ++ includes/Options/Option.php | 107 ++++++ includes/Options/Section.php | 41 +++ includes/Options/Settings.php | 330 ++++++++++++++++++ includes/Options/Tab.php | 88 +++++ includes/Options/Template.php | 26 ++ includes/Options/Utils.php | 28 ++ includes/Options/Worker.php | 35 ++ .../Options/templates/fields/button-link.php | 23 ++ .../templates/fields/checkbox-multiple.php | 25 ++ .../Options/templates/fields/checkbox.php | 23 ++ includes/Options/templates/fields/choices.php | 27 ++ .../Options/templates/fields/password.php | 21 ++ .../templates/fields/select-multiple.php | 25 ++ includes/Options/templates/fields/select.php | 24 ++ .../Options/templates/fields/text-secure.php | 22 ++ includes/Options/templates/fields/text.php | 20 ++ .../Options/templates/fields/textarea.php | 20 ++ includes/Options/templates/section-menu.php | 13 + includes/Options/templates/section.php | 19 + includes/Options/templates/sections.php | 17 + includes/Options/templates/settings-page.php | 25 ++ includes/Options/templates/tab-menu.php | 11 + 37 files changed, 1451 insertions(+) create mode 100644 includes/Options/Builder.php create mode 100644 includes/Options/Encryption.php create mode 100644 includes/Options/Error.php create mode 100644 includes/Options/Fields/ButtonLink.php create mode 100644 includes/Options/Fields/Checkbox.php create mode 100644 includes/Options/Fields/CheckboxMultiple.php create mode 100644 includes/Options/Fields/Choices.php create mode 100644 includes/Options/Fields/Field.php create mode 100644 includes/Options/Fields/Password.php create mode 100644 includes/Options/Fields/Select.php create mode 100644 includes/Options/Fields/SelectMultiple.php create mode 100644 includes/Options/Fields/Text.php create mode 100644 includes/Options/Fields/TextSecure.php create mode 100644 includes/Options/Fields/Textarea.php create mode 100644 includes/Options/Flash.php create mode 100644 includes/Options/Option.php create mode 100644 includes/Options/Section.php create mode 100644 includes/Options/Settings.php create mode 100644 includes/Options/Tab.php create mode 100644 includes/Options/Template.php create mode 100644 includes/Options/Utils.php create mode 100644 includes/Options/Worker.php create mode 100644 includes/Options/templates/fields/button-link.php create mode 100644 includes/Options/templates/fields/checkbox-multiple.php create mode 100644 includes/Options/templates/fields/checkbox.php create mode 100644 includes/Options/templates/fields/choices.php create mode 100644 includes/Options/templates/fields/password.php create mode 100644 includes/Options/templates/fields/select-multiple.php create mode 100644 includes/Options/templates/fields/select.php create mode 100644 includes/Options/templates/fields/text-secure.php create mode 100644 includes/Options/templates/fields/text.php create mode 100644 includes/Options/templates/fields/textarea.php create mode 100644 includes/Options/templates/section-menu.php create mode 100644 includes/Options/templates/section.php create mode 100644 includes/Options/templates/sections.php create mode 100644 includes/Options/templates/settings-page.php create mode 100644 includes/Options/templates/tab-menu.php diff --git a/includes/Options/Builder.php b/includes/Options/Builder.php new file mode 100644 index 00000000..999f11cd --- /dev/null +++ b/includes/Options/Builder.php @@ -0,0 +1,27 @@ +enqueued[$handle] = $callback; + } + + public function remove($handle) + { + unset($this->enqueued[$handle]); + } + + public function enqueue() + { + foreach ($this->enqueued as $enqueue) { + $enqueue(); + } + } +} diff --git a/includes/Options/Encryption.php b/includes/Options/Encryption.php new file mode 100644 index 00000000..5ac10a75 --- /dev/null +++ b/includes/Options/Encryption.php @@ -0,0 +1,102 @@ +error = new \WP_Error; + $this->settings = $settings; + } + + public function getAll() + { + global $wp_settings_error; + + return $wp_settings_error[$this->settings->optionName] ?? false; + } + + public function get($key) + { + $errors = $this->getAll(); + + if (! is_wp_error($errors)) { + return; + } + + return $errors->get_error_message($key); + } + + public function add($key, $message) + { + global $wp_settings_error; + + $this->error->add($key, $message); + + $wp_settings_error[$this->settings->optionName] = $this->error; + } +} diff --git a/includes/Options/Fields/ButtonLink.php b/includes/Options/Fields/ButtonLink.php new file mode 100644 index 00000000..9d683bd9 --- /dev/null +++ b/includes/Options/Fields/ButtonLink.php @@ -0,0 +1,10 @@ +section = $section; + $this->args = $args; + } + + public function render() + { + return Template::include('fields/' . $this->template, ['option' => $this]); + } + + public function hasError() + { + return $this->section->tab->settings->errors->get($this->getArg('name')); + } + + public function sanitize($value) + { + return sanitize_text_field($value); + } + + public function validate($value) + { + return true; + } + + public function getArg($key, $fallback = null) + { + if (empty($this->args[$key])) { + return $fallback; + } + + if (is_callable($this->args[$key])) { + return $this->args[$key](); + } + + return $this->args[$key]; + } + + public function getLabel() + { + return esc_attr($this->getArg('label')); + } + + public function getIdAttribute() + { + return $this->getArg('id', sanitize_title(str_replace('[', '_', $this->getNameAttribute()))); + } + + public function getName() + { + return $this->getArg('name'); + } + + public function getPlaceholderAttribute() + { + $placeholder = $this->getArg('placeholder') ?? false; + return $placeholder ?: null; + } + + public function getCss() + { + return $this->getArg('css', []); + } + + public function getInputClassAttribute() + { + $class = $this->getCss()['input_class'] ?? null; + + return !empty($class) ? esc_attr($class) : null; + } + + public function getLabelClassAttribute() + { + $class = $this->getCss()['label_class'] ?? null; + + return !empty($class) ? esc_attr($class) : null; + } + + public function getNameAttribute() + { + return $this->section->tab->settings->optionName . '[' . $this->getArg('name') . ']'; + } + + public function getValueAttribute() + { + $value = get_option($this->section->tab->settings->optionName)[$this->getArg('name')] ?? false; + + return $value ? $value : $this->args['default'] ?? null; + } +} diff --git a/includes/Options/Fields/Password.php b/includes/Options/Fields/Password.php new file mode 100644 index 00000000..4fb89c2e --- /dev/null +++ b/includes/Options/Fields/Password.php @@ -0,0 +1,24 @@ +section->tab->settings->optionName)[$this->getArg('name')] ?? false; + + return $value ? Encryption::decrypt($value) : null; + } + + public function sanitize($value) + { + return Encryption::encrypt($value); + } +} diff --git a/includes/Options/Fields/Select.php b/includes/Options/Fields/Select.php new file mode 100644 index 00000000..b9ba5f8a --- /dev/null +++ b/includes/Options/Fields/Select.php @@ -0,0 +1,10 @@ +section->tab->settings->optionName)[$this->getArg('name')] ?? false; + + return $value ? Encryption::decrypt($value) : null; + } + + public function sanitize($value) + { + if (false !== stripos($value, '***')) { + $value = $this->getValueAttribute(); + } + $value = sanitize_text_field($value); + return Encryption::encrypt($value); + } +} diff --git a/includes/Options/Fields/Textarea.php b/includes/Options/Fields/Textarea.php new file mode 100644 index 00000000..a5e98fad --- /dev/null +++ b/includes/Options/Fields/Textarea.php @@ -0,0 +1,15 @@ +settings = $settings; + } + + public function has() + { + global $wp_settings_flash; + + return $wp_settings_flash[$this->settings->optionName] ?? null; + } + + public function set($status, $message) + { + global $wp_settings_flash; + + $wp_settings_flash[$this->settings->optionName] = compact('status', 'message'); + } +} diff --git a/includes/Options/Option.php b/includes/Options/Option.php new file mode 100644 index 00000000..463f2442 --- /dev/null +++ b/includes/Options/Option.php @@ -0,0 +1,107 @@ +section = $section; + $this->type = $type; + $this->args = $args; + + $typeMap = [ + 'text' => Text::class, + 'checkbox' => Checkbox::class, + 'checkbox-multiple' => CheckboxMultiple::class, + 'choices' => Choices::class, + 'textarea' => Textarea::class, + 'password' => Password::class, + 'select' => Select::class, + 'select-multiple' => SelectMultiple::class, + 'text-secure' => TextSecure::class, + 'button-link' => ButtonLink::class + ]; + + $this->implementation = new $typeMap[$this->type]($section, $args); + } + + public function getArg($key, $fallback = null) + { + return $this->args[$key] ?? $fallback; + } + + public function sanitize($value) + { + if (is_callable($this->getArg('sanitize'))) { + return $this->getArg('sanitize')($value); + } + + return $this->implementation->sanitize($value); + } + + public function validate($value) + { + if (is_array($this->getArg('validate'))) { + foreach ($this->getArg('validate') as $validate) { + if (!is_callable($validate['callback'])) { + continue; + } + + $valid = $validate['callback']($value); + + if (!$valid) { + $this->section->tab->settings->errors->add($this->getArg('name'), $validate['feedback']); + + return false; + } + } + + return true; + } + + if (is_callable($this->getArg('validate'))) { + return $this->getArg('validate')($value); + } + + return $this->implementation->validate($value); + } + + public function render() + { + if (is_callable($this->getArg('visible')) && $this->getArg('visible')() === false) { + return; + } + + if (is_callable($this->getArg('render'))) { + echo $this->getArg('render')($this->implementation); + + return; + } + + echo $this->implementation->render(); + } +} diff --git a/includes/Options/Section.php b/includes/Options/Section.php new file mode 100644 index 00000000..dd3f8610 --- /dev/null +++ b/includes/Options/Section.php @@ -0,0 +1,41 @@ +tab = $tab; + $this->title = $title; + $this->args = $args; + $this->slug = $this->args['slug'] ?? sanitize_title($title); + $this->description = $this->args['description'] ?? null; + $this->as_link = $this->args['as_link'] ?? false; + } + + public function addOption($type, $args = []) + { + $option = new Option($this, $type, $args); + + $this->options[] = $option; + + return $option; + } +} diff --git a/includes/Options/Settings.php b/includes/Options/Settings.php new file mode 100644 index 00000000..54624636 --- /dev/null +++ b/includes/Options/Settings.php @@ -0,0 +1,330 @@ +title = $title; + $this->optionName = strtolower(str_replace('-', '_', sanitize_title($this->title))); + $this->slug = $slug; + + if ($this->slug === null) { + $this->slug = sanitize_title($title); + } + } + + public function setMenuParentSlug($slug) + { + $this->parentSlug = $slug; + return $this; + } + + public function setMenuTitle($title) + { + $this->menuTitle = $title; + return $this; + } + + public function getMenuTitle() + { + return $this->menuTitle ?? $this->title; + } + + public function setCapability($capability) + { + $this->capability = $capability; + return $this; + } + + public function setOptionName($name) + { + $this->optionName = $name; + return $this; + } + + public function setMenuIcon($icon) + { + $this->menuIcon = $icon; + return $this; + } + + public function setMenuPosition($position) + { + $this->menuPosition = $position; + return $this; + } + + public function addToMenu() + { + if ($this->parentSlug) { + add_submenu_page( + $this->parentSlug, + $this->title, + $this->getMenuTitle(), + $this->capability, + $this->slug, + [$this, 'render'], + $this->menuPosition + ); + } else { + add_menu_page( + $this->title, + $this->getMenuTitle(), + $this->capability, + $this->slug, + [$this, 'render'], + $this->menuIcon, + $this->menuPosition + ); + } + } + + public function build() + { + $this->errors = new Error($this); + $this->flash = new Flash($this); + + add_action('admin_init', [$this, 'save'], 20); + add_action('admin_menu', [$this, 'addToMenu'], 20); + add_action('admin_head', [$this, 'styling'], 20); + } + + public function isOnSettingsPage() + { + $screen = get_current_screen(); + if (is_null($screen)) { + return false; + } + + if ($screen->base === 'settings_page_' . $this->slug) { + return true; + } + + return false; + } + + public function styling() + { + if (!$this->isOnSettingsPage()) { + return; + } + + echo ''; + } + + public function getTabBySlug($slug) + { + foreach ($this->tabs as $tab) { + if ($tab->slug === $slug) { + return $tab; + } + } + + return false; + } + + public function getActiveTab() + { + $default = $this->tabs[0] ?? false; + + if (isset($_GET['tab'])) { + return in_array($_GET['tab'], array_map(function ($tab) { + return $tab->slug; + }, $this->tabs)) ? $this->getTabBySlug($_GET['tab']) : $default; + } + + return $default; + } + + public function addTab($title, $slug = null) + { + $tab = new Tab($this, $title, $slug); + + $this->tabs[] = $tab; + + return $tab; + } + + public function addSection($title, $args = []) + { + if (empty($this->tabs)) { + $tab = $this->addTab('Unnamed tab'); + } else { + $tab = end($this->tabs); + } + + return $tab->addSection($title, $args); + } + + public function addOption($type, $args = []) + { + $tab = end($this->tabs); + + if (!$tab instanceof Tab) { + return false; + } + + $section = end($tab->sections); + + if (!$section instanceof Section) { + return false; + } + + return $section->addOption($type, $args); + } + + public function shouldMakeTabs() + { + return count($this->tabs) > 1; + } + + public function getUrl() + { + if ($this->parentSlug && strpos($this->parentSlug, '.php') !== false) { + return add_query_arg('page', $this->slug, admin_url($this->parentSlug)); + } + + return admin_url("admin.php?page=$this->slug"); + } + + public function getFullUrl() + { + $params = []; + + if ($active_tab = $this->getActiveTab()) { + $params['tab'] = $active_tab->slug; + + if ($active_section = $active_tab->getActiveSection()) { + $params['section'] = $active_section->slug; + } + } + + return add_query_arg($params, $this->getUrl()); + } + + public function renderTabMenu() + { + if (!$this->shouldMakeTabs()) { + return; + } + + Template::include('tab-menu', ['settings' => $this]); + } + + public function renderActiveSections() + { + Template::include('sections', ['settings' => $this]); + } + + public function render() + { + Worker::setBuilder(new Builder); + + Worker::enqueue(); + + Template::include('settings-page', ['settings' => $this]); + } + + public function save() + { + if ( + !isset($_POST['rrze_calendar_settings_save']) + || !wp_verify_nonce( + $_POST['rrze_calendar_settings_save'], + 'rrze_calendar_settings_save_' . $this->optionName + ) + ) { + return; + } + + if (!current_user_can($this->capability)) { + wp_die(__('You do not have enough permissions to do that.', 'rrze-calendar')); + } + + $currentOptions = $this->getOptions(); + $submittedOptions = $_POST[$this->optionName] ?? []; + $newOptions = $currentOptions; + + foreach ($this->getActiveTab()->getActiveSections() as $section) { + foreach ($section->options as $option) { + $value = $submittedOptions[$option->implementation->getName()] ?? null; + + $valid = $option->validate($value); + + if (!$valid) { + continue; + } + + $value = $option->sanitize($value); + + $newOptions[$option->implementation->getName()] = $value; + } + } + + $this->updateOptions($newOptions); + + $this->flash->set('success', __('Settings saved.', 'rrze-calendar')); + } + + public function defaultOptions() + { + $options = []; + foreach ($this->tabs as $tab) { + foreach ($tab->sections as $section) { + foreach ($section->options as $option) { + $options[$option->args['name']] = $option->args['default'] ?? null; + } + } + } + + return $options; + } + + public function getOptions() + { + $defaults = $this->defaultOptions(); + $options = get_option($this->optionName, []); + $options = wp_parse_args($options, $defaults); + $options = array_intersect_key($options, $defaults); + + return $options; + } + + public function getOption($option) + { + $options = $this->getOptions(); + return $options[$option] ?? null; + } + + public function updateOptions($options) + { + update_option($this->optionName, $options); + do_action('rrze_calendar_post_update_option', $options); + } +} diff --git a/includes/Options/Tab.php b/includes/Options/Tab.php new file mode 100644 index 00000000..54531262 --- /dev/null +++ b/includes/Options/Tab.php @@ -0,0 +1,88 @@ +title = $title; + $this->settings = $settings; + + if ($this->slug === null) { + $this->slug = sanitize_title($title); + } + } + + public function addSection($title, $args = []) + { + $section = new Section($this, $title, $args); + + $this->sections[] = $section; + + return $section; + } + + public function getSectionLinks() + { + return array_filter($this->sections, function ($section) { + return $section->as_link; + }); + } + + public function containsOnlySectionLinks() + { + return count($this->getSectionLinks()) === count($this->sections); + } + + public function getSectionByName($name) + { + foreach ($this->sections as $section) { + if ($section->slug == $name) { + return $section; + } + } + + return false; + } + + public function getActiveSection() + { + if (empty($this->getSectionLinks())) { + return; + } + + if (isset($_REQUEST['section'])) { + return $this->getSectionByName($_REQUEST['section']); + } + + if ($this->containsOnlySectionLinks()) { + return $this->sections[0]; + } + } + + public function getActiveSections() + { + if (!isset($_REQUEST['section']) && $this->containsOnlySectionLinks()) { + return [$this->sections[0]]; + } + + return \array_filter($this->sections, function ($section) { + if (isset($_REQUEST['section'])) { + return $section->as_link && $_REQUEST['section'] == $section->slug; + } + + return !$section->as_link; + }); + } +} diff --git a/includes/Options/Template.php b/includes/Options/Template.php new file mode 100644 index 00000000..5a1858d4 --- /dev/null +++ b/includes/Options/Template.php @@ -0,0 +1,26 @@ + $value) { + ${$name} = $value; + } + + $path = __DIR__ . "/templates/{$file}.php"; + if (!file_exists($path)) { + return; + } + + ob_start(); + + include $path; + + echo ob_get_clean(); + } +} diff --git a/includes/Options/Utils.php b/includes/Options/Utils.php new file mode 100644 index 00000000..27fc9c41 --- /dev/null +++ b/includes/Options/Utils.php @@ -0,0 +1,28 @@ + 0 && $count <= $hint) { + $value = str_pad($value, $count, '*', STR_PAD_LEFT); + } elseif ($count > $hint) { + $substr = substr($value, -$hint); + $value = str_pad($substr, $count, '*', STR_PAD_LEFT); + } + return $value; + } +} diff --git a/includes/Options/Worker.php b/includes/Options/Worker.php new file mode 100644 index 00000000..c74e9bc1 --- /dev/null +++ b/includes/Options/Worker.php @@ -0,0 +1,35 @@ +add($handle, $callback); + } + + public function remove($handle) + { + static::builder()->remove($handle); + } + + public static function enqueue() + { + static::builder()->enqueue(); + } +} diff --git a/includes/Options/templates/fields/button-link.php b/includes/Options/templates/fields/button-link.php new file mode 100644 index 00000000..bdcffabb --- /dev/null +++ b/includes/Options/templates/fields/button-link.php @@ -0,0 +1,23 @@ + + + + + + + + + getArg('text')); ?> + + getArg('description')) { ?> +

+ + hasError()) { ?> +
+ + + \ No newline at end of file diff --git a/includes/Options/templates/fields/checkbox-multiple.php b/includes/Options/templates/fields/checkbox-multiple.php new file mode 100644 index 00000000..147ceb8e --- /dev/null +++ b/includes/Options/templates/fields/checkbox-multiple.php @@ -0,0 +1,25 @@ + + + getLabel(); ?> + +
+ Standardeinstellungen für Beiträge + getArg('options', []) as $key => $label) : ?> +
+ + getArg('description')) : ?> +

+ hasError()) : ?> +
+ + +
+ + \ No newline at end of file diff --git a/includes/Options/templates/fields/checkbox.php b/includes/Options/templates/fields/checkbox.php new file mode 100644 index 00000000..4fe14eec --- /dev/null +++ b/includes/Options/templates/fields/checkbox.php @@ -0,0 +1,23 @@ + + + + + + + + + + + hasError()) { ?> +
+ + + \ No newline at end of file diff --git a/includes/Options/templates/fields/choices.php b/includes/Options/templates/fields/choices.php new file mode 100644 index 00000000..49d0242f --- /dev/null +++ b/includes/Options/templates/fields/choices.php @@ -0,0 +1,27 @@ + + + + + + + getArg('options', []) as $key => $label) { ?> +
+ +
+ + getArg('description')) { ?> +

+ + hasError()) { ?> +
+ + + \ No newline at end of file diff --git a/includes/Options/templates/fields/password.php b/includes/Options/templates/fields/password.php new file mode 100644 index 00000000..f28c3066 --- /dev/null +++ b/includes/Options/templates/fields/password.php @@ -0,0 +1,21 @@ + + + + + + + + getArg('description')) { ?> +

+ + hasError()) { ?> +
+ + + \ No newline at end of file diff --git a/includes/Options/templates/fields/select-multiple.php b/includes/Options/templates/fields/select-multiple.php new file mode 100644 index 00000000..c60031d8 --- /dev/null +++ b/includes/Options/templates/fields/select-multiple.php @@ -0,0 +1,25 @@ + + + + + + + + getArg('description')) { ?> +

+ + + hasError()) { ?> +
+ + + \ No newline at end of file diff --git a/includes/Options/templates/fields/select.php b/includes/Options/templates/fields/select.php new file mode 100644 index 00000000..e763d262 --- /dev/null +++ b/includes/Options/templates/fields/select.php @@ -0,0 +1,24 @@ + + + + + + + + getArg('description')) { ?> +

+ + hasError()) { ?> +
+ + + \ No newline at end of file diff --git a/includes/Options/templates/fields/text-secure.php b/includes/Options/templates/fields/text-secure.php new file mode 100644 index 00000000..1ab177f0 --- /dev/null +++ b/includes/Options/templates/fields/text-secure.php @@ -0,0 +1,22 @@ +getValueAttribute()); +?> + + + + + + + getArg('description')) { ?> +

+ + hasError()) { ?> +
+ + + \ No newline at end of file diff --git a/includes/Options/templates/fields/text.php b/includes/Options/templates/fields/text.php new file mode 100644 index 00000000..ee7a6c25 --- /dev/null +++ b/includes/Options/templates/fields/text.php @@ -0,0 +1,20 @@ + + + + + + + + getArg('description')) { ?> +

+ + hasError()) { ?> +
+ + + \ No newline at end of file diff --git a/includes/Options/templates/fields/textarea.php b/includes/Options/templates/fields/textarea.php new file mode 100644 index 00000000..8e56e038 --- /dev/null +++ b/includes/Options/templates/fields/textarea.php @@ -0,0 +1,20 @@ + + + + + + + + getArg('description')) { ?> +

+ + hasError()) { ?> +
+ + + \ No newline at end of file diff --git a/includes/Options/templates/section-menu.php b/includes/Options/templates/section-menu.php new file mode 100644 index 00000000..7df7487b --- /dev/null +++ b/includes/Options/templates/section-menu.php @@ -0,0 +1,13 @@ + +getActiveTab()->getSectionLinks()) { ?> + + \ No newline at end of file diff --git a/includes/Options/templates/section.php b/includes/Options/templates/section.php new file mode 100644 index 00000000..66b4c8e8 --- /dev/null +++ b/includes/Options/templates/section.php @@ -0,0 +1,19 @@ + +

title; ?>

+ +description) { ?> +
description; ?>
+ + + + + options as $option) { ?> + render(); ?> + + +
\ No newline at end of file diff --git a/includes/Options/templates/sections.php b/includes/Options/templates/sections.php new file mode 100644 index 00000000..0564bfec --- /dev/null +++ b/includes/Options/templates/sections.php @@ -0,0 +1,17 @@ + +
+ + + getActiveTab()->getActiveSections() as $section) { ?> + + + + optionName, 'rrze_calendar_settings_save'); ?> + + +
\ No newline at end of file diff --git a/includes/Options/templates/settings-page.php b/includes/Options/templates/settings-page.php new file mode 100644 index 00000000..0c287add --- /dev/null +++ b/includes/Options/templates/settings-page.php @@ -0,0 +1,25 @@ + +
+

title; ?>

+ + flash->has()) { ?> +
+

+
+ + + errors->getAll()) { ?> +
+

+
+ + + renderTabMenu(); ?> + + renderActiveSections(); ?> +
\ No newline at end of file diff --git a/includes/Options/templates/tab-menu.php b/includes/Options/templates/tab-menu.php new file mode 100644 index 00000000..7f32dbbf --- /dev/null +++ b/includes/Options/templates/tab-menu.php @@ -0,0 +1,11 @@ + + \ No newline at end of file From 65e093f0a8e679d9efb208b1ca2c6b23dfba2cbb Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:02:02 +0100 Subject: [PATCH 11/21] Create Plugin.php --- includes/Plugin.php | 204 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 204 insertions(+) create mode 100644 includes/Plugin.php diff --git a/includes/Plugin.php b/includes/Plugin.php new file mode 100644 index 00000000..5aa91d76 --- /dev/null +++ b/includes/Plugin.php @@ -0,0 +1,204 @@ +pluginFile = $pluginFile; + } + + /** + * loaded method + */ + public function loaded() + { + $this->setBasename() + ->setDirectory() + ->setUrl() + ->setVersion(); + } + + /** + * getFile method + * Get the full path and filename of the plugin. + * @return string The full path and filename. + */ + public function getFile(): string + { + return $this->pluginFile; + } + + /** + * getBasename method + * Get the basename of the plugin. + * @return string The basename. + */ + public function getBasename(): string + { + return $this->basename; + } + + /** + * setBasename method + * Set the basename of the plugin. + * @return object This Plugin object. + */ + public function setBasename(): object + { + $this->basename = plugin_basename($this->pluginFile); + return $this; + } + + /** + * getDirectory method + * Get the filesystem directory path (with trailing slash) for the plugin. + * @return string The filesystem directory path. + */ + public function getDirectory(): string + { + return $this->directory; + } + + /** + * setDirectory method + * Set the filesystem directory path (with trailing slash) for the plugin. + * @return object This Plugin object. + */ + public function setDirectory(): object + { + $this->directory = rtrim(plugin_dir_path($this->pluginFile), DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR; + return $this; + } + + /** + * getPath method + * Get the filesystem directory path (with trailing slash) for the plugin. + * @param string $path The path name. + * @return string The filesystem directory path. + */ + public function getPath(string $path = ''): string + { + return $this->directory . ($path ? trim($path, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR : ''); + } + + /** + * getUrl method + * Get the URL directory path (with trailing slash) for the plugin. + * @param string $path The path name. + * @return string The URL directory path. + */ + public function getUrl(string $path = ''): string + { + return $this->url . ($path ? trim($path, '/') . '/' : ''); + } + + /** + * setUrl method + * Set the URL directory path (with trailing slash) for the plugin. + * @return object This Plugin object. + */ + public function setUrl(): object + { + $this->url = rtrim(plugin_dir_url($this->pluginFile), '/') . '/'; + return $this; + } + + /** + * getSlug method + * Get the slug of the plugin. + * @return string The slug. + */ + public function getSlug(): string + { + return sanitize_title(dirname($this->basename)); + } + + /** + * getVersion method + * Get the version of the plugin. + * @return string The version. + */ + public function getVersion(): string + { + if (defined('WP_DEBUG') && WP_DEBUG) { + return bin2hex(random_bytes(4)); + } + return $this->version; + } + + /** + * getVersion method + * Set the version of the plugin. + * @return object This Plugin object. + */ + public function setVersion(): object + { + $headers = ['Version' => 'Version']; + $fileData = get_file_data($this->pluginFile, $headers, 'plugin'); + if (isset($fileData['Version'])) { + $this->version = $fileData['Version']; + }; + return $this; + } + + /** + * __call method + * Method overloading. + */ + public function __call(string $name, array $arguments) + { + if (!method_exists($this, $name)) { + $message = sprintf('Call to undefined method %1$s::%2$s', __CLASS__, $name); + do_action( + 'rrze.log.error', + $message, + [ + 'class' => __CLASS__, + 'method' => $name, + 'arguments' => $arguments + ] + ); + if (defined('WP_DEBUG') && WP_DEBUG) { + throw new \Exception($message); + } + } + } +} From 2495830ee0bd9acaf45ad32eb0831c2135df8f90 Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:02:07 +0100 Subject: [PATCH 12/21] Update Settings.php --- includes/Settings.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/Settings.php b/includes/Settings.php index 55ccf4d6..35fa6490 100644 --- a/includes/Settings.php +++ b/includes/Settings.php @@ -4,7 +4,7 @@ defined('ABSPATH') || exit; -use RRZE\WP\Settings\Settings as RRZEWPSettings; +use RRZE\Calendar\Options\Settings as OptionsSettings; class Settings { @@ -14,7 +14,7 @@ class Settings public function __construct() { - $this->settings = new RRZEWPSettings(__('Calendar Settings', 'rrze-calendar'), 'rrze-calendar'); + $this->settings = new OptionsSettings(__('Calendar Settings', 'rrze-calendar'), 'rrze-calendar'); $this->settings->setCapability('manage_options') ->setOptionName(self::OPTION_NAME) From 51b34c1bdf793aaeb71542b9d3eba810f06330cd Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:02:19 +0100 Subject: [PATCH 13/21] Update lang files --- languages/rrze-calendar-de_DE.mo | Bin 10952 -> 11591 bytes languages/rrze-calendar-de_DE.po | 1141 +++++++++++------------ languages/rrze-calendar-de_DE_formal.mo | Bin 9346 -> 11601 bytes languages/rrze-calendar-de_DE_formal.po | 475 +++++----- languages/rrze-calendar.pot | 810 ++++++++-------- 5 files changed, 1253 insertions(+), 1173 deletions(-) diff --git a/languages/rrze-calendar-de_DE.mo b/languages/rrze-calendar-de_DE.mo index f091e70c071f337ceb15173c3b210ac65dea6f45..69cff09247b3670caf85439bc8f950517725ed32 100644 GIT binary patch delta 4045 zcmYk;eQ;FO9meq!l0eu1A`pV1h8xKXA=xDa2ogb?7>c4u2qc6Tshi}ItdQMgUjmJ# zi#Cc1N@#*2qFAg_r6Yf&1uGFd;|Q%UZKkyyW}MX8X)R?Ofig~CsM_zdd(zQOv+Lu3oRqfTkd6}HAl9TC^D*x6a3N((FlHi-#VpLhOf18DaWOi05Y^-q zX5bmT9)E-5@e@=(7jXre>*&LnxVeW+3FSEQ&m7}27Ej?Ad2ey0;)#0CT9Da@( z@G5G+G)7VVsp!KzWKE{l+JI@4H)1N|8$TH}aB(trpjOy}nn*9I!9i5L!>9?oimCWI zcH$szMjx}N!~J+Op2rHzo0ObLBU06D!tso6LS!`H4jhe-p$6(jcFR0#eHAs4pW{?K zjhf)^u>(IwEufZ*+O?ntiXfX~dXOrnAE)3^j1y*%iz*JGCh!SrOV6XW__FmY)PR|^ z-hx?Jgb$(ye8u`Ys@+*sKOZ7Z%`oaHE~Ae2pHtX>Rs5P8>UbPan95U8E1ikzcoyD( z3sDnYg)}iusE2kNYJh&!0)C8YcN}$8r%^lnKC0e1)Wkl^V*l0P3tREOs0n!3Uri_* zbrgB1`=zJ}EJBXeEJwB9h}z<2RK18T??kP%7uC-J>x-xfycQ>;8JLqThxj_ zLUsIwH9b2yfh^Qk79w*trKlaN#zI_%4hFFR_uBH$@OH|7zy^%xOk*3#bYcm9i0VkA zYk+jr)@7nrnvI%Jt}Xje6Ig&+z+I@7Hlh~Rj9O_Ys$Ms0=X#MNjGH55v_&UT1H6Tr zz!~)6dpHySgEwMsPVy;Uj5^DesAr)W)owegpB<I?Wj>gX{j&8n)WdlKHSif^lgtpZ z$>wv^c$qv`5M3rZt8qTp+V+Q4V z)LCvqeVV&b6WNVAqGwPmJ!#9ssQOniUGIN(adJgBq8iRcy>7Rm&UPK@ndq|j_u`$D zU%_>F1zlV*o3=QBY4}%6#|x;5T|)JrQj%QgbvTLfO(7XR$7T^~rK?a!;YT&xhMD*% zYKQvm{bRN~h-10`JJi+>qb6_x^##3%8aTH!xnrfM@fKh_gUkvt>YxENGFymm5iP_lLTPi7#PtrY_Y+mb)5LC_ztZ=Um>$%Y?ICpb z6$D?;#ALvPbs^Oe+8I3;TH#KD#hE9GNm$BHgb1ZIc6@U;g)(9n zv5-)Dh`5E&_hCK3$ICoIj3W*c`9vXch|qZ|tssgMIb&M!QQ{zRlz4(r+DptMHW2aW zxvV1eAH;S-uh`>+(gR7%KC95XucXhh9!`A|mJ>=pBs@f$3Z#399}qtxzDf9r)x?X$ zcL~0@@x)&v z2t9;6Qi=aH%TePe(qgW9gH-{E=pDBaY|<%UF-KNhXeVKwnA(QW$HdlrtGo8Pz3Q&zp$iiZeQ)RDaD?<{lV6lzt#1wasBO;PF>ylrOsNnDN5=8zg05Zz5~-Xls9^p zxj{GVkA}jPPHo6-2}GTFzWKg#PouXc)b0-iE1ht-+x0g4x4OX=f7sLai=1hFZ|2O? zhFr?IWmI|oK*{tYsRO^xeQV6^O9R13)ZMx@#=dlfLrq)Vc2*kR;tvL+K2sBLooi~i zL1$Ym+ybp`q{9s~x4B_fzNc_|N5dZ)H delta 3419 zcmY+^e{9tC9mnwxv_M<1j%sDjQojXSitYD$cdg`hwKAaM7a9FZ(5|9F?ZF?`z4CIsW)OCm*RJECq9G@ zzK49wQaWq!8eERo;}sY~t+N4d!$FK1Q!tbOelJFF9JQw@>rt$x{v=ir-#kr06Hee&_y;5h^C~KlGpGsgp~js@ zC2$d|u!hPwF2lWe0Jq~in7~B6G3#+0mB`OfCvhCFAikNQpnxyoV*D#A&>7@o{$;(0 zN~D%!x(4e}3ASPpyHFdLLe2XPD$ona$Gpl{1D?aH@gpp0!ZJo_pu?9Eh@p-&fo#%j zw0;v6a2W4K57**pRKQQHHQa;dtw61_1{KFeoxn!a)!w?C^Vh)JY0$!Vq3U~4I}K0^ zPvW(B5Q$-ag4)5aQ4j4YRDg4+4SbB6_c?M4rk-u`!Ywpt-~cLt zU8sacQCBf;+rNWK;6Y?#v}8dIq)5Kdm3468LY4f&wogElq4h zb*w@y*ntYzi#oai)N8mMbwXKe!+q%BVQj?{w*Cfgrv4f3z^`#^d+-tLz|utuTBwax z6`%ukR58@f`cR4V+xiglF~fW*;c?W?4xl#jAZi1TARjZumrm*#)Rn!6I*~V#^-Ja* z3QFL8T#X;#N^Im2=Wt9nlDyf1T3{Dyd;yhUh)Vq1*88jnZT}&3=s%1up0NFIV~yVb zcPS|I3#hd|i*vqt-o(_v3ln9$Z&B zv9i?r{}=`B@aL$f{5jN4U&CR1A8*F5^Qh}C58{{cPpAOrP*-pPHSdzGH;}#BSE8=8 z9d$K5s0914qyf7rY{V>TXU9+je`V{xMK)+=aQ5j&Zppl2>wibREgz!hUqU5V)m+(F z6Y9#M_$c0phwZp%cA4ffu$54TPhr~1|kI9FMY~dtU(eOIzS$GR|lowD7eT)jQa82c{xDxdX zw+i)8#%y~6^^|Wz-SNHHijN{om>E>yw^8#-pHR?1jnc#9piU%$N@OeQ=y#(gc&KqX zR6_ev57$9kFQXEkLcPAnQ0qL08h09b(af936_(7uDQG9vZIwH{3N>-Hbv^2cx1z3Q zJL(rPk4mJ3x}rn2{};H3`YBZ4mr&!*qTa6asH?19t7m}wZ=;}&4Y(C|;!b=5J-mc5 z%(Pb?s)tblj-V2mLIrplwX+%22L6KlB$#(m59@+;m7`ydnzt6065k{!Xkx$Z7`F8s z*3y1I>ZlK4H6B3){4v(xQ>Z}C*!rKbmilX`M9-oU_y=nKN2qz9VQDdiMK@ILco{m> zuSOSdL@kiPIvm4V3{eXnu=O9H68aHp;iI?&e`$Tzw$Gqxjjais);M3T)7o8LQQubH zP`|dSHHb{#T|Ztky?DhR7fxTi_V)`)o6|WjKa%$AwtK~bAG)^%qhllPriszO9V#T9 zY#0`UWLMWc1%IUIdqEH>_@iCHL{Wpgin)o=v3!^B@Aury7YhyEKICrpy>vKM$h-aN z&`Ub;XuR8vCfsOzDAtpV$CKSX9nokq8m%kOT-SJKw;PMP@g65eQ-TiK2hu_44*BVP zkV}UJKj~~r`+L%U+SybHvmV{~(TVh^=MH)4eMzU^n+StUcCI<;jCiU3Tgoj>!==I8 zgrCm2TMGWZAnD{unQG7%?{zB0zV^J+(&xn1_14|#4i>zTvC!S--Kz};17ks$bW*9_ zl-HX|tb472yc-g3IxG!f%%@!-8W{Z=h*?{v~+msHxVmizwoydISw+a(} z#@n1t`+>)X?-<(RCg{D@%X@z1_y-D^!ra4U4K_e!z`$*^%{; zo?hpkqPsp4kMzVZ3*)8zOm>jyZuI}-&v(S=h?Jjd8Yq9-)H|J6`FPa=r@YbWoL<~g VUQ#~X+&F!q{nEne=FW8s{s;Nd>0JN- diff --git a/languages/rrze-calendar-de_DE.po b/languages/rrze-calendar-de_DE.po index d91e128d..bc44069f 100644 --- a/languages/rrze-calendar-de_DE.po +++ b/languages/rrze-calendar-de_DE.po @@ -1,761 +1,758 @@ +# Copyright (C) 2024 RRZE-Webteam +# This file is distributed under the GNU General Public License v3.0. msgid "" msgstr "" -"Project-Id-Version: RRZE Calendar\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/rrze-calendar\n" -"POT-Creation-Date: 2023-08-02T14:22:34+00:00\n" -"PO-Revision-Date: 2023-10-24 10:08+0000\n" -"Last-Translator: Barbara Bothe\n" -"Language-Team: Deutsch\n" -"Language: de_DE\n" +"Project-Id-Version: RRZE Autoshare\n" +"POT-Creation-Date: 2024-01-30T17:02:49+00:00\n" +"PO-Revision-Date: 2024-02-06 10:47+0100\n" +"Last-Translator: \n" +"Language-Team: RRZE Webteam\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" -"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;" -"esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" -"X-Poedit-Basepath: .\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Generator: Loco https://localise.biz/\n" -"X-Loco-Version: 2.6.4; wp-6.2.2\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPath-1: ..\n" - -#. 1: Start date, 2: Start time, 3: End time. -#: includes/Shortcodes/Shortcode.php:96 includes/Shortcodes/Shortcode.php:189 -#, php-format -msgid "%1$s %2$s - %3$s" -msgstr "%1$s %2$s Uhr bis %3$s Uhr" - -#. 1: Start date, 2: Start time, 3: End date, 4: End time. -#: includes/Shortcodes/Shortcode.php:85 includes/Shortcodes/Shortcode.php:185 -#, php-format -msgid "%1$s %2$s - %3$s %4$s" -msgstr "%1$s %2$s Uhr bis %3$s %4$s Uhr" - -#. 1: Start date, 2: End date. -#: includes/Shortcodes/Shortcode.php:76 includes/Shortcodes/Shortcode.php:181 -#, php-format -msgid "%1$s - %2$s" -msgstr "%1$s bis %2$s" - -#: includes/CPT/CalendarEvent.php:141 -#, php-format -msgid "" -"%sThis event is generated by feed import%s. Changes will be overwritten by " -"the next sync." -msgstr "" -"%sDiese Veranstaltung wurde durch einen ICS-Feed generiert.%s Änderungen " -"werden bei der nächsten Synchronisierung überschrieben." - -#: includes/CPT/CalendarEvent.php:281 -msgid "(optional)" -msgstr "(optional)" +"X-Generator: Poedit 3.4.2\n" +"X-Domain: rrze-calendar\n" -#: includes/CPT/CalendarEvent.php:191 -msgid "(Time settings will be ignored.)" -msgstr "(Zeitangaben werden ignoriert.)" +#. Plugin Name of the plugin +msgid "RRZE Calendar" +msgstr "RRZE Kalender" -#: includes/CPT/CalendarFeed.php:339 -msgid "Activate" -msgstr "Aktivieren" +#. Plugin URI of the plugin +msgid "https://github.com/RRZE-Webteam/rrze-calendar" +msgstr "https://github.com/RRZE-Webteam/rrze-calendar" -#: includes/CPT/CalendarFeed.php:338 -msgid "Activate ICS Feed" -msgstr "ICS-Feed aktivieren" +#. Description of the plugin +msgid "Import and output of FAU public events." +msgstr "Import und Ausgabe öffentlicher Veranstaltungen der FAU." -#: includes/CPT/CalendarEvent.php:413 -msgid "" -"Add additional dates (format YYYY-MM-DD, e.g. 2023-12-31). One date per line." -msgstr "" -"Zusätzliche Termine hinzufügen (Format YYYY-MM-DD, z.B. 2023-12-31). Ein " -"Datum pro Zeile." +#. Author of the plugin +msgid "RRZE Webteam" +msgstr "RRZE-Webteam" -#: includes/Shortcodes/Events.php:303 -msgid "Add all events of this category to your calendar" -msgstr "Alle Veranstaltungen dieser Kategorie zum Kalender hinzufügen" +#. Author URI of the plugin +msgid "https://blogs.fau.de/webworking/" +msgstr "https://blogs.fau.de/webworking/" -#: includes/Shortcodes/Events.php:310 -msgid "Add all events of this tag to your calendar" -msgstr "Alle Veranstaltungen mit diesem Schlagwort zum Kalender hinzufügen" +#: includes/CPT/CalendarEvent.php:54 +msgctxt "post type general name" +msgid "Events" +msgstr "Veranstaltungen" -#: includes/CPT/CalendarEvent.php:59 -msgid "Add New Event" -msgstr "Veranstaltung hinzufügen" +#: includes/CPT/CalendarEvent.php:55 +msgctxt "post type singular name" +msgid "Event" +msgstr "Veranstaltung" -#: includes/CPT/CalendarFeed.php:78 -msgid "Add New ICS Feed" -msgstr "Neuen Feed erstellen" +#: includes/CPT/CalendarEvent.php:56 +msgctxt "admin menu" +msgid "Calendar" +msgstr "Kalender" #: includes/CPT/CalendarEvent.php:57 msgctxt "add new on admin bar" msgid "Calendar Event" msgstr "Veranstaltung" -#: includes/CPT/CalendarFeed.php:76 -msgctxt "add new on admin bar" -msgid "ICS Feed" -msgstr "ICS-Feed" - -#: includes/CPT/CalendarEvent.php:690 includes/Shortcodes/Events.php:293 -#: includes/Shortcodes/Calendar.php:350 includes/Shortcodes/Calendar.php:692 -msgid "Add to calendar" -msgstr "Zum Kalender hinzufügen" - -#: includes/CPT/CalendarEvent.php:412 -msgid "Additions" -msgstr "Zusatztermine" - #: includes/CPT/CalendarEvent.php:58 msgctxt "admin menu" msgid "Add New" msgstr "Veranstaltung erstellen" -#: includes/CPT/CalendarEvent.php:56 -msgctxt "admin menu" -msgid "Calendar" -msgstr "Kalender" - -#: includes/CPT/CalendarFeed.php:75 -msgctxt "admin menu" -msgid "ICS Feeds" -msgstr "ICS-Feeds" +#: includes/CPT/CalendarEvent.php:59 +msgid "Add New Event" +msgstr "Veranstaltung hinzufügen" -#: includes/CPT/CalendarEvent.php:605 includes/Shortcodes/Shortcode.php:69 -#: includes/Shortcodes/Shortcode.php:176 includes/Shortcodes/Calendar.php:326 -#: includes/Shortcodes/Calendar.php:549 -msgid "All Day" -msgstr "Ganztägig" +#: includes/CPT/CalendarEvent.php:60 +msgid "New Event" +msgstr "Neue Veranstaltung" -#: includes/CPT/CalendarEvent.php:626 -msgid "All day" -msgstr "Ganztägig" +#: includes/CPT/CalendarEvent.php:61 +msgid "Edit Event" +msgstr "Veranstaltung bearbeiten" -#: includes/CPT/CalendarEvent.php:191 -msgid "All day event" -msgstr "Ganztägig" +#: includes/CPT/CalendarEvent.php:62 +msgid "View Event" +msgstr "Veranstaltung ansehen" #: includes/CPT/CalendarEvent.php:63 msgid "All Events" msgstr "Alle Veranstaltungen" -#: includes/Settings.php:30 -msgid "Archive Slug" -msgstr "Archiv-Slug" +#: includes/CPT/CalendarEvent.php:64 includes/ICS/Metabox.php:204 +msgid "Search Events" +msgstr "Veranstaltungen durchsuchen" -#: includes/Settings.php:21 -msgid "Calendar" -msgstr "Kalender" +#: includes/CPT/CalendarEvent.php:65 +msgid "Parent Events:" +msgstr "Übergeordnete Veranstaltungen:" -#: includes/Settings.php:17 -msgid "Calendar Settings" -msgstr "Einstellungen › Kalender" +#: includes/CPT/CalendarEvent.php:66 includes/ICS/Events.php:46 +msgid "No events found." +msgstr "Keine Veranstaltungen gefunden." -#: includes/CPT/CalendarEvent.php:785 includes/CPT/CalendarFeed.php:119 -msgid "Categories" -msgstr "Kategorien" +#: includes/CPT/CalendarEvent.php:67 +msgid "No events found in Trash." +msgstr "Keine Veranstaltungen im Papierkorb gefunden." -#: includes/Settings.php:50 -msgid "Choose the recurrence to check for new events." -msgstr "Wiederholung auswählen, um nach neuen Veranstaltungen zu suchen." +#: includes/CPT/CalendarEvent.php:92 +msgctxt "Taxonomy general name" +msgid "Event Categories" +msgstr "Veranstaltungs-Kategorien" -#: includes/CPT/CalendarFeed.php:211 includes/CPT/CalendarFeed.php:221 -#: includes/CPT/CalendarFeed.php:244 -msgid "Color" -msgstr "Farbe" +#: includes/CPT/CalendarEvent.php:93 +msgctxt "Taxonomy singular name" +msgid "Event Category" +msgstr "Veranstaltungs-Kategorie" -#: includes/Settings.php:54 -msgid "Daily" -msgstr "Täglich" +#: includes/CPT/CalendarEvent.php:109 +msgctxt "Taxonomy general name" +msgid "Event Tags" +msgstr "Veranstaltungs-Schlagwörter" -#: includes/CPT/CalendarEvent.php:352 includes/CPT/CalendarEvent.php:655 -#: includes/CPT/CalendarEvent.php:664 includes/CPT/CalendarEvent.php:703 -#: includes/CPT/CalendarEvent.php:782 includes/ICS/EventsListTable.php:63 -msgid "Date" -msgstr "Datum" +#: includes/CPT/CalendarEvent.php:110 +msgctxt "Taxonomy singular name" +msgid "Event Tag" +msgstr "Veranstaltungs-Schlagwort" -#: includes/Shortcodes/Calendar.php:213 -msgid "Day" -msgstr "Tag" +#: includes/CPT/CalendarEvent.php:132 +msgid "General Information" +msgstr "Allgemeine Informationen" -#: includes/CPT/CalendarFeed.php:355 -msgid "Deactivate" -msgstr "Deaktivieren" +#. translators: 1: , 2: . +#: includes/CPT/CalendarEvent.php:143 +msgid "" +"%1$sThis event is generated by feed import.%2$s Changes will be overwritten " +"by the next sync." +msgstr "" +"%1$sDiese Veranstaltung wurde durch einen ICS-Feed generiert.%2$s Änderungen " +"werden bei der nächsten Synchronisierung überschrieben." -#: includes/CPT/CalendarFeed.php:354 -msgid "Deactivate ICS Feed" -msgstr "ICS-Feed deaktivieren" +#: includes/CPT/CalendarEvent.php:150 +msgid "Start" +msgstr "Start" + +#: includes/CPT/CalendarEvent.php:173 +msgid "End" +msgstr "Ende" + +#: includes/CPT/CalendarEvent.php:196 +msgid "All day event" +msgstr "Ganztägig" + +#: includes/CPT/CalendarEvent.php:196 +msgid "(Time settings will be ignored.)" +msgstr "(Zeitangaben werden ignoriert.)" -#: includes/CPT/CalendarEvent.php:196 includes/ICS/EventsListTable.php:65 +#: includes/CPT/CalendarEvent.php:201 includes/ICS/EventsListTable.php:65 msgid "Description" msgstr "Beschreibung" -#: includes/CPT/CalendarEvent.php:239 includes/CPT/CalendarEvent.php:728 -msgid "Downloads" -msgstr "Downloads" +#: includes/CPT/CalendarEvent.php:210 includes/CPT/CalendarEvent.php:665 +#: includes/CPT/CalendarEvent.php:673 includes/CPT/CalendarEvent.php:714 +#: includes/CPT/CalendarEvent.php:788 includes/ICS/EventsListTable.php:66 +msgid "Location" +msgstr "Ort" -#: includes/CPT/CalendarEvent.php:347 -msgid "Each" -msgstr "Jeder" +#: includes/CPT/CalendarEvent.php:221 +msgid "VC URL" +msgstr "Videokonferenz-URL" -#: includes/CPT/CalendarEvent.php:367 includes/CPT/CalendarEvent.php:376 -msgid "each" -msgstr "jedem" +#: includes/CPT/CalendarEvent.php:227 includes/CPT/CalendarEvent.php:722 +msgid "Prices" +msgstr "Preise" -#: includes/CPT/CalendarEvent.php:61 -msgid "Edit Event" -msgstr "Veranstaltung bearbeiten" +#: includes/CPT/CalendarEvent.php:238 +msgid "Registration URL" +msgstr "Link zur Anmeldung" -#: includes/CPT/CalendarFeed.php:80 -msgid "Edit ICS Feed" -msgstr "ICS-Feed bearbeiten" +#: includes/CPT/CalendarEvent.php:244 includes/CPT/CalendarEvent.php:732 +msgid "Downloads" +msgstr "Downloads" -#: includes/CPT/CalendarEvent.php:168 -msgid "End" -msgstr "Ende" +#: includes/CPT/CalendarEvent.php:263 +msgid "Featured Event" +msgstr "Hervorgehobene Veranstaltung" -#: includes/ICS/Metabox.php:86 -msgid "" -"Enter a string to exclude events from importing. Events containing this " -"string in the title will not be imported." -msgstr "" -"Geben Sie ein oder mehrere Wörter ein, um Veranstaltungen vom Import " -"auszuschließen. Veranstaltungen mit diesem Text im Titel werden nicht " -"importiert. " +#: includes/CPT/CalendarEvent.php:272 +msgid "Repeating Event" +msgstr "Wiederholungen" -#: includes/ICS/Metabox.php:79 -msgid "" -"Enter a string to filter the import. Only events containing this string in " -"the title will be imported." -msgstr "" -"Geben Sie ein oder mehrere Wörter ein, um nur diese Veranstaltungen zu " -"importieren. Nur Veranstaltungen mit diesem Text im Titel werden importiert." +#: includes/CPT/CalendarEvent.php:279 +msgid "Repeat" +msgstr "Wiederholen" -#: includes/CPT/CalendarEvent.php:405 -msgid "" -"Enter dates to be skipped (format YYYY-MM-DD, e.g. 2023-12-31). One date per " -"line." -msgstr "" -"Hier können Sie Tage angeben, an denen die Veranstaltung ausnahmsweise " -"ausfällt (Format YYYY-MM-DD, z.B. 2023-12-31). Ein Datum pro Zeile." +#: includes/CPT/CalendarEvent.php:285 +msgid "Repeat until" +msgstr "Wiederholen bis" -#: includes/Settings.php:31 -msgid "Enter the archive slug that will display the event list." -msgstr "Geben Sie den Archiv-Slug ein, der die Veranstaltungsliste anzeigt." +#: includes/CPT/CalendarEvent.php:286 +msgid "(optional)" +msgstr "(optional)" -#: includes/ICS/Metabox.php:65 -msgid "Enter the url of the ICS feed. This field is required." -msgstr "Die URL des ICS-Feeds eingeben. Dieses Feld ist erforderlich." +#: includes/CPT/CalendarEvent.php:308 +msgid "Repeat Interval" +msgstr "Wiederholungsintervall" -#: includes/ICS/EventsListTable.php:15 -msgid "Event" -msgstr "Veranstaltung" +#: includes/CPT/CalendarEvent.php:314 +msgid "Weekly" +msgstr "Wöchentlich" -#: includes/CPT/CalendarEvent.php:743 -msgid "Event Categories" -msgstr "Veranstaltungskategorien" +#: includes/CPT/CalendarEvent.php:315 +msgid "Monthly" +msgstr "Monatlich" -#: includes/CPT/CalendarEvent.php:700 -msgid "Event Details" -msgstr "Details" +#: includes/CPT/CalendarEvent.php:321 +msgid "Repeats" +msgstr "Wiederholt sich" -#: includes/CPT/CalendarEvent.php:419 -msgid "Event Items" -msgstr "Termine" +#: includes/CPT/CalendarEvent.php:330 +msgid "every" +msgstr "alle" -#: includes/Settings.php:25 includes/CPT/CalendarFeed.php:121 -#: includes/ICS/Metabox.php:34 includes/ICS/EventsListTable.php:16 -#: templates/cpt/archive-event.php:30 templates/cpt/archive-event.php:32 -#: templates/cpt/themes/rrze/archive-event.php:31 -#: templates/cpt/themes/fau/archive-event.php:30 -#: templates/cpt/themes/fau/archive-event.php:32 -msgid "Events" -msgstr "Veranstaltungen" - -#: includes/Settings.php:32 -msgid "events" -msgstr "veranstaltungen" - -#: includes/CPT/CalendarEvent.php:325 -msgid "every" -msgstr "alle" +#: includes/CPT/CalendarEvent.php:331 +msgid "week(s)" +msgstr "Woche(n)" -#: includes/CPT/CalendarEvent.php:404 -msgid "Exceptions" -msgstr "Ausnahmen" +#: includes/CPT/CalendarEvent.php:335 includes/CPT/CalendarEvent.php:367 +#: includes/CPT/CalendarEvent.php:377 +msgid "Repeats on" +msgstr "Wiederholt sich an" -#: includes/CPT/CalendarFeed.php:201 includes/ICS/Metabox.php:83 -#: includes/ICS/Metabox.php:85 -msgid "Exclude Events" -msgstr "Veranstaltungen ausschließen" +#: includes/CPT/CalendarEvent.php:352 +msgid "Each" +msgstr "Jeder" -#: includes/CPT/CalendarEvent.php:258 -msgid "Featured Event" -msgstr "Hervorgehobene Veranstaltung" +#: includes/CPT/CalendarEvent.php:357 includes/CPT/CalendarEvent.php:660 +#: includes/CPT/CalendarEvent.php:669 includes/CPT/CalendarEvent.php:707 +#: includes/CPT/CalendarEvent.php:786 includes/ICS/EventsListTable.php:63 +msgid "Date" +msgstr "Datum" -#: includes/CPT/CalendarEvent.php:787 includes/ICS/Metabox.php:25 -msgid "Feed" -msgstr "Feed" +#: includes/CPT/CalendarEvent.php:358 +msgid "Weekday" +msgstr "Wochentag" -#: includes/ICS/Metabox.php:194 -msgid "Feed URL is not valid." -msgstr "Die Feed-URL ist ungültig." +#: includes/CPT/CalendarEvent.php:372 includes/CPT/CalendarEvent.php:381 +msgid "each" +msgstr "jedem" -#: includes/CPT/CalendarFeed.php:181 -msgid "Feed URL." -msgstr "Feed-URL." +#: includes/CPT/CalendarEvent.php:373 includes/CPT/CalendarEvent.php:382 +msgid "of month" +msgstr "des Monats" -#: includes/CPT/CalendarEvent.php:480 -msgid "fifth" -msgstr "fünften" +#: includes/CPT/CalendarEvent.php:400 +msgid "Repeats in" +msgstr "Wiederholt sich im" -#: includes/CPT/CalendarEvent.php:476 -msgid "first" -msgstr "ersten" +#: includes/CPT/CalendarEvent.php:409 +msgid "Exceptions" +msgstr "Ausnahmen" -#: includes/ICS/Metabox.php:72 -#| msgid "" -#| "For how many days in the past events are imported? Older events are " -#| "deleted from the website." +#: includes/CPT/CalendarEvent.php:410 msgid "" -"For how many days in the past events are imported (max: 365, min:30)? Older " -"events are deleted from the website." +"Enter dates to be skipped (format YYYY-MM-DD, e.g. 2023-12-31). One date per " +"line." msgstr "" -"Bis wieviele Tage rückwirkend sollen Veranstaltungen importiert werden (max: " -"365, min: 30)? Ältere Veranstaltungen werden von der Website gelöscht." - -#: includes/CPT/CalendarEvent.php:479 -msgid "fourth" -msgstr "vierten" +"Hier können Sie Tage angeben, an denen die Veranstaltung ausnahmsweise " +"ausfällt (Format YYYY-MM-DD, z.B. 2023-12-31). Ein Datum pro Zeile." -#: includes/CPT/CalendarEvent.php:132 -msgid "General Information" -msgstr "Allgemeine Informationen" +#: includes/CPT/CalendarEvent.php:417 +msgid "Additions" +msgstr "Zusatztermine" -#: includes/Shortcodes/Calendar.php:298 -msgid "Go to next day" -msgstr "Zum nächsten Tag wechseln" +#: includes/CPT/CalendarEvent.php:418 +msgid "" +"Add additional dates (format YYYY-MM-DD, e.g. 2023-12-31). One date per line." +msgstr "" +"Zusätzliche Termine hinzufügen (Format YYYY-MM-DD, z.B. 2023-12-31). Ein " +"Datum pro Zeile." -#: includes/Shortcodes/Calendar.php:461 -msgid "Go to next month" -msgstr "Zum nächsten Monat wechseln" +#: includes/CPT/CalendarEvent.php:424 +msgid "Event Items" +msgstr "Termine" -#: includes/Shortcodes/Calendar.php:268 -msgid "Go to next year" -msgstr "Zum nächsten Jahr wechseln" +#: includes/CPT/CalendarEvent.php:481 +msgid "first" +msgstr "ersten" -#: includes/Shortcodes/Calendar.php:295 -msgid "Go to previous day" -msgstr "Zum vorherigen Tag wechseln" +#: includes/CPT/CalendarEvent.php:482 +msgid "second" +msgstr "zweiten" -#: includes/Shortcodes/Calendar.php:458 -msgid "Go to previous month" -msgstr "Zum vorherigen Monat wechseln" +#: includes/CPT/CalendarEvent.php:483 +msgid "third" +msgstr "dritten" -#: includes/Shortcodes/Calendar.php:265 -msgid "Go to previous year" -msgstr "Zum vorherigen Jahr wechseln" +#: includes/CPT/CalendarEvent.php:484 +msgid "fourth" +msgstr "vierten" -#: includes/Main.php:89 -msgid "Hide past events" -msgstr "Vergangene Termine ausblenden" +#: includes/CPT/CalendarEvent.php:485 +msgid "fifth" +msgstr "fünften" -#: includes/Settings.php:52 -msgid "Hourly" -msgstr "Stündlich" +#: includes/CPT/CalendarEvent.php:534 +msgid "Maximum +/- 1 year." +msgstr "Maximal +/- 1 Jahr." -#. Author URI of the plugin -msgid "https://blogs.fau.de/webworking/" -msgstr "https://blogs.fau.de/webworking/" +#: includes/CPT/CalendarEvent.php:572 includes/Shortcodes/Events.php:197 +#: includes/Shortcodes/Events.php:203 +msgid "Online" +msgstr "Online" -#. URI of the plugin -msgid "https://github.com/RRZE-Webteam/rrze-calendar" -msgstr "https://github.com/RRZE-Webteam/rrze-calendar" +#: includes/CPT/CalendarEvent.php:610 includes/Shortcodes/Calendar.php:326 +#: includes/Shortcodes/Calendar.php:549 includes/Shortcodes/Shortcode.php:69 +#: includes/Shortcodes/Shortcode.php:176 +msgid "All Day" +msgstr "Ganztägig" -#: includes/Settings.php:26 -msgid "ICS Feed" -msgstr "ICS-Feed" +#: includes/CPT/CalendarEvent.php:631 +msgid "All day" +msgstr "Ganztägig" -#: includes/ICS/Metabox.php:62 -msgid "ICS Feed URL" -msgstr "ICS-Feed-URL" +#: includes/CPT/CalendarEvent.php:664 includes/CPT/CalendarEvent.php:672 +#: includes/CPT/CalendarEvent.php:710 +msgid "Time" +msgstr "Zeit" -#: includes/ICS/Metabox.php:64 -msgid "ICS Feed Url" -msgstr "ICS-Feed-URL" +#: includes/CPT/CalendarEvent.php:695 includes/Shortcodes/Calendar.php:350 +#: includes/Shortcodes/Calendar.php:692 includes/Shortcodes/Events.php:297 +msgid "Add to calendar" +msgstr "Zum Kalender hinzufügen" -#: includes/CPT/CalendarFeed.php:82 includes/CPT/CalendarFeed.php:91 -msgid "ICS Feeds" -msgstr "ICS-Feeds" +#: includes/CPT/CalendarEvent.php:704 +msgid "Event Details" +msgstr "Details" -#: includes/Settings.php:44 -msgid "" -"If the same event (i.e. same title, date and location) is present in " -"multiple feeds, only show one of them." -msgstr "" -"Wenn dieselbe Veranstaltung (d.h. gleicher Titel, Zeit und Ort) in mehreren " -"Feed vorhanden ist, diese nur einmal anzeigen." +#: includes/CPT/CalendarEvent.php:717 +msgid "Video Conference Link" +msgstr "Link zur Videokonferenz" -#. Description of the plugin -msgid "Import and output of FAU public events." -msgstr "Import und Ausgabe öffentlicher Veranstaltungen der FAU." +#: includes/CPT/CalendarEvent.php:727 +msgid "Registration" +msgstr "Anmeldung" -#: includes/CPT/CalendarFeed.php:191 includes/ICS/Metabox.php:76 -#: includes/ICS/Metabox.php:78 -msgid "Include Events" -msgstr "Veranstaltungen einschließen" +#: includes/CPT/CalendarEvent.php:747 +msgid "Event Categories" +msgstr "Veranstaltungskategorien" -#: includes/CPT/CalendarFeed.php:375 -msgid "Invalid access" -msgstr "Unzulässiger Zugriff" +#: includes/CPT/CalendarEvent.php:787 includes/ICS/EventsListTable.php:64 +msgid "Recurrence" +msgstr "Wiederholung" -#: includes/CPT/CalendarFeed.php:122 -msgid "Last Updated" -msgstr "Letzte Aktualisierung" +#: includes/CPT/CalendarEvent.php:789 includes/CPT/CalendarFeed.php:120 +msgid "Categories" +msgstr "Kategorien" -#: includes/CPT/CalendarEvent.php:205 includes/CPT/CalendarEvent.php:660 -#: includes/CPT/CalendarEvent.php:668 includes/CPT/CalendarEvent.php:710 -#: includes/CPT/CalendarEvent.php:784 includes/ICS/EventsListTable.php:66 -msgid "Location" -msgstr "Ort" +#: includes/CPT/CalendarEvent.php:790 includes/CPT/CalendarFeed.php:121 +msgid "Tags" +msgstr "Schlagwörter" -#: includes/Utils.php:828 includes/ICS/Events.php:323 -msgid "m-d-Y" -msgstr "d.m.Y" +#: includes/CPT/CalendarEvent.php:791 includes/ICS/Metabox.php:25 +msgid "Feed" +msgstr "Feed" -#: includes/CPT/CalendarEvent.php:529 -msgid "Maximum +/- 1 year." -msgstr "Maximal +/- 1 Jahr." +#: includes/CPT/CalendarFeed.php:74 +msgctxt "post type general name" +msgid "ICS Feeds" +msgstr "ICS-Feeds" -#: includes/Shortcodes/Calendar.php:214 -msgid "Month" -msgstr "Monat" +#: includes/CPT/CalendarFeed.php:75 +msgctxt "post type singular name" +msgid "ICS Feed" +msgstr "ICS-Feed" -#: includes/CPT/CalendarEvent.php:310 -msgid "Monthly" -msgstr "Monatlich" +#: includes/CPT/CalendarFeed.php:76 +msgctxt "admin menu" +msgid "ICS Feeds" +msgstr "ICS-Feeds" -#: includes/Shortcodes/Calendar.php:580 -msgid "More…" -msgstr "Mehr…" +#: includes/CPT/CalendarFeed.php:77 +msgctxt "add new on admin bar" +msgid "ICS Feed" +msgstr "ICS-Feed" -#: includes/CPT/CalendarEvent.php:60 -msgid "New Event" -msgstr "Neue Veranstaltung" +#: includes/CPT/CalendarFeed.php:78 +msgctxt "popup" +msgid "Add New" +msgstr "Erstellen" #: includes/CPT/CalendarFeed.php:79 +msgid "Add New ICS Feed" +msgstr "Neuen Feed erstellen" + +#: includes/CPT/CalendarFeed.php:80 msgid "New ICS Feed" msgstr "Neuer ICS-Feed" -#: includes/Shortcodes/Calendar.php:268 includes/Shortcodes/Calendar.php:298 -#: includes/Shortcodes/Calendar.php:461 -msgid "Next" -msgstr "Weiter" +#: includes/CPT/CalendarFeed.php:81 +msgid "Edit ICS Feed" +msgstr "ICS-Feed bearbeiten" -#: includes/Shortcodes/Shortcode.php:51 -msgid "No description" -msgstr "Keine Beschreibung" +#: includes/CPT/CalendarFeed.php:82 +msgid "View ICS Feed" +msgstr "ICS-Feed ansehen" -#: includes/CPT/CalendarEvent.php:67 -msgid "No events found in Trash." -msgstr "Keine Veranstaltungen im Papierkorb gefunden." +#: includes/CPT/CalendarFeed.php:83 includes/CPT/CalendarFeed.php:92 +msgid "ICS Feeds" +msgstr "ICS-Feeds" -#: includes/CPT/CalendarEvent.php:66 includes/ICS/Events.php:44 -msgid "No events found." -msgstr "Keine Veranstaltungen gefunden." +#: includes/CPT/CalendarFeed.php:84 +msgid "Search Feeds" +msgstr "Feed durchsuchen" -#: includes/Shortcodes/Events.php:286 includes/Shortcodes/Events.php:324 -msgid "No events scheduled." -msgstr "Keine bevorstehenden Veranstaltungen." +#: includes/CPT/CalendarFeed.php:85 +msgid "Parent Feeds:" +msgstr "Eltern-Feeds:" #: includes/CPT/CalendarFeed.php:86 -msgid "No ics feeds found in Trash." -msgstr "Keine Feeds im Papierkorb gefunden." - -#: includes/CPT/CalendarFeed.php:85 msgid "No ics feeds found." msgstr "Keine Feeds gefunden." -#: includes/CPT/CalendarEvent.php:368 includes/CPT/CalendarEvent.php:377 -msgid "of month" -msgstr "des Monats" +#: includes/CPT/CalendarFeed.php:87 +msgid "No ics feeds found in Trash." +msgstr "Keine Feeds im Papierkorb gefunden." -#: includes/CPT/CalendarEvent.php:567 includes/Shortcodes/Events.php:193 -#: includes/Shortcodes/Events.php:199 -msgid "Online" -msgstr "Online" +#: includes/CPT/CalendarFeed.php:122 includes/ICS/EventsListTable.php:16 +#: includes/ICS/Metabox.php:34 includes/Settings.php:25 +#: templates/cpt/archive-event.php:30 templates/cpt/archive-event.php:32 +#: templates/cpt/themes/fau-events/archive-event.php:22 +#: templates/cpt/themes/fau/archive-event.php:30 +#: templates/cpt/themes/fau/archive-event.php:32 +#: templates/cpt/themes/rrze/archive-event.php:31 +msgid "Events" +msgstr "Veranstaltungen" -#: includes/CPT/CalendarEvent.php:65 -msgid "Parent Events:" -msgstr "Übergeordnete Veranstaltungen:" +#: includes/CPT/CalendarFeed.php:123 +msgid "Last Updated" +msgstr "Letzte Aktualisierung" -#: includes/CPT/CalendarFeed.php:84 -msgid "Parent Feeds:" -msgstr "Eltern-Feeds:" - -#: includes/ICS/Metabox.php:69 includes/ICS/Metabox.php:71 -msgid "Past Events" -msgstr "Vergangene Veranstaltungen" - -#. 1: The plugin name, 2: The error string. -#: rrze-calendar.php:87 rrze-calendar.php:158 -#, php-format -msgid "Plugins: %1$s: %2$s" -msgstr "Plugins: %1$s: %2$s" - -#: includes/CPT/CalendarFeed.php:77 -msgctxt "popup" -msgid "Add New" -msgstr "Erstellen" - -#: includes/CPT/CalendarEvent.php:54 -msgctxt "post type general name" -msgid "Events" -msgstr "Veranstaltungen" - -#: includes/CPT/CalendarFeed.php:73 -msgctxt "post type general name" -msgid "ICS Feeds" -msgstr "ICS-Feeds" - -#: includes/CPT/CalendarEvent.php:55 -msgctxt "post type singular name" -msgid "Event" -msgstr "Veranstaltung" +#: includes/CPT/CalendarFeed.php:182 +msgid "Feed URL." +msgstr "Feed-URL." -#: includes/CPT/CalendarFeed.php:74 -msgctxt "post type singular name" -msgid "ICS Feed" -msgstr "ICS-Feed" +#: includes/CPT/CalendarFeed.php:192 includes/ICS/Metabox.php:76 +#: includes/ICS/Metabox.php:78 +msgid "Include Events" +msgstr "Veranstaltungen einschließen" -#: includes/Shortcodes/Calendar.php:265 includes/Shortcodes/Calendar.php:295 -#: includes/Shortcodes/Calendar.php:458 -msgid "Previous" -msgstr "Zurück" +#: includes/CPT/CalendarFeed.php:202 includes/ICS/Metabox.php:83 +#: includes/ICS/Metabox.php:85 +msgid "Exclude Events" +msgstr "Veranstaltungen ausschließen" -#: includes/CPT/CalendarEvent.php:222 includes/CPT/CalendarEvent.php:718 -msgid "Prices" -msgstr "Preise" +#: includes/CPT/CalendarFeed.php:212 includes/CPT/CalendarFeed.php:222 +#: includes/CPT/CalendarFeed.php:245 +msgid "Color" +msgstr "Farbe" -#: includes/Shortcodes/Calendar.php:607 includes/Shortcodes/Calendar.php:664 -msgid "Read more" -msgstr "Weiterlesen" +#: includes/CPT/CalendarFeed.php:339 +msgid "Activate ICS Feed" +msgstr "ICS-Feed aktivieren" -#: includes/CPT/CalendarEvent.php:783 includes/ICS/EventsListTable.php:64 -msgid "Recurrence" -msgstr "Wiederholung" +#: includes/CPT/CalendarFeed.php:340 +msgid "Activate" +msgstr "Aktivieren" -#: includes/CPT/CalendarEvent.php:723 -msgid "Registration" -msgstr "Anmeldung" +#: includes/CPT/CalendarFeed.php:346 +msgid "Update ICS Feed" +msgstr "ICS-Feed aktualisieren" -#: includes/CPT/CalendarEvent.php:233 -msgid "Registration URL" -msgstr "Link zur Anmeldung" +#: includes/CPT/CalendarFeed.php:347 +msgid "Update" +msgstr "Aktualisieren" -#: includes/Settings.php:43 -msgid "Remove Duplicates" -msgstr "Duplikate entfernen" +#: includes/CPT/CalendarFeed.php:355 +msgid "Deactivate ICS Feed" +msgstr "ICS-Feed deaktivieren" -#: includes/CPT/CalendarEvent.php:274 -msgid "Repeat" -msgstr "Wiederholen" +#: includes/CPT/CalendarFeed.php:356 +msgid "Deactivate" +msgstr "Deaktivieren" -#: includes/CPT/CalendarEvent.php:303 -msgid "Repeat Interval" -msgstr "Wiederholungsintervall" +#: includes/CPT/CalendarFeed.php:376 +msgid "Invalid access" +msgstr "Unzulässiger Zugriff" -#: includes/CPT/CalendarEvent.php:280 -msgid "Repeat until" -msgstr "Wiederholen bis" +#: includes/ICS/Events.php:325 includes/Utils.php:828 +msgid "m-d-Y" +msgstr "d.m.Y" -#: includes/CPT/CalendarEvent.php:267 -msgid "Repeating Event" -msgstr "Wiederholungen" +#: includes/ICS/EventsListTable.php:15 +msgid "Event" +msgstr "Veranstaltung" -#: includes/CPT/CalendarEvent.php:316 -msgid "Repeats" -msgstr "Wiederholt sich" +#: includes/ICS/EventsListTable.php:62 +msgid "Title" +msgstr "Titel" -#: includes/CPT/CalendarEvent.php:395 -msgid "Repeats in" -msgstr "Wiederholt sich im" +#: includes/ICS/Metabox.php:62 +msgid "ICS Feed URL" +msgstr "ICS-Feed-URL" -#: includes/CPT/CalendarEvent.php:330 includes/CPT/CalendarEvent.php:362 -#: includes/CPT/CalendarEvent.php:372 -msgid "Repeats on" -msgstr "Wiederholt sich an" +#: includes/ICS/Metabox.php:64 +msgid "ICS Feed Url" +msgstr "ICS-Feed-URL" -#. Name of the plugin -msgid "RRZE Calendar" -msgstr "RRZE Kalender" +#: includes/ICS/Metabox.php:65 +msgid "Enter the url of the ICS feed. This field is required." +msgstr "Die URL des ICS-Feeds eingeben. Dieses Feld ist erforderlich." -#. Author of the plugin -msgid "RRZE Webteam" -msgstr "RRZE-Webteam" +#: includes/ICS/Metabox.php:69 includes/ICS/Metabox.php:71 +msgid "Past Events" +msgstr "Vergangene Veranstaltungen" -#: includes/Settings.php:49 -msgid "Schedule" -msgstr "Zeitplan" +#: includes/ICS/Metabox.php:72 +msgid "" +"For how many days in the past events are imported (max: 365, min:30)? Older " +"events are deleted from the website." +msgstr "" +"Bis wieviele Tage rückwirkend sollen Veranstaltungen importiert werden (max: " +"365, min: 30)? Ältere Veranstaltungen werden von der Website gelöscht." -#: includes/CPT/CalendarEvent.php:64 includes/ICS/Metabox.php:204 -msgid "Search Events" -msgstr "Veranstaltungen durchsuchen" +#: includes/ICS/Metabox.php:79 +msgid "" +"Enter a string to filter the import. Only events containing this string in " +"the title will be imported." +msgstr "" +"Geben Sie ein oder mehrere Wörter ein, um nur diese Veranstaltungen zu " +"importieren. Nur Veranstaltungen mit diesem Text im Titel werden importiert." -#: includes/CPT/CalendarFeed.php:83 -msgid "Search Feeds" -msgstr "Feed durchsuchen" +#: includes/ICS/Metabox.php:86 +msgid "" +"Enter a string to exclude events from importing. Events containing this " +"string in the title will not be imported." +msgstr "" +"Geben Sie ein oder mehrere Wörter ein, um Veranstaltungen vom Import " +"auszuschließen. Veranstaltungen mit diesem Text im Titel werden nicht " +"importiert." -#: includes/CPT/CalendarEvent.php:477 -msgid "second" -msgstr "zweiten" +#: includes/ICS/Metabox.php:194 +msgid "Feed URL is not valid." +msgstr "Die Feed-URL ist ungültig." #: includes/Main.php:46 msgid "Settings" msgstr "Einstellungen" -#: includes/Shortcodes/Events.php:34 -msgid "Show All Events" -msgstr "Alle Veranstaltungen anzeigen" +#: includes/Main.php:89 +msgid "Hide past events" +msgstr "Vergangene Termine ausblenden" #: includes/Main.php:90 msgid "Show past events" msgstr "Vergangene Termine anzeigen" -#: includes/CPT/CalendarEvent.php:145 -msgid "Start" -msgstr "Start" +#: includes/Options/Settings.php:267 +msgid "You do not have enough permissions to do that." +msgstr "Dazu haben Sie nicht genügend Berechtigungen." -#: includes/Shortcodes/Shortcode.php:125 -msgid "Subscribe to calendar" -msgstr "Kalender abonnieren" +#: includes/Options/Settings.php:292 +msgid "Settings saved." +msgstr "Die Einstellungen wurden gespeichert." -#: includes/CPT/CalendarEvent.php:786 includes/CPT/CalendarFeed.php:120 -msgid "Tags" -msgstr "Schlagwörter" +#: includes/Options/templates/settings-page.php:18 +msgid "Settings issues detected." +msgstr "Einstellungsprobleme erkannt." -#: includes/CPT/CalendarEvent.php:92 -msgctxt "Taxonomy general name" -msgid "Event Categories" -msgstr "Veranstaltungs-Kategorien" +#: includes/Settings.php:17 +msgid "Calendar Settings" +msgstr "Einstellungen › Kalender" -#: includes/CPT/CalendarEvent.php:109 -msgctxt "Taxonomy general name" -msgid "Event Tags" -msgstr "Veranstaltungs-Schlagwörter" +#: includes/Settings.php:21 +msgid "Calendar" +msgstr "Kalender" -#: includes/CPT/CalendarEvent.php:93 -msgctxt "Taxonomy singular name" -msgid "Event Category" -msgstr "Veranstaltungs-Kategorie" +#: includes/Settings.php:26 +msgid "ICS Feed" +msgstr "ICS-Feed" -#: includes/CPT/CalendarEvent.php:110 -msgctxt "Taxonomy singular name" -msgid "Event Tag" -msgstr "Veranstaltungs-Schlagwort" +#: includes/Settings.php:30 +msgid "Archive Slug" +msgstr "Archiv-Slug" + +#: includes/Settings.php:31 +msgid "Enter the archive slug that will display the event list." +msgstr "Geben Sie den Archiv-Slug ein, der die Veranstaltungsliste anzeigt." + +#: includes/Settings.php:32 +msgid "events" +msgstr "veranstaltungen" #: includes/Settings.php:36 msgid "The archive slug can have between 4 and 32 alphanumeric characters." msgstr "" "Der Archiv-Slug kann zwischen 4 und 32 alphanumerische Zeichen enthalten." -#. 1: Server PHP version number, 2: Required PHP version number. -#: rrze-calendar.php:61 -#, php-format -msgid "" -"The server is running PHP version %1$s. The Plugin requires at least PHP " -"version %2$s." -msgstr "" -"Auf dem Server läuft PHP Version %1$s. Das Plugin benötigt mindestens PHP " -"Version %2$s." +#: includes/Settings.php:43 +msgid "Remove Duplicates" +msgstr "Duplikate entfernen" -#. 1: Server WordPress version number, 2: Required WordPress version number. -#: rrze-calendar.php:68 -#, php-format +#: includes/Settings.php:44 msgid "" -"The server is running WordPress version %1$s. The Plugin requires at least " -"WordPress version %2$s." +"If the same event (i.e. same title, date and location) is present in " +"multiple feeds, only show one of them." msgstr "" -"Auf dem Server läuft WordPress Version %1$s. Das Plugin benötigt mindestens " -"WordPress Version %2$s." - -#: includes/Shortcodes/Calendar.php:353 -msgid "There are no events scheduled for this day." -msgstr "An diesem Tag finden keine Veranstaltungen statt." +"Wenn dieselbe Veranstaltung (d.h. gleicher Titel, Zeit und Ort) in mehreren " +"Feed vorhanden ist, diese nur einmal anzeigen." -#: includes/CPT/CalendarEvent.php:478 -msgid "third" -msgstr "dritten" +#: includes/Settings.php:49 +msgid "Schedule" +msgstr "Zeitplan" -#: includes/CPT/CalendarEvent.php:659 includes/CPT/CalendarEvent.php:667 -#: includes/CPT/CalendarEvent.php:706 -msgid "Time" -msgstr "Zeit" +#: includes/Settings.php:50 +msgid "Choose the recurrence to check for new events." +msgstr "Wiederholung auswählen, um nach neuen Veranstaltungen zu suchen." -#: includes/ICS/EventsListTable.php:62 -msgid "Title" -msgstr "Titel" +#: includes/Settings.php:52 +msgid "Hourly" +msgstr "Stündlich" #: includes/Settings.php:53 msgid "Twice daily" msgstr "Zweimal täglich" -#: includes/CPT/CalendarFeed.php:346 -msgid "Update" -msgstr "Aktualisieren" - -#: includes/CPT/CalendarFeed.php:345 -msgid "Update ICS Feed" -msgstr "ICS-Feed aktualisieren" - -#: includes/CPT/CalendarEvent.php:216 -msgid "VC URL" -msgstr "Videokonferenz-URL" - -#: includes/CPT/CalendarEvent.php:713 -msgid "Video Conference Link" -msgstr "Link zur Videokonferenz" +#: includes/Settings.php:54 +msgid "Daily" +msgstr "Täglich" #: includes/Shortcodes/Calendar.php:213 msgid "View day" msgstr "Tag ansehen" +#: includes/Shortcodes/Calendar.php:213 +msgid "Day" +msgstr "Tag" + +#: includes/Shortcodes/Calendar.php:214 +msgid "View monthly calendar" +msgstr "Monatskalender ansehen" + +#: includes/Shortcodes/Calendar.php:214 +msgid "Month" +msgstr "Monat" + +#: includes/Shortcodes/Calendar.php:215 +msgid "View yearly calendar" +msgstr "Jahreskalender ansehen" + +#: includes/Shortcodes/Calendar.php:215 +msgid "Year" +msgstr "Jahr" + +#: includes/Shortcodes/Calendar.php:265 +msgid "Go to previous year" +msgstr "Zum vorherigen Jahr wechseln" + +#: includes/Shortcodes/Calendar.php:265 includes/Shortcodes/Calendar.php:295 +#: includes/Shortcodes/Calendar.php:458 +msgid "Previous" +msgstr "Zurück" + +#: includes/Shortcodes/Calendar.php:268 +msgid "Go to next year" +msgstr "Zum nächsten Jahr wechseln" + +#: includes/Shortcodes/Calendar.php:268 includes/Shortcodes/Calendar.php:298 +#: includes/Shortcodes/Calendar.php:461 +msgid "Next" +msgstr "Weiter" + +#: includes/Shortcodes/Calendar.php:295 +msgid "Go to previous day" +msgstr "Zum vorherigen Tag wechseln" + +#: includes/Shortcodes/Calendar.php:298 +msgid "Go to next day" +msgstr "Zum nächsten Tag wechseln" + +#: includes/Shortcodes/Calendar.php:353 +msgid "There are no events scheduled for this day." +msgstr "An diesem Tag finden keine Veranstaltungen statt." + #: includes/Shortcodes/Calendar.php:410 msgid "View Details" msgstr "Details ansehen" -#: includes/CPT/CalendarEvent.php:62 -msgid "View Event" -msgstr "Veranstaltung ansehen" +#: includes/Shortcodes/Calendar.php:458 +msgid "Go to previous month" +msgstr "Zum vorherigen Monat wechseln" -#: includes/CPT/CalendarFeed.php:81 -msgid "View ICS Feed" -msgstr "ICS-Feed ansehen" +#: includes/Shortcodes/Calendar.php:461 +msgid "Go to next month" +msgstr "Zum nächsten Monat wechseln" -#: includes/Shortcodes/Calendar.php:214 -msgid "View monthly calendar" -msgstr "Monatskalender ansehen" +#: includes/Shortcodes/Calendar.php:580 +msgid "More…" +msgstr "Mehr…" + +#: includes/Shortcodes/Calendar.php:607 includes/Shortcodes/Calendar.php:664 +msgid "Read more" +msgstr "Weiterlesen" + +#: includes/Shortcodes/Events.php:34 +msgid "Show All Events" +msgstr "Alle Veranstaltungen anzeigen" + +#: includes/Shortcodes/Events.php:290 includes/Shortcodes/Events.php:328 +msgid "No events scheduled." +msgstr "Keine bevorstehenden Veranstaltungen." + +#: includes/Shortcodes/Events.php:307 +msgid "Add all events of this category to your calendar" +msgstr "Alle Veranstaltungen dieser Kategorie zum Kalender hinzufügen" + +#: includes/Shortcodes/Events.php:314 +msgid "Add all events of this tag to your calendar" +msgstr "Alle Veranstaltungen mit diesem Schlagwort zum Kalender hinzufügen" + +#: includes/Shortcodes/Shortcode.php:51 +msgid "No description" +msgstr "Keine Beschreibung" + +#. translators: 1: Start date, 2: End date. +#: includes/Shortcodes/Shortcode.php:76 includes/Shortcodes/Shortcode.php:181 +msgid "%1$s - %2$s" +msgstr "%1$s bis %2$s" + +#. translators: 1: Start date, 2: Start time, 3: End date, 4: End time. +#: includes/Shortcodes/Shortcode.php:85 includes/Shortcodes/Shortcode.php:185 +msgid "%1$s %2$s - %3$s %4$s" +msgstr "%1$s %2$s Uhr bis %3$s %4$s Uhr" + +#. translators: 1: Start date, 2: Start time, 3: End time. +#: includes/Shortcodes/Shortcode.php:96 includes/Shortcodes/Shortcode.php:189 +msgid "%1$s %2$s - %3$s" +msgstr "%1$s %2$s Uhr bis %3$s Uhr" #: includes/Shortcodes/Shortcode.php:120 msgid "View the calendar" msgstr "Kalender ansehen" -#: includes/Shortcodes/Calendar.php:215 -msgid "View yearly calendar" -msgstr "Jahreskalender ansehen" - -#: includes/CPT/CalendarEvent.php:326 -msgid "week(s)" -msgstr "Woche(n)" +#: includes/Shortcodes/Shortcode.php:125 +msgid "Subscribe to calendar" +msgstr "Kalender abonnieren" -#: includes/CPT/CalendarEvent.php:353 -msgid "Weekday" -msgstr "Wochentag" +#. translators: 1: Server PHP version number, 2: Required PHP version number. +#: rrze-calendar.php:60 +msgid "" +"The server is running PHP version %1$s. The Plugin requires at least PHP " +"version %2$s." +msgstr "" +"Auf dem Server läuft PHP Version %1$s. Das Plugin benötigt mindestens PHP " +"Version %2$s." -#: includes/CPT/CalendarEvent.php:309 -msgid "Weekly" -msgstr "Wöchentlich" +#. translators: 1: Server WordPress version number, 2: Required WordPress version number. +#: rrze-calendar.php:67 +msgid "" +"The server is running WordPress version %1$s. The Plugin requires at least " +"WordPress version %2$s." +msgstr "" +"Auf dem Server läuft WordPress Version %1$s. Das Plugin benötigt mindestens " +"WordPress Version %2$s." -#: includes/Shortcodes/Calendar.php:215 -msgid "Year" -msgstr "Jahr" +#. translators: 1: The plugin name, 2: The error string. +#: rrze-calendar.php:86 rrze-calendar.php:157 +msgid "Plugins: %1$s: %2$s" +msgstr "Plugins: %1$s: %2$s" diff --git a/languages/rrze-calendar-de_DE_formal.mo b/languages/rrze-calendar-de_DE_formal.mo index 1b270cd11d0b9b368a3384ada97ea51b5a94f901..d6635e178ab0f96e521201d5164d6f7d0b415fa4 100644 GIT binary patch literal 11601 zcmb`Md$3(sUB{P@(l+6t*auX^6=~YU=A1km+FP(qb8j9^(uUldq)iKD-*eVEXZP;2 z_vwD*=3a!h7(@^uVhg2EP>3KnBhEM!7-EIFJpNEdMhh}^5OKySe=tC?i~^#5zH9IE zy17MB_T1n3?6vlK{?>2(*5m%;^H)7!cs_)@2$?z0n6JaPtmcR3g6A6Z^YB7=F}w_} zft%qg;me?f4?$)56uba_9{vLS8~7af4XARy0}n#;Jjwt!!>iyukU#S${9Fh>1onppd;nepzX^B1wa+ixaVsRLc@Tr zh0lU-f~w~EM_sNR?302=3GS9(_;g#?{sQNx!@e@$_z5rFuW00)oYf$6x zB-FV68&tagf-3jf7?;AAK=tz_Q01isxWzRy+he+$*$e}F3Y`xVc-w5QX|mY}rLP;| z6>txnfk)wGFF=RzZg>@Z45}PeuJX@=(%TxSeqIXIo)=f)I#m5v zL$!ZDR6lQp>Q@7*pLav0TZGcvX{hmgKa_qx4pshNLe>9ySciWFUjly!e;K~`veJHE z1~rbiK$X*g%6Af~oYz9N|5U{{S3F&Pe+RUDe;C%_qt*9sLACdLQ0@N_RJ|AeQknir zsPNt@+=8m_jZpQy6{yseY>H`yO6?_?;@!1hKk#v#`Sur{_cnT znHheRE{8keJy8An3{<)=RN*f{`Ms||jr-$JE&Fx;uNw1m!uz56^(Lrt-U+4WKdbl&D7*YLRJ~tY; z*T84NJyrb8utqq542gLgq$u-INEgkQq3Znsd=`A(m1Vk1p!B^1N*|L@?YI-34>PFr zuYpSUdZ_lChO(=NtMG@R`uzx0J3kFo&fh_$djjIx%)dg7-|F>cKQ4m`Z-B~oZN&rd z0>XDfjbjJOAD@D1#{*E~^8u)Sex?dP0hRu|4W%B}Lbc;csC?H!&9i+_1e+(Tw_G`v$fqwy4!S6tg(^F9G`XN;LYpyE$`9i4vY=*dCvkR)9w?mD? z98|vh;2QXLDE+**ivL&@{ye;p_^(0f{Ryc0pMvt6KY*%t{l-#XJD}>jz6u|M%KvJp z_TB~6jviDw_reR{8=%Jdt?+#K0JQL7Sc8v3<^L934ZjCf?vJ6$JD)@fUkcTpwNT}5 zf-3KtiZ@j8dm(PqbP+wW*&d>~fGSOn^q(WV%ptpxCc+T=r&Uqdi`<3Cm%S7D9YoJ> zmN2KF^z{}*BL&%4a z-$nGi4cUg=j=UFn1#%H`5|J&w8PW5a66W_R3YsH&?c_s38 zi*5r@1E=|2%K5A*{S_rs!kKLMwZ z>yh)2E0I?t&qc0A^fZtc`ZxB46(5E-BJV~P6}N87<(XZ#m7khjx9#%moCv#adq0*G zB=jj}I$>tr2^Z&w#)2%7)5s0+2n*v=hHCH zU99wZ$JyAO%x$(1H|l2nOxSfcb9o-d?O~>{9Ve-4);E~-NiPqRIEXfwosB#^LA`?) zyKmRD-Ax0`&Sulz?B?y1+BgV}eGZzg~GS zx_Rri+Lo=gZCf_f?JcqM>21%YHVR``_r(Wv&MPFdNsCUQmIkG^lawwdb|EQJA|e+z zgY@Y#~y7U zKKTZRE;GA2Ns>7~IH_wCY3kwzLE6!AjX8^^7_|AS$91zSiIUVz24S?oFC(IMO}d~z zK*QJJ5KX$Qk%oRS&15nkM@i7k%v8|mm?=i48an?v7`LgoX{O>F%?CEiQ%po{awi*6 z(R6+Nx6-6rSs)4OWkC!_66Zk}`#c(+Dt{RJUglvQxza}CB$u6*HjK@!P-82M)Ck#b zW$M^PRO$PtsA`33N?W8?e9Pv-UXSVYf40n0S88TZ*+7O3&~D7!&&Ot%^&$*KNy_;g zg<0P3vSN!gDlOXiq0{uPTR;C>p^KR6nN8i@MX1?n%IW5R?T9s%5t9!6M+~v|8~bwC zt=_@OhVz!-U;SYERGHcBg1n&Y${hUU){i}M_<-uxV4Vn}kjnefykVZ5WZrgzc!9~f zklAXKdqI}>%_K+m5R@+HM$6Y}>rydV5RMWQ?6!o1s6Zy^EZ@oHsD( zX5P(aVU7pb<2_(x_r;|T!9kfliEPumHciQqU>8g5j7BUtoI;tPm%0;SQe73b%zhN#8CQkoFY8%AbBWW}UWM-fI7DgA~fPJs+`mpZmWrUv}8%xg@ z#7!F|xHr1FL4!bJGPEQucZ(|8*r>Ely11O$l{M^({aD+e(QsL24rn-!^fYCf=0MdVb1*m=c8jjPYE#W_ zvC>c79P}#pzo_LPYsnQI7e!(3Ix}1*^ww7t(I<0rbHbnx-4wyf99l_1)9LR_8f2Zi z5{`ZujmU7B%_7qDAXV7NO4Z;)&naTr$GX9(u)>%_SRd*wl`zo{%HA`DP(r1jL(J|l z&L*tZb$+#8AF3>hmk_O)!-tPgF*&QH$cK)(+1v$PbJzt<+eJCN^_@PiZCnEDyNr4? z;BD!!>$0HR$)d-wF%FdPdd%4h%m^GMgVqlhaUS*qa>c&k)yIBbP1k-DW@Dx+4Vr1j zveD^xwhDPQ@TuG}3|_FytYB4dGG!asM}7Du3r_g3tWt|;rMzi{M<>yA9;CUME@ou` zxMMAUeZ9>D?aa&sCzCkoE>t_9$i~c_Rlc}U_xF>MjhB<5k|GLNT+b<#y;m7|)rb zAzq`uwD~}3(*AYeO?*f$-M@H8j$a&DlaH129gmUk8clZ0xj7Xg(%jp$Y}}RbkU^8B&dvtus=halt3rXd)dUMO|wzb&g!k8 zs5jjvmfHCwonwA%8YF0kd8e4IHlx+PHJayQ989+0#Elz=hxwPpQC?@o#dqBEJ~(% zc@X6V>(P9XvXyEUT4x+?W9S}SoySe>Fg|nN?hn>UCep+xC?UzB_Px<#vgWlMdQcaIgYzTyI7mHvQ5D- zZoD6zFkUQLOJ`{vTbY8weIKYhXWv8Q@giF~lP|Jr<924`E!dxpD&Ua7w+ZKrlW_R6U^bas(U`~7-K^hnJsXYXPhzKE`6 zKM)0N+(G{IWgLIH!s&OAFS6LF!)8wqFXl^U+F^UeT1UT+CiRD@nmOJT}KdhnaMeNER0q+5FO(4r8*>(&!i$iHFvRjg2Vb#lmI3@G!(CbIvoqkIuXj&h9-^L0j(+Ljh{gXhEEf%yZ3f>lX7`C{->r53Sj-+ zOWW++(j&24i+cRYhBpytMc#0@ zC}DCG#tP-4<)1hq>uPA_k2eLZxnti@W``q$mcVlg9r?CGsUu&pQo>VyK~6Igqhqj;j?Y;vhFRFm`>j-l^MmkKZQ4@uHoEt(H09w7A)wb9uq7Shedg^r5^K zp=IT@h?MTHML4Sa;qf{>NFPToMv7&s@;ixiFwM~_2AG=t-r~lVl`?8f&r(&_9twJR zz_}!y#c*3FMJif3_44nt4yEIJSOBH>Wrg=k(d6X<;V0HqrWuxBU9&8`hrL$#bPaR7@Ge5vG5GKD7G|(_7(KpJT8(t2HnvkRJL4{1 zRI9d5o@@tFJB;!-Fmjm|%VM+5A~MW9`c8h1BlLt@nP@bLw$sBf$wqVW{~2vG20NEB zjGoVl3h*h|1t)@Yy|Ld{mwTA*aa^rBW9iF{dyG+K zy>cR#{_vb(9L&to0UUT5zpByi^6IBQJ~o(5xCrrE@9A>$S?+99#_;fv)kgMs%f9^Y zvMn#K%Egw3C6Lh`S)ru}yEq@>5tt0yy{j6(*wGicF`odV=y1f*Y};A1SU}iDm)AV_ zkfK%I+0f>ZE1t<9>tFG(S}r}p8kp;LoRyw(_{OEsAcwz#S-Irlh0P!}x07{_4L`a3 z74ns}RGyp-APZSb4T|lY_d#PyCzfMfjvdGzb=~74bDZsy{IfRw-sO#WO2)mvs91K< zeFsXkzxtW0ZhjX1LNl0x{&*J?t+aJH?@vp8b$Eb#Zn|TMMm*;*!2a96`i?3!2L(2?9e>!==Cj;1GtvD)v1xC_#Mw!NZ9n^$tw00i zEbG(oOxbVYAZ2Fm;#AQ!Cq}0UO2P9u!|60`>1g2#h>gy+3jU1mf134f{WhcRX{lE; hH8=w=GnbKOk9`@$n?CC`zcyag>*EdPzX1tjH{bvO delta 3633 zcmY+`eQXrR8OQN8Zy|=*#5Onv4C`RyQoQFE93baf1e@TZV&Y&Y4bbLTpEq~soNq6? zd%RWRLWop|szmLkQ6pN3DplH4B(36zLQ{c4Q5BHVh=!K-58Ax+B`UP2FDXf?rv3hW z3#Qh2KQpt>%sex*d-l1lk8LRawrbkf4St^GcOk#OpQf5&9JzVYITT-{J{M2mEIf}} z@NG0PUTzqCjBQ+I;zM{Vx_ArjLyhwk_TyosYti^Cg_~&j5cy1ut`4)9MeTJs8yipq z$4~>WLd9>u7!Kid+#h)mwU(!FDn5;h{{~j$b2y9njUQ1U6XU0-4sW0We}PKmB5Ht3 zxEZhDYV0AamG~vp#4n>(cnsC=3=(Qwz!~@+YTQ4g#`^#(nBVw_f+n6xuX%V2DxpSH zrZLpOJy?T-Q9X?scsFWi9!2##h|L&c1-^<*VVp(9T|kZdHWronKPhOdKSpIdg0unj<@g3_ppQ@!eS$igX;r0_%|UW8YNL8HDv=l}k#(pA-HTet7f=fuMaB8ZkVf$! z1)bF))Rz1ZwROi(37o_wcpB^RedJ@z;6QbzbzIcnLdEx>`uCv{-xN6%xiz}K9ZkLe zDGC;W2e1r}qR#dhYJgLy%wI>XDBvAjOZ_rx1u@dq4s@dG-N-_WUesClq0V$Ds*j>}a3?B$ zACjZ-Wz+%=qmJqoEPjQ;aSFY-egT8y6R4HEj_UX;)D~Weyo!4G{)?KZl9yZw)uG<^ zdM=tEj)WL%P;uK(<2lI3*t?MZ*I6E-CXb`G?gDDX@1iQOt`j*7bzb^op+1!cAg^-ye!>M7I;0#wF(qx)Y){f+n* z>Ihyzt>ko6e+w1=UgW<}J9)ENI*KafE60eT5-6^rpfl=6ZCwVHv5Pv2{iwhvk>}C) zCUOeKQPf$!g=)Wy8*oNL>HmTObf|wH+i}kA(f0#to<1azqR~%56Fi7oSr)Z|{iw5h z2DQ?cP+NWiwSx1g9s2{S-`}G4nVgU6b*LR|L+x-J^-%Vq=G%xf_5N?Apox+b4g5Vv zb$lF^>654go<UQD=J`O?(Y4d>5zSoW|04)u{36Q9HXt?cEe&6g0tV zHQ;Aa8E!^Rv>i1;Ci0P}eRpFxqheLKrlNUjlOGEouJ~hkqOzgFbaptoz*w8jS|j%E z@Gq6WeD2V#WmDIiTf!HrR)z!Bi|3EIxgc%yxn|&+dC%FAaSOgV(HOp2{pm74e6(hH z_~V)lHHm%W+9(+$1=IpwT{ovZ4Q4k z*AE|@w>O+u+cJBwFzhG2OkM+xudRJzO89Zz-)D^)S#!NPI@m&vm*$@>_S#t|H)4C` zo1MJt1y;YG%8Xb&g_Lg%xp6Zc1bIK++Pc&AMo8cHW3HEK^$U3gx8}2jR3_Kzd3ziy zd2OJ9dxorD&#^VHwayNlxY^OxvBGLwZMAg_wRgrlI^rujm$$XW+uF**lMCi1O7~Wn z?KG|82JIVdKd^>8JLhNZ!1dy0kL?ZHo^AHHLE7PVE>*Bojy2@iV{vnxQwaQI+WgdD z##wg#X51Wc66@|xgiQy7zwGe_oB{qBw~vsCQPnGM}$dsq1b)`07< z{nqE4-CDK3G2;huGm+>@I9-WEF69J)vnz}CUUNuk8a&iPPP;ixn#UE z*)q{EyRgp96y<`gTQ0@>qTd>ctcb=7|TXc6U9>0M3JZ>6HYFz z$M&7P9i-!CY_f6CEqF<%H*I^q!-DS{T5ql9Zl9BLywVwLbd&D&CnD=|;u+tG4QKYW z5~rKi{f_5z?3{RPWvsKy+?lsl#yVmh<;5sq$QjFXqC6AX=m`DN zi{;%Ll5=b?nI0f#tL^`@p1je{jaa$S)ZXZuO&whBOMB)p?@iN+#_;D0?+B;Yca8Vd z*O!g|d(pjR<9iymmtNJYw{Hk9ENKqw8mq&R#`)o)#yIcg!%bb`>87EnpLa6h;UzU; z?b7aLI~}s~oSexzc{Bq%8x(jTa%LuHj$|C)88iENYlB$Wzw}i2gQZKu%H})5L~{`S xsre`2^kpl{*ABb6oHNF^#&~?$$thujRU58pd2#k=%*eKwqcPr1-piJU{s$$VSQG#N diff --git a/languages/rrze-calendar-de_DE_formal.po b/languages/rrze-calendar-de_DE_formal.po index dc4d6a50..1d5a3cf9 100644 --- a/languages/rrze-calendar-de_DE_formal.po +++ b/languages/rrze-calendar-de_DE_formal.po @@ -1,26 +1,18 @@ +# Copyright (C) 2024 RRZE-Webteam +# This file is distributed under the GNU General Public License v3.0. msgid "" msgstr "" -"Project-Id-Version: RRZE Calendar\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/rrze-calendar\n" -"POT-Creation-Date: 2023-08-02T14:22:34+00:00\n" -"PO-Revision-Date: 2023-08-03 10:07+0000\n" -"Last-Translator: Barbara Bothe\n" -"Language-Team: Deutsch (Sie)\n" -"Language: de_DE_formal\n" +"Project-Id-Version: RRZE Autoshare\n" +"POT-Creation-Date: 2024-01-26T14:35:57+00:00\n" +"PO-Revision-Date: 2024-02-06 10:47+0100\n" +"Last-Translator: \n" +"Language-Team: RRZE Webteam\n" +"Language: de_DE@formal\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" -"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;" -"esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" -"X-Poedit-Basepath: .\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Generator: Loco https://localise.biz/\n" -"X-Loco-Version: 2.6.4; wp-6.2.2\n" -"X-Loco-Template: languages/rrze-private-site-de_DE.po\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPath-1: ..\n" +"X-Generator: Poedit 3.4.2\n" +"X-Domain: rrze-calendar\n" #. Plugin Name of the plugin msgid "RRZE Calendar" @@ -42,223 +34,222 @@ msgstr "RRZE-Webteam" msgid "https://blogs.fau.de/webworking/" msgstr "https://blogs.fau.de/webworking/" -#: includes/CPT/CalendarEvent.php:56 +#: includes/CPT/CalendarEvent.php:54 msgctxt "post type general name" msgid "Events" msgstr "Veranstaltungen" -#: includes/CPT/CalendarEvent.php:57 +#: includes/CPT/CalendarEvent.php:55 msgctxt "post type singular name" msgid "Event" msgstr "Veranstaltung" -#: includes/CPT/CalendarEvent.php:58 +#: includes/CPT/CalendarEvent.php:56 msgctxt "admin menu" msgid "Calendar" msgstr "Kalender" -#: includes/CPT/CalendarEvent.php:59 +#: includes/CPT/CalendarEvent.php:57 msgctxt "add new on admin bar" msgid "Calendar Event" msgstr "Veranstaltung" -#: includes/CPT/CalendarEvent.php:60 +#: includes/CPT/CalendarEvent.php:58 msgctxt "admin menu" msgid "Add New" msgstr "Veranstaltung erstellen" -#: includes/CPT/CalendarEvent.php:61 +#: includes/CPT/CalendarEvent.php:59 msgid "Add New Event" msgstr "Veranstaltung hinzufügen" -#: includes/CPT/CalendarEvent.php:62 +#: includes/CPT/CalendarEvent.php:60 msgid "New Event" msgstr "Neue Veranstaltung" -#: includes/CPT/CalendarEvent.php:63 +#: includes/CPT/CalendarEvent.php:61 msgid "Edit Event" msgstr "Veranstaltung bearbeiten" -#: includes/CPT/CalendarEvent.php:64 +#: includes/CPT/CalendarEvent.php:62 msgid "View Event" msgstr "Veranstaltung ansehen" -#: includes/CPT/CalendarEvent.php:65 includes/Shortcodes/Events.php:35 +#: includes/CPT/CalendarEvent.php:63 msgid "All Events" msgstr "Alle Veranstaltungen" -#: includes/CPT/CalendarEvent.php:66 includes/ICS/Metabox.php:143 +#: includes/CPT/CalendarEvent.php:64 includes/ICS/Metabox.php:204 msgid "Search Events" msgstr "Veranstaltungen durchsuchen" -#: includes/CPT/CalendarEvent.php:67 +#: includes/CPT/CalendarEvent.php:65 msgid "Parent Events:" msgstr "Übergeordnete Veranstaltungen:" -#: includes/CPT/CalendarEvent.php:68 includes/ICS/Events.php:41 -#: templates/shortcodes/calendar.php:237 +#: includes/CPT/CalendarEvent.php:66 includes/ICS/Events.php:46 msgid "No events found." msgstr "Keine Veranstaltungen gefunden." -#: includes/CPT/CalendarEvent.php:69 +#: includes/CPT/CalendarEvent.php:67 msgid "No events found in Trash." msgstr "Keine Veranstaltungen im Papierkorb gefunden." -#: includes/CPT/CalendarEvent.php:93 +#: includes/CPT/CalendarEvent.php:92 msgctxt "Taxonomy general name" msgid "Event Categories" msgstr "Veranstaltungs-Kategorien" -#: includes/CPT/CalendarEvent.php:94 +#: includes/CPT/CalendarEvent.php:93 msgctxt "Taxonomy singular name" msgid "Event Category" msgstr "Veranstaltungs-Kategorie" -#: includes/CPT/CalendarEvent.php:110 +#: includes/CPT/CalendarEvent.php:109 msgctxt "Taxonomy general name" msgid "Event Tags" msgstr "Veranstaltungs-Schlagwörter" -#: includes/CPT/CalendarEvent.php:111 +#: includes/CPT/CalendarEvent.php:110 msgctxt "Taxonomy singular name" msgid "Event Tag" msgstr "Veranstaltungs-Schlagwort" -#: includes/CPT/CalendarEvent.php:133 +#: includes/CPT/CalendarEvent.php:132 msgid "General Information" msgstr "Allgemeine Informationen" -#: includes/CPT/CalendarEvent.php:142 +#. translators: 1: , 2: . +#: includes/CPT/CalendarEvent.php:143 msgid "" -"%sThis event is generated by feed import%s. Changes will be overwritten by " -"the next sync." +"%1$sThis event is generated by feed import.%2$s Changes will be overwritten " +"by the next sync." msgstr "" -"%sDiese Veranstaltung wurde durch einen ICS-Feed generiert.%s Änderungen " +"%1$sDiese Veranstaltung wurde durch einen ICS-Feed generiert.%2$s Änderungen " "werden bei der nächsten Synchronisierung überschrieben." -#: includes/CPT/CalendarEvent.php:146 +#: includes/CPT/CalendarEvent.php:150 msgid "Start" msgstr "Start" -#: includes/CPT/CalendarEvent.php:169 +#: includes/CPT/CalendarEvent.php:173 msgid "End" msgstr "Ende" -#: includes/CPT/CalendarEvent.php:192 +#: includes/CPT/CalendarEvent.php:196 msgid "All day event" msgstr "Ganztägig" -#: includes/CPT/CalendarEvent.php:192 +#: includes/CPT/CalendarEvent.php:196 msgid "(Time settings will be ignored.)" msgstr "(Zeitangaben werden ignoriert.)" -#: includes/CPT/CalendarEvent.php:197 includes/ICS/EventsListTable.php:65 +#: includes/CPT/CalendarEvent.php:201 includes/ICS/EventsListTable.php:65 msgid "Description" msgstr "Beschreibung" -#: includes/CPT/CalendarEvent.php:206 includes/CPT/CalendarEvent.php:629 -#: includes/CPT/CalendarEvent.php:637 includes/CPT/CalendarEvent.php:676 -#: includes/CPT/CalendarEvent.php:749 includes/ICS/EventsListTable.php:66 -#: templates/shortcodes/themes/rrze/events.php:80 +#: includes/CPT/CalendarEvent.php:210 includes/CPT/CalendarEvent.php:665 +#: includes/CPT/CalendarEvent.php:673 includes/CPT/CalendarEvent.php:714 +#: includes/CPT/CalendarEvent.php:788 includes/ICS/EventsListTable.php:66 msgid "Location" msgstr "Ort" -#: includes/CPT/CalendarEvent.php:217 +#: includes/CPT/CalendarEvent.php:221 msgid "VC URL" msgstr "Videokonferenz-URL" -#: includes/CPT/CalendarEvent.php:223 includes/CPT/CalendarEvent.php:684 +#: includes/CPT/CalendarEvent.php:227 includes/CPT/CalendarEvent.php:722 msgid "Prices" msgstr "Preise" -#: includes/CPT/CalendarEvent.php:234 +#: includes/CPT/CalendarEvent.php:238 msgid "Registration URL" msgstr "Link zur Anmeldung" -#: includes/CPT/CalendarEvent.php:240 includes/CPT/CalendarEvent.php:694 +#: includes/CPT/CalendarEvent.php:244 includes/CPT/CalendarEvent.php:732 msgid "Downloads" msgstr "Downloads" -#: includes/CPT/CalendarEvent.php:259 +#: includes/CPT/CalendarEvent.php:263 msgid "Featured Event" msgstr "Hervorgehobene Veranstaltung" -#: includes/CPT/CalendarEvent.php:268 +#: includes/CPT/CalendarEvent.php:272 msgid "Repeating Event" msgstr "Wiederholungen" -#: includes/CPT/CalendarEvent.php:275 +#: includes/CPT/CalendarEvent.php:279 msgid "Repeat" msgstr "Wiederholen" -#: includes/CPT/CalendarEvent.php:281 +#: includes/CPT/CalendarEvent.php:285 msgid "Repeat until" msgstr "Wiederholen bis" -#: includes/CPT/CalendarEvent.php:282 +#: includes/CPT/CalendarEvent.php:286 msgid "(optional)" msgstr "(optional)" -#: includes/CPT/CalendarEvent.php:299 +#: includes/CPT/CalendarEvent.php:308 msgid "Repeat Interval" msgstr "Wiederholungsintervall" -#: includes/CPT/CalendarEvent.php:305 +#: includes/CPT/CalendarEvent.php:314 msgid "Weekly" msgstr "Wöchentlich" -#: includes/CPT/CalendarEvent.php:306 +#: includes/CPT/CalendarEvent.php:315 msgid "Monthly" msgstr "Monatlich" -#: includes/CPT/CalendarEvent.php:312 +#: includes/CPT/CalendarEvent.php:321 msgid "Repeats" msgstr "Wiederholt sich" -#: includes/CPT/CalendarEvent.php:320 +#: includes/CPT/CalendarEvent.php:330 msgid "every" msgstr "alle" -#: includes/CPT/CalendarEvent.php:321 +#: includes/CPT/CalendarEvent.php:331 msgid "week(s)" msgstr "Woche(n)" -#: includes/CPT/CalendarEvent.php:325 includes/CPT/CalendarEvent.php:357 -#: includes/CPT/CalendarEvent.php:367 +#: includes/CPT/CalendarEvent.php:335 includes/CPT/CalendarEvent.php:367 +#: includes/CPT/CalendarEvent.php:377 msgid "Repeats on" msgstr "Wiederholt sich an" -#: includes/CPT/CalendarEvent.php:342 +#: includes/CPT/CalendarEvent.php:352 msgid "Each" msgstr "Jeder" -#: includes/CPT/CalendarEvent.php:347 includes/CPT/CalendarEvent.php:625 -#: includes/CPT/CalendarEvent.php:633 includes/CPT/CalendarEvent.php:667 -#: includes/CPT/CalendarEvent.php:747 includes/ICS/EventsListTable.php:63 +#: includes/CPT/CalendarEvent.php:357 includes/CPT/CalendarEvent.php:660 +#: includes/CPT/CalendarEvent.php:669 includes/CPT/CalendarEvent.php:707 +#: includes/CPT/CalendarEvent.php:786 includes/ICS/EventsListTable.php:63 msgid "Date" msgstr "Datum" -#: includes/CPT/CalendarEvent.php:348 +#: includes/CPT/CalendarEvent.php:358 msgid "Weekday" msgstr "Wochentag" -#: includes/CPT/CalendarEvent.php:362 includes/CPT/CalendarEvent.php:371 +#: includes/CPT/CalendarEvent.php:372 includes/CPT/CalendarEvent.php:381 msgid "each" msgstr "jedem" -#: includes/CPT/CalendarEvent.php:363 includes/CPT/CalendarEvent.php:372 +#: includes/CPT/CalendarEvent.php:373 includes/CPT/CalendarEvent.php:382 msgid "of month" msgstr "des Monats" -#: includes/CPT/CalendarEvent.php:390 +#: includes/CPT/CalendarEvent.php:400 msgid "Repeats in" msgstr "Wiederholt sich im" -#: includes/CPT/CalendarEvent.php:399 +#: includes/CPT/CalendarEvent.php:409 msgid "Exceptions" msgstr "Ausnahmen" -#: includes/CPT/CalendarEvent.php:400 +#: includes/CPT/CalendarEvent.php:410 msgid "" "Enter dates to be skipped (format YYYY-MM-DD, e.g. 2023-12-31). One date per " "line." @@ -266,199 +257,225 @@ msgstr "" "Hier können Sie Tage angeben, an denen die Veranstaltung ausnahmsweise " "ausfällt (Format YYYY-MM-DD, z.B. 2023-12-31). Ein Datum pro Zeile." -#: includes/CPT/CalendarEvent.php:407 +#: includes/CPT/CalendarEvent.php:417 msgid "Additions" msgstr "Zusatztermine" -#: includes/CPT/CalendarEvent.php:408 +#: includes/CPT/CalendarEvent.php:418 msgid "" "Add additional dates (format YYYY-MM-DD, e.g. 2023-12-31). One date per line." msgstr "" "Zusätzliche Termine hinzufügen (Format YYYY-MM-DD, z.B. 2023-12-31). Ein " "Datum pro Zeile." -#: includes/CPT/CalendarEvent.php:414 +#: includes/CPT/CalendarEvent.php:424 msgid "Event Items" msgstr "Termine" -#: includes/CPT/CalendarEvent.php:471 +#: includes/CPT/CalendarEvent.php:481 msgid "first" msgstr "ersten" -#: includes/CPT/CalendarEvent.php:472 +#: includes/CPT/CalendarEvent.php:482 msgid "second" msgstr "zweiten" -#: includes/CPT/CalendarEvent.php:473 +#: includes/CPT/CalendarEvent.php:483 msgid "third" msgstr "dritten" -#: includes/CPT/CalendarEvent.php:474 +#: includes/CPT/CalendarEvent.php:484 msgid "fourth" msgstr "vierten" -#: includes/CPT/CalendarEvent.php:475 +#: includes/CPT/CalendarEvent.php:485 msgid "fifth" msgstr "fünften" -#: includes/CPT/CalendarEvent.php:524 +#: includes/CPT/CalendarEvent.php:534 msgid "Maximum +/- 1 year." msgstr "Maximal +/- 1 Jahr." -#: includes/CPT/CalendarEvent.php:561 includes/Shortcodes/Events.php:161 -#: includes/Shortcodes/Events.php:167 +#: includes/CPT/CalendarEvent.php:572 includes/Shortcodes/Events.php:197 +#: includes/Shortcodes/Events.php:203 msgid "Online" msgstr "Online" -#: includes/CPT/CalendarEvent.php:628 includes/CPT/CalendarEvent.php:636 -#: includes/CPT/CalendarEvent.php:671 +#: includes/CPT/CalendarEvent.php:610 includes/Shortcodes/Calendar.php:326 +#: includes/Shortcodes/Calendar.php:549 includes/Shortcodes/Shortcode.php:69 +#: includes/Shortcodes/Shortcode.php:176 +msgid "All Day" +msgstr "Ganztägig" + +#: includes/CPT/CalendarEvent.php:631 +msgid "All day" +msgstr "Ganztägig" + +#: includes/CPT/CalendarEvent.php:664 includes/CPT/CalendarEvent.php:672 +#: includes/CPT/CalendarEvent.php:710 msgid "Time" msgstr "Zeit" -#: includes/CPT/CalendarEvent.php:664 +#: includes/CPT/CalendarEvent.php:695 includes/Shortcodes/Calendar.php:350 +#: includes/Shortcodes/Calendar.php:692 includes/Shortcodes/Events.php:297 +msgid "Add to calendar" +msgstr "Zum Kalender hinzufügen" + +#: includes/CPT/CalendarEvent.php:704 msgid "Event Details" msgstr "Details" -#: includes/CPT/CalendarEvent.php:679 +#: includes/CPT/CalendarEvent.php:717 msgid "Video Conference Link" msgstr "Link zur Videokonferenz" -#: includes/CPT/CalendarEvent.php:689 +#: includes/CPT/CalendarEvent.php:727 msgid "Registration" msgstr "Anmeldung" -#: includes/CPT/CalendarEvent.php:709 +#: includes/CPT/CalendarEvent.php:747 msgid "Event Categories" msgstr "Veranstaltungskategorien" -#: includes/CPT/CalendarEvent.php:748 includes/ICS/EventsListTable.php:64 +#: includes/CPT/CalendarEvent.php:787 includes/ICS/EventsListTable.php:64 msgid "Recurrence" msgstr "Wiederholung" -#: includes/CPT/CalendarEvent.php:750 includes/CPT/CalendarFeed.php:112 +#: includes/CPT/CalendarEvent.php:789 includes/CPT/CalendarFeed.php:120 msgid "Categories" msgstr "Kategorien" -#: includes/CPT/CalendarEvent.php:751 includes/CPT/CalendarFeed.php:113 +#: includes/CPT/CalendarEvent.php:790 includes/CPT/CalendarFeed.php:121 msgid "Tags" msgstr "Schlagwörter" -#: includes/CPT/CalendarEvent.php:752 includes/ICS/Metabox.php:25 +#: includes/CPT/CalendarEvent.php:791 includes/ICS/Metabox.php:25 msgid "Feed" msgstr "Feed" -#: includes/CPT/CalendarFeed.php:67 +#: includes/CPT/CalendarFeed.php:74 msgctxt "post type general name" msgid "ICS Feeds" msgstr "ICS-Feeds" -#: includes/CPT/CalendarFeed.php:68 +#: includes/CPT/CalendarFeed.php:75 msgctxt "post type singular name" msgid "ICS Feed" msgstr "ICS-Feed" -#: includes/CPT/CalendarFeed.php:69 +#: includes/CPT/CalendarFeed.php:76 msgctxt "admin menu" msgid "ICS Feeds" msgstr "ICS-Feeds" -#: includes/CPT/CalendarFeed.php:70 +#: includes/CPT/CalendarFeed.php:77 msgctxt "add new on admin bar" msgid "ICS Feed" msgstr "ICS-Feed" -#: includes/CPT/CalendarFeed.php:71 +#: includes/CPT/CalendarFeed.php:78 msgctxt "popup" msgid "Add New" msgstr "Erstellen" -#: includes/CPT/CalendarFeed.php:72 +#: includes/CPT/CalendarFeed.php:79 msgid "Add New ICS Feed" msgstr "Neuen Feed erstellen" -#: includes/CPT/CalendarFeed.php:73 +#: includes/CPT/CalendarFeed.php:80 msgid "New ICS Feed" msgstr "Neuer ICS-Feed" -#: includes/CPT/CalendarFeed.php:74 +#: includes/CPT/CalendarFeed.php:81 msgid "Edit ICS Feed" msgstr "ICS-Feed bearbeiten" -#: includes/CPT/CalendarFeed.php:75 +#: includes/CPT/CalendarFeed.php:82 msgid "View ICS Feed" msgstr "ICS-Feed ansehen" -#: includes/CPT/CalendarFeed.php:76 includes/CPT/CalendarFeed.php:85 +#: includes/CPT/CalendarFeed.php:83 includes/CPT/CalendarFeed.php:92 msgid "ICS Feeds" msgstr "ICS-Feeds" -#: includes/CPT/CalendarFeed.php:77 +#: includes/CPT/CalendarFeed.php:84 msgid "Search Feeds" msgstr "Feed durchsuchen" -#: includes/CPT/CalendarFeed.php:78 +#: includes/CPT/CalendarFeed.php:85 msgid "Parent Feeds:" msgstr "Eltern-Feeds:" -#: includes/CPT/CalendarFeed.php:79 +#: includes/CPT/CalendarFeed.php:86 msgid "No ics feeds found." msgstr "Keine Feeds gefunden." -#: includes/CPT/CalendarFeed.php:80 +#: includes/CPT/CalendarFeed.php:87 msgid "No ics feeds found in Trash." msgstr "Keine Feeds im Papierkorb gefunden." -#: includes/CPT/CalendarFeed.php:114 includes/ICS/EventsListTable.php:16 +#: includes/CPT/CalendarFeed.php:122 includes/ICS/EventsListTable.php:16 #: includes/ICS/Metabox.php:34 includes/Settings.php:25 #: templates/cpt/archive-event.php:30 templates/cpt/archive-event.php:32 +#: templates/cpt/themes/fau-events/archive-event.php:22 #: templates/cpt/themes/fau/archive-event.php:30 #: templates/cpt/themes/fau/archive-event.php:32 #: templates/cpt/themes/rrze/archive-event.php:31 msgid "Events" msgstr "Veranstaltungen" -#: includes/CPT/CalendarFeed.php:115 +#: includes/CPT/CalendarFeed.php:123 msgid "Last Updated" msgstr "Letzte Aktualisierung" -#: includes/CPT/CalendarFeed.php:174 +#: includes/CPT/CalendarFeed.php:182 msgid "Feed URL." msgstr "Feed-URL." -#: includes/CPT/CalendarFeed.php:184 includes/CPT/CalendarFeed.php:194 -#: includes/CPT/CalendarFeed.php:217 +#: includes/CPT/CalendarFeed.php:192 includes/ICS/Metabox.php:76 +#: includes/ICS/Metabox.php:78 +msgid "Include Events" +msgstr "Veranstaltungen einschließen" + +#: includes/CPT/CalendarFeed.php:202 includes/ICS/Metabox.php:83 +#: includes/ICS/Metabox.php:85 +msgid "Exclude Events" +msgstr "Veranstaltungen ausschließen" + +#: includes/CPT/CalendarFeed.php:212 includes/CPT/CalendarFeed.php:222 +#: includes/CPT/CalendarFeed.php:245 msgid "Color" msgstr "Farbe" -#: includes/CPT/CalendarFeed.php:311 +#: includes/CPT/CalendarFeed.php:339 msgid "Activate ICS Feed" msgstr "ICS-Feed aktivieren" -#: includes/CPT/CalendarFeed.php:312 +#: includes/CPT/CalendarFeed.php:340 msgid "Activate" msgstr "Aktivieren" -#: includes/CPT/CalendarFeed.php:318 +#: includes/CPT/CalendarFeed.php:346 msgid "Update ICS Feed" msgstr "ICS-Feed aktualisieren" -#: includes/CPT/CalendarFeed.php:319 +#: includes/CPT/CalendarFeed.php:347 msgid "Update" msgstr "Aktualisieren" -#: includes/CPT/CalendarFeed.php:327 +#: includes/CPT/CalendarFeed.php:355 msgid "Deactivate ICS Feed" msgstr "ICS-Feed deaktivieren" -#: includes/CPT/CalendarFeed.php:328 +#: includes/CPT/CalendarFeed.php:356 msgid "Deactivate" msgstr "Deaktivieren" -#: includes/CPT/CalendarFeed.php:348 +#: includes/CPT/CalendarFeed.php:376 msgid "Invalid access" msgstr "Unzulässiger Zugriff" -#: includes/ICS/Events.php:329 includes/Utils.php:814 +#: includes/ICS/Events.php:325 includes/Utils.php:828 msgid "m-d-Y" msgstr "d.m.Y" @@ -470,26 +487,75 @@ msgstr "Veranstaltung" msgid "Title" msgstr "Titel" -#: includes/ICS/Metabox.php:56 +#: includes/ICS/Metabox.php:62 +msgid "ICS Feed URL" +msgstr "ICS-Feed-URL" + +#: includes/ICS/Metabox.php:64 +msgid "ICS Feed Url" +msgstr "ICS-Feed-URL" + +#: includes/ICS/Metabox.php:65 msgid "Enter the url of the ICS feed. This field is required." msgstr "Die URL des ICS-Feeds eingeben. Dieses Feld ist erforderlich." -#: includes/ICS/Metabox.php:133 +#: includes/ICS/Metabox.php:69 includes/ICS/Metabox.php:71 +msgid "Past Events" +msgstr "Vergangene Veranstaltungen" + +#: includes/ICS/Metabox.php:72 +msgid "" +"For how many days in the past events are imported (max: 365, min:30)? Older " +"events are deleted from the website." +msgstr "" +"Bis wieviele Tage rückwirkend sollen Veranstaltungen importiert werden (max: " +"365, min: 30)? Ältere Veranstaltungen werden von der Website gelöscht." + +#: includes/ICS/Metabox.php:79 +msgid "" +"Enter a string to filter the import. Only events containing this string in " +"the title will be imported." +msgstr "" +"Geben Sie ein oder mehrere Wörter ein, um nur diese Veranstaltungen zu " +"importieren. Nur Veranstaltungen mit diesem Text im Titel werden importiert." + +#: includes/ICS/Metabox.php:86 +msgid "" +"Enter a string to exclude events from importing. Events containing this " +"string in the title will not be imported." +msgstr "" +"Geben Sie ein oder mehrere Wörter ein, um Veranstaltungen vom Import " +"auszuschließen. Veranstaltungen mit diesem Text im Titel werden nicht " +"importiert." + +#: includes/ICS/Metabox.php:194 msgid "Feed URL is not valid." msgstr "Die Feed-URL ist ungültig." -#: includes/Main.php:43 +#: includes/Main.php:46 msgid "Settings" msgstr "Einstellungen" -#: includes/Main.php:86 +#: includes/Main.php:89 msgid "Hide past events" msgstr "Vergangene Termine ausblenden" -#: includes/Main.php:87 templates/shortcodes/calendar.php:42 +#: includes/Main.php:90 msgid "Show past events" msgstr "Vergangene Termine anzeigen" +#: includes/Options/Settings.php:267 +msgid "You do not have enough permissions to do that." +msgstr "Dazu haben Sie nicht genügend Berechtigungen." + +#: includes/Options/Settings.php:292 +msgid "Settings saved." +msgstr "Die Einstellungen wurden gespeichert." + +#: includes/Options/templates/settings-page.php:18 +msgid "Settings issues detected." +msgstr "Einstellungsprobleme erkannt." + #: includes/Settings.php:17 msgid "Calendar Settings" msgstr "Einstellungen › Kalender" @@ -519,116 +585,139 @@ msgid "The archive slug can have between 4 and 32 alphanumeric characters." msgstr "" "Der Archiv-Slug kann zwischen 4 und 32 alphanumerische Zeichen enthalten." +#: includes/Settings.php:43 +msgid "Remove Duplicates" +msgstr "Duplikate entfernen" + #: includes/Settings.php:44 +msgid "" +"If the same event (i.e. same title, date and location) is present in " +"multiple feeds, only show one of them." +msgstr "" +"Wenn dieselbe Veranstaltung (d.h. gleicher Titel, Zeit und Ort) in mehreren " +"Feed vorhanden ist, diese nur einmal anzeigen." + +#: includes/Settings.php:49 msgid "Schedule" msgstr "Zeitplan" -#: includes/Settings.php:45 +#: includes/Settings.php:50 msgid "Choose the recurrence to check for new events." msgstr "Wiederholung auswählen, um nach neuen Veranstaltungen zu suchen." -#: includes/Settings.php:47 +#: includes/Settings.php:52 msgid "Hourly" msgstr "Stündlich" -#: includes/Settings.php:48 +#: includes/Settings.php:53 msgid "Twice daily" msgstr "Zweimal täglich" -#: includes/Settings.php:49 +#: includes/Settings.php:54 msgid "Daily" msgstr "Täglich" -#: includes/Shortcodes/Calendar.php:193 +#: includes/Shortcodes/Calendar.php:213 msgid "View day" msgstr "Tag ansehen" -#: includes/Shortcodes/Calendar.php:193 +#: includes/Shortcodes/Calendar.php:213 msgid "Day" msgstr "Tag" -#: includes/Shortcodes/Calendar.php:194 +#: includes/Shortcodes/Calendar.php:214 msgid "View monthly calendar" msgstr "Monatskalender ansehen" -#: includes/Shortcodes/Calendar.php:194 +#: includes/Shortcodes/Calendar.php:214 msgid "Month" msgstr "Monat" -#: includes/Shortcodes/Calendar.php:195 +#: includes/Shortcodes/Calendar.php:215 msgid "View yearly calendar" msgstr "Jahreskalender ansehen" -#: includes/Shortcodes/Calendar.php:195 +#: includes/Shortcodes/Calendar.php:215 msgid "Year" msgstr "Jahr" -#: includes/Shortcodes/Calendar.php:304 includes/Shortcodes/Calendar.php:536 -#: includes/Shortcodes/Shortcode.php:69 includes/Shortcodes/Shortcode.php:176 -#: templates/shortcodes/calendar.php:138 templates/shortcodes/events.php:124 -#: templates/shortcodes/themes/fau-events/events.php:42 -#: templates/shortcodes/themes/rrze/events.php:39 -msgid "All Day" -msgstr "Ganztägig" +#: includes/Shortcodes/Calendar.php:265 +msgid "Go to previous year" +msgstr "Zum vorherigen Jahr wechseln" + +#: includes/Shortcodes/Calendar.php:265 includes/Shortcodes/Calendar.php:295 +#: includes/Shortcodes/Calendar.php:458 +msgid "Previous" +msgstr "Zurück" -#: includes/Shortcodes/Calendar.php:327 +#: includes/Shortcodes/Calendar.php:268 +msgid "Go to next year" +msgstr "Zum nächsten Jahr wechseln" + +#: includes/Shortcodes/Calendar.php:268 includes/Shortcodes/Calendar.php:298 +#: includes/Shortcodes/Calendar.php:461 +msgid "Next" +msgstr "Weiter" + +#: includes/Shortcodes/Calendar.php:295 +msgid "Go to previous day" +msgstr "Zum vorherigen Tag wechseln" + +#: includes/Shortcodes/Calendar.php:298 +msgid "Go to next day" +msgstr "Zum nächsten Tag wechseln" + +#: includes/Shortcodes/Calendar.php:353 msgid "There are no events scheduled for this day." msgstr "An diesem Tag finden keine Veranstaltungen statt." -#: includes/Shortcodes/Calendar.php:391 +#: includes/Shortcodes/Calendar.php:410 msgid "View Details" msgstr "Details ansehen" -#: includes/Shortcodes/Calendar.php:442 +#: includes/Shortcodes/Calendar.php:458 msgid "Go to previous month" msgstr "Zum vorherigen Monat wechseln" -#: includes/Shortcodes/Calendar.php:442 -msgid "Previous" -msgstr "Zurück" - -#: includes/Shortcodes/Calendar.php:445 +#: includes/Shortcodes/Calendar.php:461 msgid "Go to next month" msgstr "Zum nächsten Monat wechseln" -#: includes/Shortcodes/Calendar.php:445 -msgid "Next" -msgstr "Weiter" - -#: includes/Shortcodes/Calendar.php:567 +#: includes/Shortcodes/Calendar.php:580 msgid "More…" msgstr "Mehr…" -#: includes/Shortcodes/Calendar.php:594 includes/Shortcodes/Calendar.php:650 +#: includes/Shortcodes/Calendar.php:607 includes/Shortcodes/Calendar.php:664 msgid "Read more" msgstr "Weiterlesen" -#: includes/Shortcodes/Events.php:151 -msgid "All-day" -msgstr "Ganztägig" +#: includes/Shortcodes/Events.php:34 +msgid "Show All Events" +msgstr "Alle Veranstaltungen anzeigen" -#: includes/Shortcodes/Events.php:217 includes/Shortcodes/Events.php:225 +#: includes/Shortcodes/Events.php:290 includes/Shortcodes/Events.php:328 msgid "No events scheduled." msgstr "Keine bevorstehenden Veranstaltungen." +#: includes/Shortcodes/Events.php:307 +msgid "Add all events of this category to your calendar" +msgstr "Alle Veranstaltungen dieser Kategorie zum Kalender hinzufügen" + +#: includes/Shortcodes/Events.php:314 +msgid "Add all events of this tag to your calendar" +msgstr "Alle Veranstaltungen mit diesem Schlagwort zum Kalender hinzufügen" + #: includes/Shortcodes/Shortcode.php:51 msgid "No description" msgstr "Keine Beschreibung" #. translators: 1: Start date, 2: End date. -#. translators: 1: Start time, 2: End time. #: includes/Shortcodes/Shortcode.php:76 includes/Shortcodes/Shortcode.php:181 -#: templates/shortcodes/themes/fau-events/events.php:50 -#: templates/shortcodes/themes/fau-events/events.php:74 -#: templates/shortcodes/themes/rrze/events.php:47 -#: templates/shortcodes/themes/rrze/events.php:71 msgid "%1$s - %2$s" msgstr "%1$s bis %2$s" #. translators: 1: Start date, 2: Start time, 3: End date, 4: End time. #: includes/Shortcodes/Shortcode.php:85 includes/Shortcodes/Shortcode.php:185 -#: templates/shortcodes/themes/fau-events/events.php:61 -#: templates/shortcodes/themes/rrze/events.php:58 msgid "%1$s %2$s - %3$s %4$s" msgstr "%1$s %2$s Uhr bis %3$s %4$s Uhr" @@ -646,7 +735,7 @@ msgid "Subscribe to calendar" msgstr "Kalender abonnieren" #. translators: 1: Server PHP version number, 2: Required PHP version number. -#: rrze-calendar.php:61 +#: rrze-calendar.php:60 msgid "" "The server is running PHP version %1$s. The Plugin requires at least PHP " "version %2$s." @@ -655,7 +744,7 @@ msgstr "" "Version %2$s." #. translators: 1: Server WordPress version number, 2: Required WordPress version number. -#: rrze-calendar.php:68 +#: rrze-calendar.php:67 msgid "" "The server is running WordPress version %1$s. The Plugin requires at least " "WordPress version %2$s." @@ -664,40 +753,6 @@ msgstr "" "WordPress Version %2$s." #. translators: 1: The plugin name, 2: The error string. -#: rrze-calendar.php:87 rrze-calendar.php:158 +#: rrze-calendar.php:86 rrze-calendar.php:157 msgid "Plugins: %1$s: %2$s" msgstr "Plugins: %1$s: %2$s" - -#: templates/shortcodes/calendar.php:34 templates/shortcodes/calendar.php:56 -msgid "F Y" -msgstr "F Y" - -#. translators: %s: Day of the month without leading zeros. -#: templates/shortcodes/calendar.php:85 templates/shortcodes/calendar.php:111 -#: templates/shortcodes/calendar.php:227 -msgid "j" -msgstr "j." - -#: templates/shortcodes/calendar.php:109 -msgid "l F jS, Y" -msgstr "l, j. F Y" - -#: templates/shortcodes/calendar.php:243 -msgid "No additional events this month." -msgstr "Keine weiteren Veranstaltungen in diesem Monat." - -#: templates/shortcodes/themes/fau-events/events.php:12 -#: templates/shortcodes/themes/fau/events.php:24 -#: templates/shortcodes/themes/rrze/events.php:10 -msgid "No upcoming events." -msgstr "Keine bevorstehenden Veranstaltungen." - -#: templates/shortcodes/themes/fau-events/events.php:98 -#: templates/shortcodes/themes/rrze/events.php:90 -msgid "More events" -msgstr "Weitere Veranstaltungen" - -#: templates/shortcodes/themes/fau-events/events.php:104 -#: templates/shortcodes/themes/rrze/events.php:97 -msgid "Subscription" -msgstr "Abonnement" diff --git a/languages/rrze-calendar.pot b/languages/rrze-calendar.pot index fc5552dc..00ce147c 100644 --- a/languages/rrze-calendar.pot +++ b/languages/rrze-calendar.pot @@ -1,734 +1,762 @@ -# Copyright (C) 2023 RRZE Webteam +# Copyright (C) 2024 RRZE Webteam # This file is distributed under the GNU General Public License v3.0. -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: RRZE Calendar 2.0.1\n" +"Project-Id-Version: RRZE Calendar 2.0.13\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/rrze-calendar\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2023-10-24 10:06+0000\n" +"POT-Creation-Date: 2024-02-06T09:38:16+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"X-Generator: Loco https://localise.biz/\n" +"X-Generator: WP-CLI 2.9.0\n" "X-Domain: rrze-calendar\n" -"Language: \n" -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;" -#. 1: Start date, 2: Start time, 3: End time. -#: includes/Shortcodes/Shortcode.php:96 includes/Shortcodes/Shortcode.php:189 -#, php-format -msgid "%1$s %2$s - %3$s" -msgstr "" - -#. 1: Start date, 2: Start time, 3: End date, 4: End time. -#: includes/Shortcodes/Shortcode.php:85 includes/Shortcodes/Shortcode.php:185 -#, php-format -msgid "%1$s %2$s - %3$s %4$s" +#. Plugin Name of the plugin +msgid "RRZE Calendar" msgstr "" -#. 1: Start date, 2: End date. -#: includes/Shortcodes/Shortcode.php:76 includes/Shortcodes/Shortcode.php:181 -#, php-format -msgid "%1$s - %2$s" +#. Plugin URI of the plugin +msgid "https://github.com/RRZE-Webteam/rrze-calendar" msgstr "" -#: includes/CPT/CalendarEvent.php:141 -#, php-format -msgid "" -"%sThis event is generated by feed import%s. Changes will be overwritten by " -"the next sync." +#. Description of the plugin +msgid "Import and output of FAU public events." msgstr "" -#: includes/CPT/CalendarEvent.php:281 -msgid "(optional)" +#. Author of the plugin +msgid "RRZE Webteam" msgstr "" -#: includes/CPT/CalendarEvent.php:191 -msgid "(Time settings will be ignored.)" +#. Author URI of the plugin +msgid "https://blogs.fau.de/webworking/" msgstr "" -#: includes/CPT/CalendarFeed.php:339 -msgid "Activate" +#: includes/CPT/CalendarEvent.php:54 +msgctxt "post type general name" +msgid "Events" msgstr "" -#: includes/CPT/CalendarFeed.php:338 -msgid "Activate ICS Feed" +#: includes/CPT/CalendarEvent.php:55 +msgctxt "post type singular name" +msgid "Event" msgstr "" -#: includes/CPT/CalendarEvent.php:413 -msgid "" -"Add additional dates (format YYYY-MM-DD, e.g. 2023-12-31). One date per line." +#: includes/CPT/CalendarEvent.php:56 +msgctxt "admin menu" +msgid "Calendar" msgstr "" -#: includes/Shortcodes/Events.php:303 -msgid "Add all events of this category to your calendar" +#: includes/CPT/CalendarEvent.php:57 +msgctxt "add new on admin bar" +msgid "Calendar Event" msgstr "" -#: includes/Shortcodes/Events.php:310 -msgid "Add all events of this tag to your calendar" +#: includes/CPT/CalendarEvent.php:58 +msgctxt "admin menu" +msgid "Add New" msgstr "" #: includes/CPT/CalendarEvent.php:59 msgid "Add New Event" msgstr "" -#: includes/CPT/CalendarFeed.php:78 -msgid "Add New ICS Feed" +#: includes/CPT/CalendarEvent.php:60 +msgid "New Event" msgstr "" -#: includes/CPT/CalendarEvent.php:57 -msgctxt "add new on admin bar" -msgid "Calendar Event" +#: includes/CPT/CalendarEvent.php:61 +msgid "Edit Event" msgstr "" -#: includes/CPT/CalendarFeed.php:76 -msgctxt "add new on admin bar" -msgid "ICS Feed" +#: includes/CPT/CalendarEvent.php:62 +msgid "View Event" msgstr "" -#: includes/CPT/CalendarEvent.php:690 includes/Shortcodes/Events.php:293 -#: includes/Shortcodes/Calendar.php:350 includes/Shortcodes/Calendar.php:692 -msgid "Add to calendar" +#: includes/CPT/CalendarEvent.php:63 +msgid "All Events" msgstr "" -#: includes/CPT/CalendarEvent.php:412 -msgid "Additions" +#: includes/CPT/CalendarEvent.php:64 +#: includes/ICS/Metabox.php:204 +msgid "Search Events" msgstr "" -#: includes/CPT/CalendarEvent.php:58 -msgctxt "admin menu" -msgid "Add New" +#: includes/CPT/CalendarEvent.php:65 +msgid "Parent Events:" msgstr "" -#: includes/CPT/CalendarEvent.php:56 -msgctxt "admin menu" -msgid "Calendar" +#: includes/CPT/CalendarEvent.php:66 +#: includes/ICS/Events.php:46 +msgid "No events found." msgstr "" -#: includes/CPT/CalendarFeed.php:75 -msgctxt "admin menu" -msgid "ICS Feeds" +#: includes/CPT/CalendarEvent.php:67 +msgid "No events found in Trash." msgstr "" -#: includes/CPT/CalendarEvent.php:605 includes/Shortcodes/Shortcode.php:69 -#: includes/Shortcodes/Shortcode.php:176 includes/Shortcodes/Calendar.php:326 -#: includes/Shortcodes/Calendar.php:549 -msgid "All Day" +#: includes/CPT/CalendarEvent.php:92 +msgctxt "Taxonomy general name" +msgid "Event Categories" msgstr "" -#: includes/CPT/CalendarEvent.php:626 -msgid "All day" +#: includes/CPT/CalendarEvent.php:93 +msgctxt "Taxonomy singular name" +msgid "Event Category" msgstr "" -#: includes/CPT/CalendarEvent.php:191 -msgid "All day event" +#: includes/CPT/CalendarEvent.php:109 +msgctxt "Taxonomy general name" +msgid "Event Tags" msgstr "" -#: includes/CPT/CalendarEvent.php:63 -msgid "All Events" +#: includes/CPT/CalendarEvent.php:110 +msgctxt "Taxonomy singular name" +msgid "Event Tag" msgstr "" -#: includes/Settings.php:30 -msgid "Archive Slug" +#: includes/CPT/CalendarEvent.php:132 +msgid "General Information" msgstr "" -#: includes/Settings.php:21 -msgid "Calendar" +#. translators: 1: , 2: . +#: includes/CPT/CalendarEvent.php:143 +msgid "%1$sThis event is generated by feed import.%2$s Changes will be overwritten by the next sync." msgstr "" -#: includes/Settings.php:17 -msgid "Calendar Settings" +#: includes/CPT/CalendarEvent.php:150 +msgid "Start" msgstr "" -#: includes/CPT/CalendarEvent.php:785 includes/CPT/CalendarFeed.php:119 -msgid "Categories" +#: includes/CPT/CalendarEvent.php:173 +msgid "End" msgstr "" -#: includes/Settings.php:50 -msgid "Choose the recurrence to check for new events." +#: includes/CPT/CalendarEvent.php:196 +msgid "All day event" msgstr "" -#: includes/CPT/CalendarFeed.php:211 includes/CPT/CalendarFeed.php:221 -#: includes/CPT/CalendarFeed.php:244 -msgid "Color" +#: includes/CPT/CalendarEvent.php:196 +msgid "(Time settings will be ignored.)" msgstr "" -#: includes/Settings.php:54 -msgid "Daily" +#: includes/CPT/CalendarEvent.php:201 +#: includes/ICS/EventsListTable.php:65 +msgid "Description" msgstr "" -#: includes/CPT/CalendarEvent.php:352 includes/CPT/CalendarEvent.php:655 -#: includes/CPT/CalendarEvent.php:664 includes/CPT/CalendarEvent.php:703 -#: includes/CPT/CalendarEvent.php:782 includes/ICS/EventsListTable.php:63 -msgid "Date" +#: includes/CPT/CalendarEvent.php:210 +#: includes/CPT/CalendarEvent.php:665 +#: includes/CPT/CalendarEvent.php:673 +#: includes/CPT/CalendarEvent.php:714 +#: includes/CPT/CalendarEvent.php:788 +#: includes/ICS/EventsListTable.php:66 +msgid "Location" msgstr "" -#: includes/Shortcodes/Calendar.php:213 -msgid "Day" +#: includes/CPT/CalendarEvent.php:221 +msgid "VC URL" msgstr "" -#: includes/CPT/CalendarFeed.php:355 -msgid "Deactivate" +#: includes/CPT/CalendarEvent.php:227 +#: includes/CPT/CalendarEvent.php:722 +msgid "Prices" msgstr "" -#: includes/CPT/CalendarFeed.php:354 -msgid "Deactivate ICS Feed" +#: includes/CPT/CalendarEvent.php:238 +msgid "Registration URL" msgstr "" -#: includes/CPT/CalendarEvent.php:196 includes/ICS/EventsListTable.php:65 -msgid "Description" +#: includes/CPT/CalendarEvent.php:244 +#: includes/CPT/CalendarEvent.php:732 +msgid "Downloads" msgstr "" -#: includes/CPT/CalendarEvent.php:239 includes/CPT/CalendarEvent.php:728 -msgid "Downloads" +#: includes/CPT/CalendarEvent.php:263 +msgid "Featured Event" msgstr "" -#: includes/CPT/CalendarEvent.php:347 -msgid "Each" +#: includes/CPT/CalendarEvent.php:272 +msgid "Repeating Event" msgstr "" -#: includes/CPT/CalendarEvent.php:367 includes/CPT/CalendarEvent.php:376 -msgid "each" +#: includes/CPT/CalendarEvent.php:279 +msgid "Repeat" msgstr "" -#: includes/CPT/CalendarEvent.php:61 -msgid "Edit Event" +#: includes/CPT/CalendarEvent.php:285 +msgid "Repeat until" msgstr "" -#: includes/CPT/CalendarFeed.php:80 -msgid "Edit ICS Feed" +#: includes/CPT/CalendarEvent.php:286 +msgid "(optional)" msgstr "" -#: includes/CPT/CalendarEvent.php:168 -msgid "End" +#: includes/CPT/CalendarEvent.php:308 +msgid "Repeat Interval" msgstr "" -#: includes/ICS/Metabox.php:86 -msgid "" -"Enter a string to exclude events from importing. Events containing this " -"string in the title will not be imported." +#: includes/CPT/CalendarEvent.php:314 +msgid "Weekly" msgstr "" -#: includes/ICS/Metabox.php:79 -msgid "" -"Enter a string to filter the import. Only events containing this string in " -"the title will be imported." +#: includes/CPT/CalendarEvent.php:315 +msgid "Monthly" msgstr "" -#: includes/CPT/CalendarEvent.php:405 -msgid "" -"Enter dates to be skipped (format YYYY-MM-DD, e.g. 2023-12-31). One date per " -"line." +#: includes/CPT/CalendarEvent.php:321 +msgid "Repeats" msgstr "" -#: includes/Settings.php:31 -msgid "Enter the archive slug that will display the event list." +#: includes/CPT/CalendarEvent.php:330 +msgid "every" msgstr "" -#: includes/ICS/Metabox.php:65 -msgid "Enter the url of the ICS feed. This field is required." +#: includes/CPT/CalendarEvent.php:331 +msgid "week(s)" msgstr "" -#: includes/ICS/EventsListTable.php:15 -msgid "Event" +#: includes/CPT/CalendarEvent.php:335 +#: includes/CPT/CalendarEvent.php:367 +#: includes/CPT/CalendarEvent.php:377 +msgid "Repeats on" msgstr "" -#: includes/CPT/CalendarEvent.php:743 -msgid "Event Categories" +#: includes/CPT/CalendarEvent.php:352 +msgid "Each" msgstr "" -#: includes/CPT/CalendarEvent.php:700 -msgid "Event Details" +#: includes/CPT/CalendarEvent.php:357 +#: includes/CPT/CalendarEvent.php:660 +#: includes/CPT/CalendarEvent.php:669 +#: includes/CPT/CalendarEvent.php:707 +#: includes/CPT/CalendarEvent.php:786 +#: includes/ICS/EventsListTable.php:63 +msgid "Date" msgstr "" -#: includes/CPT/CalendarEvent.php:419 -msgid "Event Items" +#: includes/CPT/CalendarEvent.php:358 +msgid "Weekday" msgstr "" -#: includes/Settings.php:25 includes/CPT/CalendarFeed.php:121 -#: includes/ICS/Metabox.php:34 includes/ICS/EventsListTable.php:16 -#: templates/cpt/archive-event.php:30 templates/cpt/archive-event.php:32 -#: templates/cpt/themes/rrze/archive-event.php:31 -#: templates/cpt/themes/fau/archive-event.php:30 -#: templates/cpt/themes/fau/archive-event.php:32 -msgid "Events" +#: includes/CPT/CalendarEvent.php:372 +#: includes/CPT/CalendarEvent.php:381 +msgid "each" msgstr "" -#: includes/Settings.php:32 -msgid "events" +#: includes/CPT/CalendarEvent.php:373 +#: includes/CPT/CalendarEvent.php:382 +msgid "of month" msgstr "" -#: includes/CPT/CalendarEvent.php:325 -msgid "every" +#: includes/CPT/CalendarEvent.php:400 +msgid "Repeats in" msgstr "" -#: includes/CPT/CalendarEvent.php:404 +#: includes/CPT/CalendarEvent.php:409 msgid "Exceptions" msgstr "" -#: includes/CPT/CalendarFeed.php:201 includes/ICS/Metabox.php:83 -#: includes/ICS/Metabox.php:85 -msgid "Exclude Events" +#: includes/CPT/CalendarEvent.php:410 +msgid "Enter dates to be skipped (format YYYY-MM-DD, e.g. 2023-12-31). One date per line." msgstr "" -#: includes/CPT/CalendarEvent.php:258 -msgid "Featured Event" +#: includes/CPT/CalendarEvent.php:417 +msgid "Additions" msgstr "" -#: includes/CPT/CalendarEvent.php:787 includes/ICS/Metabox.php:25 -msgid "Feed" +#: includes/CPT/CalendarEvent.php:418 +msgid "Add additional dates (format YYYY-MM-DD, e.g. 2023-12-31). One date per line." msgstr "" -#: includes/ICS/Metabox.php:194 -msgid "Feed URL is not valid." +#: includes/CPT/CalendarEvent.php:424 +msgid "Event Items" msgstr "" -#: includes/CPT/CalendarFeed.php:181 -msgid "Feed URL." +#: includes/CPT/CalendarEvent.php:481 +msgid "first" msgstr "" -#: includes/CPT/CalendarEvent.php:480 -msgid "fifth" +#: includes/CPT/CalendarEvent.php:482 +msgid "second" msgstr "" -#: includes/CPT/CalendarEvent.php:476 -msgid "first" +#: includes/CPT/CalendarEvent.php:483 +msgid "third" msgstr "" -#: includes/ICS/Metabox.php:72 -msgid "" -"For how many days in the past events are imported (max: 365, min:30)? Older " -"events are deleted from the website." +#: includes/CPT/CalendarEvent.php:484 +msgid "fourth" msgstr "" -#: includes/CPT/CalendarEvent.php:479 -msgid "fourth" +#: includes/CPT/CalendarEvent.php:485 +msgid "fifth" msgstr "" -#: includes/CPT/CalendarEvent.php:132 -msgid "General Information" +#: includes/CPT/CalendarEvent.php:534 +msgid "Maximum +/- 1 year." msgstr "" -#: includes/Shortcodes/Calendar.php:298 -msgid "Go to next day" +#: includes/CPT/CalendarEvent.php:572 +#: includes/Shortcodes/Events.php:197 +#: includes/Shortcodes/Events.php:203 +msgid "Online" msgstr "" -#: includes/Shortcodes/Calendar.php:461 -msgid "Go to next month" +#: includes/CPT/CalendarEvent.php:610 +#: includes/Shortcodes/Calendar.php:326 +#: includes/Shortcodes/Calendar.php:549 +#: includes/Shortcodes/Shortcode.php:69 +#: includes/Shortcodes/Shortcode.php:176 +msgid "All Day" msgstr "" -#: includes/Shortcodes/Calendar.php:268 -msgid "Go to next year" +#: includes/CPT/CalendarEvent.php:631 +msgid "All day" msgstr "" -#: includes/Shortcodes/Calendar.php:295 -msgid "Go to previous day" +#: includes/CPT/CalendarEvent.php:664 +#: includes/CPT/CalendarEvent.php:672 +#: includes/CPT/CalendarEvent.php:710 +msgid "Time" msgstr "" -#: includes/Shortcodes/Calendar.php:458 -msgid "Go to previous month" +#: includes/CPT/CalendarEvent.php:695 +#: includes/Shortcodes/Calendar.php:350 +#: includes/Shortcodes/Calendar.php:692 +#: includes/Shortcodes/Events.php:297 +msgid "Add to calendar" msgstr "" -#: includes/Shortcodes/Calendar.php:265 -msgid "Go to previous year" +#: includes/CPT/CalendarEvent.php:704 +msgid "Event Details" msgstr "" -#: includes/Main.php:89 -msgid "Hide past events" +#: includes/CPT/CalendarEvent.php:717 +msgid "Video Conference Link" msgstr "" -#: includes/Settings.php:52 -msgid "Hourly" +#: includes/CPT/CalendarEvent.php:727 +msgid "Registration" msgstr "" -#. Author URI of the plugin -msgid "https://blogs.fau.de/webworking/" +#: includes/CPT/CalendarEvent.php:747 +msgid "Event Categories" msgstr "" -#. URI of the plugin -msgid "https://github.com/RRZE-Webteam/rrze-calendar" +#: includes/CPT/CalendarEvent.php:787 +#: includes/ICS/EventsListTable.php:64 +msgid "Recurrence" msgstr "" -#: includes/Settings.php:26 -msgid "ICS Feed" +#: includes/CPT/CalendarEvent.php:789 +#: includes/CPT/CalendarFeed.php:120 +msgid "Categories" msgstr "" -#: includes/ICS/Metabox.php:62 -msgid "ICS Feed URL" +#: includes/CPT/CalendarEvent.php:790 +#: includes/CPT/CalendarFeed.php:121 +msgid "Tags" msgstr "" -#: includes/ICS/Metabox.php:64 -msgid "ICS Feed Url" +#: includes/CPT/CalendarEvent.php:791 +#: includes/ICS/Metabox.php:25 +msgid "Feed" msgstr "" -#: includes/CPT/CalendarFeed.php:82 includes/CPT/CalendarFeed.php:91 +#: includes/CPT/CalendarFeed.php:74 +msgctxt "post type general name" msgid "ICS Feeds" msgstr "" -#: includes/Settings.php:44 -msgid "" -"If the same event (i.e. same title, date and location) is present in " -"multiple feeds, only show one of them." +#: includes/CPT/CalendarFeed.php:75 +msgctxt "post type singular name" +msgid "ICS Feed" msgstr "" -#. Description of the plugin -msgid "Import and output of FAU public events." +#: includes/CPT/CalendarFeed.php:76 +msgctxt "admin menu" +msgid "ICS Feeds" msgstr "" -#: includes/CPT/CalendarFeed.php:191 includes/ICS/Metabox.php:76 -#: includes/ICS/Metabox.php:78 -msgid "Include Events" +#: includes/CPT/CalendarFeed.php:77 +msgctxt "add new on admin bar" +msgid "ICS Feed" msgstr "" -#: includes/CPT/CalendarFeed.php:375 -msgid "Invalid access" +#: includes/CPT/CalendarFeed.php:78 +msgctxt "popup" +msgid "Add New" msgstr "" -#: includes/CPT/CalendarFeed.php:122 -msgid "Last Updated" +#: includes/CPT/CalendarFeed.php:79 +msgid "Add New ICS Feed" msgstr "" -#: includes/CPT/CalendarEvent.php:205 includes/CPT/CalendarEvent.php:660 -#: includes/CPT/CalendarEvent.php:668 includes/CPT/CalendarEvent.php:710 -#: includes/CPT/CalendarEvent.php:784 includes/ICS/EventsListTable.php:66 -msgid "Location" +#: includes/CPT/CalendarFeed.php:80 +msgid "New ICS Feed" msgstr "" -#: includes/Utils.php:828 includes/ICS/Events.php:323 -msgid "m-d-Y" +#: includes/CPT/CalendarFeed.php:81 +msgid "Edit ICS Feed" msgstr "" -#: includes/CPT/CalendarEvent.php:529 -msgid "Maximum +/- 1 year." +#: includes/CPT/CalendarFeed.php:82 +msgid "View ICS Feed" msgstr "" -#: includes/Shortcodes/Calendar.php:214 -msgid "Month" +#: includes/CPT/CalendarFeed.php:83 +#: includes/CPT/CalendarFeed.php:92 +msgid "ICS Feeds" msgstr "" -#: includes/CPT/CalendarEvent.php:310 -msgid "Monthly" +#: includes/CPT/CalendarFeed.php:84 +msgid "Search Feeds" msgstr "" -#: includes/Shortcodes/Calendar.php:580 -msgid "More…" +#: includes/CPT/CalendarFeed.php:85 +msgid "Parent Feeds:" msgstr "" -#: includes/CPT/CalendarEvent.php:60 -msgid "New Event" +#: includes/CPT/CalendarFeed.php:86 +msgid "No ics feeds found." msgstr "" -#: includes/CPT/CalendarFeed.php:79 -msgid "New ICS Feed" +#: includes/CPT/CalendarFeed.php:87 +msgid "No ics feeds found in Trash." msgstr "" -#: includes/Shortcodes/Calendar.php:268 includes/Shortcodes/Calendar.php:298 -#: includes/Shortcodes/Calendar.php:461 -msgid "Next" +#: includes/CPT/CalendarFeed.php:122 +#: includes/ICS/EventsListTable.php:16 +#: includes/ICS/Metabox.php:34 +#: includes/Settings.php:25 +#: templates/cpt/archive-event.php:30 +#: templates/cpt/archive-event.php:32 +#: templates/cpt/themes/fau-events/archive-event.php:22 +#: templates/cpt/themes/fau/archive-event.php:30 +#: templates/cpt/themes/fau/archive-event.php:32 +#: templates/cpt/themes/rrze/archive-event.php:31 +msgid "Events" msgstr "" -#: includes/Shortcodes/Shortcode.php:51 -msgid "No description" +#: includes/CPT/CalendarFeed.php:123 +msgid "Last Updated" msgstr "" -#: includes/CPT/CalendarEvent.php:67 -msgid "No events found in Trash." +#: includes/CPT/CalendarFeed.php:182 +msgid "Feed URL." msgstr "" -#: includes/CPT/CalendarEvent.php:66 includes/ICS/Events.php:44 -msgid "No events found." +#: includes/CPT/CalendarFeed.php:192 +#: includes/ICS/Metabox.php:76 +#: includes/ICS/Metabox.php:78 +msgid "Include Events" msgstr "" -#: includes/Shortcodes/Events.php:286 includes/Shortcodes/Events.php:324 -msgid "No events scheduled." +#: includes/CPT/CalendarFeed.php:202 +#: includes/ICS/Metabox.php:83 +#: includes/ICS/Metabox.php:85 +msgid "Exclude Events" msgstr "" -#: includes/CPT/CalendarFeed.php:86 -msgid "No ics feeds found in Trash." +#: includes/CPT/CalendarFeed.php:212 +#: includes/CPT/CalendarFeed.php:222 +#: includes/CPT/CalendarFeed.php:245 +msgid "Color" msgstr "" -#: includes/CPT/CalendarFeed.php:85 -msgid "No ics feeds found." +#: includes/CPT/CalendarFeed.php:339 +msgid "Activate ICS Feed" msgstr "" -#: includes/CPT/CalendarEvent.php:368 includes/CPT/CalendarEvent.php:377 -msgid "of month" +#: includes/CPT/CalendarFeed.php:340 +msgid "Activate" msgstr "" -#: includes/CPT/CalendarEvent.php:567 includes/Shortcodes/Events.php:193 -#: includes/Shortcodes/Events.php:199 -msgid "Online" +#: includes/CPT/CalendarFeed.php:346 +msgid "Update ICS Feed" msgstr "" -#: includes/CPT/CalendarEvent.php:65 -msgid "Parent Events:" +#: includes/CPT/CalendarFeed.php:347 +msgid "Update" msgstr "" -#: includes/CPT/CalendarFeed.php:84 -msgid "Parent Feeds:" +#: includes/CPT/CalendarFeed.php:355 +msgid "Deactivate ICS Feed" msgstr "" -#: includes/ICS/Metabox.php:69 includes/ICS/Metabox.php:71 -msgid "Past Events" +#: includes/CPT/CalendarFeed.php:356 +msgid "Deactivate" msgstr "" -#. 1: The plugin name, 2: The error string. -#: rrze-calendar.php:87 rrze-calendar.php:158 -#, php-format -msgid "Plugins: %1$s: %2$s" +#: includes/CPT/CalendarFeed.php:376 +msgid "Invalid access" msgstr "" -#: includes/CPT/CalendarFeed.php:77 -msgctxt "popup" -msgid "Add New" +#: includes/ICS/Events.php:325 +#: includes/Utils.php:828 +msgid "m-d-Y" msgstr "" -#: includes/CPT/CalendarEvent.php:54 -msgctxt "post type general name" -msgid "Events" +#: includes/ICS/EventsListTable.php:15 +msgid "Event" msgstr "" -#: includes/CPT/CalendarFeed.php:73 -msgctxt "post type general name" -msgid "ICS Feeds" +#: includes/ICS/EventsListTable.php:62 +msgid "Title" msgstr "" -#: includes/CPT/CalendarEvent.php:55 -msgctxt "post type singular name" -msgid "Event" +#: includes/ICS/Metabox.php:62 +msgid "ICS Feed URL" msgstr "" -#: includes/CPT/CalendarFeed.php:74 -msgctxt "post type singular name" -msgid "ICS Feed" +#: includes/ICS/Metabox.php:64 +msgid "ICS Feed Url" msgstr "" -#: includes/Shortcodes/Calendar.php:265 includes/Shortcodes/Calendar.php:295 -#: includes/Shortcodes/Calendar.php:458 -msgid "Previous" +#: includes/ICS/Metabox.php:65 +msgid "Enter the url of the ICS feed. This field is required." msgstr "" -#: includes/CPT/CalendarEvent.php:222 includes/CPT/CalendarEvent.php:718 -msgid "Prices" +#: includes/ICS/Metabox.php:69 +#: includes/ICS/Metabox.php:71 +msgid "Past Events" msgstr "" -#: includes/Shortcodes/Calendar.php:607 includes/Shortcodes/Calendar.php:664 -msgid "Read more" +#: includes/ICS/Metabox.php:72 +msgid "For how many days in the past events are imported (max: 365, min:30)? Older events are deleted from the website." msgstr "" -#: includes/CPT/CalendarEvent.php:783 includes/ICS/EventsListTable.php:64 -msgid "Recurrence" +#: includes/ICS/Metabox.php:79 +msgid "Enter a string to filter the import. Only events containing this string in the title will be imported." msgstr "" -#: includes/CPT/CalendarEvent.php:723 -msgid "Registration" +#: includes/ICS/Metabox.php:86 +msgid "Enter a string to exclude events from importing. Events containing this string in the title will not be imported." msgstr "" -#: includes/CPT/CalendarEvent.php:233 -msgid "Registration URL" +#: includes/ICS/Metabox.php:194 +msgid "Feed URL is not valid." msgstr "" -#: includes/Settings.php:43 -msgid "Remove Duplicates" +#: includes/Main.php:46 +msgid "Settings" msgstr "" -#: includes/CPT/CalendarEvent.php:274 -msgid "Repeat" +#: includes/Main.php:89 +msgid "Hide past events" msgstr "" -#: includes/CPT/CalendarEvent.php:303 -msgid "Repeat Interval" +#: includes/Main.php:90 +msgid "Show past events" msgstr "" -#: includes/CPT/CalendarEvent.php:280 -msgid "Repeat until" +#: includes/Options/Settings.php:267 +msgid "You do not have enough permissions to do that." msgstr "" -#: includes/CPT/CalendarEvent.php:267 -msgid "Repeating Event" +#: includes/Options/Settings.php:292 +msgid "Settings saved." msgstr "" -#: includes/CPT/CalendarEvent.php:316 -msgid "Repeats" +#: includes/Options/templates/settings-page.php:18 +msgid "Settings issues detected." msgstr "" -#: includes/CPT/CalendarEvent.php:395 -msgid "Repeats in" +#: includes/Settings.php:17 +msgid "Calendar Settings" msgstr "" -#: includes/CPT/CalendarEvent.php:330 includes/CPT/CalendarEvent.php:362 -#: includes/CPT/CalendarEvent.php:372 -msgid "Repeats on" +#: includes/Settings.php:21 +msgid "Calendar" msgstr "" -#. Name of the plugin -msgid "RRZE Calendar" +#: includes/Settings.php:26 +msgid "ICS Feed" msgstr "" -#. Author of the plugin -msgid "RRZE Webteam" +#: includes/Settings.php:30 +msgid "Archive Slug" +msgstr "" + +#: includes/Settings.php:31 +msgid "Enter the archive slug that will display the event list." +msgstr "" + +#: includes/Settings.php:32 +msgid "events" +msgstr "" + +#: includes/Settings.php:36 +msgid "The archive slug can have between 4 and 32 alphanumeric characters." +msgstr "" + +#: includes/Settings.php:43 +msgid "Remove Duplicates" +msgstr "" + +#: includes/Settings.php:44 +msgid "If the same event (i.e. same title, date and location) is present in multiple feeds, only show one of them." msgstr "" #: includes/Settings.php:49 msgid "Schedule" msgstr "" -#: includes/CPT/CalendarEvent.php:64 includes/ICS/Metabox.php:204 -msgid "Search Events" +#: includes/Settings.php:50 +msgid "Choose the recurrence to check for new events." msgstr "" -#: includes/CPT/CalendarFeed.php:83 -msgid "Search Feeds" +#: includes/Settings.php:52 +msgid "Hourly" msgstr "" -#: includes/CPT/CalendarEvent.php:477 -msgid "second" +#: includes/Settings.php:53 +msgid "Twice daily" msgstr "" -#: includes/Main.php:46 -msgid "Settings" +#: includes/Settings.php:54 +msgid "Daily" msgstr "" -#: includes/Shortcodes/Events.php:34 -msgid "Show All Events" +#: includes/Shortcodes/Calendar.php:213 +msgid "View day" msgstr "" -#: includes/Main.php:90 -msgid "Show past events" +#: includes/Shortcodes/Calendar.php:213 +msgid "Day" msgstr "" -#: includes/CPT/CalendarEvent.php:145 -msgid "Start" +#: includes/Shortcodes/Calendar.php:214 +msgid "View monthly calendar" msgstr "" -#: includes/Shortcodes/Shortcode.php:125 -msgid "Subscribe to calendar" +#: includes/Shortcodes/Calendar.php:214 +msgid "Month" msgstr "" -#: includes/CPT/CalendarEvent.php:786 includes/CPT/CalendarFeed.php:120 -msgid "Tags" +#: includes/Shortcodes/Calendar.php:215 +msgid "View yearly calendar" msgstr "" -#: includes/CPT/CalendarEvent.php:92 -msgctxt "Taxonomy general name" -msgid "Event Categories" +#: includes/Shortcodes/Calendar.php:215 +msgid "Year" msgstr "" -#: includes/CPT/CalendarEvent.php:109 -msgctxt "Taxonomy general name" -msgid "Event Tags" +#: includes/Shortcodes/Calendar.php:265 +msgid "Go to previous year" msgstr "" -#: includes/CPT/CalendarEvent.php:93 -msgctxt "Taxonomy singular name" -msgid "Event Category" +#: includes/Shortcodes/Calendar.php:265 +#: includes/Shortcodes/Calendar.php:295 +#: includes/Shortcodes/Calendar.php:458 +msgid "Previous" msgstr "" -#: includes/CPT/CalendarEvent.php:110 -msgctxt "Taxonomy singular name" -msgid "Event Tag" +#: includes/Shortcodes/Calendar.php:268 +msgid "Go to next year" msgstr "" -#: includes/Settings.php:36 -msgid "The archive slug can have between 4 and 32 alphanumeric characters." +#: includes/Shortcodes/Calendar.php:268 +#: includes/Shortcodes/Calendar.php:298 +#: includes/Shortcodes/Calendar.php:461 +msgid "Next" msgstr "" -#. 1: Server PHP version number, 2: Required PHP version number. -#: rrze-calendar.php:61 -#, php-format -msgid "" -"The server is running PHP version %1$s. The Plugin requires at least PHP " -"version %2$s." +#: includes/Shortcodes/Calendar.php:295 +msgid "Go to previous day" msgstr "" -#. 1: Server WordPress version number, 2: Required WordPress version number. -#: rrze-calendar.php:68 -#, php-format -msgid "" -"The server is running WordPress version %1$s. The Plugin requires at least " -"WordPress version %2$s." +#: includes/Shortcodes/Calendar.php:298 +msgid "Go to next day" msgstr "" #: includes/Shortcodes/Calendar.php:353 msgid "There are no events scheduled for this day." msgstr "" -#: includes/CPT/CalendarEvent.php:478 -msgid "third" +#: includes/Shortcodes/Calendar.php:410 +msgid "View Details" msgstr "" -#: includes/CPT/CalendarEvent.php:659 includes/CPT/CalendarEvent.php:667 -#: includes/CPT/CalendarEvent.php:706 -msgid "Time" +#: includes/Shortcodes/Calendar.php:458 +msgid "Go to previous month" msgstr "" -#: includes/ICS/EventsListTable.php:62 -msgid "Title" +#: includes/Shortcodes/Calendar.php:461 +msgid "Go to next month" msgstr "" -#: includes/Settings.php:53 -msgid "Twice daily" +#: includes/Shortcodes/Calendar.php:580 +msgid "More…" msgstr "" -#: includes/CPT/CalendarFeed.php:346 -msgid "Update" +#: includes/Shortcodes/Calendar.php:607 +#: includes/Shortcodes/Calendar.php:664 +msgid "Read more" msgstr "" -#: includes/CPT/CalendarFeed.php:345 -msgid "Update ICS Feed" +#: includes/Shortcodes/Events.php:34 +msgid "Show All Events" msgstr "" -#: includes/CPT/CalendarEvent.php:216 -msgid "VC URL" +#: includes/Shortcodes/Events.php:290 +#: includes/Shortcodes/Events.php:328 +msgid "No events scheduled." msgstr "" -#: includes/CPT/CalendarEvent.php:713 -msgid "Video Conference Link" +#: includes/Shortcodes/Events.php:307 +msgid "Add all events of this category to your calendar" msgstr "" -#: includes/Shortcodes/Calendar.php:213 -msgid "View day" +#: includes/Shortcodes/Events.php:314 +msgid "Add all events of this tag to your calendar" msgstr "" -#: includes/Shortcodes/Calendar.php:410 -msgid "View Details" +#: includes/Shortcodes/Shortcode.php:51 +msgid "No description" msgstr "" -#: includes/CPT/CalendarEvent.php:62 -msgid "View Event" +#. translators: 1: Start date, 2: End date. +#: includes/Shortcodes/Shortcode.php:76 +#: includes/Shortcodes/Shortcode.php:181 +msgid "%1$s - %2$s" msgstr "" -#: includes/CPT/CalendarFeed.php:81 -msgid "View ICS Feed" +#. translators: 1: Start date, 2: Start time, 3: End date, 4: End time. +#: includes/Shortcodes/Shortcode.php:85 +#: includes/Shortcodes/Shortcode.php:185 +msgid "%1$s %2$s - %3$s %4$s" msgstr "" -#: includes/Shortcodes/Calendar.php:214 -msgid "View monthly calendar" +#. translators: 1: Start date, 2: Start time, 3: End time. +#: includes/Shortcodes/Shortcode.php:96 +#: includes/Shortcodes/Shortcode.php:189 +msgid "%1$s %2$s - %3$s" msgstr "" #: includes/Shortcodes/Shortcode.php:120 msgid "View the calendar" msgstr "" -#: includes/Shortcodes/Calendar.php:215 -msgid "View yearly calendar" -msgstr "" - -#: includes/CPT/CalendarEvent.php:326 -msgid "week(s)" +#: includes/Shortcodes/Shortcode.php:125 +msgid "Subscribe to calendar" msgstr "" -#: includes/CPT/CalendarEvent.php:353 -msgid "Weekday" +#. translators: 1: Server PHP version number, 2: Required PHP version number. +#: rrze-calendar.php:60 +msgid "The server is running PHP version %1$s. The Plugin requires at least PHP version %2$s." msgstr "" -#: includes/CPT/CalendarEvent.php:309 -msgid "Weekly" +#. translators: 1: Server WordPress version number, 2: Required WordPress version number. +#: rrze-calendar.php:67 +msgid "The server is running WordPress version %1$s. The Plugin requires at least WordPress version %2$s." msgstr "" -#: includes/Shortcodes/Calendar.php:215 -msgid "Year" +#. translators: 1: The plugin name, 2: The error string. +#: rrze-calendar.php:86 +#: rrze-calendar.php:157 +msgid "Plugins: %1$s: %2$s" msgstr "" From 2a2a1a0fa3e89f400ad6b1a7f56d710ee575454d Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:02:31 +0100 Subject: [PATCH 14/21] Update package.json --- package.json | 62 +++++++++++++++++++--------------------------------- 1 file changed, 23 insertions(+), 39 deletions(-) diff --git a/package.json b/package.json index 40a7ddec..f0bc48b3 100644 --- a/package.json +++ b/package.json @@ -1,44 +1,28 @@ { - "name": "rrze-calendar", - "version": "2.0.13", - "main": "rrze-calendar.php", - "scripts": { - "start": "webpack --mode=development --watch", - "build": "webpack --mode=production", - "clean": "rm -rf build/", - "major": "gulp major", - "minor": "gulp minor", - "patch": "gulp patch", - "prerelease": "gulp prerelease" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/RRZE-Webteam/rrze-calendar.git" - }, - "license": "GPL-3.0-or-later", - "bugs": { - "url": "https://github.com/RRZE-Webteam/rrze-calendar/issues" + "engines": { + "node": ">=21.5.0", + "npm": ">=10.2.4" }, - "homepage": "https://github.com/RRZE-Webteam/rrze-calendar#readme", "devDependencies": { - "@babel/core": "^7.22.9", - "@babel/preset-env": "^7.22.9", - "autoprefixer": "^10.4.14", - "babel-loader": "^9.1.3", - "clean-webpack-plugin": "^4.0.0", - "css-loader": "^6.8.1", - "css-minimizer-webpack-plugin": "^5.0.1", - "gulp": "^4.0.2", - "gulp-bump": "^3.2.0", - "gulp-touch-cmd": "^0.0.1", - "mini-css-extract-plugin": "^2.7.6", - "postcss-loader": "^7.3.3", - "sass": "^1.63.6", - "sass-loader": "^13.3.2", - "semver": "^7.5.4", - "style-loader": "^3.3.3", - "terser-webpack-plugin": "^5.3.9", - "webpack": "^5.88.2", - "webpack-cli": "^5.1.4" + "@wordpress/components": "latest", + "@wordpress/plugins": "latest", + "@wordpress/data": "latest", + "@wordpress/env": "latest", + "@wordpress/icons": "latest", + "@wordpress/scripts": "latest", + "ts-loader": "latest", + "typescript": "latest" + }, + "browserslist": [ + "extends @wordpress/browserslist-config" + ], + "scripts": { + "start": "wp-scripts start", + "build": "wp-scripts build", + "format": "wp-scripts format src", + "lint:js": "wp-scripts lint-js src", + "check-engines": "wp-scripts check-engines", + "check-licenses": "wp-scripts check-licenses --prod --gpl3", + "packages-update": "wp-scripts packages-update" } } \ No newline at end of file From 6442fe6d024f99f9bb5b49f4fc8ad4cb9df27fe7 Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:02:37 +0100 Subject: [PATCH 15/21] Update script.js --- src/admin/script.js | 58 +++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/src/admin/script.js b/src/admin/script.js index 2a2d4017..2771a0ea 100644 --- a/src/admin/script.js +++ b/src/admin/script.js @@ -1,6 +1,6 @@ -jQuery(document).ready(function ($) { - "use strict"; +"use strict"; +jQuery(document).ready(function ($) { /* * CPT CalendarFeed Edit Screen */ @@ -51,8 +51,8 @@ jQuery(document).ready(function ($) { * CPT Event Edit Screen */ - let repeatCheck = $('input#repeat'); - let repeatIntervalSelect = $('select#repeat-interval'); + let repeatCheck = $("input#repeat"); + let repeatIntervalSelect = $("select#repeat-interval"); let repeatMonthlyTypeInput = $("input[name='repeat-monthly-type']"); let newStartDateInput = $("body.post-new-php input#start_date"); let newEndDateInput = $("body.post-new-php input#end_date"); @@ -61,56 +61,58 @@ jQuery(document).ready(function ($) { triggerRepeatFields(); } - repeatCheck.on('change', function() { + repeatCheck.on("change", function () { triggerRepeatFields(); }); - repeatIntervalSelect.on('change', function() { + repeatIntervalSelect.on("change", function () { triggerIntervalFields(); }); - repeatMonthlyTypeInput.on('change', function() { + repeatMonthlyTypeInput.on("change", function () { triggerMonthlyTypeFields(); }); - newStartDateInput.on('change', function() { + newStartDateInput.on("change", function () { if (!newEndDateInput.val() || newEndDateInput.val() < $(this).val()) { newEndDateInput.val($(this).val()); } }); function triggerRepeatFields() { - if (repeatCheck.is(':checked')) { - $('div.repeat').slideDown(); + if (repeatCheck.is(":checked")) { + $("div.repeat").slideDown(); triggerIntervalFields(); } else { - $('div.repeat').slideUp(); + $("div.repeat").slideUp(); } } function triggerIntervalFields() { - var repeatInterval = $('option:selected',repeatIntervalSelect).val(); - if (repeatInterval === 'week') { - $('div.repeat-weekly').slideDown(); - $('div.repeat-monthly').slideUp(); - } else if (repeatInterval === 'month') { - $('div.repeat-monthly').slideDown(); - $('div.repeat-weekly').slideUp(); + var repeatInterval = $("option:selected", repeatIntervalSelect).val(); + if (repeatInterval === "week") { + $("div.repeat-weekly").slideDown(); + $("div.repeat-monthly").slideUp(); + } else if (repeatInterval === "month") { + $("div.repeat-monthly").slideDown(); + $("div.repeat-weekly").slideUp(); triggerMonthlyTypeFields(); } } function triggerMonthlyTypeFields() { - var repeatMonthlyType = $("input[name='repeat-monthly-type']:checked").val(); - if (typeof(repeatMonthlyType) == 'undefined') { - $('div.repeat-monthly-date').hide(); - $('div.repeat-monthly-dow').hide(); - } else if (repeatMonthlyType === 'dow') { - $('div.repeat-monthly-dow').slideDown(); - $('div.repeat-monthly-date').slideUp(); - } else if (repeatMonthlyType === 'date') { - $('div.repeat-monthly-date').slideDown(); - $('div.repeat-monthly-dow').slideUp(); + var repeatMonthlyType = $( + "input[name='repeat-monthly-type']:checked" + ).val(); + if (typeof repeatMonthlyType == "undefined") { + $("div.repeat-monthly-date").hide(); + $("div.repeat-monthly-dow").hide(); + } else if (repeatMonthlyType === "dow") { + $("div.repeat-monthly-dow").slideDown(); + $("div.repeat-monthly-date").slideUp(); + } else if (repeatMonthlyType === "date") { + $("div.repeat-monthly-date").slideDown(); + $("div.repeat-monthly-dow").slideUp(); } } }); From 0ddf153a161b911631f2d046acd82d9b6de39388 Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:02:39 +0100 Subject: [PATCH 16/21] Update script.js --- src/calendar/script.js | 49 +++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/src/calendar/script.js b/src/calendar/script.js index b30f2abb..92b428bb 100644 --- a/src/calendar/script.js +++ b/src/calendar/script.js @@ -1,7 +1,7 @@ "use strict"; -jQuery(document).ready(function($){ - var $loading = $('#loading').hide(); +jQuery(document).ready(function ($) { + var $loading = $("#loading").hide(); $(document) .ajaxStart(function () { $loading.show(); @@ -10,25 +10,30 @@ jQuery(document).ready(function($){ $loading.hide(); }); - $('div.rrze-calendar').on('click', '.calendar-pager a', function(e) { + $("div.rrze-calendar").on("click", ".calendar-pager a", function (e) { e.preventDefault(); - var calendar = $('div.calendar-wrapper'); - var period = calendar.data('period'); - var layout = calendar.data('layout'); - var abolink = calendar.data('abolink'); - var direction = $(this).data('direction'); - var taxquery = $(this).data('taxquery'); - $.post(rrze_calendar_ajax.ajax_url, { //POST request - _ajax_nonce: rrze_calendar_ajax.nonce, //nonce - action: "rrze-calendar-update-calendar", //action - period: period, //data - layout: layout, - abolink: abolink, - direction: direction, - taxquery: taxquery, - }, function(result) { - calendar.remove(); - $('div.rrze-calendar').append(result); - }); + var calendar = $("div.calendar-wrapper"); + var period = calendar.data("period"); + var layout = calendar.data("layout"); + var abolink = calendar.data("abolink"); + var direction = $(this).data("direction"); + var taxquery = $(this).data("taxquery"); + $.post( + rrze_calendar_ajax.ajax_url, + { + //POST request + _ajax_nonce: rrze_calendar_ajax.nonce, //nonce + action: "rrze-calendar-update-calendar", //action + period: period, //data + layout: layout, + abolink: abolink, + direction: direction, + taxquery: taxquery, + }, + function (result) { + calendar.remove(); + $("div.rrze-calendar").append(result); + } + ); }); -}); \ No newline at end of file +}); From c7a217ccdbb1dc093452e457d8921c61a303e4f3 Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:02:41 +0100 Subject: [PATCH 17/21] Update style.scss --- src/calendar/style.scss | 73 ++++++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 31 deletions(-) diff --git a/src/calendar/style.scss b/src/calendar/style.scss index 14e19681..f783d526 100644 --- a/src/calendar/style.scss +++ b/src/calendar/style.scss @@ -4,14 +4,17 @@ padding: 0; a { display: inline-block; - margin-right: .5em; - padding: .25em 1em; + margin-right: 0.5em; + padding: 0.25em 1em; border: 2px solid #666; border-radius: var(--border-radius-buttons, 4px); text-decoration: none; box-shadow: none; //color: #333; - &:hover, &:focus, &:active, &.active { + &:hover, + &:focus, + &:active, + &.active { background: #666; color: #fff; } @@ -19,7 +22,7 @@ } .cal-day { .calendar-header h2.title-year { - padding-bottom: .5em; + padding-bottom: 0.5em; margin-bottom: 1em; border-bottom: 1px solid #ccc; } @@ -57,7 +60,9 @@ text-align: center; a { text-decoration: none; - &:hover, &:focus, &:active { + &:hover, + &:focus, + &:active { text-decoration: underline; } } @@ -71,13 +76,17 @@ display: block; padding: 5px; box-shadow: none; - &:hover, &:focus, &:active { + &:hover, + &:focus, + &:active { color: unset; background: lighten(#fdfad3, 5%); font-weight: bold; } } - &:hover, &:focus, &:active { + &:hover, + &:focus, + &:active { background: lighten(#fdfad3, 5%); } } @@ -94,11 +103,11 @@ position: relative; h2.title-year { text-align: center; - margin-bottom: .25em; + margin-bottom: 0.25em; } ul.calendar-pager { margin: 0; - padding : 0; + padding: 0; li { list-style-type: none; @media screen and (min-width: 480px) { @@ -143,19 +152,19 @@ } &.full { width: 100%; - .days, .week { + .days, + .week { @media screen and (min-width: 480px) { display: grid; grid-template-columns: - [day-1] 1fr - [day-2] 1fr - [day-3] 1fr - [day-4] 1fr - [day-5] 1fr - [day-6] 1fr - [day-7] 1fr; - grid-template-rows: - repeat(auto-fit, 1fr); + [day-1] 1fr + [day-2] 1fr + [day-3] 1fr + [day-4] 1fr + [day-5] 1fr + [day-6] 1fr + [day-7] 1fr; + grid-template-rows: repeat(auto-fit, 1fr); } } .day-names { @@ -219,9 +228,10 @@ //border-radius: 0; margin-bottom: 3px; min-height: 25px; - position: relative + position: relative; } - &:before, &:after { + &:before, + &:after { display: inline-block; width: 16px; color: #666; @@ -235,7 +245,7 @@ } &:after { @media screen and (min-width: 480px) { - content: '\00bb'; + content: "\00bb"; text-align: right; position: absolute; bottom: 0; @@ -248,7 +258,7 @@ font-size: 0.875rem; line-height: 1.5; } - div[role=tooltip] { + div[role="tooltip"] { display: none; .wp-post-image { margin-bottom: 5px; @@ -266,14 +276,13 @@ margin-bottom: 5px; } .event-description { - } } - &:hover div[role=tooltip] { + &:hover div[role="tooltip"] { display: block; position: absolute; bottom: 1em; - left: .5em; + left: 0.5em; width: 15em; padding: 0.5em; z-index: 100; @@ -292,7 +301,9 @@ overflow: hidden; text-overflow: ellipsis; } - &:hover, &:focus, &:active { + &:hover, + &:focus, + &:active { text-decoration: underline; } } @@ -360,7 +371,7 @@ //border-left-width: 2px; &:before { display: none; - content: ''; + content: ""; } } .event-end { @@ -370,7 +381,7 @@ float: none; &:after { display: none; - content: ''; + content: ""; } } .more-events { @@ -381,7 +392,7 @@ } ul.day-list { li { - margin-bottom: .5em; + margin-bottom: 0.5em; } } .hide-desktop { @@ -398,4 +409,4 @@ word-wrap: normal !important; } } -} \ No newline at end of file +} From c310225bba7c574ce6471f42e2a93a6501e85f3b Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:02:44 +0100 Subject: [PATCH 18/21] Update style.scss --- src/events/style.scss | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/events/style.scss b/src/events/style.scss index bbc5f096..cd4ba917 100644 --- a/src/events/style.scss +++ b/src/events/style.scss @@ -1,5 +1,5 @@ .rrze-calendar { - ul.events-list { + ul.events-list { margin: 0; padding: 0; background: none; @@ -40,7 +40,6 @@ } } .event-info { - } .event-title { margin-top: 0; @@ -52,7 +51,9 @@ color: var(--color-Text, #222); box-shadow: none; text-decoration: none; - &:hover, &:focus, &:active { + &:hover, + &:focus, + &:active { text-decoration: underline; } } @@ -65,7 +66,7 @@ margin-left: 0; li { list-style: none; - margin-bottom: .5em; + margin-bottom: 0.5em; } .event-date { float: none; @@ -82,7 +83,7 @@ position: relative; top: 2px; &.dashicons-clock { - margin-left: .5em; + margin-left: 0.5em; } } } @@ -108,7 +109,6 @@ padding-left: 0; padding-right: 0; } - } .rrze-event { margin-top: 20px; @@ -125,16 +125,19 @@ } .rrze-event-details { @media (min-width: 1024px) { - border-left: 2px solid var(--color-primary-ci-hell2,#ced9e7); + border-left: 2px solid var(--color-primary-ci-hell2, #ced9e7); padding-left: 15px; } h2 { margin-top: 0; } p { - margin-bottom: .5em; + margin-bottom: 0.5em; } - dt, dd, dt *, dd * { + dt, + dd, + dt *, + dd * { font-size: 0.875rem; line-height: 1.313rem; } @@ -196,7 +199,7 @@ } } .rrze-event-location { - margin-top: .5em; + margin-top: 0.5em; } ul { margin-bottom: 0; From b0128b7a148a3f5ede38a30c676e16dc1661cd50 Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:03:02 +0100 Subject: [PATCH 19/21] Update vendor files --- vendor/autoload.php | 2 +- vendor/composer/autoload_files.php | 2 +- vendor/composer/autoload_psr4.php | 1 - vendor/composer/autoload_real.php | 10 +- vendor/composer/autoload_static.php | 17 +- vendor/composer/installed.json | 53 --- vendor/composer/installed.php | 37 +-- vendor/composer/platform_check.php | 4 +- vendor/rrze/wp/.gitignore | 12 - vendor/rrze/wp/README.md | 11 - vendor/rrze/wp/composer.json | 32 -- vendor/rrze/wp/src/Debug.php | 53 --- vendor/rrze/wp/src/Plugin.php | 204 ------------ vendor/rrze/wp/src/Settings/Error.php | 45 --- vendor/rrze/wp/src/Settings/Flash.php | 29 -- vendor/rrze/wp/src/Settings/Option.php | 105 ------ .../rrze/wp/src/Settings/Options/Checkbox.php | 18 - .../rrze/wp/src/Settings/Options/Choices.php | 8 - .../wp/src/Settings/Options/CodeEditor.php | 36 -- vendor/rrze/wp/src/Settings/Options/Color.php | 29 -- vendor/rrze/wp/src/Settings/Options/Field.php | 102 ------ .../rrze/wp/src/Settings/Options/Password.php | 8 - .../rrze/wp/src/Settings/Options/Select.php | 8 - .../src/Settings/Options/SelectMultiple.php | 20 -- vendor/rrze/wp/src/Settings/Options/Text.php | 8 - .../rrze/wp/src/Settings/Options/Textarea.php | 13 - .../rrze/wp/src/Settings/Options/WPEditor.php | 13 - vendor/rrze/wp/src/Settings/README.md | 53 --- vendor/rrze/wp/src/Settings/Section.php | 41 --- vendor/rrze/wp/src/Settings/Settings.php | 314 ------------------ vendor/rrze/wp/src/Settings/Tab.php | 88 ----- vendor/rrze/wp/src/Settings/Template.php | 27 -- vendor/rrze/wp/src/Settings/WorkBuilder.php | 27 -- vendor/rrze/wp/src/Settings/Worker.php | 35 -- .../languages/rrze-wp-settings-de_DE.mo | Bin 1011 -> 0 bytes .../languages/rrze-wp-settings-de_DE.po | 35 -- .../rrze-wp-settings-de_DE_formal.mo | Bin 1100 -> 0 bytes .../rrze-wp-settings-de_DE_formal.po | 37 --- .../Settings/templates/options/checkbox.php | 23 -- .../Settings/templates/options/choices.php | 27 -- .../templates/options/code-editor.php | 20 -- .../src/Settings/templates/options/color.php | 20 -- .../Settings/templates/options/password.php | 20 -- .../templates/options/select-multiple.php | 25 -- .../src/Settings/templates/options/select.php | 24 -- .../src/Settings/templates/options/text.php | 20 -- .../Settings/templates/options/textarea.php | 20 -- .../Settings/templates/options/wp-editor.php | 34 -- .../src/Settings/templates/section-menu.php | 13 - .../wp/src/Settings/templates/section.php | 19 -- .../wp/src/Settings/templates/sections.php | 17 - .../src/Settings/templates/settings-page.php | 25 -- .../wp/src/Settings/templates/tab-menu.php | 11 - 53 files changed, 29 insertions(+), 1826 deletions(-) delete mode 100644 vendor/rrze/wp/.gitignore delete mode 100644 vendor/rrze/wp/README.md delete mode 100644 vendor/rrze/wp/composer.json delete mode 100644 vendor/rrze/wp/src/Debug.php delete mode 100644 vendor/rrze/wp/src/Plugin.php delete mode 100644 vendor/rrze/wp/src/Settings/Error.php delete mode 100644 vendor/rrze/wp/src/Settings/Flash.php delete mode 100644 vendor/rrze/wp/src/Settings/Option.php delete mode 100644 vendor/rrze/wp/src/Settings/Options/Checkbox.php delete mode 100644 vendor/rrze/wp/src/Settings/Options/Choices.php delete mode 100644 vendor/rrze/wp/src/Settings/Options/CodeEditor.php delete mode 100644 vendor/rrze/wp/src/Settings/Options/Color.php delete mode 100644 vendor/rrze/wp/src/Settings/Options/Field.php delete mode 100644 vendor/rrze/wp/src/Settings/Options/Password.php delete mode 100644 vendor/rrze/wp/src/Settings/Options/Select.php delete mode 100644 vendor/rrze/wp/src/Settings/Options/SelectMultiple.php delete mode 100644 vendor/rrze/wp/src/Settings/Options/Text.php delete mode 100644 vendor/rrze/wp/src/Settings/Options/Textarea.php delete mode 100644 vendor/rrze/wp/src/Settings/Options/WPEditor.php delete mode 100644 vendor/rrze/wp/src/Settings/README.md delete mode 100644 vendor/rrze/wp/src/Settings/Section.php delete mode 100644 vendor/rrze/wp/src/Settings/Settings.php delete mode 100644 vendor/rrze/wp/src/Settings/Tab.php delete mode 100644 vendor/rrze/wp/src/Settings/Template.php delete mode 100644 vendor/rrze/wp/src/Settings/WorkBuilder.php delete mode 100644 vendor/rrze/wp/src/Settings/Worker.php delete mode 100644 vendor/rrze/wp/src/Settings/languages/rrze-wp-settings-de_DE.mo delete mode 100644 vendor/rrze/wp/src/Settings/languages/rrze-wp-settings-de_DE.po delete mode 100644 vendor/rrze/wp/src/Settings/languages/rrze-wp-settings-de_DE_formal.mo delete mode 100644 vendor/rrze/wp/src/Settings/languages/rrze-wp-settings-de_DE_formal.po delete mode 100644 vendor/rrze/wp/src/Settings/templates/options/checkbox.php delete mode 100644 vendor/rrze/wp/src/Settings/templates/options/choices.php delete mode 100644 vendor/rrze/wp/src/Settings/templates/options/code-editor.php delete mode 100644 vendor/rrze/wp/src/Settings/templates/options/color.php delete mode 100644 vendor/rrze/wp/src/Settings/templates/options/password.php delete mode 100644 vendor/rrze/wp/src/Settings/templates/options/select-multiple.php delete mode 100644 vendor/rrze/wp/src/Settings/templates/options/select.php delete mode 100644 vendor/rrze/wp/src/Settings/templates/options/text.php delete mode 100644 vendor/rrze/wp/src/Settings/templates/options/textarea.php delete mode 100644 vendor/rrze/wp/src/Settings/templates/options/wp-editor.php delete mode 100644 vendor/rrze/wp/src/Settings/templates/section-menu.php delete mode 100644 vendor/rrze/wp/src/Settings/templates/section.php delete mode 100644 vendor/rrze/wp/src/Settings/templates/sections.php delete mode 100644 vendor/rrze/wp/src/Settings/templates/settings-page.php delete mode 100644 vendor/rrze/wp/src/Settings/templates/tab-menu.php diff --git a/vendor/autoload.php b/vendor/autoload.php index 7b363db1..bf64b0bd 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -22,4 +22,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit066c4ad60e2a566f23e65e5f53006199::getLoader(); +return ComposerAutoloaderInit2c498cedc94f6f3eba7205ee47469408::getLoader(); diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index 9dae5938..e3b78684 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -6,5 +6,5 @@ $baseDir = dirname($vendorDir); return array( - 'e4e11a001002b1c747a45db4ce1ccc3a' => $vendorDir . '/cmb2/cmb2/init.php', + 'ad901de1e5d16b81f427bfe3dc3de508' => $vendorDir . '/cmb2/cmb2/init.php', ); diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index b621c647..28717f25 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -7,6 +7,5 @@ return array( 'RRule\\' => array($baseDir . '/src', $vendorDir . '/rlanvin/php-rrule/src'), - 'RRZE\\WP\\' => array($vendorDir . '/rrze/wp/src'), 'RRZE\\Calendar\\' => array($baseDir . '/includes'), ); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 6b68b958..4ff4e7fb 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit066c4ad60e2a566f23e65e5f53006199 +class ComposerAutoloaderInit2c498cedc94f6f3eba7205ee47469408 { private static $loader; @@ -24,16 +24,16 @@ public static function getLoader() require __DIR__ . '/platform_check.php'; - spl_autoload_register(array('ComposerAutoloaderInit066c4ad60e2a566f23e65e5f53006199', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit2c498cedc94f6f3eba7205ee47469408', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInit066c4ad60e2a566f23e65e5f53006199', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit2c498cedc94f6f3eba7205ee47469408', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit066c4ad60e2a566f23e65e5f53006199::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit2c498cedc94f6f3eba7205ee47469408::getInitializer($loader)); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInit066c4ad60e2a566f23e65e5f53006199::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInit2c498cedc94f6f3eba7205ee47469408::$files; $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index a7af938e..fa0fa15d 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,17 +4,16 @@ namespace Composer\Autoload; -class ComposerStaticInit066c4ad60e2a566f23e65e5f53006199 +class ComposerStaticInit2c498cedc94f6f3eba7205ee47469408 { public static $files = array ( - 'e4e11a001002b1c747a45db4ce1ccc3a' => __DIR__ . '/..' . '/cmb2/cmb2/init.php', + 'ad901de1e5d16b81f427bfe3dc3de508' => __DIR__ . '/..' . '/cmb2/cmb2/init.php', ); public static $prefixLengthsPsr4 = array ( 'R' => array ( 'RRule\\' => 6, - 'RRZE\\WP\\' => 8, 'RRZE\\Calendar\\' => 14, ), ); @@ -25,10 +24,6 @@ class ComposerStaticInit066c4ad60e2a566f23e65e5f53006199 0 => __DIR__ . '/../..' . '/src', 1 => __DIR__ . '/..' . '/rlanvin/php-rrule/src', ), - 'RRZE\\WP\\' => - array ( - 0 => __DIR__ . '/..' . '/rrze/wp/src', - ), 'RRZE\\Calendar\\' => array ( 0 => __DIR__ . '/../..' . '/includes', @@ -53,10 +48,10 @@ class ComposerStaticInit066c4ad60e2a566f23e65e5f53006199 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit066c4ad60e2a566f23e65e5f53006199::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit066c4ad60e2a566f23e65e5f53006199::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInit066c4ad60e2a566f23e65e5f53006199::$prefixesPsr0; - $loader->classMap = ComposerStaticInit066c4ad60e2a566f23e65e5f53006199::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit2c498cedc94f6f3eba7205ee47469408::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit2c498cedc94f6f3eba7205ee47469408::$prefixDirsPsr4; + $loader->prefixesPsr0 = ComposerStaticInit2c498cedc94f6f3eba7205ee47469408::$prefixesPsr0; + $loader->classMap = ComposerStaticInit2c498cedc94f6f3eba7205ee47469408::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index ade9fcec..44fa4686 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -180,59 +180,6 @@ "source": "https://github.com/rlanvin/php-rrule/tree/v2.4.1" }, "install-path": "../rlanvin/php-rrule" - }, - { - "name": "rrze/wp", - "version": "1.2.2", - "version_normalized": "1.2.2.0", - "source": { - "type": "git", - "url": "https://github.com/RRZE-Webteam/rrze-wp.git", - "reference": "b0c51e6a07011ec1d3ebf8a71fae5a93c05a6014" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/RRZE-Webteam/rrze-wp/zipball/b0c51e6a07011ec1d3ebf8a71fae5a93c05a6014", - "reference": "b0c51e6a07011ec1d3ebf8a71fae5a93c05a6014", - "shasum": "" - }, - "require": { - "php": ">=8.0" - }, - "time": "2023-11-28T09:49:37+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "RRZE\\WP\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-3.0-or-later" - ], - "authors": [ - { - "name": "Rolf v. d. Forst", - "email": "rolf.v.d.forst@fau.de", - "homepage": "https://www.rrze.fau.de" - }, - { - "name": "Benjamin Klemencic", - "email": "benjamin.klemencic@fau.de", - "homepage": "https://www.rrze.fau.de" - } - ], - "description": "A general purpose library for WordPress.", - "homepage": "https://github.com/RRZE-Webteam/rrze-wp", - "keywords": [ - "wordpress" - ], - "support": { - "issues": "https://github.com/RRZE-Webteam/rrze-wp/issues", - "source": "https://github.com/RRZE-Webteam/rrze-wp/tree/1.2.2" - }, - "install-path": "../rrze/wp" } ], "dev": true, diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 4c0f04da..20243ddc 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -1,15 +1,24 @@ array( - 'name' => 'rrze/rrze-calendar', - 'pretty_version' => '2.0.10', - 'version' => '2.0.10.0', - 'reference' => NULL, - 'type' => 'wordpress-plugin', + 'name' => '__root__', + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'reference' => '50a3090906f6af0c909c1343d8614b3544eeb08f', + 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => true, ), 'versions' => array( + '__root__' => array( + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'reference' => '50a3090906f6af0c909c1343d8614b3544eeb08f', + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev_requirement' => false, + ), 'cmb2/cmb2' => array( 'pretty_version' => 'v2.10.1', 'version' => '2.10.1.0', @@ -37,23 +46,5 @@ 'aliases' => array(), 'dev_requirement' => false, ), - 'rrze/rrze-calendar' => array( - 'pretty_version' => '2.0.10', - 'version' => '2.0.10.0', - 'reference' => NULL, - 'type' => 'wordpress-plugin', - 'install_path' => __DIR__ . '/../../', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'rrze/wp' => array( - 'pretty_version' => '1.2.2', - 'version' => '1.2.2.0', - 'reference' => 'b0c51e6a07011ec1d3ebf8a71fae5a93c05a6014', - 'type' => 'library', - 'install_path' => __DIR__ . '/../rrze/wp', - 'aliases' => array(), - 'dev_requirement' => false, - ), ), ); diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php index adfb472f..4c3a5d68 100644 --- a/vendor/composer/platform_check.php +++ b/vendor/composer/platform_check.php @@ -4,8 +4,8 @@ $issues = array(); -if (!(PHP_VERSION_ID >= 80000)) { - $issues[] = 'Your Composer dependencies require a PHP version ">= 8.0.0". You are running ' . PHP_VERSION . '.'; +if (!(PHP_VERSION_ID >= 80100)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 8.1.0". You are running ' . PHP_VERSION . '.'; } if ($issues) { diff --git a/vendor/rrze/wp/.gitignore b/vendor/rrze/wp/.gitignore deleted file mode 100644 index f0602c7e..00000000 --- a/vendor/rrze/wp/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -### vscode ### -.vscode/ -### NetBeans ### -**/nbproject/ -### PhpStorm ### -.idea/ -### macOS ### -.DS_Store -### Node ### -node_modules/ -### Tmp ### -_tmp/ diff --git a/vendor/rrze/wp/README.md b/vendor/rrze/wp/README.md deleted file mode 100644 index ce1c828b..00000000 --- a/vendor/rrze/wp/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# RRZE WordPress Library - -General purpose library for WordPress. - -## Installation - -Install the latest version with - -```bash -% composer require rrze/wp -``` diff --git a/vendor/rrze/wp/composer.json b/vendor/rrze/wp/composer.json deleted file mode 100644 index e638a648..00000000 --- a/vendor/rrze/wp/composer.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "rrze/wp", - "description": "A general purpose library for WordPress.", - "version": "1.2.2", - "type": "library", - "keywords": [ - "wordpress" - ], - "homepage": "https://github.com/RRZE-Webteam/rrze-wp", - "license": "GPL-3.0-or-later", - "authors": [ - { - "name": "Rolf v. d. Forst", - "email": "rolf.v.d.forst@fau.de", - "homepage": "https://www.rrze.fau.de" - }, - { - "name": "Benjamin Klemencic", - "email": "benjamin.klemencic@fau.de", - "homepage": "https://www.rrze.fau.de" - } - ], - "require": { - "php": ">=8.0" - }, - "autoload": { - "psr-4": { - "RRZE\\WP\\": "src" - } - }, - "lock": false -} \ No newline at end of file diff --git a/vendor/rrze/wp/src/Debug.php b/vendor/rrze/wp/src/Debug.php deleted file mode 100644 index ea34d1a8..00000000 --- a/vendor/rrze/wp/src/Debug.php +++ /dev/null @@ -1,53 +0,0 @@ -pluginFile = $pluginFile; - } - - /** - * loaded method - */ - public function loaded() - { - $this->setBasename() - ->setDirectory() - ->setUrl() - ->setVersion(); - } - - /** - * getFile method - * Get the full path and filename of the plugin. - * @return string The full path and filename. - */ - public function getFile(): string - { - return $this->pluginFile; - } - - /** - * getBasename method - * Get the basename of the plugin. - * @return string The basename. - */ - public function getBasename(): string - { - return $this->basename; - } - - /** - * setBasename method - * Set the basename of the plugin. - * @return object This Plugin object. - */ - public function setBasename(): object - { - $this->basename = plugin_basename($this->pluginFile); - return $this; - } - - /** - * getDirectory method - * Get the filesystem directory path (with trailing slash) for the plugin. - * @return string The filesystem directory path. - */ - public function getDirectory(): string - { - return $this->directory; - } - - /** - * setDirectory method - * Set the filesystem directory path (with trailing slash) for the plugin. - * @return object This Plugin object. - */ - public function setDirectory(): object - { - $this->directory = rtrim(plugin_dir_path($this->pluginFile), DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR; - return $this; - } - - /** - * getPath method - * Get the filesystem directory path (with trailing slash) for the plugin. - * @param string $path The path name. - * @return string The filesystem directory path. - */ - public function getPath(string $path = ''): string - { - return $this->directory . ($path ? trim($path, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR : ''); - } - - /** - * getUrl method - * Get the URL directory path (with trailing slash) for the plugin. - * @param string $path The path name. - * @return string The URL directory path. - */ - public function getUrl(string $path = ''): string - { - return $this->url . ($path ? trim($path, '/') . '/' : ''); - } - - /** - * setUrl method - * Set the URL directory path (with trailing slash) for the plugin. - * @return object This Plugin object. - */ - public function setUrl(): object - { - $this->url = rtrim(plugin_dir_url($this->pluginFile), '/') . '/'; - return $this; - } - - /** - * getSlug method - * Get the slug of the plugin. - * @return string The slug. - */ - public function getSlug(): string - { - return sanitize_title(dirname($this->basename)); - } - - /** - * getVersion method - * Get the version of the plugin. - * @return string The version. - */ - public function getVersion(): string - { - if (defined('WP_DEBUG') && WP_DEBUG) { - return bin2hex(random_bytes(4)); - } - return $this->version; - } - - /** - * getVersion method - * Set the version of the plugin. - * @return object This Plugin object. - */ - public function setVersion(): object - { - $headers = ['Version' => 'Version']; - $fileData = get_file_data($this->pluginFile, $headers, 'plugin'); - if (isset($fileData['Version'])) { - $this->version = $fileData['Version']; - }; - return $this; - } - - /** - * __call method - * Method overloading. - */ - public function __call(string $name, array $arguments) - { - if (!method_exists($this, $name)) { - $message = sprintf('Call to undefined method %1$s::%2$s', __CLASS__, $name); - do_action( - 'rrze.log.error', - $message, - [ - 'class' => __CLASS__, - 'method' => $name, - 'arguments' => $arguments - ] - ); - if (defined('WP_DEBUG') && WP_DEBUG) { - throw new \Exception($message); - } - } - } -} diff --git a/vendor/rrze/wp/src/Settings/Error.php b/vendor/rrze/wp/src/Settings/Error.php deleted file mode 100644 index 5070e57f..00000000 --- a/vendor/rrze/wp/src/Settings/Error.php +++ /dev/null @@ -1,45 +0,0 @@ -error = new \WP_Error; - $this->settings = $settings; - } - - public function getAll() - { - global $wp_settings_error; - - return $wp_settings_error[$this->settings->optionName] ?? false; - } - - public function get($key) - { - $errors = $this->getAll(); - - if (! is_wp_error($errors)) { - return; - } - - return $errors->get_error_message($key); - } - - public function add($key, $message) - { - global $wp_settings_error; - - $this->error->add($key, $message); - - $wp_settings_error[$this->settings->optionName] = $this->error; - } -} diff --git a/vendor/rrze/wp/src/Settings/Flash.php b/vendor/rrze/wp/src/Settings/Flash.php deleted file mode 100644 index 8f4c352b..00000000 --- a/vendor/rrze/wp/src/Settings/Flash.php +++ /dev/null @@ -1,29 +0,0 @@ -settings = $settings; - } - - public function has() - { - global $wp_settings_flash; - - return $wp_settings_flash[$this->settings->optionName] ?? null; - } - - public function set($status, $message) - { - global $wp_settings_flash; - - $wp_settings_flash[$this->settings->optionName] = compact('status', 'message'); - } -} diff --git a/vendor/rrze/wp/src/Settings/Option.php b/vendor/rrze/wp/src/Settings/Option.php deleted file mode 100644 index e726cc5f..00000000 --- a/vendor/rrze/wp/src/Settings/Option.php +++ /dev/null @@ -1,105 +0,0 @@ -section = $section; - $this->type = $type; - $this->args = $args; - - $typeMap = apply_filters('rrze_wp_settings_option_type_map', [ - 'text' => Text::class, - 'checkbox' => Checkbox::class, - 'choices' => Choices::class, - 'textarea' => Textarea::class, - 'wp-editor' => WPEditor::class, - 'code-editor' => CodeEditor::class, - 'select' => Select::class, - 'select-multiple' => SelectMultiple::class, - 'color' => Color::class, - ]); - - $this->implementation = new $typeMap[$this->type]($section, $args); - } - - public function getArg($key, $fallback = null) - { - return $this->args[$key] ?? $fallback; - } - - public function sanitize($value) - { - if (is_callable($this->getArg('sanitize'))) { - return $this->getArg('sanitize')($value); - } - - return $this->implementation->sanitize($value); - } - - public function validate($value) - { - if (is_array($this->getArg('validate'))) { - foreach ($this->getArg('validate') as $validate) { - if (!is_callable($validate['callback'])) { - continue; - } - - $valid = $validate['callback']($value); - - if (!$valid) { - $this->section->tab->settings->errors->add($this->getArg('name'), $validate['feedback']); - - return false; - } - } - - return true; - } - - if (is_callable($this->getArg('validate'))) { - return $this->getArg('validate')($value); - } - - return $this->implementation->validate($value); - } - - public function render() - { - if (is_callable($this->getArg('visible')) && $this->getArg('visible')() === false) { - return; - } - - if (is_callable($this->getArg('render'))) { - echo $this->getArg('render')($this->implementation); - - return; - } - - echo $this->implementation->render(); - } -} diff --git a/vendor/rrze/wp/src/Settings/Options/Checkbox.php b/vendor/rrze/wp/src/Settings/Options/Checkbox.php deleted file mode 100644 index d6a402ca..00000000 --- a/vendor/rrze/wp/src/Settings/Options/Checkbox.php +++ /dev/null @@ -1,18 +0,0 @@ -getIdAttribute()); - - wp_localize_script('jquery', $settings_name, wp_enqueue_code_editor(['type' => $this->getArg('editor_type', 'text/html')])); - - wp_add_inline_script('wp-theme-plugin-editor', 'jQuery(function($){ - if($("#'.$this->getIdAttribute().'").length > 0) { - wp.codeEditor.initialize($("#'.$this->getIdAttribute().'"), '.$settings_name.'); - } - });'); - } - - public function sanitize($value) - { - return $value; - } -} diff --git a/vendor/rrze/wp/src/Settings/Options/Color.php b/vendor/rrze/wp/src/Settings/Options/Color.php deleted file mode 100644 index cea9f09c..00000000 --- a/vendor/rrze/wp/src/Settings/Options/Color.php +++ /dev/null @@ -1,29 +0,0 @@ -section = $section; - $this->args = $args; - } - - public function render() - { - return Template::include('options/' . $this->template, ['option' => $this]); - } - - public function hasError() - { - return $this->section->tab->settings->errors->get($this->getArg('name')); - } - - public function sanitize($value) - { - return sanitize_text_field($value); - } - - public function validate($value) - { - return true; - } - - public function getArg($key, $fallback = null) - { - if (empty($this->args[$key])) { - return $fallback; - } - - if (is_callable($this->args[$key])) { - return $this->args[$key](); - } - - return $this->args[$key]; - } - - public function getLabel() - { - return esc_attr($this->getArg('label')); - } - - public function getIdAttribute() - { - return $this->getArg('id', sanitize_title($this->getNameAttribute())); - } - - public function getName() - { - return $this->getArg('name'); - } - - public function getCss() - { - return $this->getArg('css', []); - } - - - public function getInputClassAttribute() - { - $class = $this->getCss()['input_class'] ?? null; - - return !empty($class) ? esc_attr($class) : null; - } - - public function getLabelClassAttribute() - { - $class = $this->getCss()['label_class'] ?? null; - - return !empty($class) ? esc_attr($class) : null; - } - - public function getNameAttribute() - { - return $this->section->tab->settings->optionName . '[' . $this->getArg('name') . ']'; - } - - public function getValueAttribute() - { - $value = get_option($this->section->tab->settings->optionName)[$this->getArg('name')] ?? false; - - return $value ? $value : $this->args['default'] ?? null; - } -} diff --git a/vendor/rrze/wp/src/Settings/Options/Password.php b/vendor/rrze/wp/src/Settings/Options/Password.php deleted file mode 100644 index 780e3803..00000000 --- a/vendor/rrze/wp/src/Settings/Options/Password.php +++ /dev/null @@ -1,8 +0,0 @@ -addTab(__('General', 'textdomain')); - -$section = $tab->addSection('General Section'); - -$section->addOption('text', [ - 'name' => 'title', - 'label' => __('Title', 'textdomain') -]); - -$settings->build(); -``` - -### Initializing the Settings class - -```php -use RRZE\WP\Settings; - -$settings = new Settings(__('Custom Settings')); -``` - -The constructor supports two parameters, namely `$title` and `$slug`. By default, the page slug is generated by sanitizing the title. However, if you have a specific slug preference, you can pass it as the second parameter to the constructor. - -Additional methods available in this class include: - -```php -$settings->setCapability('manage_options') - ->setOptionName('my_plugin_option') - ->setMenuTitle(__('My Plugin', 'textdomain')) - ->setMenuIcon('dashicons-admin-generic') - ->setMenuPosition(5) - ->setMenuParentSlug('options-general.php'); -``` - -### Tabs - -Tabs will be displayed only if there is more than one tab available. - -```php -$settings->addTab(__('General', 'textdomain')); -``` diff --git a/vendor/rrze/wp/src/Settings/Section.php b/vendor/rrze/wp/src/Settings/Section.php deleted file mode 100644 index cffd67a7..00000000 --- a/vendor/rrze/wp/src/Settings/Section.php +++ /dev/null @@ -1,41 +0,0 @@ -tab = $tab; - $this->title = $title; - $this->args = $args; - $this->slug = $this->args['slug'] ?? sanitize_title($title); - $this->description = $this->args['description'] ?? null; - $this->as_link = $this->args['as_link'] ?? false; - } - - public function addOption($type, $args = []) - { - $option = new Option($this, $type, $args); - - $this->options[] = $option; - - return $option; - } -} diff --git a/vendor/rrze/wp/src/Settings/Settings.php b/vendor/rrze/wp/src/Settings/Settings.php deleted file mode 100644 index ba5b8641..00000000 --- a/vendor/rrze/wp/src/Settings/Settings.php +++ /dev/null @@ -1,314 +0,0 @@ -loadTextdomain(); - - $this->title = $title; - $this->optionName = strtolower(str_replace('-', '_', sanitize_title($this->title))); - $this->slug = $slug; - - if ($this->slug === null) { - $this->slug = sanitize_title($title); - } - } - - public function loadTextdomain() - { - $mofile = dirname(__FILE__) . '/languages/rrze-wp-settings-' . get_locale() . '.mo'; - load_textdomain('rrze-wp-settings', $mofile); - } - - public function setMenuParentSlug($slug) - { - $this->parentSlug = $slug; - return $this; - } - - public function setMenuTitle($title) - { - $this->menuTitle = $title; - return $this; - } - - public function getMenuTitle() - { - return $this->menuTitle ?? $this->title; - } - - public function setCapability($capability) - { - $this->capability = $capability; - return $this; - } - - public function setOptionName($name) - { - $this->optionName = $name; - return $this; - } - - public function setMenuIcon($icon) - { - $this->menuIcon = $icon; - return $this; - } - - public function setMenuPosition($position) - { - $this->menuPosition = $position; - return $this; - } - - public function addToMenu() - { - if ($this->parentSlug) { - add_submenu_page($this->parentSlug, $this->title, $this->getMenuTitle(), $this->capability, $this->slug, [$this, 'render'], $this->menuPosition); - } else { - add_menu_page($this->title, $this->getMenuTitle(), $this->capability, $this->slug, [$this, 'render'], $this->menuIcon, $this->menuPosition); - } - } - - public function build() - { - $this->errors = new Error($this); - $this->flash = new Flash($this); - - add_action('admin_init', [$this, 'save'], 20); - add_action('admin_menu', [$this, 'addToMenu'], 20); - add_action('admin_head', [$this, 'styling'], 20); - } - - public function isOnSettingsPage() - { - $screen = get_current_screen(); - if (is_null($screen)) { - return false; - } - - if ($screen->base === 'settings_page_' . $this->slug) { - return true; - } - - return false; - } - - public function styling() - { - if (!$this->isOnSettingsPage()) { - return; - } - - echo ''; - } - - public function getTabBySlug($slug) - { - foreach ($this->tabs as $tab) { - if ($tab->slug === $slug) { - return $tab; - } - } - - return false; - } - - public function getActiveTab() - { - $default = $this->tabs[0] ?? false; - - if (isset($_GET['tab'])) { - return in_array($_GET['tab'], array_map(function ($tab) { - return $tab->slug; - }, $this->tabs)) ? $this->getTabBySlug($_GET['tab']) : $default; - } - - return $default; - } - - public function addTab($title, $slug = null) - { - $tab = new Tab($this, $title, $slug); - - $this->tabs[] = $tab; - - return $tab; - } - - public function addSection($title, $args = []) - { - if (empty($this->tabs)) { - $tab = $this->addTab('Unnamed tab'); - } else { - $tab = end($this->tabs); - } - - return $tab->addSection($title, $args); - } - - public function addOption($type, $args = []) - { - $tab = end($this->tabs); - - if (!$tab instanceof Tab) { - return false; - } - - $section = end($tab->sections); - - if (!$section instanceof Section) { - return false; - } - - return $section->addOption($type, $args); - } - - public function shouldMakeTabs() - { - return count($this->tabs) > 1; - } - - public function getUrl() - { - if ($this->parentSlug && strpos($this->parentSlug, '.php') !== false) { - return add_query_arg('page', $this->slug, admin_url($this->parentSlug)); - } - - return admin_url("admin.php?page=$this->slug"); - } - - public function getFullUrl() - { - $params = []; - - if ($active_tab = $this->getActiveTab()) { - $params['tab'] = $active_tab->slug; - - if ($active_section = $active_tab->getActiveSection()) { - $params['section'] = $active_section->slug; - } - } - - return add_query_arg($params, $this->getUrl()); - } - - public function renderTabMenu() - { - if (!$this->shouldMakeTabs()) { - return; - } - - Template::include('tab-menu', ['settings' => $this]); - } - - public function renderActiveSections() - { - Template::include('sections', ['settings' => $this]); - } - - public function render() - { - Worker::setWorkBuilder(new WorkBuilder); - - do_action('rrze_wp_settings_before_render_settings_page'); - - Worker::enqueue(); - - Template::include('settings-page', ['settings' => $this]); - - do_action('rrze_wp_settings_after_render_settings_page'); - } - - public function defaultOptions() - { - $options = []; - foreach ($this->tabs as $tab) { - foreach ($tab->sections as $section) { - foreach ($section->options as $option) { - $options[$option->args['name']] = $option->args['default'] ?? null; - } - } - } - - return $options; - } - - public function getOptions() - { - $defaults = $this->defaultOptions(); - $options = get_option($this->optionName, []); - $options = wp_parse_args($options, $defaults); - $options = array_intersect_key($options, $defaults); - - return $options; - } - - public function getOption($option) - { - $options = $this->getOptions(); - return $options[$option] ?? null; - } - - public function save() - { - if (!isset($_POST['rrze_wp_settings_save']) || !wp_verify_nonce($_POST['rrze_wp_settings_save'], 'rrze_wp_settings_save_' . $this->optionName)) { - return; - } - - if (!current_user_can($this->capability)) { - wp_die(__("You don't have enough permissions to do that.", 'rrze-wp-settings')); - } - - $currentOptions = $this->getOptions(); - $submittedOptions = apply_filters('rrze_wp_settings_new_options', $_POST[$this->optionName] ?? [], $currentOptions); - $newOptions = $currentOptions; - - foreach ($this->getActiveTab()->getActiveSections() as $section) { - foreach ($section->options as $option) { - $value = $submittedOptions[$option->implementation->getName()] ?? null; - - $valid = $option->validate($value); - - if (!$valid) { - continue; - } - - $value = apply_filters('rrze_wp_settings_new_options_' . $option->implementation->getName(), $option->sanitize($value), $option->implementation); - - $newOptions[$option->implementation->getName()] = $value; - } - } - - update_option($this->optionName, $newOptions); - - $this->flash->set('success', __('Settings saved.', 'rrze-wp-settings')); - } -} diff --git a/vendor/rrze/wp/src/Settings/Tab.php b/vendor/rrze/wp/src/Settings/Tab.php deleted file mode 100644 index cd01364e..00000000 --- a/vendor/rrze/wp/src/Settings/Tab.php +++ /dev/null @@ -1,88 +0,0 @@ -title = $title; - $this->settings = $settings; - - if ($this->slug === null) { - $this->slug = sanitize_title($title); - } - } - - public function addSection($title, $args = []) - { - $section = new Section($this, $title, $args); - - $this->sections[] = $section; - - return $section; - } - - public function getSectionLinks() - { - return array_filter($this->sections, function ($section) { - return $section->as_link; - }); - } - - public function containsOnlySectionLinks() - { - return count($this->getSectionLinks()) === count($this->sections); - } - - public function getSectionByName($name) - { - foreach ($this->sections as $section) { - if ($section->slug == $name) { - return $section; - } - } - - return false; - } - - public function getActiveSection() - { - if (empty($this->getSectionLinks())) { - return; - } - - if (isset($_REQUEST['section'])) { - return $this->getSectionByName($_REQUEST['section']); - } - - if ($this->containsOnlySectionLinks()) { - return $this->sections[0]; - } - } - - public function getActiveSections() - { - if (!isset($_REQUEST['section']) && $this->containsOnlySectionLinks()) { - return [$this->sections[0]]; - } - - return \array_filter($this->sections, function ($section) { - if (isset($_REQUEST['section'])) { - return $section->as_link && $_REQUEST['section'] == $section->slug; - } - - return !$section->as_link; - }); - } -} diff --git a/vendor/rrze/wp/src/Settings/Template.php b/vendor/rrze/wp/src/Settings/Template.php deleted file mode 100644 index 79f9fe56..00000000 --- a/vendor/rrze/wp/src/Settings/Template.php +++ /dev/null @@ -1,27 +0,0 @@ - $value) { - ${$name} = $value; - } - - $full_path = __DIR__ . "/templates/{$file}.php"; - - if (!file_exists($full_path)) { - return; - } - - ob_start(); - - include $full_path; - - echo apply_filters('rrze_wp_settings_template_render', ob_get_clean(), $file, $variables); - } -} diff --git a/vendor/rrze/wp/src/Settings/WorkBuilder.php b/vendor/rrze/wp/src/Settings/WorkBuilder.php deleted file mode 100644 index 2fd5c5df..00000000 --- a/vendor/rrze/wp/src/Settings/WorkBuilder.php +++ /dev/null @@ -1,27 +0,0 @@ -enqueued[$handle] = $callback; - } - - public function remove($handle) - { - unset($this->enqueued[$handle]); - } - - public function enqueue() - { - foreach ($this->enqueued as $enqueue) { - $enqueue(); - } - } -} diff --git a/vendor/rrze/wp/src/Settings/Worker.php b/vendor/rrze/wp/src/Settings/Worker.php deleted file mode 100644 index 1278a07e..00000000 --- a/vendor/rrze/wp/src/Settings/Worker.php +++ /dev/null @@ -1,35 +0,0 @@ -add($handle, $callback); - } - - public function remove($handle) - { - static::builder()->remove($handle); - } - - public static function enqueue() - { - static::builder()->enqueue(); - } -} diff --git a/vendor/rrze/wp/src/Settings/languages/rrze-wp-settings-de_DE.mo b/vendor/rrze/wp/src/Settings/languages/rrze-wp-settings-de_DE.mo deleted file mode 100644 index 8c8dad943a695cd0b92fa812caae8c266b0f0cf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1011 zcmY*Y&2G~`5H?UQz94Z!0%+XV>gclXB+9 znG-i2gC~HO;8_^QZ5&qm^v%wEvorhm_x9R%hsGM=E@7K+lWF-^AC5i58<;pX82ngvR6|)sSm#QA2_TV}ps;L^MCI z=I^D2M2d$7GI9V4Y10f!R8vaLrO;p`3BY9Bc+ODCkF*fmPuM$DRXl{z=)>UjczAkM z(;ZQD5%&)N!=Knn`dRgbJ2x3<4U9Hy&dnd%|=%>b%u%!L@X0J-w-w@xp9Yu zRlHz(QcZOTqFhXMFX%#T_8tki--Gt!u6x3U5|iAp*LX3LD$xhIHX%e&H^OcdiIgsm z`Uu;tpc{#rmflE6Szd-#?6?()I9!igi==rah$(r#bcuPbzLMaj26Y^9V-!_in%I~t zs?1D_OVz@xRSUCLH5=RE8cS}n5WL2DB&~{Zw?5Sn>SH}&uTY?>FS$Mz=y)BkO?d}0 zmd#}a-n!>^VOFvYvVxU$k*hcxQaR@TU$6k>K@LM9VN)0(+1LU*g@kMPV!>G9IsX7NO*TaU diff --git a/vendor/rrze/wp/src/Settings/languages/rrze-wp-settings-de_DE.po b/vendor/rrze/wp/src/Settings/languages/rrze-wp-settings-de_DE.po deleted file mode 100644 index 480b2771..00000000 --- a/vendor/rrze/wp/src/Settings/languages/rrze-wp-settings-de_DE.po +++ /dev/null @@ -1,35 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: RRZE\\WP\\Settings\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-23T07:50:21+00:00\n" -"PO-Revision-Date: 2023-06-23 09:50+0200\n" -"Last-Translator: RRZE Webteam \n" -"Language-Team: Deutsch\n" -"Language: de_DE\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" -"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;" -"esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;" -"esc_html_x:1,2c\n" -"X-Poedit-Basepath: .\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Generator: Poedit 3.3.1\n" -"X-Loco-Version: 2.4.0; wp-5.4.2\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPath-1: ..\n" - -#: Settings.php:287 -msgid "You don't have enough permissions to do that." -msgstr "Du hast nicht genug Rechte, um das zu tun." - -#: Settings.php:312 -msgid "Settings saved." -msgstr "Die Einstellungen wurden gespeichert." - -#: templates/settings-page.php:18 -msgid "Settings issues detected." -msgstr "Einstellungsprobleme erkannt." diff --git a/vendor/rrze/wp/src/Settings/languages/rrze-wp-settings-de_DE_formal.mo b/vendor/rrze/wp/src/Settings/languages/rrze-wp-settings-de_DE_formal.mo deleted file mode 100644 index 36dc9ffa83720b02f7b940d6857a9c9bcf99f20f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1100 zcmY*Y!EVz)5H(OPxgc>v0%q-L-EPtu?}Z!ZzVH;e=4GoN$lug>Z-P zmB0w!34d-{)=#nz2tRIF)+4gN$PUQRO}VhR8XSwu19s4_}Tq|jg_3BbhM*w#?VPxK+SAF}tTO5TIf=wtun zXn1l}voXS4D#H$Rl!R=jh%_5Z4;sU_Y=qOKOkzE5&;!?T+st{++%`Bbyv^1#$90^> zfNR6XiVK}`BUM!Zj&Nd-XRtlPNk$4(uTFVkhxn2bL{#ty*_Z?#^sq2Gh~dd$f=^eZ zM|;pX*gxpkjkj#4u`7i^LG{jZYRKT+tmi3DL`6?vlmHJA8OAYG4=f)_i zzH+g4uc=~_rAyVqtyBxQQq@1U!!_pI#2(mn@K6>iz};$3J*YPIn7u}UsygLrTcB;X z?H1(?WFYIKa_tS<>A);!o8-Ay{1`Jjt#Xvo4Y93`n|rL%WK^r zS3x|aCYkepn>EoQ!fsgoM9{FMX+gIsS8|eKMz=(L=0ebY=p_i(6ewU;sE|yAI>#i4 zQIU!U5vHh4FE1jZ1ceP;UQAFyNDL7)2dL6gE?@^0k|2qwB8nyyS*g-+UVtftZT$nQ C+gaKG diff --git a/vendor/rrze/wp/src/Settings/languages/rrze-wp-settings-de_DE_formal.po b/vendor/rrze/wp/src/Settings/languages/rrze-wp-settings-de_DE_formal.po deleted file mode 100644 index 611eda8b..00000000 --- a/vendor/rrze/wp/src/Settings/languages/rrze-wp-settings-de_DE_formal.po +++ /dev/null @@ -1,37 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: RRZE\\WP\\Settings\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-23T07:50:21+00:00\n" -"PO-Revision-Date: 2023-06-23 09:51+0200\n" -"Last-Translator: RRZE Webteam \n" -"Language-Team: Deutsch (Sie)\n" -"Language: de\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" -"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;" -"esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;" -"esc_html_x:1,2c\n" -"X-Poedit-Basepath: .\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Generator: Poedit 3.3.1\n" -"X-Loco-Version: 2.4.0; wp-5.4.2\n" -"X-Loco-Template: languages/rrze-private-site-de_DE.po\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPath-1: ..\n" - -#: Settings.php:287 -msgid "You don't have enough permissions to do that." -msgstr "" -"Sie verfügen nicht über die erforderlichen Berechtigungen, um dies zu tun." - -#: Settings.php:312 -msgid "Settings saved." -msgstr "Die Einstellungen wurden gespeichert." - -#: templates/settings-page.php:18 -msgid "Settings issues detected." -msgstr "Einstellungsprobleme erkannt." diff --git a/vendor/rrze/wp/src/Settings/templates/options/checkbox.php b/vendor/rrze/wp/src/Settings/templates/options/checkbox.php deleted file mode 100644 index 819ddb6b..00000000 --- a/vendor/rrze/wp/src/Settings/templates/options/checkbox.php +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - hasError()) { ?> -
- - - \ No newline at end of file diff --git a/vendor/rrze/wp/src/Settings/templates/options/choices.php b/vendor/rrze/wp/src/Settings/templates/options/choices.php deleted file mode 100644 index e7ee472b..00000000 --- a/vendor/rrze/wp/src/Settings/templates/options/choices.php +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - getArg('options', []) as $key => $label) { ?> -
- -
- - getArg('description')) { ?> -

- - hasError()) { ?> -
- - - \ No newline at end of file diff --git a/vendor/rrze/wp/src/Settings/templates/options/code-editor.php b/vendor/rrze/wp/src/Settings/templates/options/code-editor.php deleted file mode 100644 index 457fe3b9..00000000 --- a/vendor/rrze/wp/src/Settings/templates/options/code-editor.php +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - getArg('description')) { ?> -

- - hasError()) { ?> -
- - - \ No newline at end of file diff --git a/vendor/rrze/wp/src/Settings/templates/options/color.php b/vendor/rrze/wp/src/Settings/templates/options/color.php deleted file mode 100644 index 93377856..00000000 --- a/vendor/rrze/wp/src/Settings/templates/options/color.php +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - getArg('description')) { ?> -

- - hasError()) { ?> -
- - - \ No newline at end of file diff --git a/vendor/rrze/wp/src/Settings/templates/options/password.php b/vendor/rrze/wp/src/Settings/templates/options/password.php deleted file mode 100644 index 46115353..00000000 --- a/vendor/rrze/wp/src/Settings/templates/options/password.php +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - getArg('description')) { ?> -

- - hasError()) { ?> -
- - - \ No newline at end of file diff --git a/vendor/rrze/wp/src/Settings/templates/options/select-multiple.php b/vendor/rrze/wp/src/Settings/templates/options/select-multiple.php deleted file mode 100644 index 6a6f5fd1..00000000 --- a/vendor/rrze/wp/src/Settings/templates/options/select-multiple.php +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - getArg('description')) { ?> -

- - - hasError()) { ?> -
- - - \ No newline at end of file diff --git a/vendor/rrze/wp/src/Settings/templates/options/select.php b/vendor/rrze/wp/src/Settings/templates/options/select.php deleted file mode 100644 index 7435fbed..00000000 --- a/vendor/rrze/wp/src/Settings/templates/options/select.php +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - getArg('description')) { ?> -

- - hasError()) { ?> -
- - - \ No newline at end of file diff --git a/vendor/rrze/wp/src/Settings/templates/options/text.php b/vendor/rrze/wp/src/Settings/templates/options/text.php deleted file mode 100644 index 434ab7ab..00000000 --- a/vendor/rrze/wp/src/Settings/templates/options/text.php +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - getArg('description')) { ?> -

- - hasError()) { ?> -
- - - \ No newline at end of file diff --git a/vendor/rrze/wp/src/Settings/templates/options/textarea.php b/vendor/rrze/wp/src/Settings/templates/options/textarea.php deleted file mode 100644 index bb266b80..00000000 --- a/vendor/rrze/wp/src/Settings/templates/options/textarea.php +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - getArg('description')) { ?> -

- - hasError()) { ?> -
- - - \ No newline at end of file diff --git a/vendor/rrze/wp/src/Settings/templates/options/wp-editor.php b/vendor/rrze/wp/src/Settings/templates/options/wp-editor.php deleted file mode 100644 index 3141d761..00000000 --- a/vendor/rrze/wp/src/Settings/templates/options/wp-editor.php +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - getValueAttribute(), $option->getIdAttribute(), [ - 'textarea_name' => $option->getNameAttribute(), - 'wpautop' => $option->getArg('wpautop', true), - 'teeny' => $option->getArg('teeny', false), - 'media_buttons' => $option->getArg('media_buttons', true), - 'default_editor' => $option->getArg('default_editor'), - 'drag_drop_upload' => $option->getArg('drag_drop_upload', false), - 'textarea_rows' => $option->getArg('textarea_rows', 10), - 'tabindex' => $option->getArg('tabindex'), - 'tabfocus_elements' => $option->getArg('tabfocus_elements'), - 'editor_css' => $option->getArg('editor_css'), - 'editor_class' => $option->getArg('editor_class'), - 'tinymce' => $option->getArg('tinymce', true), - 'quicktags' => $option->getArg('quicktags', true) - ]); ?> - getArg('description')) { ?> -

- - hasError()) { ?> -
- - - \ No newline at end of file diff --git a/vendor/rrze/wp/src/Settings/templates/section-menu.php b/vendor/rrze/wp/src/Settings/templates/section-menu.php deleted file mode 100644 index ac4921bf..00000000 --- a/vendor/rrze/wp/src/Settings/templates/section-menu.php +++ /dev/null @@ -1,13 +0,0 @@ - -getActiveTab()->getSectionLinks()) { ?> - - \ No newline at end of file diff --git a/vendor/rrze/wp/src/Settings/templates/section.php b/vendor/rrze/wp/src/Settings/templates/section.php deleted file mode 100644 index 999aef83..00000000 --- a/vendor/rrze/wp/src/Settings/templates/section.php +++ /dev/null @@ -1,19 +0,0 @@ - -

title; ?>

- -description) { ?> -
description; ?>
- - - - - options as $option) { ?> - render(); ?> - - -
\ No newline at end of file diff --git a/vendor/rrze/wp/src/Settings/templates/sections.php b/vendor/rrze/wp/src/Settings/templates/sections.php deleted file mode 100644 index 18c4239f..00000000 --- a/vendor/rrze/wp/src/Settings/templates/sections.php +++ /dev/null @@ -1,17 +0,0 @@ - -
- - - getActiveTab()->getActiveSections() as $section) { ?> - - - - optionName, 'rrze_wp_settings_save'); ?> - - -
\ No newline at end of file diff --git a/vendor/rrze/wp/src/Settings/templates/settings-page.php b/vendor/rrze/wp/src/Settings/templates/settings-page.php deleted file mode 100644 index 0c73b62e..00000000 --- a/vendor/rrze/wp/src/Settings/templates/settings-page.php +++ /dev/null @@ -1,25 +0,0 @@ - -
-

title; ?>

- - flash->has()) { ?> -
-

-
- - - errors->getAll()) { ?> -
-

-
- - - renderTabMenu(); ?> - - renderActiveSections(); ?> -
\ No newline at end of file diff --git a/vendor/rrze/wp/src/Settings/templates/tab-menu.php b/vendor/rrze/wp/src/Settings/templates/tab-menu.php deleted file mode 100644 index 4c343fc9..00000000 --- a/vendor/rrze/wp/src/Settings/templates/tab-menu.php +++ /dev/null @@ -1,11 +0,0 @@ - - \ No newline at end of file From 0e52015efaf0893fdef7b587d9d7ccc5e16ac224 Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:03:06 +0100 Subject: [PATCH 20/21] Update webpack.config.js --- webpack.config.js | 115 ++++++++++++++++++---------------------------- 1 file changed, 44 insertions(+), 71 deletions(-) diff --git a/webpack.config.js b/webpack.config.js index 8f586227..49ffed5d 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,75 +1,48 @@ -const autoprefixer = require("autoprefixer"); -const MiniCSSExtractPlugin = require("mini-css-extract-plugin"); -const CSSMinimizerPlugin = require("css-minimizer-webpack-plugin"); -const TerserPlugin = require("terser-webpack-plugin"); +const defaultConfig = require("@wordpress/scripts/config/webpack.config"); +const webpack = require("webpack"); +const { basename, dirname, resolve } = require("path"); +const srcDir = "src"; +const admin = resolve(process.cwd(), "src", "admin"); +const calendar = resolve(process.cwd(), "src", "calendar"); +const events = resolve(process.cwd(), "src", "events"); -const path = require("path"); -const admin = path.join(__dirname, "src", "admin"); -const calendar = path.join(__dirname, "src", "calendar"); -const events = path.join(__dirname, "src", "events"); - -module.exports = (env, argv) => { - function isDevelopment() { - return argv.mode === "development"; - } - var config = { - entry: { - admin, - calendar, - events, - }, - output: { - path: path.resolve(__dirname, "build"), - filename: "[name].js", - clean: true, - }, - optimization: { - minimizer: [ - new CSSMinimizerPlugin(), - new TerserPlugin({ terserOptions: { sourceMap: true } }), - ], - }, - plugins: [ - new MiniCSSExtractPlugin({ - chunkFilename: "[id].css", - filename: (chunkData) => { - return "[name].css"; - }, - }), - ], - devtool: isDevelopment() ? "cheap-module-source-map" : false, - module: { - rules: [ - { - test: /\.js$/, - exclude: /node_modules/, - use: [ - { - loader: "babel-loader", - options: { - presets: ["@babel/preset-env"], - }, - }, - ], - }, - { - test: /\.(sa|sc|c)ss$/, - use: [ - MiniCSSExtractPlugin.loader, - "css-loader", - { - loader: "postcss-loader", - options: { - postcssOptions: { - plugins: [autoprefixer()], - }, - }, - }, - "sass-loader", - ], +module.exports = { + ...defaultConfig, + entry: { + admin, + calendar, + events, + }, + output: { + path: resolve(process.cwd(), "build"), + filename: "[name].js", + clean: true, + }, + optimization: { + ...defaultConfig.optimization, + splitChunks: { + cacheGroups: { + style: { + type: "css/mini-extract", + test: /[\\/]style(\.module)?\.(pc|sc|sa|c)ss$/, + chunks: "all", + enforce: true, + name(_, chunks, cacheGroupKey) { + const chunkName = chunks[0].name; + return `${dirname(chunkName)}/${basename( + chunkName + )}.${cacheGroupKey}`; + }, }, - ], + default: false, + }, }, - }; - return config; + }, + plugins: [ + ...defaultConfig.plugins, + new webpack.ProvidePlugin({ + $: "jquery", + jQuery: "jquery", + }), + ], }; From d8ff735d26e1aa1f1cb8a1e4754a14b6563b2e65 Mon Sep 17 00:00:00 2001 From: rvdforst Date: Tue, 6 Feb 2024 16:03:21 +0100 Subject: [PATCH 21/21] Update rrze-calendar.php --- rrze-calendar.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/rrze-calendar.php b/rrze-calendar.php index e23da843..00b80e77 100644 --- a/rrze-calendar.php +++ b/rrze-calendar.php @@ -4,7 +4,7 @@ Plugin Name: RRZE Calendar Plugin URI: https://github.com/RRZE-Webteam/rrze-calendar Description: Import and output of FAU public events. -Version: 2.0.13 +Version: 2.1.0 Author: RRZE Webteam Author URI: https://blogs.fau.de/webworking/ License: GNU General Public License v3.0 @@ -19,7 +19,6 @@ use RRZE\Calendar\CPT\CalendarEvent; use RRZE\Calendar\CPT\CalendarFeed; -use RRZE\WP\Plugin; const RRZE_PHP_VERSION = '8.1'; const RRZE_WP_VERSION = '6.4';