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
Friederich schriebMein 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.
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
@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
...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
@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
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