[TYPO3-german] tt_news: Single-Ansicht abhängig von News-Herkunft

JoH info at cybercraft.de
Wed Mar 29 02:41:25 CEST 2006


> Klickt man also auf einer Ressortseite auf ein tt_news-Item, so
> gelangt man zur entsprechenden Detailansicht und die Rootline bleibt
> erhalten, da die Detailansicht unterhalb der Ressortseite ist.
> Dort ist das auch alles kein Problem. Aber was mache ich wenn ich auf
> der Homepage auf ein tt_news-Item klicke. Abhängig von der pid eines
> tt_news-Items müßte dann auf die entsprechende Detailansicht verlinkt
> werden.
>
> Gibt es für dieses Problem eine Lösung? Ich bin mit meiner Weisheit am
> Ende. Und jede Lösungsidee hat sich bisher als Sackgasse erwiesen.

Eine mögliche Lösung: Du machst gar keine Single-Ansicht. :-)
Zumindest nicht als separate Seite.
Genaugenommen nimmst Du am besten nicht mal ein Plugin für die Ausgabe von
LATEST, LIST und SINGLE sondern ein TypoScript Element CONTENT mit einem
HMENU für die Erzeugung der pid Liste.

Und weil ich gerade gut drauf bin ;-)
Hier ein Beispiel:

LATEST erzeugst Du mit CONTENT ungefähr so:

temp.myLatestNews = CONTENT
temp.myLatestNews {
    table = tt_news
    select {
        pidInList.cObject = HMENU
        pidInList.cObject {
            wrap = 0|
            1 = TMENU
            1 {
                expAll = 1
                NO {
                    doNotLinkIt = 1
                    stdWrap.field = uid
                    allWrap = ,|
                }
            }
            2 < .1
            3 < .1
            4 < .1
            # ggf. weitere Ebenen
        }
        max = 10
        orderBy = #Sortierfeld hierhin
    }
    renderObj = COA
    renderObj {
        10 = TEXT
        10.field = #Feld aus tt_news für Überschrift
        10.wrap = <h2>|</h2>
        20 = IMAGE
        20.field = #Feld aus tt_news für Bild
        30 = TEXT
        30.field = #Feld aus tt_news für Text
        30.wrap = <p>|</p>
        40 = TEXT
        40.value = mehr
        40.typolink {
            parameter.field = pid
            additionalParams.dataWrap =
&myNewsId={field:uid}&backUid={TSFE:id}
        }
    }
}

page.123 < temp.myLatestNews

Damit würde der "mehr" Link immer auf die passende Seite verweisen und
sowohl die News-Id als auch die uid der verweisenden Seite mitnehmen.

Auf der Seite selbst könntest Du mit einer Abfrage arbeiten:

# Erstmal die Single Ansicht bauen
temp.singleNews = CONTENT
temp.singleNews {
    table = tt_news
    select {
        andWhere.data = GPvar:myNewsId
        andWhere.wrap = uid=|
    }
    renderObj = COA
    renderObj {
        10 = TEXT
        10.field = #Feld aus tt_news für Überschrift
        10.wrap = <h2>|</h2>
        20 = IMAGE
        20.field = #Feld aus tt_news für Bild
        30 = TEXT
        30.field = #Feld aus tt_news für Text
        30.wrap = <p>|</p>
        40 = TEXT
        40.value = zurück
        40.typolink {
            parameter.data = GPvar:backUid
        }
    }
}

#und hier einbinden
page = PAGE
page {
    10 = COA
    10 {
        # normalen Inhalt anzeigen
        if.isFalse.data = GPvar:myNewsId
        10 < styles.content.get
    }
    20 = COA
    20 {
        # Single News statt Inhalt anzeigen
        if.isTrue.data = GPvar:myNewsId
        10 < temp.singleNews
    }
}

Ungetestet und als proof of concept, sollte aber so oder so ähnlich gehen.

Joey

-- 
Wenn man keine Ahnung hat: Einfach mal Fresse halten!
(If you have no clues: simply shut your knob sometimes!)
Dieter Nuhr, German comedian
openBC: http://www.cybercraft.de





More information about the TYPO3-german mailing list