Index: branches/5.3.x/core/units/promo_blocks/promo_block_tp.php =================================================================== --- branches/5.3.x/core/units/promo_blocks/promo_block_tp.php (revision 16529) +++ branches/5.3.x/core/units/promo_blocks/promo_block_tp.php (revision 16530) @@ -1,91 +1,123 @@ getObject($params); $url_params = Array ( $this->Prefix . '_event' => 'OnFollowLink', 'pass' => 'm,' . $this->Prefix, '__NO_REWRITE__' => 1, ); return $this->Application->HREF('index', '', $url_params); } /** * Checks, that link should be opened in new window * * @param Array $params * @return bool * @access protected */ protected function LinkInNewWindow($params) { /** @var kDBItem $object */ $object = $this->getObject($params); if ( $object->GetDBField('LinkType') == 1 ) { // Internal return false; } return $object->GetDBField('OpenInNewWindow'); } /** * Get value from corresponding PromoGroupBlocks record * * @param Array $params * @return bool * @access protected */ protected function GetGroupSetting(Array $params) { static $group_data = null; if ( !isset($group_data) ) { if ( isset($params['group_id']) && $params['group_id'] ) { $group_id = $params['group_id']; } else { /** @var CategoriesItem $page */ $page = $this->Application->recallObject('st'); $group_id = $page->GetDBField('PromoBlockGroupId'); } $sql = 'SELECT * FROM ' . TABLE_PREFIX . 'PromoBlockGroups WHERE PromoBlockGroupId = ' . (int)$group_id; $group_data = $this->Conn->GetRow($sql); } $setting_name = $params['name']; return isset($group_data[$setting_name]) ? $group_data[$setting_name] : ''; } + + /** + * Image Field + * + * @param array $params Tag params. + * + * @return string + */ + protected function ImageField(array $params) + { + $field = $this->SelectParam($params, 'name,field'); + + if ( !$field ) { + $field = 'Image'; + } + + /** @var kMultiLanguage $multi_language_formatter */ + $multi_language_formatter = $this->Application->recallObject('kMultiLanguage'); + $current_language_field = $multi_language_formatter->LangFieldname($field); + + /** @var kDBItem $object */ + $object = $this->getObject($params); + + if ( !$object->GetDBField($current_language_field) ) { + $current_language_field = $multi_language_formatter->LangFieldname($field, true); + } + + $params['name'] = $current_language_field; + + return $this->Field($params); + } + }