Zum Inhalt springen

More-Link + Titel-Link nur wenn nötig

Erstellt am 8. Mai 2008 · 5 Antworten · letzte Antwort am 16. August 2008

Tags: tt_news, Tipp

Morgenthau ·

Hallo,

nachdem ich hier eine Menge Fragen gestellt habe, möchte ich auch mal eine Lösung präsentieren.

Mein Ziel war es, in der List-Ansicht den Titel der einzelnen News-Beiträge nur dann zu verlinken, und auch nur dann einen More-Link anzuzeigen, wenn zusätzlich zum Subheader (Teaser) auch Nachrichtentext eingegeben wurde. Der Sinn der Sache ist, dass bei sehr kurzen Meldungen, die nur aus ein paar Sätzen im Subheader bestehen, kein Link erscheint, denn der führt dann auf eine Single-Ansicht, die keine weiteren Infos bietet.

Ich bin zwar im Netz auf Lösungen gestoßen, den More-Link nur bei Bedarf einzublenden, für den Titel habe ich aber nicht so richtig was gefunden. Ich habe es mir daher aus diesen beiden Beiträgen selbst zusammengebastelt:
http://lists.netfielders.de/pipermail/typo3-german/2007-March/029123.html
http://www.rs-websystems.de/typo-3/tipps-tricks/typoscript-snippets/tt-news-im-menu-anzeigen.html

So geht's:

Zunächst im News-Template unter ###TEMPLATE_LIST### die beiden <!--###LINK_ITEM###-->-Marker, die vor und hinter ###NEWS_TITLE### stehen, entfernen. Außerdem folgende Zeile löschen:

<div class="news-list-morelink"><!--###LINK_ITEM###-->###MORE###<!--###LINK_ITEM###--></div>

Damit ist in der List-Ansicht die Überschrift nicht mehr verlinkt und der More-Link entfernt.

Jetzt im Setup des Website-Templates folgenden Code einfügen:

temp.newsMenuLinkParams = COA
temp.newsMenuLinkParams {
     10 = TEXT
     10.field = uid
     10.wrap = &tx_ttnews[tt_news]=|
}

plugin.tt_news {

  # More-Link hinterm Subheader
  displayList.subheader_stdWrap {
   append = TEXT
   append.data = register:newsMoreLink
   append.wrap = <p class="morelink">|</p>
   append.if.isTrue.field = bodytext
   }

  # Verlinkung der Überschrift
  displayList.title_stdWrap {
   # Statt 39 hier die ID der Single-View-Seite angeben:
   typolink.parameter = 39
   typolink.additionalParams.cObject < temp.newsMenuLinkParams
   typolink.parameter.if.isTrue.field = bodytext
   }
}

Das ist alles.

Morgenthau ·

Kleine Korrektur: Die Zeile

append.wrap = <p class="morelink">|</p>

sollte besser

append.wrap = <div class="morelink">|</div>

lauten, da der Subheader bereits in p-Tags steht, und ansonsten ineinander verschachtelte p-Tags entstünden.

Morgenthau ·

Korrektur der Korrektur:

Die Zeile

append.wrap = <p class="morelink">|</p>

sollte

append.wrap = <span class="morelink">|</span>

lauten.

Zumindest bei XHTML 1.0 Transitional darf weder ein p-Tag noch ein div-Tag innerhalb eines mit p-Tags umschlossenen Bereichs stehen. Daher span.

burcardo ·

Im Prinzip gut aber der Chash wird so nicht übergeben wenn der Titel verlinkt ist.
Un dann wird bei mehreren News in der Listenansicht immer nur die Erste in der Singelansicht ausgegeben.

Morgenthau ·
burcardo schrieb

Im Prinzip gut aber der Chash wird so nicht übergeben wenn der Titel verlinkt ist.
Un dann wird bei mehreren News in der Listenansicht immer nur die Erste in der Singelansicht ausgegeben.

Das verstehe ich nicht.
In der Listenansicht befinden sich mehrere News. Einige davon sind verlinkt. Wenn man sie anklickt, landet man bei der entsprechenden Singleansicht. So funktioniert's jedenfalls bei mir.