ImageUpload in Mediatheks Ordner während PluginInstallation

Hallo zusammen,

ich möchte gern während der Installation eines Plugins, während der auch ein Mediatheks Ordner angelegt wird, Bilder aus einem Ressourcen-Ordner des Plugins, in dieses Album ablegen.
Die Antworten die ich in diesem Zusammenhäng suche sind nu wie folgt.
Gibt es eine Shopware()-> …irgendwas Aufruf  … um Bilder in ein Album zu laden  …oder geht das nur über ein Db->query( INSERT ) in die s_media Tabelle? 
… wie kann ich die Bilder, die in einem Plugin Ordner liegen als File ansprechen     $this->  … ?

Ggf. sollte ich auch die REST API verwenden, was zunächst sehr logisch schien…
$bild=array(“albumId”=>3, “description”=>‘Bunte Knete’, “file”=>"; 
$client->post(‘media’, $bild);
aber das würde doch arg am Ziel vorbeiführen … File auf Server -> RestAufruf -> File in DB

Würde mich über Tipps sehr freuen!

Vielen Dank,
Stefan

Hi,

du musst ja nicht die REST-API verwenden - es gibt ja auch die lokale API:

$media = Shopware\Components\Api\Manager::getResource('Media');
$media->create([…deine daten…]);

Daniel

2 Likes

Hi …

vielen Dank bis hierhin und mir auch jetzt einleuchtend…nur noch nicht ganz fertig erhellend (:
Ähnlich wie in http://forum.shopware.com/discussion/11586/api-lokaler-zugriff-media-album-anlegen wüsst ich gerade nicht, wie die create Methode funktionieren will … (ja ich sehe sie im Media.php file… ).

Kann mir kurz ein Beispiel gegeben werden, wie ich

  • einen Pfad zu einem Bild
  • die album id 

sowie 

  • den Anstoß um ein thumbnail mit bestimmter Auflösung generieren zu lassen

über $media in Gang kriege?

Vielen Dank!!
Stefan  

Es hat geklappt - Vielen Dank!

 

Nachtrag: Um anderen Suchenden das Leben ggf. zu erleichtern…

Beispiel:

$media->create([“album” => 5,  “description” => ‘example’ , “file” => ‘Pfad/image.jpg’]); 

 

Die Zusammenhänge, dass die interne Shopware API das Grundgerüst der REST API verwendet: 

Wie in den Rest API Tutorials beschrieben, wird der Datenaustausch über Ressourcen geregelt. Diese Ressourcen werden bei der Verwendung von extern über URLs angesprochen. Bei der lokalen Verwendung können aber einfach die Ressourcen-Klassen initialisiert werden.

 

dass einige Parameter Pflicht sind

 

und ggf.   extension=php_fileinfo.dll    in der php.ini    aktiviert sein muss, helfen vielleicht weiter.

 

P.S. In der Doku http://community.shopware.com/_detail_1689.html#POST steht immer noch “albumID” statt “album”  …