예제 #1
0
 public function getAsset()
 {
     if ($this->asset === null) {
         $this->asset = AssetFacade::find($this->attrs['asset_id']);
     }
     return $this->asset;
 }
예제 #2
0
 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']);
     }
 }
예제 #3
0
파일: Asset.php 프로젝트: boomcms/boom-core
 /**
  * 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;
 }