Newscoop\Image\RenditionService::registerRenditions PHP Method

registerRenditions() public method

Register renditions
public registerRenditions ( array $existing = [] ) : void
$existing array
return void
    public function registerRenditions(array $existing = array())
    {
        $this->renditions = array();
        foreach (glob(APPLICATION_PATH . $this->config['theme_path'] . '/publication_*/theme_*/theme.xml') as $themeInfo) {
            $xml = simplexml_load_file($themeInfo);
            if (!$xml->renditions) {
                continue;
            }
            foreach ($xml->renditions->rendition as $rendition) {
                $renditionName = (string) $rendition['name'];
                if (!isset($this->renditions[$renditionName])) {
                    if (array_key_exists($renditionName, $existing)) {
                        $existing[$renditionName]->setWidth($rendition['width']);
                        $existing[$renditionName]->setHeight($rendition['height']);
                        $existing[$renditionName]->setSpecs($rendition['specs']);
                        $existing[$renditionName]->setOffset($rendition['offset']);
                        $existing[$renditionName]->setLabel($rendition['label']);
                        $this->renditions[$renditionName] = $existing[$renditionName];
                    } else {
                        $this->orm->persist($this->renditions[$renditionName] = new Rendition($rendition['width'], $rendition['height'], $rendition['specs'], $rendition['name']));
                    }
                }
            }
        }
        $this->orm->flush();
    }