mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-14 21:43:18 +00:00
Refactor basket_adapter
This commit is contained in:
@@ -45,5 +45,29 @@ class BasketElementRepository extends EntityRepository
|
||||
|
||||
return $query->getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param type $element_id
|
||||
* @param \User_Adapter $user
|
||||
* @return \Entities\BasketELement
|
||||
*/
|
||||
public function findUserElement($element_id, \User_Adapter $user)
|
||||
{
|
||||
$element = $this->find($element_id);
|
||||
|
||||
/* @var $element \Entities\BasketElement */
|
||||
if (null === $element)
|
||||
{
|
||||
throw new \Exception_NotFound(_('Element is not found'));
|
||||
}
|
||||
|
||||
if ($element->getBasket()->getowner()->get_id() != $user->get_id())
|
||||
{
|
||||
throw new \Exception_Forbidden(_('You have not access to this basket element'));
|
||||
}
|
||||
|
||||
return $element;
|
||||
}
|
||||
|
||||
}
|
@@ -15,7 +15,7 @@
|
||||
* @license http://opensource.org/licenses/gpl-3.0 GPLv3
|
||||
* @link www.phraseanet.com
|
||||
*/
|
||||
class Bridge_Exception extends Exception
|
||||
class Bridge_Exception extends \Exception
|
||||
{
|
||||
|
||||
}
|
@@ -15,7 +15,7 @@
|
||||
* @license http://opensource.org/licenses/gpl-3.0 GPLv3
|
||||
* @link www.phraseanet.com
|
||||
*/
|
||||
class Bridge_Exception_ApiConnectorNotConfigured extends Bridge_Exception
|
||||
class Bridge_Exception_ApiConnectorNotConfigured extends \Bridge_Exception
|
||||
{
|
||||
|
||||
}
|
||||
|
@@ -15,7 +15,7 @@
|
||||
* @license http://opensource.org/licenses/gpl-3.0 GPLv3
|
||||
* @link www.phraseanet.com
|
||||
*/
|
||||
class Bridge_Exception_ApiConnectorNotConnected extends Bridge_Exception
|
||||
class Bridge_Exception_ApiConnectorNotConnected extends \Bridge_Exception
|
||||
{
|
||||
|
||||
}
|
||||
|
@@ -1,21 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Phraseanet
|
||||
*
|
||||
* (c) 2005-2010 Alchemy
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Exception
|
||||
* @license http://opensource.org/licenses/gpl-3.0 GPLv3
|
||||
* @link www.phraseanet.com
|
||||
*/
|
||||
class Exception_Basket_NotFound extends Exception_NotFound
|
||||
{
|
||||
|
||||
}
|
@@ -127,7 +127,7 @@ class basket_element_adapter implements cache_cacheableInterface
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
$sql = 'SELECT s.usr_id as owner, v.id as validate_id, v.can_see_others,
|
||||
@@ -149,7 +149,7 @@ class basket_element_adapter implements cache_cacheableInterface
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
$first = true;
|
||||
@@ -493,7 +493,7 @@ class basket_element_adapter implements cache_cacheableInterface
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -518,7 +518,6 @@ class basket_element_adapter implements cache_cacheableInterface
|
||||
$note = strip_tags($note);
|
||||
|
||||
if (!$this->validate_id)
|
||||
|
||||
return false;
|
||||
|
||||
$appbox = appbox::get_instance();
|
||||
@@ -554,7 +553,7 @@ class basket_element_adapter implements cache_cacheableInterface
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
return $this;
|
||||
@@ -596,7 +595,9 @@ class basket_element_adapter implements cache_cacheableInterface
|
||||
foreach ($this->choices as $key => $value)
|
||||
{
|
||||
if (trim($value['note']) != '')
|
||||
{
|
||||
$n++;
|
||||
}
|
||||
}
|
||||
|
||||
return $n;
|
||||
|
@@ -479,23 +479,6 @@ class record_adapter implements record_Interface, cache_cacheableInterface
|
||||
*/
|
||||
public function move_to_collection(collection &$collection, appbox &$appbox)
|
||||
{
|
||||
$sql = 'UPDATE sselcont
|
||||
SET base_id = :base_id
|
||||
WHERE record_id = :record_id
|
||||
AND base_id IN (SELECT base_id FROM bas WHERE sbas_id = :sbas_id)';
|
||||
|
||||
$params = array(
|
||||
':base_id' => $collection->get_base_id(),
|
||||
':record_id' => $this->get_record_id(),
|
||||
':sbas_id' => $this->get_sbas_id()
|
||||
);
|
||||
|
||||
$stmt = $appbox->get_connection()->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
$stmt->closeCursor();
|
||||
|
||||
basket_adapter::revoke_baskets_record($this, $appbox);
|
||||
|
||||
$sql = "UPDATE record SET coll_id = :coll_id WHERE record_id =:record_id";
|
||||
|
||||
$params = array(
|
||||
@@ -1714,21 +1697,17 @@ class record_adapter implements record_Interface, cache_cacheableInterface
|
||||
$stmt->execute(array(':record_id' => $this->get_record_id()));
|
||||
$stmt->closeCursor();
|
||||
|
||||
$sql = 'SELECT s.ssel_id, c.sselcont_id, s.usr_id
|
||||
FROM sselcont c, ssel s
|
||||
WHERE c.base_id = :base_id AND c.record_id = :record_id
|
||||
AND s.ssel_id = c.ssel_id';
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute(array(':record_id' => $this->get_record_id(), ':base_id' => $this->get_base_id()));
|
||||
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
foreach ($rs as $row)
|
||||
$em = bootstrap::getCore()->getEntityManager();
|
||||
|
||||
$repository = $em->getRepository('\Entities\BasketElement');
|
||||
|
||||
/* @var $repository \Repositories\BasketElementRepository */
|
||||
foreach($repository->findElementsByRecord($this) as $basket_element)
|
||||
{
|
||||
$basket = basket_adapter::getInstance($appbox, $row['ssel_id'], $row['usr_id']);
|
||||
$basket->remove_from_ssel($row['sselcont_id']);
|
||||
$em->remove($basket_element);
|
||||
}
|
||||
|
||||
$stmt->closeCursor();
|
||||
|
||||
$em->flush();
|
||||
|
||||
foreach ($ftodel as $f)
|
||||
@unlink($f);
|
||||
@@ -1935,37 +1914,13 @@ class record_adapter implements record_Interface, cache_cacheableInterface
|
||||
*/
|
||||
public function get_container_baskets()
|
||||
{
|
||||
if ($this->container_basket)
|
||||
return $this->container_basket;
|
||||
|
||||
$appbox = appbox::get_instance();
|
||||
$session = $appbox->get_session();
|
||||
|
||||
$baskets = array();
|
||||
$sql = 'SELECT s.ssel_id FROM ssel s, sselcont c
|
||||
WHERE s.ssel_id = c.ssel_id
|
||||
AND c.base_id = :base_id AND record_id = :record_id
|
||||
AND usr_id = :usr_id AND temporaryType="0"';
|
||||
|
||||
$params = array(
|
||||
':base_id' => $this->get_base_id()
|
||||
, ':record_id' => $this->get_record_id()
|
||||
, ':usr_id' => $session->get_usr_id()
|
||||
);
|
||||
|
||||
$stmt = $appbox->get_connection()->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
foreach ($rs as $row)
|
||||
{
|
||||
$baskets[$row['ssel_id']] = basket_adapter::getInstance($appbox, $row['ssel_id'], $session->get_usr_id());
|
||||
}
|
||||
|
||||
$this->container_basket = $baskets;
|
||||
|
||||
return $this->container_basket;
|
||||
$Core = bootstrap::getCore();
|
||||
$em = $Core->getEntityManager();
|
||||
|
||||
$repo = $em->getRepository('\Entities\Baskets');
|
||||
|
||||
/* @var $$repo \Repositories\BasketRepository */
|
||||
return $repo->findContainingRecord($this);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -89,6 +89,7 @@ class record_preview extends record_adapter
|
||||
public function __construct($env, $pos, $contId, $reload_train, searchEngine_adapter $search_engine =null, $query='')
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
$Core = bootstrap::getCore();
|
||||
$number = null;
|
||||
$this->env = $env;
|
||||
|
||||
@@ -139,37 +140,42 @@ class record_preview extends record_adapter
|
||||
|
||||
break;
|
||||
case "BASK":
|
||||
$basket = basket_adapter::getInstance($appbox, $contId, $appbox->get_session()->get_usr_id());
|
||||
$em = $Core->getEntityManager();
|
||||
$repository = $em->getRepository('\Entities\Basket');
|
||||
|
||||
/* @var $repository \Repositories\BasketRepository */
|
||||
$Basket = $repository->findUserBasket($contId, $Core->getAuthenticatedUser());
|
||||
|
||||
$this->container = $basket;
|
||||
$this->total = count($basket->get_elements());
|
||||
/* @var $Basket \Entities\Basket */
|
||||
$this->container = $Basket;
|
||||
$this->total = $Basket->getElements()->count();
|
||||
$i = 0;
|
||||
$first = true;
|
||||
|
||||
foreach ($basket->get_elements() as $element)
|
||||
foreach ($Basket->getElements() as $element)
|
||||
{
|
||||
/* @var $element \Entities\BasketElement */
|
||||
$i++;
|
||||
if ($first)
|
||||
{
|
||||
$sbas_id = $element->get_record()->get_sbas_id();
|
||||
$record_id = $element->get_record()->get_record_id();
|
||||
$this->name = $basket->get_name();
|
||||
$number = $element->get_order();
|
||||
$sbas_id = $element->getRecord()->get_sbas_id();
|
||||
$record_id = $element->getRecord()->get_record_id();
|
||||
$this->name = $Basket->getName();
|
||||
$number = $element->getOrd();
|
||||
}
|
||||
$first = false;
|
||||
|
||||
if ($element->get_order() == $pos)
|
||||
if ($element->getOrd() == $pos)
|
||||
{
|
||||
$sbas_id = $element->get_record()->get_sbas_id();
|
||||
$record_id = $element->get_record()->get_record_id();
|
||||
$this->name = $basket->get_name();
|
||||
$number = $element->get_order();
|
||||
$sbas_id = $element->getRecord()->get_sbas_id();
|
||||
$record_id = $element->getRecord()->get_record_id();
|
||||
$this->name = $Basket->getName();
|
||||
$number = $element->getOrd();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "FEED":
|
||||
$entry = Feed_Entry_Adapter::load_from_id($appbox, $contId);
|
||||
// $basket = basket_adapter::getInstance($appbox, $contId, $appbox->get_session()->get_usr_id());
|
||||
|
||||
$this->container = $entry;
|
||||
$this->total = count($entry->get_content());
|
||||
|
@@ -36,25 +36,31 @@ class set_export extends set_abstract
|
||||
*/
|
||||
public function __construct($lst, $sstid)
|
||||
{
|
||||
$Core = bootstrap::getCore();
|
||||
|
||||
$appbox = appbox::get_instance();
|
||||
$session = $appbox->get_session();
|
||||
$registry = $appbox->get_registry();
|
||||
|
||||
|
||||
$user = User_Adapter::getInstance($session->get_usr_id(), $appbox);
|
||||
|
||||
$user = $Core->getAuthenticatedUser();
|
||||
|
||||
$download_list = array();
|
||||
|
||||
$remain_hd = array();
|
||||
|
||||
if ($sstid != "")
|
||||
{
|
||||
$basket = basket_adapter::getInstance($appbox, $sstid, $user->get_id());
|
||||
$em = $Core->getEntityManager();
|
||||
$repository = $em->getRepository('\Entities\Basket');
|
||||
|
||||
/* @var $repository \Repositories\BasketRepository */
|
||||
$Basket = $repository->findUserBasket($sstid, $user);
|
||||
|
||||
foreach ($basket->get_elements() as $basket_element)
|
||||
foreach ($Basket->getElements() as $basket_element)
|
||||
{
|
||||
$base_id = $basket_element->get_record()->get_base_id();
|
||||
$record_id = $basket_element->get_record()->get_record_id();
|
||||
/* @var $basket_element \Entities\BasketElement */
|
||||
$base_id = $basket_element->getRecord()->get_base_id();
|
||||
$record_id = $basket_element->getRecord()->get_record_id();
|
||||
|
||||
if (!isset($remain_hd[$base_id]))
|
||||
{
|
||||
@@ -70,7 +76,7 @@ class set_export extends set_abstract
|
||||
|
||||
$current_element = $download_list[] =
|
||||
new record_exportElement(
|
||||
$basket_element->get_record()->get_sbas_id(),
|
||||
$basket_element->getRecord()->get_sbas_id(),
|
||||
$record_id,
|
||||
$basket->get_name() . '/',
|
||||
$remain_hd[$base_id]
|
||||
|
@@ -219,19 +219,29 @@ class set_order extends set_abstract
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
$core = \bootstrap::getCore();
|
||||
|
||||
$em = $core->getEntityManager();
|
||||
$repository = $em->getRepository('\Entities\Basket');
|
||||
|
||||
/* @var $repository \Repositories\BasketRepository */
|
||||
$Basket = $repository->findUserBasket($this->ssel_id, $core->getAuthenticatedUser());
|
||||
|
||||
if(!$Basket)
|
||||
{
|
||||
$basket = basket_adapter::getInstance($appbox, $this->ssel_id, $session->get_usr_id());
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$basket = basket_adapter::create($appbox, sprintf(_('Commande du %s'), $this->created_on->format('Y-m-d')), $this->user, '', $pusher);
|
||||
|
||||
$this->ssel_id = $basket->get_ssel_id();
|
||||
|
||||
$Basket = new Basket();
|
||||
$Basket->setName(sprintf(_('Commande du %s'), $this->created_on->format('Y-m-d')));
|
||||
$Basket->setOwner($this->user);
|
||||
$Basket->setPusher($core->getAuthenticatedUser());
|
||||
|
||||
$em->persist($Basket);
|
||||
$em->flush();
|
||||
|
||||
$this->ssel_id = $Basket->getId();
|
||||
|
||||
$sql = 'UPDATE `order` SET ssel_id = :ssel_id WHERE id = :order_id';
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute(array(':ssel_id' => $basket->get_ssel_id(), ':order_id' => $this->id));
|
||||
$stmt->execute(array(':ssel_id' => $Basket->getId(), ':order_id' => $this->id));
|
||||
$stmt->closeCursor();
|
||||
}
|
||||
|
||||
|
@@ -31,21 +31,14 @@ class set_selection extends set_abstract
|
||||
|
||||
/**
|
||||
*
|
||||
* @param basket_adapter $basket
|
||||
* @param boolean $flatten_if_grouping
|
||||
* @param \Entities\Basket $basket
|
||||
* @return set_selection
|
||||
*/
|
||||
public function load_basket(basket_adapter $basket, $flatten_if_grouping = true)
|
||||
public function load_basket(\Entities\Basket $Basket)
|
||||
{
|
||||
if ($basket->is_grouping() && !$flatten_if_grouping)
|
||||
foreach ($Basket->getElements() as $basket_element)
|
||||
{
|
||||
$record = new record_adapter($basket->get_sbas_id(), $basket->get_record_id(), count($this->elements));
|
||||
$this->add_element($record);
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach ($basket->get_elements() as $basket_element)
|
||||
$this->add_element($basket_element->get_record());
|
||||
$this->add_element($basket_element->getRecord());
|
||||
}
|
||||
|
||||
return $this;
|
||||
|
Reference in New Issue
Block a user