hi,
sooo, nachdem weder ich noch ein Forenteilnehmer mein Problem mit dem Patch von Karsten Hachmeister (durch den die tt_news auch für die indexed search nutzbar werden sollte) lösen konnte, habe ich mir überlegt, die class.tx_ttnews.php selbst unzuschreiben. Hierzu gibt es ja auch ein Tutorial (ich spreche von Hachmeister, "Make correct typolinks").
Das ganze funktinoiert in groben Ansätzen, allerdings habe ich mit einem letzten Problem zu kämpfen. Die Links mit denen beispielsweise auf die Singlenews-Ansicht gewechselt werden sollte, sehen so aus:
http://seite.com/index.php?id=2&index.php?id=52&backPID=2&L=0&tt_news=3&cHash=65c74c7d60
Sie sollten aber zumindest so aussehen:
http://seite.com/index.php?id=52&backPID=2&L=0&tt_news=3&cHash=65c74c7d60
Ich finde nur die Code-Stelle nicht mit deren Hilfe ich das erste "index.php?id=2&" entfernen könnte.
(nicht dass ich mri sicher wäre, dass dann das Caching funktionieren würde aber ich vermute/hoffe es zumindest mal).
Hier der Code in Auszügen:
// Preconfigure the typolink
$this->local_cObj = t3lib_div::makeInstance("tslib_cObj");
$this->local_cObj->setCurrentVal($GLOBALS["TSFE"]->id);
$this->typolink_conf = $this->conf["typolink."];
$this->typolink_conf["parameter."]["current"] = 1;
$this->typolink_conf["additionalParams"] = $this->cObj->stdWrap($this->typolink_conf["additionalParams"], $this->typolink_conf["additionalParams."]);
unset($this->typolink_conf["additionalParams."]);
// Configure caching
$this->allowCaching = $this->conf["allowCaching"]?1:0;
if (!$this->allowCaching) {
$GLOBALS["TSFE"]->set_no_cache();
}
....................
while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)){
// Print Item Title
$wrappedSubpartArray=array();
if ($row["type"]==1 || $row["type"]==2) {
$this->local_cObj->setCurrentVal($row["type"]==1 ? $row["page"] : $row["ext_url"]);
$wrappedSubpartArray["###LINK_ITEM###"]= $this->local_cObj->typolinkWrap($this->conf["pageTypoLink."]);
} else {
$PIDitemDisplay=$this->pi_getFFvalue($this->cObj->data['pi_flexform'],'PIDitemDisplay','sDEF');
//*geändert anfang***************************
$temp_conf = $this->typolink_conf;
$this->local_cObj->setCurrentVal($this->conf["PIDitemDisplay"]);
$temp_conf["additionalParams"] .= '&'.$this->getLinkUrl($PIDitemDisplay?$PIDitemDisplay:$this->conf["PIDitemDisplay"]).'&tt_news='.$row["uid"];
$temp_conf["useCacheHash"] = $this->allowCaching;
$temp_conf["no_cache"] = !$this->allowCaching;
$wrappedSubpartArray["###LINK_ITEM###"] = explode("|", $this->local_cObj->typolink("|", $temp_conf));
//****geändert ende*********************************
}
$markerArray = $this->getItemMarkerArray($row,$prefix_display);
$itemsOut.=$this->cObj->substituteMarkerArrayCached($t["item"][($cc%count($t["item"]))],$markerArray,array(),$wrappedSubpartArray);
$cc++;
if ($cc==$this->config["limit"]) {break;}
}
Der gesamte Code, falls es jemanden interessiert: http://mitglied.lycos.de/sourix/class.tx_ttnews.txt
Oder gibt es bereits existierende Lösungen für dieses Problem? Ich kann mir wirklich nicht vorstellen, dass ich die einzige bin bei der das nicht funktioniert (da der bestehende Patch ja für eine ältere Version gedacht zu sein scheint).