/** * Gets the HTML for the provided asset * @param \ride\service\AssetService $assetService * @param \ride\application\orm\asset\entry\AssetEntry $asset * @param string $style Name of the style * @return string HTML for the provided asset */ public function getAssetHtml(AssetService $assetService, AssetEntry $asset, $style = null) { if ($asset->isImage()) { $result = '<img src="' . $assetService->getAssetUrl($asset, $style) . '" title="' . htmlentities($asset->getName()) . '"'; if ($this->imageClass) { $result .= ' class="' . $this->imageClass . '"'; } if ($asset->getAlt()) { $result .= ' alt="' . $asset->getAlt() . '"'; } $result .= '>'; } elseif ($asset->isAudio()) { switch ($asset->getSource()) { case 'soundcloud': $result = '<iframe frameborder="0" src="' . $assetService->getAssetUrl($asset) . '"></iframe>'; break; default: $result = '<audio src="' . $assetService->getAssetUrl($asset) . '" controls></audio>'; } } elseif ($asset->isVideo()) { switch ($asset->getSource()) { case 'youtube': case 'vimeo': $result = '<div class="iframe iframe--16-9"><iframe frameborder="0" src="' . $asset->getEmbedUrl() . '"></iframe></div>'; break; default: $result = '<video src="' . $assetService->getAssetUrl($asset) . '" controls></video>'; break; } } else { $result = '<a href="' . $assetService->getAssetUrl($asset) . '">' . $asset->getName() . '</a>'; } return $result; }
/** * Action to get the original value of an asset * @param \ride\library\orm\OrmManager $orm * @param string $asset * @return null */ public function assetValueAction(OrmManager $orm, FileBrowser $fileBrowser, AssetService $assetService, $asset) { $assetModel = $orm->getAssetModel(); if (is_numeric($asset)) { $asset = $assetModel->getById($asset); } else { $locales = $orm->getLocales(); foreach ($locales as $locale) { $asset = $assetModel->getBy(array('filter' => array('slug' => $asset)), $locale); if ($asset) { break; } } } if (!$asset) { $this->response->setNotFound(); return; } $url = $assetService->getAssetUrl($asset, $this->request->getQueryParameter('style')); if ($url) { $this->response->setRedirect($url); return; } $file = $fileBrowser->getFile($asset->getValue()); if (!$file) { $this->response->setNotFound(); return; } $this->setFileView($file); }