Juhuu, Jehu,
versuche mich mal einigermaßen verständlich auszudrücken. Du fragst:
- Wo bringe ich den TS-Code unter?
Also, streng genommen könntest Du den gesamten TS-Code aus Deiner Extension heraus generieren. Das funktioniert nach dem Schema:
$conf["scedule"] = "";
$conf["scedule"] = "IMAGE";
$conf["scedule."]["file"] = "GIFBUILDER";
$conf["scedule."]["file."]["XY"] = "521,20";
$conf["scedule."]["file."]["backColor"] = "#FFFFFF";
$conf["scedule."]["file."]["5"] = "IMAGE";
$conf["scedule."]["file."]["5."]["file"] = "typo3conf/ext/deine_Extension/res/irgendeinBild.gif";
$conf["scedule."]["file."]["10"] = "TEXT";
$conf["scedule."]["file."]["10."]["text"] = $this->internal['currentRow']['irgendeinFeld'];
$conf["scedule."]["file."]["10."]["fontColor"] = "#333333";
$conf["scedule."]["file."]["10."]["fontFile"] = "fileadmin/fonts/verdana.ttf";
$conf["scedule."]["file."]["10."]["fontSize"] = "9";
$conf["scedule."]["file."]["10."]["offset"] = "4,13";
Auf Deine Frage:
- Wie bekomme ich da dynamisch die PID der aktuellen Seite rein?
Diese Antwort: Wie Du siehst, ist in der Zeile:
$conf["scedule."]["file."]["10."]["text"] = $this->internal['currentRow']['irgendeinFeld'];
auch ein Feldinhalt aus einer (Extension-)Tabelle übergeben worden.
Du solltest natürlich vorher die Übgergabe der Variablen $conf in Deiner Funktion sichergestellt haben. Das geht mit:
$this->conf=$conf;
am Beginn der Funktion.
Wenn Du in Deinem Falle ein grafisches Menü aufbauen (und vielleicht an einen Marker in einem Template Deiner Extension übergeben) willst, kannst Du in das TS-Script einige Basisangaben stellen, die Dir das starre Coden in PHP auflockern. Folgendes Schema ist notwendig:
# Plugin Deine Extension
plugin.tx_deineExtension_pi1{
# einige hilfreiche Angaben zum Tabellenlayout
breiteTabelle=100%
breiteBildZelle=50
bgColourTabelle1=#EFEFEF
bgColourTabelle2=#FAF1F1
cssbreiteFarbTabelleSingle=33%
cssBeschreibungSingle=artikelSingleView
# so gehts natürlich auch, das liegt an Dir bzw.
# Deinem Template
cssFarbTabelle=width="100%" bgcolor="#EFEFEF"
# So soll ein Artikelbild formatiert werden.
# Du kannst später via PHP andere Funktionen hinzufügen
# bzw. die bestehenden verändern.
bild {
file {
maxW = 50
maxH = 50
}
}
}
Auslesen kannst Du die so codierten TS-Bausteine in etwa so:
// Bild checken & ggf. verkleinern
$conf["bild."]["altText"]=$this->pi_getLL('artikelnummer','Artikelnummer')." ".$rowARTIKEL['artikelnummer'];
$conf["bild."]["file"]=$img_pfad.$rowARTIKEL["bild"];
if ($this->cObj->fileResource($img_pfad.$rowARTIKEL["bild"])) {
$smallPic = $this->cObj->cImage($img_pfad.$rowARTIKEL['bild'], $conf['bild.']);
} else {
$smallPic = $this->cObj->cObjGetSingle($conf["bild_default"], $conf["bild_default."]);
}
Solltest Du jetzt aber versuchen, aus Deiner Extension heraus Marker in einem Haupttemplate anzusprechen, wünsche ich Dir viel Glück mit der Bitte verbunden, mich zu informieren, wie Dein Lösungsweg aussieht. Siehe auch:
#46853
Hoffe, ich hab ansatzweise den Punkt getroffen.
Grüßle
Bitbull