die Erweiterung und PHP 8
Hallo @hschottm und ggf. Mitentwickler,
nachdem die Kombination ContaoManager <-> PHP 7.4 bei meinem Hoster nicht ordentlich funktioniert (7.3 geht), "musste" ich auf PHP 8 wechseln.
Dabei ist aufgefallen, dass die Erweiterung - ich verwende sie gefühlt "schon immer" (seit Typolight, jetzt mit Contao 4.9) - nicht zu PHP 8 kompatibel ist. Es ist aber dem Anschein nach leicht, sie anzupassen:
Code:
$ diff CalendarImport.php.orig CalendarImport.php
39c39
< $arrCalendars = $this->Database->prepare("SELECT id FROM tl_calendar WHERE id IN (" . join($arrCalendars, ',') . ") AND ical_source = ?")
---
> $arrCalendars = $this->Database->prepare("SELECT id FROM tl_calendar WHERE id IN (" . join(',', $arrCalendars) . ") AND ical_source = ?")
839c839
< $arrFields['cep_participants'] = join($attendees, ',');
---
> $arrFields['cep_participants'] = join(',', $attendees);
854c854
< $arrFields['cep_contact'] = join($contacts, ',');
---
> $arrFields['cep_contact'] = join(',', $contacts);
und
Code:
$ diff ContentICal.php.orig ContentICal.php
94c94
< $this->Template->href = $this->addToUrl("ical=" . join($arrCalendars, ',') . "&title=" . urlencode($this->strTitle));
---
> $this->Template->href = $this->addToUrl("ical=" . join(',', $arrCalendars) . "&title=" . urlencode($this->strTitle));
Mehr Stellen gibt es wohl nicht.
(Ich habe, damit das diff "hübscher" ist, noch einen Umbruch in Zeile 39 entfernt.)
Die Funktion join() ist ein Alias auf implode(). Ich deute das so: die Parameter dürfen bereits seit PHP4 vertauscht sein und müssen es seit PHP8; siehe https://www.php.net/manual/de/function.implode.php
Viele Grüße
purzel
Liste der Anhänge anzeigen (Anzahl: 1)
* Fork erzeugen und dorthin wechseln (hast Du gemacht)
* Edit: einen Branch erzeugen - siehe Screenshot Anhang 25168
* im Tab "< > Code" zu der Datei gehen, die geändert werden soll und auf die Datei klicken
* oben rechts ist ein Stift für den Bearbeitungsmodus => Klick
* Datei bearbeiten - ggf. auch den Header aktualisieren (z.B. Jahreszahl anpassen oder sich als Author eintragen)
* unten Titel und Kommentar eingeben und speichern (Bei Kommentar ist es prima die Nummer des Issues mit anzugeben ein "#<nr>" reicht für die Verlinkung)
* es erscheint dann automatisch ein Gelb hinterlegtes Feld + grüner Button, ob Du einen PR anlegen möchtest => Klick auf Button
* im Original gucken, ob bei Tab "Pull requests" Deiner mit eingetragen ist...
bei größeren Änderungen sollte man das eher lokal machen - von Gitlab gibt es ein einfaches Tool oder Sourcetree als GUI