Collection.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Cms\Model\Wysiwyg\Images\Storage;
  7. use Magento\Framework\App\Filesystem\DirectoryList;
  8. /**
  9. * Wysiwyg Images storage collection
  10. *
  11. * @api
  12. * @since 100.0.2
  13. */
  14. class Collection extends \Magento\Framework\Data\Collection\Filesystem
  15. {
  16. /**
  17. * @var \Magento\Framework\Filesystem
  18. */
  19. protected $_filesystem;
  20. /**
  21. * @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory
  22. * @param \Magento\Framework\Filesystem $filesystem
  23. */
  24. public function __construct(
  25. \Magento\Framework\Data\Collection\EntityFactory $entityFactory,
  26. \Magento\Framework\Filesystem $filesystem
  27. ) {
  28. $this->_filesystem = $filesystem;
  29. parent::__construct($entityFactory);
  30. }
  31. /**
  32. * Generate row
  33. *
  34. * @param string $filename
  35. * @return array
  36. */
  37. protected function _generateRow($filename)
  38. {
  39. $filename = preg_replace('~[/\\\]+~', '/', $filename);
  40. $path = $this->_filesystem->getDirectoryWrite(DirectoryList::MEDIA);
  41. return [
  42. 'filename' => $filename,
  43. 'basename' => basename($filename),
  44. 'mtime' => $path->stat($path->getRelativePath($filename))['mtime']
  45. ];
  46. }
  47. }