[Typo3-UG Oesterreich] Problem mit t3lib_TStemplate::getFileName(...)

Kraft Bernhard kraftb at mokka.at
Sat Dec 4 13:25:38 CET 2004


Hallo List,

Ich bin in die Tiefen von Typo3 abgetaucht und bin auf ein Problem mit
t3lib_TStemplate::getFileName($relativer_pfad_zur_Datei);
gestossen...

Und zwar gehts um den if Block
		if (strstr($file,'/')) {   // here it is manual media
ca in Zeile 1074 (ich hab ein paar debug prints eingebaut also könnt
sich das um ein bisschen verschoeben haben)

Dieser block wird aufgerufen wenn es sich um eine Datei handelt die
eine relative Pfadangabe ist. ....
In diesem Block wird mit 
         if (@is_file($this->getFileName_backPath.$file))   {
abgeprüft ob die Datei gültig ist.
$this->getFileName_backPaht ist gesetzt auf PATH_site.
So wies auch in der initialisierung dieser variable gemacht wird.

Das is_file returned true wenn $file existiert aber dann versteh
ich das ganze nicht mehr.
Denn getFileName($relativerPfad) returned nicht wie es meiner Meinung
nach zu erwarten wäre den absoluten Pfad der Datei sondern einen
relativen. ....

Damit funktioniert bei mir auch die Funktion
$this->cObj->fileResource($relativerPfad);
nicht mehr weil in dieser mit folgendem code:
----------------snip----------------
	function fileResource($fName, $addParams='alt="" title=""') {

		// !!!!!!!!!!!!!!!!!!
		// Hier wird der filename geholt
		// !!!!!!!!!!!!!!!!!!!!!!

		$incFile = $GLOBALS['TSFE']->tmpl->getFileName($fName);
		if ($incFile)  {
			$fileinfo = t3lib_div::split_fileref($incFile);
			if (t3lib_div::inList('jpg,gif,jpeg,png',$fileinfo['fileext'])) {
				$imgFile = $incFile;
				$imgInfo = @getImageSize($imgFile);
				return '<img src="'.$GLOBALS['TSFE']->absRefPrefix.$imgFile.'" width="'.$imgInfo[0].'" height="'.$imgInfo[1].'" border="0" '.$addParams.' />';
			} elseif (filesize($incFile)<1024*1024) {


			// !!!!!!!!!!!!!!!!!!
			// Hier wird der fileContent returned ...
			// !!!!!!!!!!!!!!!!!!!!!!

				return $GLOBALS['TSFE']->tmpl->fileContent($incFile);
			}
		}
	}
----------------snip----------------

Siehe das Kommentar im Code
Die Funktion flieContent ruft wiederum für $incFile
getFileName() auf.
Was ich überhaupt nicht mehr versteh. Weil ja jetzt zweimal getFileName 
aufgerufen wird. Einmal am Anfang von $this->cObj->fileResource und dann wieder
in $GLOBALS["TSFE"]->tmpl->fileContent()

Wenn also getFileName jetzt den absoulten pfad zurückgeben würde würde
der SITE_PATH 2x angehängt werden.
Wenns so wies jetzt ist den absoulten pfad nicht anhängt kann man nicht
auf die Dateien die fileContent zurückliefert zugreifen ... weil der
Pfad ja relativ ist ...

Was mach ich also falsch bei der Verwendung von
$this->cObj->fileResource("relativer/Pfad/Datei.html");
in einer extension ?


grüsse,
Bernhard




More information about the TYPO3-at mailing list