public function getAsset() { if ($this->asset === null) { $this->asset = AssetFacade::find($this->attrs['asset_id']); } return $this->asset; }
public function __construct(Page $page, array $attrs, $slotname, $editable = true) { parent::__construct($page, $attrs, $slotname, $editable); if (isset($attrs['asset_id'])) { $this->asset = AssetFacade::find($this->attrs['asset_id']); } }
/** * Returns the associated asset. * * @return AssetContract */ public function getAsset() { if ($this->asset === null) { $this->asset = AssetFacade::find($this->getAssetId()); } return $this->asset; }
public function download() { $assets = AssetFacade::find($this->request->input('assets')); if (count($assets) === 1) { return Response::download($assets[0]->getFilename(), $assets[0]->getOriginalFilename()); } $downloadFilename = rtrim($this->request->input('filename'), '.zip') . '.zip'; $filename = tempnam(sys_get_temp_dir(), 'boomcms_asset_download'); $zip = new ZipArchive(); $zip->open($filename, ZipArchive::CREATE); foreach ($assets as $asset) { $zip->addFile($asset->getFilename(), $asset->getOriginalFilename()); } $zip->close(); $response = Response::make()->header('Content-type', 'application/zip')->header('Content-Disposition', "attachment; filename={$downloadFilename}")->setContent(file_get_contents($filename)); unlink($filename); return $response; }