So, ich habe eine Lösung. Keine Ahnung, ob es die eleganteste ist, aber es funktioniert. In dem Zug habe ich gleich auch noch den Fehler behoben, dass im Menü versteckte Seiten trotzdem angezeigt wurden.
Die Funktion walkPages() hiermit austauschen:
function walkPages($pidList, $enableFields, $local_cObj, $level)
{
$tempString = "";
$level ++;
// Making tag string
if ($GLOBALS["TSFE"]->sys_language_uid == 0) {
// old code for default language
$table_p = " pages ";
$where .= " doktype in (1,2,3,4)";
$where .= " AND pid in (".$pidList.")";
$where .= " ".$enableFields;
// patch to respect pages which are not in menu
$where .= " AND nav_hide != 1";
$order_by = " sorting;" ;
$res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery( ' * ', $table_p, $where, '', $order_by );
}
else {
// patch for other languages
$table_p = " pages, pages_language_overlay";
$where .= " pages.doktype in (1,2,3,4)";
$where .= " AND pages.pid in (".$pidList.")";
$where .= " AND pages_language_overlay.sys_language_uid = ".$GLOBALS['TSFE']->sys_language_uid;
$where .= " AND pages.uid = pages_language_overlay.pid";
$where .= " ".$enableFields;
$where .= " ".$this->cObj->enableFields(pages_language_overlay);
$where .= " AND pages.nav_hide != 1";
$order_by = " pages.sorting;" ;
$res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery( ' pages.uid, pages_language_overlay.title ', $table_p, $where, '', $order_by );
}
while($row=$GLOBALS["TYPO3_DB"]->sql_fetch_assoc($res))
{
$tempString .= $this->getTypolink ($local_cObj, intval($row["uid"]), $row[$this->field], $row["title"], $level);
// If recursion is selected and recursionLevel not yet reached
if (($this->conf["recursionLevel"] == -1) OR ($level < $this->conf["recursionLevel"]))
$tempString .= $this->walkPages($row["uid"], $enableFields, $local_cObj, $level);
}
return $tempString;
}
Außerdem habe ich noch einen Fehler im Zusammenspiel mit RealURL behoben:
function getHref ($linkTag) {
// modified pattern to work with RealURL
return preg_replace(array ( '/.*<(A|a) (HREF|href)="/','/" >/' ), '$3', $linkTag);
}
Feedback ist jederzeit willkommen.
Ich werde auch nochmal versuchen, Bertrand Mure, den Entwickler der Extension, zu erreichen und ihn dazu zu bringen, einen neue Version herauszugeben. Ich hatte es Ende November schonmal versucht, ihn anzumailen, aber da hab ich keine Antwort bekommen.
Gruß
Peter