Zum Inhalt springen

NEWS_LINKS formatieren und verlinken

Erstellt am 19. Juli 2007 · 1 Antwort · letzte Antwort am 19. Juli 2007

Tags: Frage

picrasso ·

Hallo zusammen,

ich mach das #angry# gleich nach. 🙁

Und zwar möchte ich die Links im gleichnamigen Feld per TS bearbeiten.

Folgender Inhalt steht in dem Feld.

<LINK http://www.seite1.de>seite1</ LINK>
<LINK http://www.seite2.de>seite2</ LINK>

Im FE werden mir die EintrÀge so prÀsentiert

<p><a href="www.seite1.de" target="_blank">seite1</a></p>
<p><a href="www.seite2.de" target="_blank">seite2</a></p>

Hier mal der Soll-Zustand im FE:

<li><a href="www.seite1.de" target="_blank" class="linkForward">seite1</a></li>
<li><a href="www.seite2.de" target="_blank" class="linkForward">seite2</a></li>

Es sollen also <li>-Tags um den Link, sowie eine class in den Link.

Irgendwie soll das per

general_stdWrap

oder

links_stdWrap

funktionieren. Beides spricht bei mir nicht an.

Seltsam ist, dass

linksItem_stdWrap.wrap

nicht jeden einzelnen Link umschließt, sondern die kompletten EintrĂ€ge in des Links-Feldes.

So hab ichs versucht, ohne Erfolg:

# Li-Tag Um jeden Link
plugin.tt_news.displaySingle.linksItem_stdWrap.wrap = <li>|</li>
		
# Class setzen
plugin.tt_news.displaySingle.linksItem_stdWrap.typolink.ATagParams = class="linkForward"
picrasso ·

So, nun hab ichs dank:

#50039

Also, man knöpfe sich die Datei

class.tx_ttnews.php

vor!

Man Tausche den folgenden etwa bei Zeile 1570 befindlichen Teil

if ($row['links']) {
  $links_stdWrap = t3lib_div::trimExplode('|', $lConf['links_stdWrap.']['wrap']);
						
  $newsLinks = $this->local_cObj->stdWrap($this->formatStr($row['links']), $lConf['linksItem_stdWrap.']);					
  $markerArray['###TEXT_LINKS###'] = $links_stdWrap[0].$this->local_cObj->stdWrap($this->pi_getLL('textLinks'), $lConf['linksHeader_stdWrap.']);
  $markerArray['###NEWS_LINKS###'] = $newsLinks.$links_stdWrap[1];
}

gegen

if ($row['links']) {
   $links_stdWrap = t3lib_div::trimExplode('|', $lConf['links_stdWrap.']['wrap']);
						
   $newsLinks = $this->local_cObj->stdWrap($this->formatStr($row['links']), $lConf['linksItem_stdWrap.']);
			
  // Somit sollen einzelne Linkelemente in der Link-Box ansprechbar sein
  $singleLinks_stdWrap = t3lib_div::trimExplode('|', $lConf['linksItem_stdWrap.']['single.']['wrap']);
  $newsLinks = str_replace('<p class="bodyText">', $singleLinks_stdWrap[0], $newsLinks);
  $newsLinks = str_replace('</p>', $singleLinks_stdWrap[1], $newsLinks);
  //-----
			
  // Class fĂŒr jede News 
  $singleLinks_Class = $lConf['linksItem_stdWrap.']['single.']['class'];
  if (!empty($singleLinks_Class)) $singleLinks_Class = 'class="'.$singleLinks_Class.'"'; 
  $newsLinks = str_replace('<a ', '<a '.$singleLinks_Class, $newsLinks);
  //-----
			
  $markerArray['###TEXT_LINKS###'] = $links_stdWrap[0].$this->local_cObj->stdWrap($this->pi_getLL('textLinks'), $lConf['linksHeader_stdWrap.']);
  $markerArray['###NEWS_LINKS###'] = $newsLinks.$links_stdWrap[1];
}

Nun kann man die einzelnen Tags folgendermaßen im TS mit Wraps und Class versehen.

plugin.tt_news.displaySingle
{
   # Links wrappen
   linksItem_stdWrap.single.wrap = <li>|</li>

   # Class setzen
   linksItem_stdWrap.single.class = meineclass
}

WICHTIG: Falls Ihr statt <p class="bodyText"> nur <p> um den Links habt, dann mĂŒĂŸt Ihr den PHP-Code entsprechend anpassen.

Ich bin zwar immernoch der Überzeugung, dass diese PHP-Anpassungen nicht nötig sein sollten. Aber Hauptsache es klappt!!

🙂