Hallo Leute, ich habe mal gem. typo3 - Praxiswissen folgenden Beispiel nachgebaut:
<?php
/***************************************************************
* Copyright notice
*
* (c) 2006 <email@quadronet.de>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
require_once(PATH_tslib.'class.tslib_pibase.php');
/**
* Plugin 'Einrichtungen Liste' for the 'user_einrichtungen_liste' extension.
*
* @author <email@quadronet.de>
* @package TYPO3
* @subpackage user_einrichtungenliste
*/
class user_einrichtungenliste_pi1 extends tslib_pibase {
var $prefixId = 'user_einrichtungenliste_pi1'; // Same as class name
var $scriptRelPath = 'pi1/class.user_einrichtungenliste_pi1.php'; // Path to this script relative to the extension dir.
var $extKey = 'user_einrichtungen_liste'; // The extension key.
/**
* The main method of the PlugIn
*
* @param string $content: The PlugIn content
* @param array $conf: The PlugIn configuration
* @return The content that is displayed on the website
*/
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 setzten
$content= "";
$marker = array();
$img_pfad = "uploads/tx_user_einrichtungenliste/";
//Ggf. einen Parameter auslesen, ansonsten die aktuelle Seite verwenden
$einrichtungenPageId = $conf["einrichtungenPageId"];
if (!intval($einrichtungenPageId)) $einrichtungenPageId= $GLOBALS["TSFE"]->id;
//die Designvorlage laden
$temp = $this->cObj->fileResource($conf["templateFile"]);
// Teilbereiche ansprechen
$temp = $this->cObj->getSubpart($temp, "###EINRICHTUNGEN###");
//einen weiteren Teilbereich ansprechen
$temp_eintrag = $this->cObj->getSubpart($temp, "###EINTRAG###");
// inhalte von $temp ausgeben, mit return erfolgt abbruch
//return $temp; //später wieder entfernen
//die Datenbank ansprechen und in einer Schleife ausgeben mit Datenbankabstraktion
$res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery("*", "user_einrichtungenliste_main"," deleted = 0 AND hidden = 0 AND pid= '".$einrichtungenPageId."'");
while($row = $GLOBALS["TYPO3_DB"]->sql_fetch_assoc($res)) {
//ein Array mit Platzhalter als Schlüssen mit den Werten füllen
$marker["###NAME###"] = $row["name"];
// 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($temp_eintrag, $marker);
}
//letztmalig den umhüllenden Teilbereich ersetzen und das Ergebnis ausgeben
$content = $this->cObj->substituteSubpart($temp, "###EINTRAG###", $content);
return $content;
}
}
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/user_einrichtungen_liste/pi1/class.user_einrichtungenliste_pi1.php']) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/user_einrichtungen_liste/pi1/class.user_einrichtungenliste_pi1.php']);
}
?>
Folgendes TypoScript:
plugin.user_einrichtungenliste_pi1.einrichtungenPageId = 38
# Parameter für das eigene Mitarbeiter-Plugin
plugin.user_einrichtungenliste_pi1 {
testObjekt = IMAGE
testObjekt.file = GIFBUILDER
testObjekt.file {
XY = 100,100
backColor = red
}
# Pfad zur Designvorlage als Parameter angeben
templateFile = fileadmin/templates/einrichtungen.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.fontSize = 20
10.fontColor = black
10.niceText = 1
10.offset = 30,25
}
}
Leider werden immer nur die default_bilder angezeigt, obwohl die Bilder definitiv in dem angegebenen Ordner sind.
Ist das Beispiel nicht mit Typo3 Version 4 kompatibel?
Was mache ich falsch?
Vielen Dank für Eure Mühe!!!
CU