Contao-Camp 2024
Ergebnis 1 bis 15 von 15

Thema: Nachrichtenliste bzw. Archiv nach Monaten gruppieren

  1. #1
    Contao-Nutzer
    Registriert seit
    15.09.2009.
    Beiträge
    48

    Standard Nachrichtenliste bzw. Archiv nach Monaten gruppieren

    Hallo,

    gibt es eine Möglichkeit, die Nachrichtenliste oder das Nachrichtenarchiv in der Jahresansicht nacht Monaten zu gruppieren, so dass ich die Auflistung:

    Dezember 2009
    - Nachricht 3
    - Nachricht 2
    - Nachricht 1
    November 2009
    - Nachricht 3 usw.

    erreiche?

    Ich habe keine passende Variable entdeckt, um das Template entspr. anzupassen (bei den Events gibt es dafür etwas).

    Danke und viele Grüße
    Thomas

  2. #2
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Hallo!

    Ja, gibt es!

    Ganz einfach im Modul das Überschriftenfeld leer lassen und auf Archivformat - Monat einstellen!

    Wenn Du eine Überschrift benötigst, einfach im Artikel eine Überschrift deklarieren.
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  3. #3
    sq......
    Gast

    Standard

    Zitat Zitat von Thomas Beitrag anzeigen
    ... Ja, gibt es! ... Ganz einfach im Modul das Überschriftenfeld leer lassen und auf Archivformat - Monat einstellen!
    hi, ich glaube kaum das dann eine nachricht ( hier nachricht 3 ) in zwei verschiedenen monaten aufgeführt wird ... was ich ohnehin nicht verstehe ...

  4. #4
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Man verwendet für sowas das Nachrichtenarchiv und dort wird im Normalfall der h Tag mit Überschrift und Monat gefüllt. Läßt man die Überschrift weg und macht nur ein Leerzeichen rein, geht es auch ohne Überschrift.

    Nachricht 3 dürfte hier doch nur ein Beispiel darstellen. Es sei denn, ich verstehe gerade etwas falsch.
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  5. #5
    Contao-Nutzer
    Registriert seit
    15.09.2009.
    Beiträge
    48

    Standard

    Hallo Thomas,

    ja - das mit der zweiten Nachricht 3 war ein blödes Beispiel ... es ging mir einfach um weitere Nachrichten in weiteren Monaten.

    Mein Problem ist im Moment noch, dass ich dann zwar die Nachrichten mit der Monatsüberschrift habe ... aber nur von einem aktuellen Monat. Ich hätte gern alle Nachrichten eines Jahres nach Monaten gruppiert auf einer Seite (vielleicht hätte ich das mal vorher schreiben sollen).

    Gruß
    Thomas

  6. #6
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Hast Recht, habe ich noch garnicht gesehen, da ich den auch erst vor ein paar Tagen eingerichtet habe.

    Das währe vielleicht sogar ein Ticket wert, wenn es dazu keine Lösung gibt.
    So bräuchte man nicht den Umweg über das Archivmenü gehen.
    Geändert von Thomas (10.12.2009 um 09:45 Uhr)
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  7. #7
    Contao-Nutzer
    Registriert seit
    07.12.2009.
    Beiträge
    151

    Standard

    Genau das Problem habe ich aktuell auch. Gibt es mittlerweile einen Lösungsansatz dazu?

    Gruß, zinky

  8. #8
    Contao-Urgestein Avatar von Sebastian
    Registriert seit
    19.06.2009.
    Ort
    Stuttgart
    Beiträge
    3.361

    Standard

    HI

    theoretisch könntest du im Nachrichtentemplate (Nachrichtenliste) das Datum abfragen und dann eine Überschrift ausgeben lassen, wenn das Datum nicht schon vorhanden war.

    Sebastian
    Geändert von Sebastian (11.01.2010 um 15:14 Uhr)

  9. #9
    Contao-Nutzer
    Registriert seit
    07.12.2009.
    Beiträge
    151

    Standard

    Das hab ich bereits probiert, leider ohne Erfolg, sicherlich mangels Fähigkeiten.
    Wusste nicht, wo ich das Datum des vorangegangenen Datensatzes herbekomme, denn einfach in einer Variablen speichern hat nicht funktioniert.

    Gruß, Zinky

  10. #10
    Contao-Urgestein Avatar von Sebastian
    Registriert seit
    19.06.2009.
    Ort
    Stuttgart
    Beiträge
    3.361

    Standard

    HI

    hmm, das ist ungünstig. Der einzelne Beitrag wird ja ein einer foreach-Schleife ausgegeben. Sollte da nicht eigentlich eine Variable bestehen bleiben? Aber ich bin kein Programmierer, da müssen andere ran…

    Sebastian

  11. #11
    Contao-Nutzer
    Registriert seit
    07.12.2009.
    Beiträge
    151

    Standard

    Ja, das war auch mein Gedankengang. In der Foreach-Schleife den Monat beim ersten Mal einfach ausgeben und in einer Variable speichern, beim zweiten Mal mit der gespeicherten Variable vergleichen und bei Unterschied ausgeben.
    Hab meinen Ansatz leider schon wieder gelöscht, reproduziere ihn aber nachher mal und stelle ihn rein.

    gruß, zinky


    So, hier hänge ich mal meinen stümperhaften Ansatz rein. Problem ist wie gesagt, dass der Monat IMMER bei jedem Datensatz ausgegeben wird, da die Variable $month_prev im nächsten Schleifendurchlauf nicht mehr zur Verfügung steht.

    HTML-Code:
    <div class="layout_simple block<?php echo $this->class; ?>">
    <?php
    $month_db =  $this->parseDate("M", $this->time);
    if(!isset($month_prev))
    {
    if ($this->date) echo "<p class=\"month\">".$month_db."</p>".$this->parseDate("d\.m.Y", $this->time)." "; ?> <?php echo $this->linkHeadline;
    $month_prev=$month_db;
    }
    else
    {
    if($month_prev==$month_db)
    {
    if ($this->date) echo $this->parseDate("d\.m.Y", $this->time)." "; ?> <?php echo $this->linkHeadline;
    }
    else
    {
    if ($this->date) echo "<p class=\"month\">".$month_db."</p>".$this->parseDate("d\.m.Y", $this->time)." "; ?> <?php echo $this->linkHeadline;
    }
    }
    ?> 
    </div>
    Geändert von zinky (11.01.2010 um 15:48 Uhr)

  12. #12
    Contao-Nutzer
    Registriert seit
    07.12.2009.
    Beiträge
    151

    Standard

    Kann jemand einen Denkanstoß für das Problem im vorangegangenen Post geben?

    Gruß, zinky

  13. #13
    Alter Contao-Hase Avatar von Messa
    Registriert seit
    19.01.2011.
    Ort
    Vorarlberg, Österreich
    Beiträge
    1.423

    Standard

    Ist zwar schon ein bisschen her
    Aber ich habe gerade etwas ähnliches benötig nur für Jahre.
    Falls jemand vor der gleichen Aufgabe steht, hier mein Code.

    Damit werden Einträge nach Jahren unterteilt.

    news_simple.html5
    PHP-Code:
    <?php
    $year 
    =  $this->parseDate("Y"$this->time);
    ?>
    <?php 
    if ($year != $GLOBALS['NEWSYEAR']['YEAR']): ?>
    <h2><?php echo $year;?> </h2>
    <?php endif; ?>
    <div>
        <?php echo $this->teaser;?> 
    </div>
    <?php $GLOBALS['NEWSYEAR']['YEAR'] = $year;  ?>
    Liebe Grüße
    Matthias
    Geändert von Messa (21.09.2017 um 14:43 Uhr)
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

  14. #14
    Contao-Nutzer
    Registriert seit
    06.10.2009.
    Beiträge
    161

    Standard

    Zitat Zitat von Messa Beitrag anzeigen
    Ist zwar schon ein bisschen her
    Aber ich habe gerade etwas ähnliches benötig nur für Jahre.
    Falls jemand vor der gleichen Aufgabe steht, hier mein Code.

    Damit werden Einträge nach Jahren unterteilt.
    Danke. Du hast mir gerade sehr geholfen! :-)

  15. #15
    Contao-Fan
    Registriert seit
    26.06.2009.
    Beiträge
    266

    Standard

    Zitat Zitat von Messa Beitrag anzeigen
    Ist zwar schon ein bisschen her
    Aber ich habe gerade etwas ähnliches benötig nur für Jahre.
    Falls jemand vor der gleichen Aufgabe steht, hier mein Code.

    Damit werden Einträge nach Jahren unterteilt.

    news_simple.html5
    PHP-Code:
    <?php
    $year 
    =  $this->parseDate("Y"$this->time);
    ?>
    <?php 
    if ($year != $GLOBALS['NEWSYEAR']['YEAR']): ?>
    <h2><?php echo $year;?> </h2>
    <?php endif; ?>
    <div>
        <?php echo $this->teaser;?> 
    </div>
    <?php $GLOBALS['NEWSYEAR']['YEAR'] = $year;  ?>
    Liebe Grüße
    Matthias
    In Contao 4.13.15 und mit PHP 8.1 wird hierbei im Debug-Modus folgende Fehlermeldung ausgegeben:

    PHP-Code:
    WarningUndefined global variable $NEWSYEAR 
    Um dies zu verhindern habe ich dein Script etwas angepasst:

    news_simple.html5

    PHP-Code:
    <?php $year = \Date::parse("Y"$this->time); ?>

    <?php if (isset($GLOBALS['NEWSYEAR']['YEAR'])): ?>
        <?php if ($year != $GLOBALS['NEWSYEAR']['YEAR']): ?>
            <h2 class="headline"><?= $year ?></h2>
        <?php endif; ?>
    <?php 
    else: ?>
        <h2 class="headline"><?= $year ?></h2>
    <?php endif; ?>

    <div class="layout_simple arc_<?= $this->archive->id ?> block<?= $this->class ?>">
        <a href="<?= $this->link ?>" title="<?= $this->headline ?>">
            <?php if ($this->date): ?><time datetime="<?= $this->datetime ?>"><?= \Date::parse("d.m.Y"$this->time?></time><?php endif; ?>
            <strong><?= $this->headline ?></strong>
        </a>
    </div>

    <?php $GLOBALS['NEWSYEAR']['YEAR'] = $year?>

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Eventliste nach Monaten ausgeben
    Von retsina im Forum Nachrichten/Events/FAQ
    Antworten: 68
    Letzter Beitrag: 28.08.2017, 14:05
  2. News-Archiv-Menü nach Archiv und nicht nach Tag/Monat/Jahr?
    Von Chris87 im Forum Was kann Contao?
    Antworten: 5
    Letzter Beitrag: 03.04.2011, 10:39
  3. Events nach Monat gruppieren
    Von flom01 im Forum Nachrichten/Events/FAQ
    Antworten: 2
    Letzter Beitrag: 11.11.2010, 17:09
  4. News nach Datum automatisch gruppieren
    Von andreasisaak im Forum Nachrichten/Events/FAQ
    Antworten: 5
    Letzter Beitrag: 29.10.2009, 14:04

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •