Zum Inhalt springen

Beispielbilder mit eigenen Bilder austauschen

Erstellt am 6. April 2009 · 4 Antworten · letzte Antwort am 7. April 2009

Tags: Inhaltselemente, Bilder, Frage

MB-Grille ·

Hallo,

wie meine Überschrift schon sagt .. kann man die Beispielbilder, die angezeigt werden, wenn man einen Inhalt "Text mit Bild" erstellen will, mit den Bildern des eigenen Bilderordners (vielleicht fileadmin/contentimg/) bestücken?

Gruß, Grille

MB-Grille ·

Ich habe jetzt soviel herrausbekommen:

Die Bilder sind von der Extension "lorem_ipsum" (sie erstellt auf Knopfdruck Blindtexte) ...

in der php-Datei "class.tx_loremipsum_wiz.php in der Zeile 119 wird der Pfad zur extension in die Variable $extPath gespeichert.

$extPath = t3lib_extMgm::extPath('lorem_ipsum');

ich weis leider noch nicht wie man daraus den Pfad zum Fileadmin bastelt.

MB-Grille ·

wenn ich es richtig verstehe, wird hier der Pfad ermittelt:

$extPath = t3lib_extMgm::extPath('lorem_ipsum');

und hier wird aufgrund der merkwürdigen Namensgebung der Bilder von a1 bis f6, eine Tabelle aufgebaut die alle Bilder zeigt:

for($a=0;$a<6;$a++){
  $tCells = array();
  for($b=0;$b<7;$b++){
    $absfile = $extPath.'images/'.chr($ordA+$a).($b+1).'.jpg';
    $onclick = "setFormValueFromBrowseWin('".$PA['itemName']."',unescape('".rawurlencode($absfile)."'),unescape('".rawurlencode(basename($absfile))."')); return false;";
    $tCells[].= '<a href="#" onclick="'.htmlspecialchars($onclick).'">'.t3lib_BEfunc::getThumbNail('thumbs.php', $absfile).'</a>';
  }

  $tdAttrib = ' style="width: 56px;" align="center" bgcolor="#cccccc"';
  $tRows[] = '
    <tr>
      <td'.$tdAttrib.'>
        '.implode('</td><td'.$tdAttrib.'>', $tCells).'
      </td>
    </tr>';
}

also muss man diese Schleife entfernen, und alle dateien aus dem gewünschten Ordner auslesen und dann diese auflisten.

MB-Grille ·

OK .. fertig!

das unten folgende Skript ermöglicht die Anzeige von Bildern die sich in Ordner befinden (in meinem Beispiel : im Typo3-Verzeichnis "fileadmin/contentimg/")

Nochmal zur Erklärung, bei der Extension "lorem_ipsum" werden Dummy-Bilder in einer Tabelle gezeigt, wenn man einen Seiteninhalt "Text mit Bild" erstellen will.
Nachfolgendes Script verhindert die Ausgabe der Dummy-Bilder und ermöglicht stattdessen die Ausgabe eigener Bilder.

bearbeitet werden muss die Datei "class.tx_loremipsum_wiz.php" im verzeichnis "typo3conf/ext/lorem_ipsum"

ich möchte auch darauf hinweisen, dass diese Änderung sicher sehr unsauber ist, und jeder echte Typo3-Profi darüber die Nase rümpfen würde/wird!

dieser Code muss unterhalb der Zeile "case 'images':" eingefügt werden:

// Der Bilderpfad im Typo3 Verzeichnis ... muss man selbst angeben
$mein_bilderpfad = '/fileadmin/contentimg/';

// Ausgabecontainer
$ausgabe='';
// ermittelt den absoluten Pfad und verlängert ihn um /fileadmin/contentimg/ (wo sich die Bilder befinden)
$verzeichnis = $_SERVER["DOCUMENT_ROOT"].$mein_bilderpfad;
// oeffnet das Verzeichnis
$verzeichnis_res = openDir($verzeichnis);

// liest das Verzeichnis
while ($file = readDir($verzeichnis_res)) {
  // verhindert dass höhere Verzeichnisse mit ausgelesen werden
  if ($file != "." && $file != "..") {
    // ermittelt die Dateiinformationen der gerade sich in der Schleife befindlichen Datei
    $dateiinfo = pathinfo($verzeichnis.$file);
    // Es sollen nur Bilddateien "GIF", "PNG" und "JPG" weiterbearbeitet werden
    if ($dateiinfo["extension"] == 'png' or $dateiinfo["extension"] == 'gif' or $dateiinfo["extension"] == 'jpg'){
      // ist der komplette absolute Pfad zur Datei und der Dateiname
      $absfile = $verzeichnis.$file;
      // erstellt die onClick-Funktion für das Bild
      $onclick = "setFormValueFromBrowseWin('".$PA['itemName']."',unescape('".rawurlencode($absfile)."'),unescape('".rawurlencode(basename($absfile))."')); return false;";
      // erstellt ein Vorschaubildchen vom Bild und schließt es in einen Link ein der die oben erstellte onClick-Funktion ermoeglicht
      $ausgabe.= '<div style="padding:5px; display:inline;"><a href="#" onclick="'.htmlspecialchars($onclick).'">'.t3lib_BEfunc::getThumbNail('thumbs.php', $absfile).'</a></div>';
    }
  }
}

// übergibt die Bilderliste (ausgabe) an die "output-Variable"
$output = '<div style="width:400px;">'.$ausgabe.'</div>';
										// verschönerungen bitte selbst erstellen (Tabellenausgabe oder andere Faxen)

und dieser code muss dafür gelöscht oder auskommentiert werden:

/*
$ordA = ord('a');
$extPath = t3lib_extMgm::extPath('lorem_ipsum');

$tRows = array();
for($a=0;$a<6;$a++)	{
  $tCells = array();
  for($b=0;$b<7;$b++)	{
    $absfile = $extPath.'images/'.chr($ordA+$a).($b+1).'.jpg';		
    $onclick = "setFormValueFromBrowseWin('".$PA['itemName']."',unescape('".rawurlencode($absfile)."'),unescape('".rawurlencode(basename($absfile))."')); return false;";
    $tCells[].= '<a href="#" onclick="'.htmlspecialchars($onclick).'">'.
        t3lib_BEfunc::getThumbNail('thumbs.php', $absfile).
        '</a>';
    }
  $tdAttrib = ' style="width: 56px;" align="center" bgcolor="#cccccc"';
  $tRows[] = '
    <tr>
      <td'.$tdAttrib.'>
        '.implode('</td><td'.$tdAttrib.'>', $tCells).'
      </td>
    </tr>';
  }

$output = '
  <table border="0" cellpadding="2" cellspacing="2" style="border: 1px solid black; margin-top: 5px; margin-bottom: 15px;">
    <tr><td colspan="7" bgcolor="#aaaaaa"><b>Click a dummy image to select it:</b></td></tr>
      '.implode('',$tRows).'
    <tr><td colspan="7"><em>All images are copyright &#169; Kasper Sk&#229;rh&#248;j 2001-2004 and licensed in these resolutions under Open Content License.</em></td></tr>
  </table>';
*/
MB-Grille ·

etwas erweitert, damit mehrere Bild-Verzeichnisse gleichzeitig nutzen kann:

case 'images':
  $ausgabe='';
  
  $mein_bilderpfad_array = array(
    '/fileadmin/contentimg/',
    '/uploads/tf/',
    '/uploads/pics/'
    );

  foreach ( $mein_bilderpfad_array as $mein_bilderpfad){
    $verzeichnis = $_SERVER["DOCUMENT_ROOT"].$mein_bilderpfad;
    $verzeichnis_res = openDir($verzeichnis);	
    while ($file = readDir($verzeichnis_res)) {
      if ($file != "." && $file != "..") {
        $dateiinfo = pathinfo($verzeichnis.$file);
        if ($dateiinfo["extension"] == 'png' or $dateiinfo["extension"] == 'gif' or $dateiinfo["extension"] == 'jpg'){
          $absfile = $verzeichnis.$file;
          $onclick = "setFormValueFromBrowseWin('".$PA['itemName']."',unescape('".rawurlencode($absfile)."'),unescape('".rawurlencode(basename($absfile))."')); return false;";
          $ausgabe.= '<div style="padding:5px; display:inline;"><a href="#" onclick="'.htmlspecialchars($onclick).'">'.t3lib_BEfunc::getThumbNail('thumbs.php', $absfile).'</a></div>';
        }
      }
    }
  } //ende der foreach-schleife
$output = '<div style="width:400px;">'.$ausgabe.'</div>';
break;