Guest User

Untitled

a guest
Mar 20th, 2018
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4. * @author Sebastian Langer <sl@scn.cx>
  5. * @license MIT
  6. */
  7.  
  8. use Shopware\Bundle\StoreFrontBundle\Service\Core\ContextService;
  9. use Shopware\Bundle\StoreFrontBundle\Gateway\DBAL\MediaGateway;
  10. use Shopware\Components\Compatibility\LegacyStructConverter;
  11. use Enlight_Template_Default;
  12. use InvalidArgumentException;
  13.  
  14. /**
  15. * Get the legacy media struct of the media-object by its id.
  16. * Returns null if not found.
  17. *
  18. * @param array $params
  19. * @param $template
  20. * @throws InvalidArgumentException
  21. */
  22. function smarty_function_legacyMediaById(array $params, Enlight_Template_Default $template)
  23. {
  24. /** @var ContextService $contextService */
  25. $contextService = Shopware()->Container()->get('shopware_storefront.context_service');
  26. /** @var MediaGateway $mediaGateway */
  27. $mediaGateway = Shopware()->Container()->get('shopware_storefront.media_gateway');
  28. /** @var LegacyStructConverter $legacyStructConverter */
  29. $legacyStructConverter = Shopware()->Container()->get('legacy_struct_converter');
  30.  
  31. if (!array_key_exists('id', $params) || !array_key_exists('assign', $params)) {
  32. throw new InvalidArgumentException('Arguments id and assign must be given.');
  33. }
  34.  
  35. $id = $params['id'];
  36. $assign = $params['assign'];
  37.  
  38. $context = $contextService->getContext();
  39. $mediaStruct = $mediaGateway->get($id, $context);
  40. $legacyMedia = $legacyStructConverter->convertMediaStruct($mediaStruct);
  41.  
  42. if (!is_array($legacyMedia)) {
  43. $template->assign($assign, null);
  44. } else {
  45. $template->assign($assign, $legacyMedia);
  46. }
  47. }
Add Comment
Please, Sign In to add comment