/** * get part of the collection with entrys selected by the array * * @param array $themeIdentifierList * @return Tx_Yag_Domain_Configuration_Image_ResolutionConfigCollection; */ public function extractCollectionByThemeList(array $themeIdentifierList) { if (current($themeIdentifierList) == '*') { return $this; } $collection = new Tx_Yag_Domain_Configuration_Image_ResolutionConfigCollection(); foreach ($themeIdentifierList as $themeIdentifier) { foreach ($this->itemsArr as $itemName => $item) { if (substr($itemName, 0, strlen($themeIdentifier)) == $themeIdentifier) { $collection->addResolutionConfig($item, $itemName); } } } return $collection; }
/** * @static * @param Tx_Yag_Domain_Configuration_ConfigurationBuilder $configurationBuilder * @return Tx_Yag_Domain_Configuration_Image_ResolutionConfigCollection */ public static function getInstanceOfAllThemes(Tx_Yag_Domain_Configuration_ConfigurationBuilder $configurationBuilder) { $allSettings = $configurationBuilder->getOrigSettings(); $themes = $allSettings['themes']; $resolutionConfigCollection = new Tx_Yag_Domain_Configuration_Image_ResolutionConfigCollection(); foreach ($themes as $themeName => $theme) { if (array_key_exists('resolutionConfigs', $theme) && is_array($theme['resolutionConfigs'])) { foreach ($theme['resolutionConfigs'] as $resolutionName => $resolutionSetting) { $resolutionSetting['name'] = $themeName . '.' . $resolutionName; $resolutionConfig = new Tx_Yag_Domain_Configuration_Image_ResolutionConfig($configurationBuilder, $resolutionSetting); $resolutionConfigCollection->addResolutionConfig($resolutionConfig, $resolutionSetting['name']); } } } return $resolutionConfigCollection; }
/** * Build the image JOSN parameter string * * @param Tx_PtExtlist_Domain_Model_List_ListData $listData * @return string image JOSN parameter string */ protected function buildImageListArray(Tx_PtExtlist_Domain_Model_List_ListData $listData) { $jsImageArray = array(); foreach ($listData as $row) { /* @var Tx_PtExtlist_Domain_Model_List_Row $row */ $imageObject = $row->getCell('image')->getValue(); /* @var $imageObject Tx_Yag_Domain_Model_Item */ $jsImage = array('src' => $imageObject->getResolutionByConfig($this->resolutionConfigCollection->getResolutionConfig('medium'))->getPath(), 'alt' => $imageObject->getTitle()); if (is_array($this->crossSlideSettings['image']) && array_key_exists('time', $this->crossSlideSettings['image'])) { $jsImage['time'] = $this->crossSlideSettings['image']['time']; } if (is_array($this->crossSlideSettings['image']['pan']) && is_array($this->crossSlideSettings['image']['zoom'])) { $jsImage = array_merge($jsImage, $this->buildPanAndZoom($this->crossSlideSettings['image'])); } $jsImageArray[] = $jsImage; } return json_encode($jsImageArray); }
/** * Renders image tags * * @param Tx_PtExtlist_Domain_Model_List_ListData $listData * @return string */ public function render(Tx_PtExtlist_Domain_Model_List_ListData $listData) { $listDataArray = array(); foreach ($listData as $row) { $image = $row->getCell('image')->getValue(); /** @var Tx_YAG_Domain_Model_Item $image */ $itemMetaData = array('title' => $image->getTitle(), 'description' => $image->getDescription(), 'tags' => $image->getTagsSeparated()); $imageMeta = $image->getItemMeta(); if ($imageMeta instanceof Tx_Yag_Domain_Model_ItemMeta) { $itemMetaData['gpsLatitude'] = $imageMeta->getGpsLatitude(); $itemMetaData['gpsLongitude'] = $imageMeta->getGpsLongitude(); } foreach ($this->resolutions as $resolutionIdentifier) { $resolutionConfig = $image->getResolutionByConfig($this->resolutionConfigCollection->getResolutionConfig($resolutionIdentifier)); $itemMetaData[$resolutionIdentifier] = $resolutionConfig->getPath(); $itemMetaData[$resolutionIdentifier . 'Width'] = $resolutionConfig->getWidth(); $itemMetaData[$resolutionIdentifier . 'Height'] = $resolutionConfig->getHeight(); } $listDataArray[] = $itemMetaData; } return json_encode($listDataArray); }
/** * @param Tx_Yag_Domain_Configuration_Image_ResolutionConfigCollection $resolutionConfigCollection * @param $count * @return string */ protected function buildQueryStatementForImagesWithUnRenderedResolutions(Tx_Yag_Domain_Configuration_Image_ResolutionConfigCollection $resolutionConfigCollection, $count = 0) { $resolutionCount = $resolutionConfigCollection->count(); $resolutionParamHashArray = array(); foreach ($resolutionConfigCollection as $resolutionConfig) { /** @var Tx_Yag_Domain_Configuration_Image_ResolutionConfig $resolutionConfig */ $resolutionParamHashArray[] = $resolutionConfig->getParameterHash(); } $resolutionParamHashCSV = "'" . implode("','", $resolutionParamHashArray) . "'"; $statementTemplate = "SELECT item.*, rescache.rescount FROM tx_yag_domain_model_item item\n\t\t\t\t\t\t\t\tLEFT JOIN\n\t\t\t\t\t\t\t\t(SELECT tx_yag_domain_model_resolutionfilecache.item, count(*) rescount\n\t\t\t\t\t\t\t\tFROM `tx_yag_domain_model_resolutionfilecache`\n\t\t\t\t\t\t\t\tWHERE tx_yag_domain_model_resolutionfilecache.paramhash IN (%s)\n\t\t\t\t\t\t\t\tGROUP BY tx_yag_domain_model_resolutionfilecache.item) as rescache\n\t\t\t\t\t\t\t\tON rescache.item = item.uid\n\t\t\t\t\t\t\t\tWHERE rescount < %s OR isnull(rescount)"; $statementTemplate .= $count > 0 ? 'LIMIT 0, %s' : ''; return sprintf($statementTemplate, $resolutionParamHashCSV, $resolutionCount, $count); }