vendor/contao/core-bundle/src/Resources/contao/elements/ContentImage.php line 35

Open in your IDE?
  1. <?php
  2. /*
  3. * This file is part of Contao.
  4. *
  5. * (c) Leo Feyer
  6. *
  7. * @license LGPL-3.0-or-later
  8. */
  9. namespace Contao;
  10. /**
  11. * Front end content element "image".
  12. */
  13. class ContentImage extends ContentElement
  14. {
  15. /**
  16. * Template
  17. * @var string
  18. */
  19. protected $strTemplate = 'ce_image';
  20. /**
  21. * Files model
  22. * @var FilesModel
  23. */
  24. protected $objFilesModel;
  25. /**
  26. * Return if the image does not exist
  27. *
  28. * @return string
  29. */
  30. public function generate()
  31. {
  32. if (!$this->singleSRC)
  33. {
  34. return '';
  35. }
  36. $objFile = FilesModel::findByUuid($this->singleSRC);
  37. if ($objFile === null || !is_file(System::getContainer()->getParameter('kernel.project_dir') . '/' . $objFile->path))
  38. {
  39. return '';
  40. }
  41. $this->singleSRC = $objFile->path;
  42. $this->objFilesModel = $objFile;
  43. return parent::generate();
  44. }
  45. /**
  46. * Generate the content element
  47. */
  48. protected function compile()
  49. {
  50. $figure = System::getContainer()
  51. ->get('contao.image.studio')
  52. ->createFigureBuilder()
  53. ->from($this->objFilesModel)
  54. ->setSize($this->size)
  55. ->setOverwriteMetadata($this->objModel->getOverwriteMetadata())
  56. ->enableLightbox((bool) $this->fullsize)
  57. ->buildIfResourceExists();
  58. if (null !== $figure)
  59. {
  60. $figure->applyLegacyTemplateData($this->Template, $this->imagemargin);
  61. }
  62. }
  63. }
  64. class_alias(ContentImage::class, 'ContentImage');