mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-17 06:53:15 +00:00
Merge with 3.6
This commit is contained in:
@@ -56,7 +56,7 @@ $list['export_name'] = $exportname . '.zip';
|
||||
|
||||
$endDate = new DateTime('+3 hours');
|
||||
|
||||
$url = random::getUrlToken('download', $session->get_usr_id(), $endDate, serialize($list));
|
||||
$url = random::getUrlToken(\random::TYPE_DOWNLOAD, $session->get_usr_id(), $endDate, serialize($list));
|
||||
|
||||
if ($url)
|
||||
{
|
||||
|
@@ -16,7 +16,7 @@
|
||||
*/
|
||||
include_once __DIR__ . '/../../lib/bootstrap.php';
|
||||
|
||||
$appbox = appbox::get_instance(registry::get_instance());
|
||||
$appbox = appbox::get_instance(\bootstrap::getCore());
|
||||
$session = $appbox->get_session();
|
||||
phrasea::use_i18n(Session_Handler::get_locale());
|
||||
|
||||
|
@@ -218,10 +218,16 @@
|
||||
return this.datas;
|
||||
},
|
||||
empty : function(){
|
||||
var $this = this;
|
||||
this.datas = new Array();
|
||||
|
||||
jQuery(this.options.selector, this.$container).filter('.selected:visible').removeClass('selected');
|
||||
|
||||
if(typeof $this.options.selectStop === 'function')
|
||||
{
|
||||
$this.options.selectStop(jQuery.Event('selectStop'), $this);
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
length : function(){
|
||||
|
@@ -16,103 +16,139 @@
|
||||
* @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();
|
||||
$registry = $Core->getRegistry();
|
||||
|
||||
ob_start(null, 0);
|
||||
|
||||
$request = http_request::getInstance();
|
||||
$parm = $request->get_parms("lst", "obj", "destmail", "subjectmail", "reading_confirm", "textmail", "ssttid", "type");
|
||||
|
||||
|
||||
$gatekeeper = gatekeeper::getInstance($Core);
|
||||
$gatekeeper->require_session();
|
||||
|
||||
phrasea::headers();
|
||||
|
||||
$user = User_Adapter::getInstance($session->get_usr_id(), $appbox);
|
||||
|
||||
$from = array('name' => $user->get_display_name(), 'email' => $user->get_email());
|
||||
|
||||
if ($parm["type"] == "title")
|
||||
$titre = true;
|
||||
else
|
||||
$titre=false;
|
||||
|
||||
$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");
|
||||
}
|
||||
|
||||
$download = new set_export($parm['lst'], $parm['ssttid']);
|
||||
|
||||
$list = $download->prepare_export($parm['obj'], $titre);
|
||||
|
||||
$list['export_name'] = $exportname . '.zip';
|
||||
$list['email'] = $parm["destmail"];
|
||||
|
||||
$endate_obj = new DateTime('+1 day');
|
||||
$endDate = $endate_obj;
|
||||
|
||||
$token = random::getUrlToken('email', false, $endDate, serialize($list));
|
||||
|
||||
$emails = explode(',', $parm["destmail"]);
|
||||
|
||||
$dest = array();
|
||||
|
||||
foreach ($emails as $email)
|
||||
$dest = array_merge($dest, explode(';', $email));
|
||||
|
||||
$res = $dest;
|
||||
if ($token)
|
||||
{
|
||||
$url = $registry->get('GV_ServerName') . 'mail-export/' . $token . '/';
|
||||
|
||||
|
||||
|
||||
$reading_confirm_to = false;
|
||||
if ($parm['reading_confirm'] == '1')
|
||||
{
|
||||
$reading_confirm_to = $user->get_email();
|
||||
}
|
||||
|
||||
foreach ($dest as $key => $email)
|
||||
{
|
||||
if (($result = mail::send_documents(trim($email), $url, $from, $endate_obj, $parm["textmail"], $reading_confirm_to)) === true)
|
||||
unset($res[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
if (count($res) == 0)
|
||||
echo "<script type='text/javascript'>parent.$('#sendmail .close_button:first').trigger('click');</script>";
|
||||
else
|
||||
{
|
||||
echo "<script type='text/javascript'>alert('" . str_replace("'", "\'", sprintf(_('export::mail: erreur lors de l\'envoi aux adresses emails %s'), implode(', ', $res))) . "');</script>";
|
||||
}
|
||||
|
||||
echo ob_get_clean();
|
||||
ob_flush();
|
||||
flush();
|
||||
|
||||
set_time_limit(0);
|
||||
session_write_close();
|
||||
ignore_user_abort(true);
|
||||
|
||||
$zipFile = $registry->get('GV_RootPath') . 'tmp/download/' . $token . '.zip';
|
||||
$Core = require_once __DIR__ . '/../../lib/bootstrap.php';
|
||||
$Request = \Symfony\Component\HttpFoundation\Request::createFromGlobals();
|
||||
|
||||
$registry = $Core->getRegistry();
|
||||
|
||||
$gatekeeper = gatekeeper::getInstance($Core);
|
||||
$gatekeeper->require_session();
|
||||
|
||||
$events_mngr = \eventsmanager_broker::getInstance(\appbox::get_instance($Core), $Core);
|
||||
|
||||
|
||||
$user = $Core->getAuthenticatedUser();
|
||||
|
||||
$from = array('name' => $user->get_display_name(), 'email' => $user->get_email());
|
||||
|
||||
$titre = $Request->get("type") == "title" ? : false;
|
||||
|
||||
$exportname = "Export_" . date("Y-n-d") . '_' . mt_rand(100, 999);
|
||||
|
||||
if ($Request->get("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");
|
||||
}
|
||||
|
||||
$download = new set_export($Request->get('lst', ''), $Request->get('ssttid', ''));
|
||||
|
||||
$list = $download->prepare_export($Request->get('obj'), $titre);
|
||||
$list['export_name'] = $exportname . '.zip';
|
||||
$list['email'] = $Request->get("destmail", "");
|
||||
|
||||
$endate_obj = new DateTime('+1 day');
|
||||
$endDate = $endate_obj;
|
||||
|
||||
$token = random::getUrlToken(\random::TYPE_EMAIL, false, $endDate, serialize($list));
|
||||
|
||||
//GET EMAILS
|
||||
|
||||
$dest = array();
|
||||
|
||||
$mails = explode(';', $Request->get("destmail", ''));
|
||||
|
||||
foreach ($mails as $email)
|
||||
{
|
||||
if (filter_var($email, FILTER_VALIDATE_EMAIL))
|
||||
{
|
||||
$dest[] = $email;
|
||||
}
|
||||
else
|
||||
{
|
||||
$params = array(
|
||||
'usr_id' => $Core->getAuthenticatedUser()->get_id()
|
||||
, 'lst' => $Request->get('lst', '')
|
||||
, 'ssttid' => $Request->get('ssttid')
|
||||
, 'dest' => $email
|
||||
, 'reason' => \eventsmanager_notify_downloadmailfail::MAIL_NO_VALID
|
||||
);
|
||||
|
||||
$events_mngr->trigger('__EXPORT_MAIL_FAIL__', $params);
|
||||
}
|
||||
}
|
||||
|
||||
//got some emails
|
||||
if (count($dest) > 0 && $token)
|
||||
{
|
||||
$reading_confirm_to = false;
|
||||
|
||||
if ($Request->get('reading_confirm') == '1')
|
||||
{
|
||||
$reading_confirm_to = $user->get_email();
|
||||
}
|
||||
|
||||
//BUILDING ZIP
|
||||
|
||||
$zipFile = $registry->get('GV_RootPath') . 'tmp/download/' . $token . '.zip';
|
||||
set_export::build_zip($token, $list, $zipFile);
|
||||
|
||||
$res = $dest;
|
||||
|
||||
$url = $registry->get('GV_ServerName') . 'mail-export/' . $token . '/';
|
||||
|
||||
foreach ($dest as $key => $email)
|
||||
{
|
||||
if (($result = mail::send_documents(trim($email), $url, $from, $endate_obj, $Request->get("textmail"), $reading_confirm_to)) === true)
|
||||
{
|
||||
unset($res[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
//some email fails
|
||||
if (count($res) > 0)
|
||||
{
|
||||
foreach ($res as $email)
|
||||
{
|
||||
$params = array(
|
||||
'usr_id' => $Core->getAuthenticatedUser()->get_id()
|
||||
, 'lst' => $Request->get('lst')
|
||||
, 'ssttid' => $Request->get('ssttid')
|
||||
, 'dest' => $email
|
||||
, 'reason' => \eventsmanager_notify_downloadmailfail::MAIL_FAIL
|
||||
);
|
||||
|
||||
$events_mngr->trigger('__EXPORT_MAIL_FAIL__', $params);
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif(!$token && count($dest) > 0)
|
||||
{
|
||||
foreach ($res as $email)
|
||||
{
|
||||
$params = array(
|
||||
'usr_id' => $Core->getAuthenticatedUser()->get_id()
|
||||
, 'lst' => $Request->get('lst')
|
||||
, 'ssttid' => $Request->get('ssttid')
|
||||
, 'dest' => $email
|
||||
, 'reason' => 0
|
||||
);
|
||||
|
||||
$events_mngr->trigger('__EXPORT_MAIL_FAIL__', $params);
|
||||
}
|
||||
}
|
||||
|
||||
set_export::build_zip($token, $list, $zipFile);
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user