Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 19. November 2019 16:07

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 838

LISE Archiv für Doofe?

Hi nach längerer Zeit,

dieses LISE-Archiv bleibt mir ein Buch mit sieben Siegeln.

Ich rufe es auf einer Seite auf:

{LISEAktuelles category='xyz' action='archive'}

Im LISE-Archiv-Template steht zB:

{if $archives|@count > 0}

    <!-- archives -->
    <ul>
        {foreach from=$archives item='archive'}
            <li><a href="{$archive->url}">{$archive->month}/{$archive->year} ({$archive->count})</a> [{$archive->timestamp|cms_date_format:'%B %Y'}]</li>    
        {/foreach}
    </ul>
    <!-- archives //-->
    
{/if}

Folgerichtige Ausgabe:


4/2019 (3)
3/2019 (6)
12/2018 (2)
11/2018 (5)

Ich würde nun erwarten, dass ich beim Klick auf "4/2019" eine Liste mit den drei Einträge vom April 2019 zu sehen bekomme. Beim nächsten Klick käme ich in die Detailansicht.

Was aber stattdessen passiert, ist folgendes: Ich bekomme direkt einen einzelnen Artikel als Detailansicht zu sehen, dessen Erscheinungsdatum nicht im Geringsten zur Auswahl passt.

Könnte mir jemand erläutern, wie dieses Archiv funktioniert? Ich stand da schon vor wie'n Ochs vorm Berg und habe mir das jedes Mal irgendwas eigenes überlegt. Aber irgendwann würde ich es schon gern wissen.

Offline

#2 19. November 2019 21:47

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.298

Re: LISE Archiv für Doofe?

Bei mir haut schon die Archivübersicht nicht so hin, wie ich das erwarten würde. Es wird leider nur das Erstellungsdatum eines Eintrags berücksichtigt, nicht das tatsächliche Start/End-Datum bei der Zeitsteuerung.
Folglich zeigt er mir für November drei Artikel an, die allerdings alle bereits im September gestartet sind und im Oktober beendet waren roll

Wie dem auch sei, beim Klick auf November wird mir einfach nichts angezeigt. Also nichtmal ein Artikel im Detail, wie bei Dir. Wenn ich mir den Query anschaue, dann ist das auch irgendwie "logisch". Weil er einerseits nur Artikel sucht, deren Erstellungsdatum im November liegt, aber deren Startdatum in der Vergangenheit und deren Enddatum in der Zukunft liegt. Also nur Artikel, die in der Vergangenheit erstellt/gestartet wurden und noch nicht abgelaufen sind. Das widerspricht sich hier mit der vorherigen Ansicht.

Im Zusammenhang mit dem Parameter "showall" beim News-Modul, scheint mir, als hätten wir hier alle eine völlig unterschiedliche Auffassung davon, was "Archiv" bedeutet.

Meiner Meinung nach sollte das Erstellungsdatum nur dann berücksichtigt werden, wenn es keine Zeitsteuerung gibt (also wenn es kein Start- bzw. Enddatum gibt). Und bei der Zeitsteuerung sollte egal sein, wann das Enddatum ist. Bzw. wäre eine Option zum Anzeigen auch von abgelaufenen Artikeln sinnvoll.

EDIT: Hoppla! Es gibt einen Parameter namens "showall", der tatsächlich auch das macht, was man dahinter vermuten würde: Artikel unabhängig von der Zeitsteuerung anzeigen. Somit funktioniert das Archiv für mich fast so, wie es sein sollte - wenn es sich bei der Zuordnung eines Artikels zu einem Zeitraum nur nicht ausschließlich nach dem Erstellungsdatum richten würde. Mir einen Artikel für November anzuzeigen, der im September startet und im Oktober endet, ist irgendwie verwirrend.

Offline

#3 20. November 2019 09:10

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 838

Re: LISE Archiv für Doofe?

NaN schrieb:

Hoppla! Es gibt einen Parameter namens "showall", der tatsächlich auch das macht, was man dahinter vermuten würde: Artikel unabhängig von der Zeitsteuerung anzeigen.

Bei mir ändert der leider gar nichts, da muss noch ein Schritt vorher was faul sein. Bei Klick auf den Archivlink weiterhin nur eine eine Detailansicht pro Monat statt einer Liste mit allen Artikel. Zeitsteuerung gibt es bei mir gar nicht. Alle Artikel sollen archiviert werden.

Es scheint auch, als würde die Jahreszahl keine Rolle spielen: Derselbe Artikel, der im November 2018 erstellt wurde, wird auch bei November 2019 gezeigt.

Ich hätte auch lieber eine Jahresliste statt einer Monatsliste. Aber der Parameter filter_year (true oder 1) macht auch nicht wirklich, was ich mir erhoffte. Mit dem bleibt die Seite leer.

NaN schrieb:

Im Zusammenhang mit dem Parameter "showall" beim News-Modul, scheint mir, als hätten wir hier alle eine völlig unterschiedliche Auffassung davon, was "Archiv" bedeutet.

Logisch wäre für mich, dass bei default ohne zusätzliche Parameter der Startzeitpunkt der Zeitsteuerung ausschlaggebend ist und nur abgelaufene Artikel berücksichtigt würden. Gibt es keinen Startzeitpunkt, zählt das Erstellungsdaum. Also eigentlich, was "showall" machen soll und bei dir ja auch macht.

Aber soweit bin ja noch gar nicht: Ich wäre ja schon froh, wenn es überhaupt irgendeine Liste mit Artikeln gäbe statt der Detailausgabe eines einzelnen Artikels.

Offline

#4 20. November 2019 11:36

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 838

Re: LISE Archiv für Doofe?

Gut - ich bin einen Schritt weiter.

Nicht zum ersten Mal muss ich die Erfahrung machen, dass LISE in Verbindung mit pretty_url über mod_rewrite nicht in allen Bereichen klar kommt.

Schalte ich mod_rewrite ganz ab, ist es einigermaßen korrekt. Bis auf kleinere Schwächen:

- Parameter category: Es werden auch die Monate gelistet, in denen nur Artikel aus anderen Kategorien enthalten sind (auch unabhängig von "showall").  Klicke ich auf solch einen Monat, ist die Ergebnisseite leer.

- Internal URL-Rewriting: Ignoriert den Parameter "template_summary", es wird default verwendet.

EDIT: Ich habe mich daher für eine simple pagelimit / start-Kombi entschieden. Die Anzahl der Artikel ist mit max. 15 pro Jahr momentan glücklicherweise noch so übersichtlich, dass eine Archivierung nach Monaten nicht zwingend erforderlich ist. Vielleicht fällt mir irgendwann noch eine Lösung ein, sie nach Jahren zu bündeln.

Beitrag geändert von antibart (20. November 2019 13:11)

Offline

#5 20. November 2019 15:19

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.298

Re: LISE Archiv für Doofe?

Pretty-URLs. Sind. Böse.  mad

Der Parameter "showall" kommt irgendwie nicht mehr beim Modul an.
Weil der dann nicht in der URL steht.
LISE speichert zwar auch irgendwie alle Parameter in einer Session.
Aber warum das nicht zu funktionieren scheint, kann ich (noch) nicht sagen.

EDIT: Doch, kann ich. Die Parameter werden zwar in einer Session gespeichert, aber niemals ausgelesen.  monkey
Jetzt wüsste ich gerne ich, wozu die überhaupt gespeichert werden.

EDIT 2: Es werden leider auch nicht alle Parameter in der Session gespeichert.
In meinem Setup nur filter_year und filter_month.
Showall fehlt.

Da LISE ja eh nicht mehr für CMSms 1.12 weiterentwickelt wird, könnte man mal schauen, wie man das hacken könnte.
Ich hatte damals in GBFP einige Parameter aus Sicherheitsgründen auch in Sessions gespeichert.
Damit man die nicht alle via URL überschreiben kann.
Die gleiche Technik könnte man auch verwenden, um Parameter, die beim Modulaufruf im Template gesetzt wurden, auch bei Pretty-URLs verfügbar zu machen, ohne sie im Link mitschleifen zu müssen.
Das würde ich übrigens für alle Module empfehlen.
Mal schaun, vielleicht lässt sich das ja auch direkt in der Modul-API machen.
CMSms 1.12.2 (für PHP 7) ist ja eh nicht mehr offiziell.
Da macht der ein oder andere Core-Hack auch nichts mehr aus  wink

Offline

#6 20. November 2019 16:51

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 838

Re: LISE Archiv für Doofe?

NaN schrieb:

Pretty-URLs. Sind. Böse.  mad

Es fällt die Entscheidung zwischen "böse" oder "hässlich". Is wie Sch*** nach Geschmack sortieren. smile

antibart schrieb:

Vielleicht fällt mir irgendwann noch eine Lösung ein, sie nach Jahren zu bündeln.

Ist mir gerade - vielleicht interessiert es ja irgendwen.

Wie schon gesagt: Die Archivfunktion wird nicht benutzt, aber der Parameter filter_year konnte ist mir doch noch nützlich geworden.

1. Ich habe eine neue Modulinstanz mit dem Namen "Archiv" erzeugt.

2. Dieses Modul hat keine zusätzlichen Felddefinitionen - benötigt wird nur ein Titel.

3. Der Titel muss die zu archivierende Jahreszahl sein - zB 2018. Muss dann halt einmal im Jahr ein neuerr Eintrag erzeugt werden.

4. Im Summary-Template wird die Aktuelles-Instanz mit dem Paramater filter_year=$item->title aufgerufen. Und damit es schön übersichtlich bleibt und die Liste mit den Jahren nicht zu voll wird, kommt noch ein Toggle-Container drum herum.   

{if $items|@count > 0}

	
	{foreach from=$items item=item}
{toggle_start title="{$item->title}"}
	{LISEAktuelles template_summary='archivliste' filter_year=$item->title}
  {toggle_end}
	{/foreach}
	

{/if}

Kleiner Nachteil: Alle Einträge werden sofort archiviert, auch die aktuellsten 10 von der News-Seite, weil der Parameter start durch die Jahresbündlung zu Verlust führen würde. Man kann nicht alles haben.

Offline

#7 20. November 2019 19:56

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.298

Re: LISE Archiv für Doofe?

EDIT 2: Es werden leider auch nicht alle Parameter in der Session gespeichert.

ACHTUNG: Wer CMSms 1.12 (die PHP 7 Variante hier aus dem Forum) verwendet, der muss in der config.php explizit Sessions fürs Frontend einschalten:

$config['frontend_session'] = true;

Hilft Dir zwar jetzt bei Deinem Problem nicht weiter, ist mir in dem Zusammenhang aber gerade aufgefallen.

Offline

#8 21. November 2019 08:23

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 838

Re: LISE Archiv für Doofe?

NaN schrieb:

ACHTUNG: Wer CMSms 1.12 (die PHP 7 Variante hier aus dem Forum) verwendet, der muss in der config.php explizit Sessions fürs Frontend einschalten:

Ich bin schon vor längerer Zeit auf Vs 2 umgestiegen

NaN schrieb:

Hilft Dir zwar jetzt bei Deinem Problem nicht weiter, ist mir in dem Zusammenhang aber gerade aufgefallen.

Ich bin bzw der Seiten-Editor ist mit der jetzigen Lösung zufrieden. Dass die zehn noch aktuellen News-Artikel ebenfalls im Archiv vorhanden sind, ist in diesem Fall kein Problem.

Offline

#9 21. November 2019 09:10

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.298

Re: LISE Archiv für Doofe?

Ich bin schon vor längerer Zeit auf Vs 2 umgestiegen

Ah, ok.
Wusste garnicht dass LISE mit CMSms 2.0 läuft.
Hatte jetzt nur mit der 1.12 getestet.
Aber gut zu wissen.

Offline

#10 21. November 2019 09:50

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 838

Re: LISE Archiv für Doofe?

NaN schrieb:

Wusste garnicht dass LISE mit CMSms 2.0 läuft.

Die 2.0 kenne ich nicht. Ich bin etwa bei Vs 2.1.x eingestiegen.

LISE ansich läuft sowieso. Es kann aber durchaus sein, dass ich die davon betroffenen Parameter bisher nie benutzt habe, also weder unter CMSMS 1 noch 2. Ich kann mich nicht erinnern, dass ich zB "showall" schon mal unter LISE im Einsatz hatte. Das Frontend über die config.php für Sessions freigeben war bislang nicht notwendig.

Beitrag geändert von antibart (21. November 2019 10:07)

Offline

#11 21. November 2019 14:34

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.298

Re: LISE Archiv für Doofe?

Die 2.0 kenne ich nicht. Ich bin etwa bei Vs 2.1.x eingestiegen.

Für mich ist 2.0 Synonym für alles nach der 1.12.2 wink

um Parameter[...] auch bei Pretty-URLs verfügbar zu machen, ohne sie im Link mitschleifen zu müssen.
[...]
Mal schaun, vielleicht lässt sich das ja auch direkt in der Modul-API machen.

Leute, das ist so unfassbar fucking einfach!
Dass da noch keiner auf die Idee gekommen ist ...
Ich hab an drei Stellen drei Zeilen Code eingefügt.
Läuft.

Mein Ansatz war allerdings falsch.
Die Idee ist, nicht beim Modulaufruf im Template die Parameter zu speichern, sondern beim Generieren eines Links. Alle Module verwenden dazu i.d.R. Funktionen wie z.B. $this->CreateLink();
Da werden dann Parameter und pretty URL übergeben. Die Parameter werden aber nicht in die Pretty-URL eingebaut. Alles was ich also tun musste, war, in der Modul-API beim Erstellen des Links die Parameter stumpf in eine Session zu speichern. Als Key wurde einfach die pretty URL verwendet. D.h. wenn CMSms nach einer registrierten Modul-Route sucht, musste ich nur dafür sorgen, dass als erstes diese zur Route zugehörigen Parameter aus der Session ausgelesen werden. Muss gleich mal schauen, ob das bei CMSms 2.0 auch noch so einfach ist.

EDIT: Ist es  cool

Auf die Art kann man endlich mal richtige Pretty URLs erstellen.

EDIT 2: Naja ... solange man diese URL nicht direkt von extern verlinkt.
Dann fehlt die Session sad
Man kann halt nicht alles haben.

Offline