friendsofredaxo / forcal Goto Github PK
View Code? Open in Web Editor NEWKalender- / Newsverwaltung für REDAXO. Mehrsprachig, Beliebig definierbare Eingabefelder
License: MIT License
Kalender- / Newsverwaltung für REDAXO. Mehrsprachig, Beliebig definierbare Eingabefelder
License: MIT License
Hey,
entschuldige bitte nochmal die Störung, aber kann mir bitte jemand helfen - mein Kalender zeigt keine Events an :/
LG Julian
forcal addon: der kalender im backend zeigt keine termine. der firefox inspector zeigt das der rex api call per 302 auf den unterordner 'en' umgeleitet wird.
vermutlich leitet yrewrite weiter. dort ist die option 'Startsprache automatisch gemäß Sprache des Client-Browsers, bevorzugte Sprache als Fallback ' aktiviert.
vermutlich muss der api-call in der forcal.js anders definiert werden:
Line 500 in 1599513
In der aktuelle forCal scheint die Erstellung des Querys zur Abfrage der Termine falsch zu sein.
Wenn ein repeat-Termin mit Beginn am gleichen Tag wie der Beginn des Auslesens der Termine erstellt wird, dann wird dieser nicht ausgegeben, obwohl dieser innerhalb des gewünschten Start-End-Zeitfensters liegt.
Bsp:
Terminbereich:
Start: 22.09.2022
Ende: 30.04.2023
repeat-Termin:
22.09.2022 - 22.09.2022
Wiederholung: monatlich jeden 1. Monat
Enddatum: 22.04.2023
Termin wird erst im Oktober angezeigt, jedoch nicht bei den Septemberterminen, was er aber müsste.
UPDATE 1:
betrifft übrigens auch nicht wiederkehrende Termin, wenn Sie das Datum von heute (22.09.2022) haben.
UPDATE 2:
setzt man das Datum des Termins auf den 23.09.2022 - 23.09.2022, dann wird er heute mit angezeigt.
Irgendwo ist da der Wurm drin.
UPDATE 3:
Ich vermute, dass die MySQL-Abfrage nicht greifen kann, weil z.B. auf
...BETWEEN '2022-09-22 13:57:55' AND '2022-09-30 23:59:59')...
geprüft wird, aber in der DB nur das Datumsformat hinterlegt ist '2022-09-2022'.
Ändert man es nämlich auf
...BETWEEN '2022-09-22' AND '2022-09-30')...
werden alle Einträge korrekt ausgegeben.
UPDATE 4:
In der Funktion decorateEntryRepeats in der Datei https://github.com/FriendsOfREDAXO/forcal/blob/main/lib/forcal/Handler/forcalHandler.php wird das Vergleichsdatum falsch gesetzt, wodurch bei sich wiederholenden Terminen z.B. das Termin-Startdatum älter ist als das aktuelle Startdatum der Eingrenzung ($startSearchDate).
Bsp:
Termin-Startdatum ist: 2022-09-22 00:00:00.0
Wird aber in forCalDateTimeHelper::isDateRangeBetweenDateRange
verglichen mit: 2022-09-22 14:37:04.0 -> Ergebnis = false
Entweder müsste in der DB auch die Zeit beim Datum mit gespeichert werden oder die Prüfung müsste sich auf den korrekten Tagesbeginn ab 0:00 Uhr beziehen, da sonst ein sich wiederholender Termin am gleichen Tag nicht angezeigt wird.
Feature description / Feature Beschreibung
@bitshiftersgmbh Das wird mit 3.1 kommen :: per Fragmente
Wenn man viele Termine hat, wäre eine einfache Suchfunktion (Suchbegriff) innerhalb der Terminübersicht hilfreich.
Gern auch mit zusärtzlicher Option zur Einschränkung nach Kategorie.
Die Checkbox "Ganztägiges Ereignis" unter Einstellungen scheint nicht zu greifen. Egal welcher Zustand die Checkbox hat, ist "Ganztägiges Ereignis" immer aktiv, wenn man einen neuen Termin anlegen will.
REDAXO: 5.14.1
PHP: 7.3.33
Database: MySQL 5.7.37
Browser: Chrome 105.0.5195.53
AddOns: forcal 3.5.2
System report (REDAXO 5.14.1, PHP 7.3.33-nmm2, MySQL 5.7.37)
| REDAXO | |
| ------------: | :--------- |
| Version | 5.14.1 |
| PHP | |
| ------------: | :----------------------------- |
| Version | 7.3.33-nmm2 |
| OPcache | no |
| Xdebug | no |
| Warning | Das Setup wird unverschlüsselt durchgeführt. Frontend und Backend sollten grundsätzlich durch HTTPS verschlüsselt aufgerufen werden, um die Privatsphäre zu schützen und den Datenschutz zu gewährleisten.<br/>Die verwendete PHP-Version 7.3.33-nmm2 wird nicht mehr vom Hersteller gepflegt und sollte aktualisiert werden. |
| Database | |
| ------------: | :----------- |
| Version | MySQL 5.7.37 |
| Character set | utf8 |
| Server | |
| ------------: | :--------- |
| OS | Linux |
| SAPI | fpm-fcgi |
| Webserver | Apache |
| Request | |
| ------------: | :--------------- |
| Browser | Chrome/105.0.0.0 |
| Protocol | HTTP/1.1 |
| HTTPS | no |
| Packages | |
| --------------------------: | :--------- |
| backup | 2.8.2 |
| be_style | 3.1.0 |
| be_style/customizer | 3.1.0 |
| be_style/redaxo | 3.1.0 |
| forcal | 3.5.2 |
| install | 2.10.0 |
| media_manager | 2.13.0 |
| mediapool | 2.12.0 |
| metainfo | 2.9.0 |
| mform | 6.0.5 |
| mform/docs | 1.1 |
| modulsammlung | 4.15.2 |
| modulsammlung/documentation | 1.0 |
| phpmailer | 2.11.2 |
| plyr | 3.15.3 |
| project | dev |
| redactor2 | 4.2.1 |
| search_it | 6.9.0 |
| search_it/documentation | 6.9.0 |
| search_it/plaintext | 6.9.0 |
| search_it/stats | 6.9.0 |
| structure | 2.14.1 |
| structure/content | 2.14.1 |
| uploader | 2.3.0 |
| users | 2.9.0 |
| watson | 2.2.0 |
| yform | 3.4.2 |
| yform/docs | 3.3.1 |
| yform/email | 3.4.2 |
| yform/manager | 3.4.2 |
| yform/tools | 3.4.2 |
| yform_quick_edit | 1.0.0 |
| yform_usability | 1.4 |
Wenn man einen Termin klont, wird er 1:1 übernommen (bis auf die id).
Das ist sehr unübersichtlich, zumal ebenfalls der Status übernommen wird.
Ein kopierter Termin sollte im Titel noch die Kennzeichnung " - Kopie" bekommen und der Status sollte erstmal inaktiv sein.
rex_sql_exception thrown with message "Error while executing statement "UPDATE rex_forcal_entries SET name_1 = "Geschichte des Klubhauses "Joliot-Curie" - Kopie", status = 0 WHERE id = 4" using params []! SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Joliot-Curie" - Kopie", status = 0 WHERE id = 4' at line 1"
Stacktrace:
#19 rex_sql_exception in /var/www/web97/html/sub_ruhlander/redaxo/src/core/lib/sql/sql.php:418
#18 PDOException in /var/www/web97/html/sub_ruhlander/redaxo/src/core/lib/sql/sql.php:414
#17 PDOStatement:execute in /var/www/web97/html/sub_ruhlander/redaxo/src/core/lib/sql/sql.php:414
#16 rex_sql:execute in /var/www/web97/html/sub_ruhlander/redaxo/src/core/lib/sql/sql.php:461
#15 rex_sql:setQuery in /var/www/web97/html/sub_ruhlander/redaxo/src/addons/forcal/lib/forcal/Utils/forcalListHelper.php:116
#14 forCal\Utils\forCalListHelper:cloneData in /var/www/web97/html/sub_ruhlander/redaxo/src/addons/forcal/pages/entries.php:27
#13 require in /var/www/web97/html/sub_ruhlander/redaxo/src/core/lib/packages/package.php:280
#12 rex_package:includeFile in /var/www/web97/html/sub_ruhlander/redaxo/src/core/lib/be/controller.php:489
#11 rex_be_controller:{closure} in /var/www/web97/html/sub_ruhlander/redaxo/src/core/lib/util/timer.php:57
#10 rex_timer:measure in /var/www/web97/html/sub_ruhlander/redaxo/src/core/lib/be/controller.php:490
#9 rex_be_controller:includePath in /var/www/web97/html/sub_ruhlander/redaxo/src/core/lib/be/controller.php:439
#8 rex_be_controller:includeCurrentPageSubPath in /var/www/web97/html/sub_ruhlander/redaxo/src/addons/forcal/pages/index.php:10
#7 require in /var/www/web97/html/sub_ruhlander/redaxo/src/core/lib/packages/package.php:280
#6 rex_package:includeFile in /var/www/web97/html/sub_ruhlander/redaxo/src/core/lib/be/controller.php:489
#5 rex_be_controller:{closure} in /var/www/web97/html/sub_ruhlander/redaxo/src/core/lib/util/timer.php:57
#4 rex_timer:measure in /var/www/web97/html/sub_ruhlander/redaxo/src/core/lib/be/controller.php:490
#3 rex_be_controller:includePath in /var/www/web97/html/sub_ruhlander/redaxo/src/core/lib/be/controller.php:422
#2 rex_be_controller:includeCurrentPage in /var/www/web97/html/sub_ruhlander/redaxo/src/core/backend.php:239
#1 require in /var/www/web97/html/sub_ruhlander/redaxo/src/core/boot.php:143
#0 require in /var/www/web97/html/sub_ruhlander/redaxo/index.php:9
Es wäre toll, wenn man mehr als 1 Kategorie einem Termin zuweisen könnte.
Mit der aktuellen version werden bei mir massig Fehler geworfen:
forCal\Handler\forCalHandler::decorateEntry(): Argument #1 ($entry) must be of type stdClass, null given, called in /var/www/web1841/html/sub_homepage/redaxo/src/addons/forcal/lib/forcal/Handler/forcalHandler.php on line 634
Der Aufruf kommt darüber: $data = \forCal\Handler\forCalHandler::exchangeEntry($eid, false);
Die übergebene $eid ist dabei größer "0", aber anscheinend nicht in der DB vorhanden.
In der besagten Zeile müsste man das $entry[0] vorher prüfen.
REDAXO: 5.17.1
PHP: 8.2.6
Forcal: 4.0
Schön wäre noch eine Jahresansicht oder dass mehrere Monate gleichzeitig darstellbar sind.
In der aktuelle forCal-Version wird das Enddatum innerhalb der Funktion loadEntries falsch gesetzt.
Es wird einfach stumpf um einen Tag erhöht, wodurch z.B. Termine aus dem nächsten Monat mit angezeigt werden.
$endDate->modify("+1 days");
Das Enddatum sollte schon so eingestellt werden, wie es der Nutzer auch definiert hat.
Bsp:
$end = "2022-09-30";
liefert auch Termine vom 01.10.2022
Wenn ich über das Termine-Tab versuche einen neuen Termin einzutragen, kann ich diesen nicht speichern.
Es kommt die leider wenig hilfreiche Fehlermeldung "Fehler beim Speichern!"
Wenn ich vom Kalender her komme funktioniert alles einwandfrei.
Mein erster Gedanke war, dass es in einer Form mit den verschiedenen GET-Parametern zusammen hängt.
Von der Termineseite: "/redaxo/index.php?page=forcal/entries&func=add&list=e175387d"
Vom Kalender aus: ".../redaxo/index.php?page=forcal/entries&func=add&itemdate=2021-10-13"
Ohne den itemdate-Parameter scheint etwas zu fehlen.
Dafür kommt, wenn man vom Kalender kommt, keine Bestätigung, dass die Eingaben gespeichert wurden.
während z.b. das der feldtyp 'textarea' mit eigenen attributen ausgestattet werden kann, funktioniert das beim typ 'media' nicht.
das wäre hilfreich um parameter wie 'preview' oder 'types' zu übermitteln.
weiterhin wäre es sehr schön hier auch den typ 'imagelist' zur verfügung zu haben.
Beim Versuch auf die neueste Version zu updaten wird ein Fehler geworfen:
AddOn forcal konnte aus folgendem Grund nicht aktualisiert werden:
Es kann nicht gemeinsam mit dem AddOn quick_navigation mit der Versionsbedingung <6.0.0 aktiviert sein!
Problem dabei ist, dass parallel Quick-Navigation dies bringt:
AddOn quick_navigation konnte aus folgendem Grund nicht aktualisiert werden:
Es kann nicht gemeinsam mit dem AddOn forcal mit der Versionsbedingung <3.7.0 aktiviert sein!
Description / Beschreibung
Gibt man ein Datum eines Termins manuell in das Feld ein und vertauscht Monat und Tag zB 2022-28-10 erhält man einen SQL Fehler. Die falsche Eingabe sollte vor dem Speichern abgefangen werden.
DateTime::__construct(): Failed to parse time string (2022-28-10 16:00:00) at position 6 (8): Unexpected character
Affected versions / Verwendete Versionen
REDAXO:
PHP:
Database:
Browser:
AddOns:
Did it whoops? / Whoops erhalten?
Aktuell ist es nicht möglich, die vorliegenden Termine auch nach einem freien Suchbegriff einzugrenzen.
Eine einfache Lösung innerhalb der Ausgabe mittels "str_contains" einzugrenzen ist zwar möglich, aber bei vielen Termine nicht so performant und effektiv.
Es wäre daher toll, wenn man zu den vorhandenen Eingrenzungen auch noch optional nach einem Suchbegriff filtern könnte.
Momentan ist es so, dass einzelne Einträge, die am selben Datum stattfinden z.B. per
\forCal\Handler\forCalHandler::getEntries($start, $filter_date, true, 'SORT_ASC', $categoryId);
korrekt nach dem Datum sortiert werden.
Hat man nun aber 3 Einträge z.B. am 01.01.2022 werden diese dann anschließend (glaube ich, ich habe nicht nachgesehen) nach id sortiert.
Hier wäre es wünschenswert, dass man noch eine weitere Sortierung zB nach Titel (name_1) vornehmen könnte.
Momentan:
Gewünscht zB:
Mit folgendem Code habe ich es entsprechend sortiert bekommen:
$entries = \forCal\Handler\forCalHandler::getEntries($start, $filter_date, true, 'SORT_ASC', $categoryId);
// Sortierung damit innerhalb gleicher Tage noch der Titel nach alphabet sortiert wird
usort($entries, function($a, $b) {
/*
When the $a value is on the left of the spaceship operator and the $b value is on the right, ASCending sorting is used.
When the $b value is on the left of the spaceship operator and the $a value is on the right, DESCending sorting is used.
* */
return
[$a['entry']->entry_start_date, $a['entry']->entry_name]
<=>
[$b['entry']->entry_start_date, $b['entry']->entry_name];
});
https://stackoverflow.com/a/54647220
Evtl. könnte man hier andenken die Sortierung nach dem Datum noch nach mehreren Gesichtspunkten vorzunehmen (Titel, Venue, Kategorie).
Nach allem, was ich bisher rausgefunden und ausprobiert habe, ist es nicht möglich, den reinen Titel auszugeben.
$event->entry_name
gibt immer das format "Veranstaltungstitel - Kategoriename"
aus. Auch via dump($events) kann ich nicht den reinen Titel finden.
ein fehlendes DESC
führt zur falschen Reihenfolge bzw. zu einem Whoops bei sortieren nach Datum:
8d901cf
Schön wäre die Möglichkeit jeweils einen default-Wert für die Uhrzeiten (ganztägiges Ereignis), damit das Modul für die Detailausgabe besser funktioniert. (FullCalendar im Frontend)
Person
Datum
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.