---
title: "cache löschen aus plugin"
url: "https://www.typo3.net/d/88044-cache-loeschen-aus-plugin"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage"]
created: "2009-03-18"
last_reply: "2009-03-24"
replies: 6
solved: false
page: 1
pages: 1
lang: "de"
---

# cache löschen aus plugin

Extensions › Entwicklung · 6 Antworten · gestartet 2009-03-18

## Eröffnungsbeitrag

**stereotyp** · 2009-03-18 · [Beitrag #1](https://www.typo3.net/d/88044-cache-loeschen-aus-plugin/1)

Hallo,

habe folgendes Problem:

ich habe eine seite mit einer Suchfunktion (suche nach Bildern) und die Anzeige des Ergebnis der Suchfunktion
(Liste von thumbnails)
diese seite wird nicht gecached (user_int_obj=1)

die zweite Seite zeigt die Detailansicht eines Bildes an
diese wird gecached ($pi_checkCHash = true)

klappt alles wunderbar

aber jetzt soll es die Möglichkeit geben
einen Kommentar zum bild zu schreiben
die Form für das Eintragen sowie eine Liste der Kommentare liegen auch auf der gecachten Seite

wie kann ich jetzt beim Eintrag eines Kommentars den cache dieser Seite löschen?

zu bedenken ist, da die Detailansicht ja durch ein plugin gerendert wird ist die page-ID immer die gleiche
nur ein get-parameter steuert die Ausgabe
also ohne realurl sehen die links ca. so aus:

index.php?id=99&tx_meine_extension[bild]=xyz

id ist also immer 99

konkret:
wie lösche den cache dieser Seite:

index.php?id=**99**&tx_meine_extension[bild]=**1**

ohne den cache dieser Seite zu löschen:

index.php?id=**99**&tx_meine_extension[bild]=**2**

Vielen Dank

## Antworten

### [#2](https://www.typo3.net/d/88044-cache-loeschen-aus-plugin/2) · stereotyp · 2009-03-23

hmm.....
irgendwie müßte man doch den Eintrag aus der cache_pages Tabelle löschen können,
aber welchen?

und würde das ausreichen??

eigentlich müßte das doch ein "fast" alltägliches Problem sein

mal angenommen ich habe 5000 Bilder, dann hätte ich auch 5000 Detailseiten
wäre doch schön wenn die gecached werden könnten und nur wenn ein Kommentar
oder später auch ein Voting abgegeben wird soll genau für diese Seite der cache
gelöscht werden und beim nächsten Aufruf (was ja beim "Kommentar-Eintrag" sofort passiert) mit der aktuellen Version (zuzügliches des neuen Kommentars) gecashed werden.

### [#3](https://www.typo3.net/d/88044-cache-loeschen-aus-plugin/3) · matin · 2009-03-23

leider weiß ich im moment grad nicht, wie man den cache löscht, aber du könntest den user, der den kommentar einträgt ja dann auf die seite leiten und als paramter "no_cache" (&no_cache=1) dran hängen (im formular als hidden-feld)

### [#4](https://www.typo3.net/d/88044-cache-loeschen-aus-plugin/4) · stereotyp · 2009-03-23

ja schon, aber dann würde die Seite immer noch im cache liegen und zwar ohne dem neuen Kommentar

Vielen Dank

### [#5](https://www.typo3.net/d/88044-cache-loeschen-aus-plugin/5) · speedprogs · 2009-03-23

Hallo, wenn du als Backend-User mit ausreichend Rechten angemeldet bist, geht es über den folgenden Weg, aber als Frontend-User musst du wohl ein Wenig trixen müssen:

```php
require_once (PATH_t3lib."class.t3lib_tcemain.php");

$tce = t3lib_div::makeInstance('t3lib_TCEmain');
$tce->start(array(), array());
$tce->clear_cacheCmd($GLOBALS['TSFE']->id); // uid of current page
```

Weitere Informationen über den Syntax von "clear_cacheCmd" findest du hier unter dem Punkt "**Clear cache**": <https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/Index.html>

Vielleicht hilft es dir, wenn wir mal einen Blick auf die Funktion werfen, die dort ausgeführt wird (Ein Ausschnitt aus der Funktion "clear_cacheCmd"):

```php
...

$list_cache = array($cacheCmd);

...

// Delete cache for selected pages:
if (is_array($list_cache))	{
	$GLOBALS['TYPO3_DB']->exec_DELETEquery('cache_pages','page_id IN ('.implode(',',$GLOBALS['TYPO3_DB']->cleanIntArray($list_cache)).')');
	$GLOBALS['TYPO3_DB']->exec_DELETEquery('cache_pagesection', 'page_id IN ('.implode(',',$GLOBALS['TYPO3_DB']->cleanIntArray($list_cache)).')');
}

...
```

Der Parameter "$cacheCmd" stellt in diesem Fall deine Seiten-UID dar.

Somit brauchst du nur noch die SQL-Befehle ein Wenig umstellen und schon sollte es klappen:

```php
// Delete cache for current page:
$_iCurrentUID = $GLOBALS['TSFE']->id;

if (is_int($_iUID) && $_iUID > 0) {
	$GLOBALS['TYPO3_DB']->exec_DELETEquery('cache_pages','page_id='.$_iCurrentUID);
	$GLOBALS['TYPO3_DB']->exec_DELETEquery('cache_pagesection', 'page_id='.$_iCurrentUID);
}
```

Viel Erfolg...

### [#6](https://www.typo3.net/d/88044-cache-loeschen-aus-plugin/6) · stereotyp · 2009-03-23

Ja, da hatte ich auch schon geguckt
nur will ich ja diesen cache löschen:

index.php?id=**99**&tx_meine_extension[bild]=**1**

und nicht z.b. diesen:

index.php?id=**99**&tx_meine_extension[bild]=**2**

so wie ich das verstehe würde dein Vorschlag diesen cache löschen

index.php?id=**99**

und somit auch alle

index.php?id=**99**&tx_meine_extension[bild]=**xyz**

Vielen Dank

### [#7](https://www.typo3.net/d/88044-cache-loeschen-aus-plugin/7) · stereotyp · 2009-03-24

habe es gefunden

über:

```php
$GLOBALS['TSFE']->page_cache_reg1 = tx_meine_extension[bild];
```

wird das Feld 'reg1' in der cache_pages Tabelle gesetzt

und somit kann ich einen delete machen mit: (in Bezug auf meinen ersten post)

'where page_id=99 and reg1=1'

index.php?id=99&tx_meine_extension[bild]=1  <- wird gelöscht

index.php?id=99&tx_meine_extension[bild]=2  <- wird nicht gelöscht

---

Quelle: „cache löschen aus plugin“, typo3.net, https://www.typo3.net/d/88044-cache-loeschen-aus-plugin
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
