und um mich noch mal selbst zu zitieren...
(und ja ich weiss, dass ereg_replace veraltet ist... ändere ich noch. 😉)
War nur ne quick & dirty Lösung um die Funktionalität zu prüfen.
Da sich das Plugin über diverse Seiten verteilt (leider auch nicht nur in einem Strang des Seitenbaums), wäre das mit "relativ" viel Arbeit verbunden. Allerdings denke ich nicht, dass dein preg_replace soviel Last erzeugt.
Um auch mal meinen Senf dazu zu geben:
Das ganze klappt auch ohne USER_INT und Co.
Einfach per
$GLOBALS['TSFE']->page['title'] = $row['title'];
$GLOBALS['TSFE']->indexedDocTitle = $row['title'];
den titel setzen und die Verlinkungen der Detail-Seite vernünftig realisieren
$markerArray['###TITLE###'] = $this->pi_linkTP_keepPIvars($row['title'],array('showUid' => $row['uid']),true,0,0);
wichtig dabei ist der dritte wert (true) diese Option setzt ein "cHash" Parameter an die URL welches dem Cache sagt, das dies eine andere Seite als die Startseite ist. Dann klappts auch mit dem Titel, zumindest bei mir 😉
Das hilft leider nicht viel, wenn ich User Eingaben verarbeiten muss...
Naja, wenn du in deinem Formular die Aktion mit hilfe eines Links erstellst in dem der CHASH drin steht sollte das ohne Probleme Funktionieren.
Nunja, eigentlich ist der cHash dafür da, Caching für Extension zu ermöglichen, die Parameter per GET Variablen erhalten bspw. index.php?id=3&myextension[color]=blue.
Allerdings übergebe ich generell alle Werte per POST und es ist außerdem möglich, dass Zugriffe / Datenübergaben von außen erfolgen. Daher weiss ich im Vorfeld schlichtweg nicht welche Parameter eingereicht werden, was mich mit zwei Optionen zurücklässt:
1. Den Cache für die Seite komplette deaktivieren - was nur unnötig Last und Zeit kosten würde.
2. Die Extension als User_int Objekt laufen lassen. Dann wird die Extension zwar nicht mehr gecached, allerdings ist das bei derartigen Usereingaben meiner Meinung nach auch garnicht anders möglich.
Ich lasse mich aber auch gerne eines besseren belehren!
Grüße
Sven