Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten Ansicht
  #1  
Alt 04.06.07, 18:55
Forum Zuschauer
 
Registriert seit: 04.06.07
Alter: 26
Beiträge: 2
PHP Code in extension einbinden

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);
?>
Nach meinen ersten Versuchen diese im Editor einzubinden wurde der Inhalt der csv-Datei zwar im Browser angezeigt, nur leider außerhalb von dem Platz wo ich es haben wollte. Sogar komplett außerhalb von meinem Tamplate.

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
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #2  
Alt 04.06.07, 20:13
Benutzerbild von mstuebner
TYPO3 Forum Team
Moderator
 
Registriert seit: 01.09.04
Ort: 84424 Isen b. Dorfen
Alter: 40
Beiträge: 2.141
mstuebner eine Nachricht über Skype™ schicken

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!
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #3  
Alt 05.06.07, 00:10
Forum Zuschauer
 
Registriert seit: 04.06.07
Alter: 26
Beiträge: 2

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']);
}

?>
Muss mich da mal echt durchbeißen.
Hoffe du kannst mir noch einen Tipp geben.
Vielen Dank jetzt schon.

Gruß Parappa
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
Antwort


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are An


Ä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


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:24 Uhr.


Powered by vBulletin® Version 3.6.8 Patch Level 2 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0
Template-Modifikationen durch TMS