Modul Zeitgesteuert einblenden

  • Gibt es eine Möglichkeit Module oder Bereiche vom ModulTyp "Eigene Inhalte" zeitgesteuert ein/auszublenden?


    Hintergrund: auf der Homepage einer Grundschule, soll der Facebook FanPage Link der Schule erst Abends (21:00 - 6:00 Uhr) eingeblendet werden, wenn die Kinder vermutlich schon im Bett sind.
    Nur deswegen den "Advanced Module Manager" von NoNumber zu kaufen ist einfach nicht drin...

    • Hilfreich

    Hallo Luby,


    sofern du nicht auf weitere Funktionen des MetaMods angewiesen bist, sollte es genügen ein Template Override des mod_custom mit folgendem Inhalt zu erstellen:



    Dies mag einem weniger komfortabel erscheinen als MetaMod, erfordert aber nicht noch eine Erweiterung die es zu pflegen und / oder aktualisieren gilt und ist im Vergleich zu MetaMod weitaus weniger Overhead (~1KB vs. ~480KB).


    Gruß,
    Sven


    P.S. Der Vollständigkeit halber sei gesagt, dass hier die Server Zeit inkl. Offset (Server) berücksichtigt wird.

  • Dies mag einem weniger komfortabel erscheinen als MetaMod, erfordert aber nicht noch eine Erweiterung die es zu pflegen und / oder aktualisieren gilt


    Ich mag auch lieber was es geht mit bordmitteln oder ein wenig Code zu lösen, leider habe ich keine Ahnung von programmieren. Das es nicht komfortabel ist, macht mir nichts, hauptsache es funktioniert, was leider bei mir nicht passiert.


    Habe ich richtig verstanden dass ich "FACEBOOK_MODULE_ID" mit der ID des Moduls ersetzen soll welches ich zeitgesteuert einblenden will? Und natürlich in den Einstellungen des Moduls die neue Override Datei auswählen.
    Trotzdem wird das Modul permanent angezeit egal wie spät es ist! hmm

  • Weil es gerade zum Thema passt:


    In Joomla 3.4.1 wurden von Peter van Westen neue Events für Module eingefügt. Damit steht in Aussicht, dass es demnächst bessere Lösungen für die Kontrolle und Erweiterung der Module geben wird, wahrscheinlich auch neue Versionen von metamod und dem Advanced Module Manager, die dann diese Events nutzen.


  • Habe ich richtig verstanden dass ich "FACEBOOK_MODULE_ID" mit der ID des Moduls ersetzen soll welches ich zeitgesteuert einblenden will? Und natürlich in den Einstellungen des Moduls die neue Override Datei auswählen.


    1.) Du erstellt in deinem Template ein Override des Moduls
    Der Override wird in /templates/name_des_templates/html/name_des_moduls erstellt
    2.) Du ersetzt den Code des Overrides mit dem von mir
    2.1) Du trägst für FACEBOOK_MODULE_ID die ID des Moduls ein, dass in dieser Zeit nicht erscheinen soll (z.B. 64).


    Ich hatte es mit verschiedenen Modulen / Zeiten getestet.


    Gruß,
    Sven

  • Es ginge auch ohne Template Override, wenn man den Quellcode von Matrikular in das Template (index.php) steckt, um dort nur bedingt die Modul-Position zu laden <JDOC ..>.


    Die Bedingung im Code hat einen logischen Fehler, sie kann niemals eintreten. So müsste es gehen:


    Code
    if(((int) $module->id === FACEBOOK_MODULE_ID) && (($hour >= 21) || ($hour < 6))) return;