Bilder und Drupal 7

Image Styles in Drupal 7

Als erstes sei gesagt: Wer lesen kann ist klar im Vorteil. Ich habe Stunden verschwendet und etwas zu entwickeln was Drupal 7 nun standardmäßig kann. Damit es dir nicht genauso ergeht, schreibe ich einfach meine Entdeckungen und Erfahrungen nieder.

Der Drupal 7 Core beinhaltet nun ein Image-Modul, der das Leben deutlich vereinfacht. Man ist nun nicht mehr auf Module wie ImageAPI, ImageField, ImageCache und FileField angewiesen. Auch das CCK-Modul ist nicht mehr nötig. Drupal 7 erlaubt nun das Erstellen neuer Felder.

Also habe ich mich auf den Weg gemacht die neue Version gleich an einem Projekt zu testen. Dazu muss ich sagen, dass es sich erst um eine Alpha-Version (5) handelt und ich keinem empfehlen würde Drupal 7 bereits jetzt produktiv einzusetzen. Mein Projekt hat keinerlei Wichtigkeit und wird gegebenenfalls gar nicht erst online gehen. Es geht mir mehr um das Rumspielen.

Also habe ich auf die Schnelle, mit Bordmitteln, einen neuen Inhaltstypen „testemich“ angelegt. Dieser beinhaltet auch ein Feld vom Typ „Image“. Nun sollte das Template für diesen Inhaltstyp angepasst werden.

Beim schnüffeln in den Einstellungen fand ich auch einen Punkt „Image styles“. Dort kann man diverse „Styles“ anlegen. Nach der Installation stehen drei, thumbnail, medium und large, sofort zur Verfügung. So neugierig wie ich bin habe ich sofort versucht ein neues „Style“ anzulegen (Add style). Einen Klick weiter gebe ich den Titel „125×125“ ein und erhalte eine Auswahl an Effekten: „Crop“, „Desaturate“, „Resize“, „Rotate“, „Scale“ und „Scale and Crop“. Das ist also eine ganze Menge an Möglichkeiten, die ich gerne nutzen würde. Ich definiere für meinen Style „Scale and Crop“ mit der Höhe und Breite von 125 Pixeln. Doch wie verwende ich diese sogenannten „Image Styles“ in meinem Theme?

Dazu wurde in Drupal 7 eine Funktion „theme_image_formatter()“ eingeführt. Diese Funktion erwartet ein assoziatives Array, mit den Schlüsseln „item“, „image_style“ und „path“, als Übergabeparameter. „item“ beinhaltet das Array mit den Daten von dem Bild. Bei „image_style“ wird nun der Name des „Image style“ angegeben den ich oben gewählt habe „125×125“. „path“ beinhaltet ein Array mit dem Link-Pfad und Link-Optionen, für den Fall, dass man das Bild direkt verlinken möchte.

Somit sieht der ganze Aufruf folgendermaßen aus:

$var = array (
  'item' => $node->field_screenshots['und'][0],
  'image_style' => '125x125');
theme_image_formatter($var);

Als Rückgabewert erhalten wir ein von mir hochgeladenes Bild, skaliert und zugeschnitten auf 125×125 Pixel. Ich bin also am Ziel angekommen und habe eine coole Vorschau für meine Bilder, die  nur mit dem Drupal 7 Core realisiert wirde.

Wie du sieht beschäftige ich mich wieder verstärkt mir Drupal, sodass weitere Drupal Artikel folgen werden.

ALL-INKL.COM

2 Kommentars zu dem Artikel “Bilder und Drupal 7”

  1. Avatar von joe ekine
    joe ekine

    Das funktioniert auch tadellos mit drupal 6 und views. 🙂 Man muss also nicht gleich auf drupal 7 umsteigen. ^^

  2. Avatar von StarSt0rm
    StarSt0rm

    Das stimmt schon und ich würde jetzt sicher nicht sofort umsteigen, schließlich ist es noch eine Alpha. Views finde ich ehrlich gesagt extrem gruselig. Eventuell liegt es auch daran, dass ich erst seit kurzem viel mit Drupal mache. Das ist ein privates Projekt mit dem ich meine Neugierde befriedigen kann. 😉 Trotz allem finde ich die Lösung in Drupal 7 deutlich ausgereifter. Und man sollte lieber frühzeitig das kommende System testen/kennenlernen, damit man schön auf dem Laufenden ist. Irgendwann kommt Drupal 7 und man sollte vorbereitet sein. 😛