Bei Link zur externen URL lässt sich URL nicht übersetzen

Beim Typ Link zur externen URL lässt sich die URL nicht übersetzen, es wird immer die URL von Standard Element verwendet ( tt_news 3.0.x / 3.1.x )

Fehlerquelle

Die Ursache ist in der Datei pi/class.tx_ttnews.php ca. bei Zeile 990 - 1000.

Anschliessend ein Auszug des Codes aus dieser Datei.

Bei Zeile 4 wird die ext_url der Standard Sprache ausgelesen und danach die Ãœbersetzung gesucht. Am Schluss bei Zeile 7 wird wieder die ext_url der Standard Sprache gesetzt.

Die Logik davon habe ich noch nicht herausgefunden?

pi/class.tx_ttnews.php


if ($GLOBALS['TSFE']->sys_language_content) {
  // prevent link targets from being changed in localized records
  $tmpPage = $row['page'];
  $tmpExtURL = $row['ext_url'];
  $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay('tt_news', $row, $GLOBALS['TSFE']->sys_language_content, $GLOBALS['TSFE']->sys_language_contentOL, '');
  $row['page'] = $tmpPage;
  $row['ext_url'] = $tmpExtURL;
}
Auszug aus der Datei pi/class.tx_ttnews.php

Lösungsansatz

Zuerst prüfen ob in der Ãœbersetzung eine URL angegeben wurde. Wenn JA, diese Verwenden, ansonsten Fallback auf die Standard Sprache.


if ($GLOBALS['TSFE']->sys_language_content) {
  // prevent link targets from being changed in localized records
  $tmpPage = $row['page'];
  $tmpExtURL = $row['ext_url'];
  $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay('tt_news', $row, $GLOBALS['TSFE']->sys_language_content, $GLOBALS['TSFE']->sys_language_contentOL, '');
  $row['page'] = $tmpPage;
  $row['ext_url'] = (trim($row['ext_url'])!='') ? $row['ext_url'] : $tmpExtURL;
}
Anpassung in der Datei pi/class.tx_ttnews.php