Zum Inhalt springen

Detailansicht ohne fremder Content anzeigen?

Erstellt am 18. Januar 2005 · 6 Antworten · letzte Antwort am 20. Januar 2005

Tags: Frage

Friederich ·

Hallo,
Ich habe mir mal eine Extension geschrieben, welche ich auf meiner Seite als Contentelement eingebaut habe.
Der Seiten-Aufbau sieht folgendermassen aus:

******************
* TEXT *
******************
* MEIN PLUGIN *
******************

Auf dieser Seite wird die Liste meiner Records angezeigt - soweit so gut...

Mein Problem:
Wenn ich nun den Link fürs Detail aufrufe erscheint trotzdem noch immer das Content-Element Text! Wie kann ich veranlassen dass sobald ich in die Detailansicht wechsle nur noch der Content des Plugins ausgegeben wird?
Sollte also im Detail folgendermassen ausehen:

******************
* MEIN PLUGIN *
******************

Bin für jegliche Tipps dankbar!

Gruss Rolf

mstuebner ·
Friederich schrieb

Mein Problem:
Wenn ich nun den Link fürs Detail aufrufe erscheint trotzdem noch immer das Content-Element Text! Wie kann ich veranlassen dass sobald ich in die Detailansicht wechsle nur noch der Content des Plugins ausgegeben wird?
Sollte also im Detail folgendermassen ausehen:

******************
* MEIN PLUGIN *
******************

Die mir bekannten Plug-ins realisieren das alle mit einer Extraseite für Details.

waldosparding ·

Deine Liste enthält doch bestimmt Links für die Detailansicht. Du musst also in deinem Script die übergebenen Vars abprüfen (gibts in tslib_pibase Funktionen für) und dann halt nur Details für den einen Datensatz ausgeben.

Waldo

Friederich ·

@waldosparding
Der link sieht momentan folgendermassen aus:

Zu finden auf der Seite (etwa mitte):

Könntest du mir noch etwas genauer sagen was ich genau machen muss, verstehe noch nicht genau was du mit dem letzten Posting meinst.

Gruss und vielen Dank,
Rolf

waldosparding ·

...tx_bgsevents_pi1[showUid]...

Dieser Teil des Links enthält ja den Befeht showuid, und in deinem Script kannst du die Variable abfragen. Die müsste in den PIVars stecken.
Kann man so abrufen :

$this->piVars

Lass die mal mit debug ausgeben.

Wenn du dann einen Wert für "showuid" findest, musst du in deinem Script eben nicht mehr die Liste ausgeben, sonder nur den einen Eintrag.

Waldo

Friederich ·

@waldosparding

Die main-Funktion sieht folgendermassen aus:

function main($content,$conf) {
switch((string)$conf["CMD"]) {
case "singleView": list($t) = explode(":",$this->cObj->currentRecord);
$this->internal["currentTable"]=$t;
$this->internal["currentRow"]=$this->cObj->data;
return $this->pi_wrapInBaseClass($this->singleView($content,$conf));
break;
default:
if (strstr($this->cObj->currentRecord,"tt_content")) {
$conf["pidList"] = $this->cObj->data["pages"];
$conf["recursive"] = $this->cObj->data["recursive"];
}
return $this->pi_wrapInBaseClass($this->listView($content,$conf));
break;
}
}

Wie kann ich den Wert "CMD" in der $conf setzten?
Sorry, ist meine erste Extension und ich habe noch Mühe das Typo3 Framework zu verstehen.

Gruss und vielen vielen Dank,
Rolf

waldosparding ·
function main($content,$conf) {


// ungefähr s0
$cmd = (string)$conf["CMD"];
if ($this->piVars["showUid"]) $cmd = "singleView";
switch($cmd) {


case "singleView": list($t) = explode(":",$this->cObj->currentRecord);
$this->internal["currentTable"]=$t;
$this->internal["currentRow"]=$this->cObj->data;
return $this->pi_wrapInBaseClass($this->singleView($content,$conf));
break;
default:
if (strstr($this->cObj->currentRecord,"tt_content")) {
$conf["pidList"] = $this->cObj->data["pages"];
$conf["recursive"] = $this->cObj->data["recursive"];
}
return $this->pi_wrapInBaseClass($this->listView($content,$conf));
break;
}
}

Viel Erfolg.

Waldo