Zum Inhalt springen

Dateiname statt Image wird angezeigt

Erstellt am 19. Oktober 2005 · 7 Antworten · letzte Antwort am 2. November 2005

Tags: Bilder, Frage

Juli ·

Hallo Forum,
ich hab' meine erste kleine Probe-Extension erstellt, mit Template, Markern, Text- und Image-Feldern. Der Text wird angezeigt, aber statt der Bilder wird immer nur der Dateiname angezeigt. Irgendwas mach ich im Bereich der Zeile 37:

$marker["###TITELBILD###"] = $row["titel_image"];

falsch. Kann mir jemand einen Tip geben wo im nachfolgenden Kode der Fehler liegt.
Gruß
Jürgen

require_once(PATH_tslib."class.tslib_pibase.php");

class user_makler_pi1 extends tslib_pibase {
	var $prefixId = "user_makler_pi1";		// Same as class name
	var $scriptRelPath = "pi1/class.user_makler_pi1.php";	// Path to this script relative to the extension dir.
	var $extKey = "user_makler";	// The extension key.
	
	/**
	 * [Put your description here]
	 */
function main($content,$conf) {
   $this->conf=$conf;
   $this->pi_setPiVarDefaults();
   $this->pi_loadLL();
   $this->pi_USER_INT_obj=1;

   // Variablen setzen
$this->cObj->substituteMarkerArrayCached($tmpl, $marker);
   $content = "";
   $marker = array();

   // Die Designvorlage laden
   $tmpl = $this->cObj->fileResource("fileadmin/templates/habitamus/makler.tmpl");
   // Inhalt von $tmpl ausgeben, mit return erfolgt Abbruch

   $tmpl = $this->cObj->getSubpart($tmpl, " ###CONTAINER###");
   
   // Ggf. einen Parameter auslesen, ansonsten die aktuelle Seite verwenden
   $mitarbeiterPageId = $conf["mitarbeiterPageId"];
   if (!intval($mitarbeiterPageId)) $mitarbeiterPageId=$GLOBALS["TSFE"]->id;
   
   // Die Datenbankabfrage inkl. Untersttzung von Datenbankabstraktion
   $res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery("*","user_makler_objects", "deleted = 0 AND hidden = 0 AND pid = '".$mitarbeiterPageId."'");
   while ($row = $GLOBALS["TYPO3_DB"]->sql_fetch_assoc($res)) {
      // Ein Array mit Platzhaltern als Schlssel mit den Werten fllen
      $marker["###NAME-TYPE###"] = $row["name"];
      $marker["###TITELBILD###"] = $row["titel_image"];
      $content .= $this->cObj->substituteMarkerArrayCached($tmpl, $marker);
   }
   // Ergebnis ausgeben


#t3lib_div::debug ($row["titel_image"]);
#t3lib_div::debug($this->getItems());
#t3lib_div::debug($content);
   return $content;
}
}
?>
jenses ·

Das ist so erstmal völlig normal 😉
Du mußt TYPO3 natürlich auch noch sagen, was es nun mit genannter Datei anfangen soll.
Besorge dir mal die Extension extdeveval,
dann schau dir mal die vielen netten Funktionen unter tslib an.
Da findest du auch alles zur Bildmanipulation.

TW ·
Juli schrieb

Schluck!!

$this->conf["picture."]["file"] = "uploads/tx_deineprobeextension/".$row["titel_image"];

$theImgCode=$this->cObj->IMAGE($this->conf["picture."]);

wobei picture im setup vorhanden sein sollte...

dazu noch das für das setup

picture {
    file.maxW = {$plugin.tx_deineprobeextension.maxImageWidth}
    imageLinkWrap = {$plugin.tx_deineprobeextension.clickEnlarge}
    imageLinkWrap {
      enable = 1
      bodyTag = <BODY bgColor=white>
      wrap = <A href="javascript:close();"> | </A>
      width = 400m
      height = 400
 
      JSwindow = 1
      JSwindow.newWindow = 1
      JSwindow.expand = 17,20
    }
  }

und die constants

plugin.tx_deineprobeextension {
maxImageWidth = 150
clickEnlarge=1
}

mehr und weniger isses nicht 🙂

cu

Juli ·

You realy made my day, TW
Gleichzeitig muß ich erkennen: Will man ernsthaft Extensions schreiben, kommt man mit dem bisherigen copy & past und reinen Anfänger-Kenntnissen in PHP nicht mehr richtig weiter. Nun liegt das PHP-Lehrbuch auf dem Tisch und starrt mich. Bin mal gespannt wie lange ich durchhalte.

o.O

Gruß
Jürgen

moon76 ·

Hi,

ich versuch mich auch gerade an der Bilddarstellung. Was mich grad verwirrt:
Wenn ich die entsprechende Tabelle über den Kickstarter anlege, erhält das Feld für das Bild den Datentyp "Blob". Demnach müßte es doch auch direkt in der Tabelle gespeichert werden - also wozu den Datei-Pfad angeben? Bzw. warum wird es nicht gemäß Datentyp in der Datenbank gespeichert (mal unabhängig von Performanceargumenten)

Viele Grüße
Christian

Stoneage ·

In das Feld wird nur der Dateiname abgespeichert, die Datei wird dann in den Extension upload-Ordner kopiert. Warum das ein BLOB-Feld ist weiß ich auch nicht, ich weiß noch nicht mal wie man ein BLOB-Feld ausließt.