![]() |
| | LinkBack | Themen-Optionen | Thema durchsuchen | Thema bewerten | Ansicht |
|
#1
| |||
| |||
Hallo Leute, ich habe ein kleines Problem mit meiner Testextension. Ich habe eine Extension erstellt die ein Mitarbeiter- oder Spielerprofil darstellen soll. Nun wollte ich diese so erweitern, dass ich zum Bild auch eine Datei hochladen kann. Die Datei könnte z.B. im csv (MS-Excel) - Format sein. Ich würde gerne die Funktion "fgetcsv" einbinden. Diese sieht wie follgt aus: Code: <?php
$row = 1;
$handle = fopen("fileadmin/test.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
?> Nun meine Frage: Wo soll ich die Funktion einbinden damit das Ergebnis stimmt?? Es soll ja erstmal nur in Textform ausgegeben werden. Und muss ich da noch etwas (mit Typoscript) in meinem Tamplate ergänzen?? Entschuldigt bitte wenn ich die Frage etwas umständlich gestellt habe. Bin leider noch sehr unerfahren mit PHP und Typo3. Vielen Dank im Voraus. Euer Parappa |
| Sponsored Links |
![]() TYPO3 Forum.net empfiehlt domainFactory als Hoster! |
|
#2
| ||||
| ||||
| Das verwundert nicht, wenn Du Ausgaben mich ECHO vornimmst, da diese sofort ausgegeben werden und nicht durch TYPO3 gerendert werden. Evtl. solltest Du Dir mal die main() einer beliebigen Extension ansehen, um zu sehen wie hier vorzugehen ist. Eine allgemeingültige Anleitung kann es nicht geben!
__________________ mfg Matthias TYPO3-Consultant -- TYPO3 Entwicklung TYPO3-HOST.DE -- Individuelles TYPO3-Hosting |
|
#3
| |||
| |||
| Danke Matthias, aber wie und wo soll ich die Funktion "fgetcsv" speichern? In einer neuen Klasse oder lieber in der gleichen? Wie könnte denn sowas ausschauen wenn ich die Funktion zum Bsp. hier für den Marker ###DATEI### einbauen will??? Code: require_once(PATH_tslib.'class.tslib_pibase.php');
class user_rmmitarbeiter_pi1 extends tslib_pibase {
var $prefixId = 'user_rmmitarbeiter_pi1'; // Same as class name
var $scriptRelPath = 'pi1/class.user_rmmitarbeiter_pi1.php'; // Path to this script relative to the extension dir.
var $extKey = 'user_rmmitarbeiter'; // 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;
// Variablen setzen
$content = "";
$marker = array();
$img_pfad = "uploads/tx_userrmmitarbeiter/";
// 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_rmmitarbeiter_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["nachname"]." ".$row["vorname"];
// 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."]);
}
// Die Datei auslesen und verarbeiten
$conf["bild."]["file."]["10."]["file"]= $img_pfad.$row["bild"];
if ($this->cObj->fileResource($img_pfad.$row["bild"])) {
$marker["###DATEI###"] = $this->cObj->cObjGetSingle($conf["bild"], $conf["bild."]);
} else {
$marker["###DATEI###"] = $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;
}
}
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/user_rmmitarbeiter/pi1/class.user_rmmitarbeiter_pi1.php']) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/user_rmmitarbeiter/pi1/class.user_rmmitarbeiter_pi1.php']);
}
?> Hoffe du kannst mir noch einen Tipp geben. Vielen Dank jetzt schon. Gruß Parappa |
![]() |
| Themen-Optionen | Thema durchsuchen |
| Ansicht | Thema bewerten |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Javascript von Extension aus einbinden | Christoph Neuroth | Extension modifizieren oder neu erstellen | 1 | 19.06.07 18:41 |
| Extension in eigener Extension einbinden | koki | Extension modifizieren oder neu erstellen | 3 | 23.02.07 10:26 |
| PHP CODE für DB-Abfrage in Typo3 einbinden | wolle_hb | TYPO3 4.x Fragen und Probleme | 4 | 07.11.06 15:19 |
| PHP Code am Anfang einbinden | Anderl | TYPO3 4.x Fragen und Probleme | 2 | 03.09.06 19:55 |
| Template in extension einbinden | Typo3000 | Extension modifizieren oder neu erstellen | 3 | 23.06.06 22:59 |