Zum Inhalt springen

Extension mit Einzelansicht auf anderer Seite

Erstellt am 14. September 2010 · 3 Antworten · letzte Antwort am 15. September 2010

Tags: Links, Frage

steve19 ·

Hallöle Ihr,

ich habe meine erste eigene Extension geschrieben und soweit funktioniert das auch alles sehr gut.
Aber ich möchte gerne das die Darstellung von der Listenansicht und von der Detailansicht auf zwei
verschiedenen Seiten stattfindet.

Also, als Beispiel, Listenansicht auf Seite mit der ID 10
und die Einzelansicht auf der Seite mit der ID 11

Kann ich den Code der aus dem Extensionmanager kommt so weit umbauen das ich
diese Funktion da irgendwie reinbekomme?
Am schönsten wäre das natürlich wenn man das per Typoscript steuern könnte,
als sowas wie plugin.tx_schokoladenladen_pi1.listPID = 10 und dann plugin.tx_schokoladenladen_pi1.singlePID = 11

Ich habe schon arg hier im Forum herumgeforscht aber bin bisher nur ein klein wenig schlauer geworden
daher bitte ich euch um hilfe :-(

Grüße

Stefan

amyjazz ·

Für den Link auf die Einzelansicht könntest du z.B. folgende Typo3-Funktion verwenden:

$this->pi_list_linkSingle($linkteyt,$showUid,False,$mergeArr=array(),False,$singleSitePid)

Für eine genauere Erklärung mal den Funktionsnamen googlen und in der Referenz nachsehen.

Mit $singleSitePid kannst du dann optional die page id der Zielseite angeben.

zeroalpha ·

Und ergänzend dazu einfach mal die Extension ve_guestbook anschauen. Die macht das meines Wissens nach so wie du das möchtest.

steve19 ·

Vielen Dank euch beiden,

hat nun geklappt.

Für alle die die gleiche Frage haben hier die Lösung die ich angewendet habe:

im Typoscript habe ich folgendes angelegt:

plugin.tx_meineextension_pi1.singlePID = 10

und in der typo3conf/ext/meine_extension/pi1/class.tx_meineextension_pi1.php

Die Conf

$this->conf = $conf;
	// Getting the template file
	$this->templateFileContent = $this->cObj->cObjGetSingle($this->conf['templateFile'], $this->conf['templateFile']);
	#return $this->templateFileContent;
	// Meine SinglePID aus dem TypoScript
        $singlePID = $this->conf['singlePID'] ? $this->conf['singlePID'] : '30';

Linkgenerierung für den Titel

case "name":
  // SingleView:
  if ($this->piVars['showUid']) return $this->internal['currentRow'][$fN];
  //return $this->pi_list_linkSingle($this->internal['currentRow'][$fN],$this->internal['currentRow']['uid'],1);
  return $this->pi_list_linkSingle($this->internal['currentRow'][$fN],$this->internal['currentRow']['uid'],1,$mergeArr = array(),$urlOnly = FALSE,$altPageId=($this->conf['singlePID']));
break;

Linkgenerierung für den "More" Link

case "linkmore":
  // return $this->pi_list_linkSingle($this->pi_getLL('linkmore'),$this->internal['currentRow']['uid'],1);
  return $this->pi_list_linkSingle($this->pi_getLL('linkmore'),$this->internal['currentRow']['uid'],1,$mergeArr = array(),$urlOnly = FALSE,$altPageId=($this->conf['singlePID']));
break;