Täglich wechselnder Beitrag

  • Joomla Version
    4.3.4
    PHP Version
    Unbekannt
    Hoster
    -

    Moin auch.


    Ich habe folgendes Wunschszenario:


    Für jeden einzelnen Kalendertag eines laufenden Jahres (oder auch einer jede Woche eines Jahres) soll es einen speziellen Beitrag geben. Als Beispiel:

    • 01. Jan eines Jahres: Beitrag Nr. 001
    • 02. Jan eines Jahres: Beitrag Nr. 002
    • ...
    • 31. Dez eines Jahres: Beitrag Nr. 366

    Das ist ja bis dahin selbst für mich noch nicht so besonders schwierig. ;)


    Mein Wunsch ist es nun, dass

    1. immer nur der Beitrag des aktuellen Tages angezeigt/veröffentlicht wird
    2. es darüber hinaus zwei Links gibt, mittels derer man sich auch noch den Beitrag von gestern und den von vorgestern anschauen kann (z. B. wenn man mal einen verpasst hat)
    3. und wenn ein Kalenderjahr um ist, dass dann im darauf folgenden Jahr automatisch wieder mit der Veröffentlichung des ersten Beitrags (Nr. 001), also für den 01. Jan. begonnen wird -
      also ohne dass ich bei jedem der 366 Beiträge jährlich unter Beitrag > Veröffentlichung > Veröffentlichung starten/beenden manuell das Kalenderjahr ändern muss.

    Hat bitte jemand von Euch eine Idee oder einen Rat für mich, was da eine Ansatz wäre oder gar wie sich sowas in Joomla realisieren lässt? Oder hat das jemand von Euch sogar schon mal gemacht?


    P.S.: Wenn möglich, lieber mit Bordmitteln.


    Vielen Dank!

    (Allein schon für's Lesen.)

  • Viktor ( Kubik-Rubik ) bietet ja sowas an:


    RIE - Random Image Extended Pro - Joomla! 4 - Pro Download
    Random Image Extended Pro shows random images and displays them in a lightbox view. This is a module for Joomla! >= 4.0.0 and PHP >= 7.4.0.
    kubik-rubik.de


    Vielleicht kannst du es von ihm anpassen lassen, oder oben rechts über 'Dienstleister' es erstellen lassen.


    Mehr weiß ich leider auch nicht.

  • Es gibt da mehrere Ideen, wie man das machen könnte:


    1. Du erstellst 366 mod_custom Modultexte (kann auch Newsflash mit entsprechenden Kategorien oder es gibt auch im JED Module, die gezielt Artikel anzeigen können) die du auf die Positionen "myposition-0" bis "myposition-355" setzt und hast dann in deinem Template sowas wie:

    PHP
    <?php
    $dayOfYear = JFactory::getDate()->format('z');
    ?>
    <jdoc:include type="modules" position="myposition-<?php echo $dayOfYear; ?>" />


    2. Du machst ein Override von einer Artikelansicht und machst sonst das selbe wie oben mit den Modulen


    PHP
    <?php
    $dayOfYear = JFactory::getDate()->format('z');
    $modules = JModuleHelper::getModules('myposition-' . $dayOfYear);
    
    foreach ($modules as $module) {
        echo JModuleHelper::renderModule($module);
    }
    ?>


    3. Du baust dir ein kleines Task-Scheduler Plugin (gibts ja seit Joomla 4.1), mit dem du automatisiert in Joomla die Beiträge aktivieren/deaktivieren kannst (oder publish_up/down setzen, je nach Geschmack). Hierbei würde der Menülink dann eine Blogansicht sein, die dann jeweils die aktiven Artikel anzeigt.


    4. Vielleicht ist auch hier was dabei.


    5. Rekrutiere deinen motivierten Neffen, der sich freut, dass er jeden Tag die Datumswerte von Modulen/Artikel ändern darf.

  • Je nachdem wie gut deine Kentnisse in PHP und HTML sind wäre auch denkbar alternativ z.B.:


    366 Beiträge in einer Beitragskategorie erstellen.

    In diesen Beiträgen stellst du ein jeweiliges Veröffentlichungsdatum ein z.B. 1.1.2000 usw.


    Du erstellst einen Alternativ-Blog-Layout und darin gibst du nur den Beitrag aus,

    bei dem der Tag und Monat des Veröffentlichungsdatums dem jeweiligen aktuellen Tag entspricht.

    Diese Alternative-Blog-Layout stellst du dann im entsprechenden Menüeintrag vom Menüeintragstyp Kategorieblog im Tab Optionen im Layout auswählen ein.


    Verlinkung entsprechend zum Beitrag davor und danach ist eigentlich auch gut im Alternativ-Blog-Layout machbar.

    Nur die Verlinkungen vom 31.12. vorwärts zum 1.1. sowie die

    Verlinkung vom 1.1. zurück zum 31.12. müßte man wohl seperat behandeln.

    Ebenso müßte man wohl den 29.2. entsprechend besonders behandeln.


    Die Beitragsreihenfolge könnte man ja entsprechend im oben schon erwähnten Menüeintrag vom Menüeintragstyp Kategorieblog im Tab Blog-Layout -> Beitragssortierung -> auf Beitragsreihenfolge einstellen und

    die Beiträge innerhalb der Beitragskategorie entsprechend sortieren.

  • Die Lösungen in #3 haben natürlich den Vorteil das niemand z.B. durch raten, probieren oder über Einträge bei Suchmaschinen der entsprechenden URL auf einen "Tages-Beitrag" kommen kann der nicht dem genannten gewünschten Datumsbereich entspricht.

    Weil die 366 Beiträge in #5 prinzipiell alle immer zugänglich sind, sofern nicht zusätzliche Maßnahmen ergriffen werden.

  • Hallo,


    My suggestion of solution :

    0. first let's suppose that all 366 articles for the 366 days are in the same Category and that for each of them you set the correct date (well, correct day and month, you can put anything for year, hour, minute, second)

    1. create an override (or alternate layout) for a Module displaying Articles, like Latest Articles or Articles Newsflash (let's take Newsflash here)

    2. edit /templates/cassiopeia/html/mod_articles_news/default.php

    3. there you can add a "if condition" to check whether it is the anniversary of the creation date of the article

    4. here are the two changes to the original code

    4.1. you have to add 2 lines of "use"

    4.2. you have to add the "if" as written below (and the "endif" of course)


  • One more thing: you could have 3 loops if you want to display respectively for Yesterday, Today and Tomorrow:


    1. if you want to compare for Yesterday

    PHP
    <?php if (HtmlHelper::date($item->created, Text::_('m-d')) == HtmlHelper::date('now -1 day', Text::_('m-d'))) : ?>


    2. if you want to compare for Tomorrow


    PHP
    <?php if (HtmlHelper::date($item->created, Text::_('m-d')) == HtmlHelper::date('now +1 day', Text::_('m-d'))) : ?>