Einfache Termin (Event-) Anzeige gesucht / Eigenentwicklung streikt nach Update auf J4 bzw. PHP 8

  • Hallo zusammen,


    für eine Vereinswebseite suche ich eine ganz simple Terminanzeige für ein- und mehrtätige Events.

    Es soll ein Modul mit dem nächsten Termin und eine Terminübersicht geben.


    ich habe JEvents und iCagenda ausprobiert, wäre notfalls möglich aber viel zu overkill.

    Vielleicht kennt ja jemand etwas schlankes. :)



    Meine alte Lösung hat bisher mit J3 und PHP 7.4 immer prima funktioniert. Mag etwas "stump" sein, aber für meine Zwecke reicht es.


    Ich habe eine Terminliste als txt. Ein Modul für den nächsten Termin auf der Startseite. Ein Modul für die Terminliste auf der Seite /termine.


    Ich erhalte die Fehlermeldung  0 fgets(): Argument #1 ($stream) must be of type resource, bool given


    Leider bekomme ich es nicht hin das Script für J4 / PHP 8 anzupassen. Wenn dies gelingen würde, wäre das eine sehr schlanke Lösung. Bestenfalls die termine.txt als termine.php, damit man sie auch per defined('_JEXEC') or die;schützen kann.


    Vielleicht hat jemand Lust das anzupassen. :)

  • Ich erhalte die Fehlermeldung  0 fgets(): Argument #1 ($stream) must be of type resource, bool given

    Hallo,


    ich vermute ganz stark, dass das fopen zu dem fgets auf Fehler gelaufen ist, z. B. dass die Datei nicht vorhanden ist. fopen gibt dann false (bool) zurück und das akzeptiert fgets nicht.


    Vor php 8 lief das durch.


    Gruß

    kdh

  • kdh und christine2: Vielen Dank für eure schnellen Antworten!


    Zur Ergänzung: Die termine.txt ist UTF-BOM kodiert. (notepad++)


    Ich habe das jetzt mal aus Joomla herausgelöst und testweise in ein extra Verzeichnis ( auch PHP 8 ) gepackt.

    Dann habe ich die termine.txt relativ verknüpft.

    PHP
        $termine = fopen("termine.txt", "rb");

    ... und es funktioniert, egal ob relativer oder absoluter Pfad.


    Wenn ich die termine.txt im Joomla-Umfeld relativ verknüpfe, bleibt die Fehlermeldung bestehen. ?(

    Wenn ich bei den beiden Dateien dann testweise die Zeile defined('_JEXEC') or die; auskommentiere und sie direkt aufrufe, funktionieren beide.


    Hier die Fehlermeldung für die Datei /templates/TEMPLATE/html/mod_custom/naechstertermin.php, eingebunden auf der Startseite.



    Hier lag es wohl an: PHP 8.1 Fehler nach Umstellung auf PHP 8.1.11


    Liebe Grüße

    Christine

    Leider wird es dort ja nicht abschließend geklärt.

  • -OJ-: Vielen Dank für deine Antwort!



    Das ist auch eine tolle Lösung, allerdings müsste ich die Beiträge noch mit Custom Fields erweitern, die Listenausgabe anpassen und eine Ausgabe für "Nächster Termin" erstellen.