Contao\Picture::getTemplateData PHP 메소드

getTemplateData() 공개 메소드

Get the picture element definition array
public getTemplateData ( ) : array
리턴 array The picture element definition
    public function getTemplateData()
    {
        $image = \System::getContainer()->get('contao.image.image_factory')->create(TL_ROOT . '/' . $this->image->getOriginalPath());
        $config = new PictureConfiguration();
        $config->setSize($this->getConfigurationItem($this->imageSize));
        $sizeItems = array();
        foreach ($this->imageSizeItems as $imageSizeItem) {
            $sizeItems[] = $this->getConfigurationItem($imageSizeItem);
        }
        $config->setSizeItems($sizeItems);
        $importantPart = $this->image->getImportantPart();
        $image->setImportantPart(new ImportantPart(new Point($importantPart['x'], $importantPart['y']), new Box($importantPart['width'], $importantPart['height'])));
        $container = \System::getContainer();
        $picture = $container->get('contao.image.picture_generator')->generate($image, $config, (new ResizeOptions())->setImagineOptions($container->getParameter('contao.image.imagine_options'))->setBypassCache($container->getParameter('contao.image.bypass_cache')));
        return array('img' => $picture->getImg(TL_ROOT), 'sources' => $picture->getSources(TL_ROOT));
    }

Usage Example

예제 #1
0
 /**
  * Tests the getTemplateData() method with encoded file names.
  */
 public function testGetTemplateDataUrlEncoded()
 {
     copy(__DIR__ . '/../Fixtures/images/dummy.jpg', self::$rootDir . '/dummy with spaces.jpg');
     $picture = new Picture(new \File('dummy with spaces.jpg'));
     $picture->setImageSize((object) ['width' => 0, 'height' => 0, 'resizeMode' => '', 'zoom' => 0]);
     $pictureData = $picture->getTemplateData();
     $this->assertEquals(200, $pictureData['img']['width']);
     $this->assertEquals(200, $pictureData['img']['height']);
     $this->assertEquals('dummy%20with%20spaces.jpg', $pictureData['img']['src']);
     $this->assertEquals('dummy%20with%20spaces.jpg', $pictureData['img']['srcset']);
     $this->assertEquals([], $pictureData['sources']);
 }
All Usage Examples Of Contao\Picture::getTemplateData