mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-12 04:23:19 +00:00
80 lines
2.1 KiB
PHP
80 lines
2.1 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of Phraseanet
|
|
*
|
|
* (c) 2005-2012 Alchemy
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
use Symfony\Component\Filesystem\Filesystem;
|
|
|
|
/**
|
|
*
|
|
* @license http://opensource.org/licenses/gpl-3.0 GPLv3
|
|
* @link www.phraseanet.com
|
|
*/
|
|
/* @var $Core \Alchemy\Phrasea\Core */
|
|
$Core = require_once __DIR__ . "/../../lib/bootstrap.php";
|
|
$Request = \Symfony\Component\HttpFoundation\Request::createFromGlobals();
|
|
|
|
$appbox = appbox::get_instance($Core);
|
|
$session = $appbox->get_session();
|
|
|
|
$gatekeeper = gatekeeper::getInstance($Core);
|
|
$gatekeeper->require_session();
|
|
|
|
|
|
|
|
$request = http_request::getInstance();
|
|
$parm = $request->get_parms("lst", "obj", "ssttid", "type", "businessfields");
|
|
|
|
$download = new set_export($parm['lst'], $parm['ssttid']);
|
|
|
|
if ($parm["type"] == "title")
|
|
$titre = true;
|
|
else
|
|
$titre = false;
|
|
|
|
$list = $download->prepare_export($Core->getAuthenticatedUser(), new Filesystem(), $parm['obj'], $titre, $parm['businessfields']);
|
|
|
|
$exportname = "Export_" . date("Y-n-d") . '_' . mt_rand(100, 999);
|
|
|
|
if ($parm["ssttid"] != "") {
|
|
$em = $Core->getEntityManager();
|
|
$repository = $em->getRepository('\Entities\Basket');
|
|
|
|
/* @var $repository \Repositories\BasketRepository */
|
|
|
|
$basket = $repository->findUserBasket($Request->get('ssttid'), $Core->getAuthenticatedUser(), false);
|
|
$exportname = str_replace(' ', '_', $basket->getName()) . "_" . date("Y-n-d");
|
|
}
|
|
|
|
$list['export_name'] = $exportname . '.zip';
|
|
|
|
$endDate = new DateTime('+3 hours');
|
|
|
|
$url = random::getUrlToken(\random::TYPE_DOWNLOAD, $session->get_usr_id(), $endDate, serialize($list));
|
|
|
|
if ($url) {
|
|
|
|
$params = array(
|
|
'lst' => $parm['lst'],
|
|
'downloader' => $session->get_usr_id(),
|
|
'subdefs' => $parm['obj'],
|
|
'from_basket' => $parm["ssttid"],
|
|
'export_file' => $exportname
|
|
);
|
|
|
|
|
|
$events_mngr = $Core['events-manager'];
|
|
$events_mngr->trigger('__DOWNLOAD__', $params);
|
|
|
|
return phrasea::redirect('/download/' . $url);
|
|
}
|
|
phrasea::headers(500);
|
|
|
|
|