Hallo alle zusammen,
ich arbeite das Buch von Typo3 Praxiswissen von Robert Meyer durch und habe gerade meine erste Extension - das Mitarbeiter-Plugin - fertiggestellt. Es läuft alles, bis auf das das Bild nicht aus der DB gelesen wird. Im Quellcode bleibt die Stelle leer, also erscheint auch kein HTML-img-Tag. Ich kann lt. Buch keinen Fehler finden. Bin für jeden Tipp dankbar! Hier mein TS dazu:
# Parameter für das eigene Mitarbeiter-Plugin
plugin.user_mitarbeiter_pi1 {
testObjekt = IMAGE
testObjekt.file = GIFBUILDER
testObjekt.file {
XY = 100,100
backColor = red
}
# Pfad zur Designvorlage als Parameter angeben
templateFile = fileadmin/mitarbeiter.html
# So soll ein Foto eines Mitarbeiters formatiert werden.
bild = IMAGE
bild {
XY = [10.w]+2, [10.h]+2
backColor = black
10 = IMAGE
# Der Pfad zum Bild wird später dynamisch ersetzt.
10.file = unbekannt
10.file.width = 150
10.offset = 1,1
}
# Dieses Bild soll angezeigt werden, wenn kein Foto vorhanden ist.
bild_default = IMAGE
bild_default.file = GIFBUILDER
bild_default.file {
XY = 152, 50
backColor = white
10 = TEXT
10.text = N/A
10.fontFile = fileadmin/fonts/verdana.ttf
10.fontSize = 20
10.fontColor = black
10.niceText = 1
10.offset = 30,25
}
}
und hier nun der PHP-Teil in class.user_mitarbeiter_pi1.php:
function main($content,$conf) {
$this->conf=$conf;
$this->pi_setPiVarDefaults();
$this->pi_loadLL();
$this->pi_USER_INT_obj=1; // Configuring so caching is not expected. This value means that no cHash params are ever set. We do this, because it's a USER_INT object!
// Variablen setzen
$content = "";
$marker = array();
$img_pfad = "uploads/tx_usermitarbeiter/";
// Die Designvorlage laden
$tmpl = $this->cObj->fileResource($conf["templateFile"]);
// Einen Teilbereich der Designvorlage auslesen
$tmpl = $this->cObj->getSubpart($tmpl, "###MITARBEITER###");
// Einen weiteren Teilbereich aus dem Teilbereich auslesen
$tmpl_eintrag = $this->cObj->getSubpart($tmpl, "###EINTRAG###");
// Ggf. einen Parameter auslesen, ansonsten die aktuelle Seite verwenden
$mitarbeiterPageId = $conf["mitarbeiterPageId"];
if (!intval($mitarbeiterPageId)) $mitarbeiterPageId=$GLOBALS["TSFE"]->id;
// Die Datenbankabfrage inkl. Unterstützung von Datenbankabstraktion
$res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery("*", "user_mitarbeiter_main", "deleted = 0 AND hidden = 0 AND pid = '".$mitarbeiterPageId."'");
while ($row = $GLOBALS["TYPO3_DB"]->sql_fetch_assoc($res))
{
// Ein Array mit Platzhaltern als Schlüssel mit den Werten füllen
$marker["###NAME###"] = $row["vorname"]." ".$row["nachname"];
// Das Bild auslesen und verarbeiten
$conf["bild."]["file."]["10."]["file"]= $img_pfad.$row["bild"];
if ($this->cObj->fileResource($img_pfad.$row["bild"]))
{
$marker["###BILD###"] = $this->cObj->cObjGetSingle($conf["bild"], $conf["bild."]);
} else {
$marker["###BILD###"] = $this->cObj->cObjGetSingle($conf["bild_default"], $conf["bild_default."]);
}
// Den Teilbereich ###EINTRAG### und das Array miteinander "vereinen"
$content.=$this->cObj->substituteMarkerArrayCached($tmpl_eintrag, $marker);
}
// Letztmalig den umhüllenden Teilbereich ersetzen und Ergebnis ausgeben
$content =$this->cObj->substituteSubpart($tmpl, "###EINTRAG###", $content);
return $content;
}
Danke