02. 11. 2015, 12:49

Hallo zusammen,

kann mir sagen, wie ich in der Extension YAG (aktuellste Version) in den Bilddetails den Autor und die Tags nachträglich ändern kann? Aktuell werden diese leider nicht weggespeichert, für den Titel funktioniert dies.

Die verantwortliche Datei scheint die itemController.php zu sein (yag/Classes/Domain/Model).

Das Feld 'Titel' wird in der Tabelle 'tx_yag_domain_model_item', die beiden Felder 'Artist' und 'Tags' in der Tabelle 'tx_yag_domain_model_itemmeta' gespeichert. Da das nachträgliche Ändern scheinbar von der Extension niht vorgesehen ist, habe ich dies selbst mit der nachfolgenden Abfrage versucht:

  1. $item->setArtist($itemArray['itemMeta']['artist']);

Der komplette Code sieht wie folgt aus:

  1. // Update each item that is associated to the album
  2. foreach ($album->getItems() as $item) {
  3. /* @var $item Tx_Yag_Domain_Model_Item */
  4.  
  5. $itemUid = $item->getUid();
  6. $item->injectObjectManager($this->objectManager);
  7.  
  8. if (array_key_exists($itemUid, $bulkEditData['album']['item'])) {
  9. $itemArray = $bulkEditData['album']['item'][$itemUid];
  10. $item->setTitle($itemArray['title']);
  11. $item->setArtist($itemArray['itemMeta']['artist']); //Autor ändern
  12. $itemAlbum = $this->albumRepository->findByUid(intval($itemArray['album']['__identity']));
  13. if ($itemAlbum != NULL) {
  14. $item->setAlbum($itemAlbum);
  15. }
  16.  
  17. $item->setTagsF romCSV($itemArray['tags']);
  18.  
  19. $this->itemRepository->update($item);
  20. }
  21. }
  22.  
  23. $this->persistenceManager->persistAll();
  24.  
  25. $this->addFlashMessage(LocalizationUtility::translate('tx_yag_controller_item.imagesUpdated', $this->extensionName),'', FlashMessage::OK);
  26.  
  27. $this->forward('list', 'ItemList');
  28. }

Der itemArray sieht wie folgt aus:

  1. Array ( [title] => 42-53382847 [itemMeta] => Array ( [artist] => Hero Images ) [tags] => kochen, gemüse, Tomaten, gesunde Ernährung [album] => Array ( [__identity] => 1 ) )

Leider scheint meine Anweisung auf einen Fehler zu laufen, denn nach dem klicken auf Speichern wird nichts gespeichert. Kann mir hier jemand helfen?