Zum Inhalt springen

Aktiven Zustand ermitteln der Archivliste ?

Erstellt am 24. April 2006 · 7 Antworten · letzte Antwort am 7. April 2010

Tags: Frage

M8TRIX ·

Hallo Forum,

ich habe die Übersicht der Archivliste unterhalb meines Untermenüs mittels einem Submarkers ausgeben lassen:

Untermenüpunk1

  • Januar 2006
    August 2005
    Juli 2005
    Juni 2005
    Mai 2005

usw.

Jetzt ist dies ja kein Menu sondern nur des News Plugin vom Typ (AMENU)!

Wenn ich nun auf Januar 2006 klicke, wird mir in meinem Hauptcontent eine liste(LIST) von Einträgen aus Januar 2006 angezeigt.

Klicke ich eine der Nachrichten an, sehe ich die detailierte Nachricht (SINGLE).

Wie schaffe ich es, bzw. ist es überhaupt Möglich,
das bei Klick auf eine Archivliste:

  • Januar 2006

und anschließend auch auf Klick eines Eintrages zur Singleansicht, dieser Punkt als Aktiv gekennzeichnet wird?

argh...

#giggle# ich Hoffe ich habs des nicht ganz zu kompliziert beschrieben O_o

liebe Grüße

sandra

spezialolli ·

Schnucki, du dein Archiv!

Also, da du per TypoScript nur auf den Titel des Archivlinks zugreifen kannst, bleibt dir auch nur diese Möglichkeit als Lösung.

Um heraus zu finden, ob der jeweilige Archiv-Menüpunkt ausgewählt wurde musst du die POST/GET Variablen abfragen. Realisieren kannst du dies mit einer IF-Abfrage, die du auf das entsprechenden Objekt anwenden musst.

if {
    value.field = start
    equals.data = GPvar:tx_ttnews|pS
}

Hierbei bildet value.field das Datenbank-Feld der Tabelle tt_news. equals.data stellt den Vergleich dar. Lesen muss man das also folgendermaßen:
Wenn der Wert des Datenbank-Feldes start der GET/POST Variablen tx_ttnews[pS] entspricht, dann kommt das Objekt, der das IF zugewiesen wurde, zur Anwendung.

Einen "ELSE" Zweig kann man durch eine Negation realisiersen:

negate = 1

Also wieder zu dem archivTitleCObject aus deinem letzten Posting:

plugin.tt_news {
    reverseAMenu = 1
    archiveMode = month
    archiveTitleCObject >
    archiveTitleCObject = COA
    archiveTitleCObject {
        # normal
        10 = COA
        10 {
            10= TEXT
            10 {
                field = start
                strftime = %B
                wrap = <div><div style="width: 65px; float: left;">|</div>
            }
            11 = TEXT
            11 {
                field = stop
                strftime = %Y
                wrap =|</div>
            }
            if {
                value.field = start
                equals.data = GPvar:tx_ttnews|pS
                negate = 1
            }
        }

        # aktiv
        20 = COA
        20 {
            10= TEXT
            10 {
                field = start
                strftime = %B
                wrap = <div style="background-color:red;"><div style="width: 65px; float: left;">|</div>
            }
            11 = TEXT
            11 {
                field = stop
                strftime = %Y
                wrap =|</div>
            }
            if {
                value.field = start
                equals.data = GPvar:tx_ttnews|pS
            }
        }
    }
}

Aber wie ich vorher schon einmal sagte handelt es sich nur um den Titel, den Link selber kannst du dadurch nicht beinflussen. Ausserdem funktioniert dieses Beispiel auch nur, wenn du für deine News nicht:

useHRDates = 1

gesetzt hast. Dies würde nämlich bedeuten, das anstatt der GET-Parameter pS, pL und arc die Variablen year und month übergeben werden und du diese abfragen musst.

M8TRIX ·

OMG! 😃

spezialolli ... ja das ist es! Es reicht vollkommen aus, den DIV zu beeinflussen und nicht des a Tag 😃

Jetzt sieht man wenigstens wo man sich befindet *freu*

Ich bin Dir so Dankbar :o Ich hoffe ich kann mich auch mal bei Dir revangieren , befürchte aber rein Wissentechnisch Typo3-Spezifisch wird des nichts werden 😉

vielen lieben Dank nochmal spezialolli *knutsch* << Und der Kiss Smiley fehlt immer noch *g*

Sandra

tobias-digital ·

Hi!

Wenn ich mich mal hier einklinken darf ...

spezialolli schrieb

Ausserdem funktioniert dieses Beispiel auch nur, wenn du für deine News nicht:

useHRDates = 1

gesetzt hast. Dies würde nämlich bedeuten, das anstatt der GET-Parameter pS, pL und arc die Variablen year und month übergeben werden und du diese abfragen musst.

Soweit alles klar, aber wie genau mache ich das Abfragen des "month" bei annem useHrDates? So geht's irgendwie nicht:

plugin.tt_news {
    reverseAMenu = 1
    archiveMode = month
    archiveTitleCObject >
    archiveTitleCObject = COA
    archiveTitleCObject {
        # normal
        10 = COA
        10 {
            10= TEXT
            10 {
                field = start
                strftime = %B
                wrap = <div><div style="width: 65px; float: left;">|</div>
            }
            11 = TEXT
            11 {
                field = stop
                strftime = %Y
                wrap =|</div>
            }
            if {
                value.field = start
                equals.data = GPvar:tx_ttnews|month
                negate = 1
            }
        }

        # aktiv
        20 = COA
        20 {
            10= TEXT
            10 {
                field = start
                strftime = %B
                wrap = <div style="background-color:red;"><div style="width: 65px; float: left;">|</div>
            }
            11 = TEXT
            11 {
                field = stop
                strftime = %Y
                wrap =|</div>
            }
            if {
                value.field = start
                equals.data = GPvar:tx_ttnews|month
            }
        }
    }
}

Jemand nen Tipp?

Grüße, Tobias

g1zmo ·

Na da klink ich mich gleich auch mit ein.
Ich will das ganze mit nem Jahresmenü machen. Mit pS funktioniert alles, aber der Vergleich mit GPvar:tx_ttnews|year funktioniert einfach nicht. Auslesen und ausgeben kann ich die Variable. Ich nehm mal an, das passiert, weil in start und stop ein Timestamp steht, ich aber mit ner Jahreszahl vergleiche, bzw. Tobias mit nem Monat.

Wie kriegen wir also da noch ein strftime mit in die Abfrage rein?

g1zmo ·

Hm, ok. Da hätt ich auch früher drauf kommen können...
@Tobias: So sieht meine Abfrage jetzt aus. Eventuell kannst du das ja für dich irgendwie verwenden.

plugin.tt_news {
  
  archiveMode = year
  archiveTitleCObject >
  archiveTitleCObject = COA
  archiveTitleCObject {
    10 = COA
    10 {
      11 = TEXT
      11 {
        field = start
        strftime = %Y
        wrap = <span id="amenu-active">|</span>
      }
      if {
        value.field = start
        value.strftime = %Y
        equals.data = GPvar:tx_ttnews|year
      }
    }
    20 = COA
    20 {
      11 = TEXT
      11 {
        field = start
        strftime = %Y
        wrap = 
      }
      if {
        value.field = start
        value.strftime = %Y
        equals.data = GPvar:tx_ttnews|year
        negate = 1
      }
    }
  }
}
randomresult ·

Hallo erstmal... ich habe folgendes problem: im Moment wird mein Menü so dargestellt:

Nachrichten Archiv:

* 2008
* 2008: 1 Einträge

Ich hätte aber gerne folgende Ausgabe:

*2008 *2007 *2006

das die Einträge nebeneinander hängen, bekomm ich hin per CSS aber ich will weder das anfangsjahr, noch die anzahl der einträge (maximal mit einer Klammer zb. 2008 (8-))
hat jemand hier einen plan wie ich das realisieren kann?
Grüße Harry aka Randomresult

sebastian_77 ·

Ich hätte dazu auch eine Frage.
Wie bekomme ich es denn hin das der erste Eintrag des AMenues automatisch aktiviert ist? Oder ist das nicht möglich?