/**
  * 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);
 }
예제 #4
0
 /**
  * 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);
 }
예제 #5
0
 /**
  * @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);
 }