PHP direkt in Modul einfügen

  • Hallo zusammen,


    ganz kurze Frage, ich würde gerne möglichst mit Bordmitteln die aktuelle Jahreszahl im Footer-Copyright-Modul ausgeben lassen.


    Rahmenbedingungen: J 4.0.0, PHP 8.0

    Ich bin als "Super User" angemeldet. Der Textfilter für "Super Users" steht auf "Keine Filterung". Der Standard-Editor steht auf "Keiner".

    Im eigenen Modul habe ich eingefügt: <?php echo date("Y"); ?>


    Es wird nichts ausgegeben, im Quelltext ist die eingegebene Passage rot formatiert.


    Nun ist die Frage: Bug oder Feature? :)


    Oder sind Umwege wie dieser oder dieser nötig?




    [offtopic] Trotz aller Diskussionen, vielen Dank an alle, die an der Entwicklung von Joomla 4 beteiligt waren! Die Kinderkrankheiten werden sich geben und wo die Reise hingeht werden wir sehen. [/offtopic]

  • Oder sind Umwege wie dieser oder dieser nötig?

    Jain, oder eine extra Erweiterung dafür. Wobei die 2. Variante (Modul-Override) hier die von mir empfohlenere wäre. AAABER...

    im Footer-Copyright-Modul

    Wenns doch eh schon ein Modul ist, kannst doch auch einen normalen Override anlegen. Vorausgesetzt, es unterstützt Override. Und das halt einfach an die passende Template Position.


    EDIT: Mir ist ncht ganz klar, welches Modul du verwendest. Deshalb so vage ;)

  • Re:Later: Vielen Dank für deine Antwort!


    Ich habe ein ganz profanes Modul vom Typ "eigenes Modul" verwendet. Dafür habe ich jetzt ein Override von mod_custom angelegt und dieses Layout meinem o.g. "Footer-Copyright-Modul" zugewiesen.


    Mir ging es auch nicht unbedingt nur um ein Modul, sondern auch um php im Fließtext eines Beitrages, aber da werde ich warscheinlich nicht um ein Plugin herumkommen.

  • Re:Later und Indigo66


    Ist zwar nicht mein Thread, war aber mein Thema. Hatte dieselbe Idee (automatische Jahreszahl im Footer). Durch eure Tipps hab ich den Modul-Override eingesetzt. Perfekte und saubere Lösung. Vielen Dank!

    Cheers Vanbrugg

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

    AlmaLinux 8.9 | MariaDB 10.11.x | PHP 8.3.x

  • Fußzeile/Copyright-Modul statt Override eines Eigenen Moduls:


    Das o. g. Ziel ist auch einfacher (und ohne besondere PHP-Code-Kenntnisse) erreichbar, indem man statt eines Eigenen Moduls gleich das Standard-Modul Fußzeile/Copyright verwendet.


    In dem ersten (der zwei) Sprachenschlüssel des Fußzeile/Copyright-Moduls ist nämlich ein funktionierender PHP-Code für die automatische Aktualisierung des Kalenderjahres bereits mit drin.


    Der Weg mit dem Modul-Override für ein "Eigenes Modul" hat gegenüber der Verwendung des Fußzeile/Copyright-Modul zudem den Nachteil, dass das selbst erstellte Modul-Override u. U. dann auch wieder überarbeitet werden muss, wenn bei einem Core-Update auch der Quellcode für das Modul "Eigenes Modul" betroffen ist.


    Sofern gewünscht, kann man auch die Texte/Ausgabe der zwei Sprachenschlüssel für das Fußzeile/Copyright-Modul modifizieren. Hier ein Beispiel für die Frontend-Sprache Deutsch:


    System  >  Sprachen-Overrides  >  Site (DE)  >  Neu


    Dann zunächst den Sprachschlüssel MOD_FOOTER_LINE1 suchen & finden und dort


    dessen Original-Texteintrag Copyright © %date% %sitename%. Alle Rechte vorbehalten.


    zum Beispiel ändern in Copyright © %date% %sitename% oder wie man es auch gerne hätte. Abspeichern.


    Dann, wenn gewünscht, bei dem zweiten Sprachschlüssel des Moduls MOD_FOOTER_LINE2


    dessen Original-Texteintrag Joomla! ist freie, unter der GNU/GPL-Lizenz veröffentlichte Software.


    auch ändern oder auch löschen. Auch abspeichern. Fertig.

  • Nachteil, dass das selbst erstellte Modul-Override u. U. dann auch wieder überarbeitet werden muss, wenn bei einem Core-Update auch der Quellcode für das Modul "Eigenes Modul" betroffen ist.

    Blödsinn. Der Override wird unter eigenem Namen abgelegt, hat keinerlei Code drinnen, der bei Modul-Updates zu Problemen führt.


    Siehe auch Hinweis: "Grundlegend kann man nahezu jedes Joomla-Modul dafür missbrauchen." in meinem Artikel.