/** * Return rendered record image HTML. * * @param string $type Page type (list, record). * @param array $params Optional array of image parameters as * an associative array of parameter => value pairs: * 'w' Width * 'h' Height * * @return string */ public function render($type = 'list', $params = null) { if ($params) { foreach ($params as $size => $sizeParams) { $this->params[$size] = array_merge($this->params[$size], $sizeParams); } } $view = $this->getView(); $view->type = $type; $view = $this->getView(); $urlHelper = $this->getView()->plugin('url'); $numOfImages = $this->record->getNumOfRecordImages('large'); $params = $this->record->getRecordImage('small'); unset($params['url']); unset($params['size']); $view->smallImage = $urlHelper('cover-show') . '?' . http_build_query(array_merge($params, $this->params['small'])); $params = $this->record->getRecordImage('large'); unset($params['url']); unset($params['size']); $view->mediumImage = $urlHelper('cover-show') . '?' . http_build_query(array_merge($params, $this->params['medium'])); $view->largeImage = $urlHelper('cover-show') . '?' . http_build_query(array_merge($params, $this->params['large'])); $images = []; if ($numOfImages > 1) { for ($i = 0; $i < $numOfImages; $i++) { $params['index'] = $i; $images[] = ['small' => $urlHelper('cover-show') . '?' . http_build_query(array_merge($params, $this->params['small'])), 'medium' => $urlHelper('cover-show') . '?' . http_build_query(array_merge($params, $this->params['medium'])), 'large' => $urlHelper('cover-show') . '?' . http_build_query(array_merge($params, $this->params['large']))]; } } $view->allImages = $images; return $view->render('RecordDriver/SolrDefault/record-image.phtml'); }
/** * Return rendered record image HTML. * * @param string $type Page type (list, record). * @param array $params Optional array of image parameters as * an associative array of parameter => value pairs: * 'w' Width * 'h' Height * * @return string */ public function render($type = 'list', $params = null) { if ($params) { foreach ($params as $size => $sizeParams) { $this->params[$size] = array_merge($this->params[$size], $sizeParams); } } $view = $this->getView(); $view->type = $type; $view = $this->getView(); $urlHelper = $this->getView()->plugin('url'); $numOfImages = $this->record->getNumOfRecordImages('small'); $numOfLargeImages = $this->record->getNumOfRecordImages('large'); if ($view->layout()->templateDir === 'combined') { $numOfImages = min(1, $numOfImages); } $imageTypes = ['small' => 'smallImage', 'medium' => 'mediumImage', 'large' => 'largeImage']; $images = []; foreach ($imageTypes as $imageType => $viewParam) { $params = $this->record->getRecordImage($imageType); if ($imageType == 'large' && !$numOfLargeImages || !is_array($params)) { $view->{$viewParam} = $params; } else { unset($params['url']); unset($params['size']); $view->{$viewParam} = $urlHelper('cover-show') . '?' . http_build_query(array_merge($params, $this->params[$imageType])); if ($numOfImages > 1) { for ($i = 0; $i < $numOfImages; $i++) { if (!isset($images[$i])) { $images[$i] = []; } $params['index'] = $i; $images[$i][$imageType] = $urlHelper('cover-show') . '?' . http_build_query(array_merge($params, $this->params[$imageType])); } } } } $view->allImages = $images; return $view->render('RecordDriver/SolrDefault/record-image.phtml'); }