---
title: "tt_news selbst umschreiben sodass gecached wird"
url: "https://www.typo3.net/d/13741-tt-news-selbst-umschreiben-sodass-gecached-wird"
source: "typo3.net"
tags: ["Extensions","Cache & Performance","Frage","tt_news"]
created: "2004-07-20"
last_reply: "2004-07-29"
replies: 2
solved: false
page: 1
pages: 1
lang: "de"
---

# tt_news selbst umschreiben sodass gecached wird

Extensions · 2 Antworten · gestartet 2004-07-20

## Eröffnungsbeitrag

**souri** · 2004-07-20 · [Beitrag #1](https://www.typo3.net/d/13741-tt-news-selbst-umschreiben-sodass-gecached-wird/1)

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:

```plaintext
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:

```plaintext
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:

```php
// 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).

## Antworten

### [#2](https://www.typo3.net/d/13741-tt-news-selbst-umschreiben-sodass-gecached-wird/2) · tsajuk · 2004-07-28

Da ich die Änderungen von Karsten Hachmeister nicht mit der neueren Version con tt_news korrelieren konnte, habe ich einfach den allowCaching-Parameter aktiviert und in tslib_fe un der funktion makeCacheHash das cHach-Berechnen wieder aktiviert:

```php
 	function makeCacheHash()	{
		$GET = t3lib_div::_GET();
		if (is_array($GET))	{ // old line before mod >>>if ($this->cHash && is_array($GET))	{
			$pA = $this->cHashParams(t3lib_div::implodeArrayForUrl('',$GET)); 
			$this->cHash_array = $pA;
```

jetzt geht das tt_news-cachen auch ohne typolink-Änderungen. Auch andere FE-Plugins werden nun auf Anhieb ohne lästige Berechnung und ausgabe dse cHash-Parameters gecacht.
Bin ich der erste der diese einfache Lösung gefunden hat?

### [#3](https://www.typo3.net/d/13741-tt-news-selbst-umschreiben-sodass-gecached-wird/3) · souri · 2004-07-29

..und es werden jetzt tatsächlich alle News einzeln gecached und nicht immer nur die zuletzt aufgerufene (so weit wäre ich auch schon gewesen, das war nicht das Problem)?

Dann wäre das ja sensationell einfach....

---

Quelle: „tt_news selbst umschreiben sodass gecached wird“, typo3.net, https://www.typo3.net/d/13741-tt-news-selbst-umschreiben-sodass-gecached-wird
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
