it-swarm.com.de

Verwenden von theme_image_style ()

Ich versuche, Miniaturansichten der hochgeladenen Bilder in einem benutzerdefinierten Formular anzuzeigen. Während ich die Bilder in meinem Formulararray sehen kann, nachdem ich sie in das tmp-Verzeichnis in Drupal hochgeladen habe, versuche ich Folgendes, um sie anzuzeigen:

$url = file_create_url($form_object->uploads[$key]->uri);
$output .= '<div class="grid-3">'.theme_image_style(array('style' => 'form-preview', 'path' => $url)).'</div>';

Während $url Auf die Dateiressource verweist, kann ich für mein Leben kein Bild mit geänderter Größe anzeigen. Wenn ich ein img-Tag verwende und $url Als Quelle verwende, werden die Bilder zwar angezeigt, aber sie sind riesig.

Kann ich theme_image_style() nicht aufrufen, da dies nur temporäre Bilder sind und nicht permanent? Ich kann sie mit theme_image() erscheinen lassen.

6
Kevin

Verwenden Sie wie vorgeschlagen das Thema ('image_style', ...) aus den Dokumenten - ändern Sie einfach Ihren Code in Folgendes:

url = file_create_url($form_object->uploads[$key]->uri);
$output .= '<div class="grid-3">'.theme('image_style', array('style_name' => 'form-preview', 'path' => $url)).'</div>';
4
ipwa

Wie immer hat die Dokumentation Drupal die Antwort. Sie müssen die Datei in das Dateiverzeichnis verschieben. Außerdem sollten Sie nie eine Themenfunktion direkt aufrufen, aber stattdessen die Wrapper theme Funktion so:

theme_image_style(...) // Don't do this ever

theme('image_style', ...) // Do it like this and make themers happy.

Aus den API-Dokumenten:

$ variables Ein assoziatives Array, das Folgendes enthält:

  • style_name: Der Name des Stils, mit dem das Originalbild geändert werden soll.
  • pfad: Der Pfad der Bilddatei relativ zum Dateiverzeichnis Drupal files. Diese Funktion funktioniert weder mit Bildern außerhalb des Dateiverzeichnisses noch mit remote gehosteten Bildern.
  • alt: Der alternative Text für textbasierte Browser.
  • titel: Der Titeltext wird angezeigt, wenn sich das Bild in einigen gängigen Browsern befindet.
  • attribute: Assoziatives Array von Attributen, die im img-Tag platziert werden sollen.
9
googletorp

fügen Sie Ihre Klasse besser mit der Eigenschaft attributes hinzu

theme_image_style(array('style' => 'form-preview', 'path' => $url,'attributes'=>array('class'=>array('class1', 'class2')));
1
Yusef

Ich musste dies beheben, um Dateien von sites/all/modules bereitzustellen, und die Antwort ist in Theme Image Style für Image im Modulverzeichnis zu sehen

Umfasst das Generieren eines benutzerdefinierten Design-Rückrufs, der alle Dateien verarbeitet und die Bildableitungen während der Ausführung der Seitenanforderung erstellt. Sie verknüpfen also direkt mit der Datei, anstatt eine asynchrone Anforderung auszuführen, mit der das Bild erstellt wird.

Bessere Vorschläge/Problemumgehungen willkommen!

0
Alan D.