コード例 #1
0
ファイル: BaseAction.php プロジェクト: manuelbcd/thelia
 /**
  * Changes object position, selecting absolute ou relative change.
  *
  * @param ModelCriteria       $query
  * @param UpdatePositionEvent $event
  *
  * @return null
  */
 protected function genericUpdatePosition(ModelCriteria $query, UpdatePositionEvent $event)
 {
     if (null !== ($object = $query->findPk($event->getObjectId()))) {
         $object->setDispatcher($event->getDispatcher());
         $mode = $event->getMode();
         if ($mode == UpdatePositionEvent::POSITION_ABSOLUTE) {
             $object->changeAbsolutePosition($event->getPosition());
         } elseif ($mode == UpdatePositionEvent::POSITION_UP) {
             $object->movePositionUp();
         } elseif ($mode == UpdatePositionEvent::POSITION_DOWN) {
             $object->movePositionDown();
         }
     }
 }
コード例 #2
0
ファイル: BaseAction.php プロジェクト: gillesbourgeat/core
 /**
  * Changes object position, selecting absolute ou relative change.
  *
  * @param ModelCriteria       $query
  * @param UpdatePositionEvent $event
  * @param EventDispatcherInterface $dispatcher
  *
  * @return null
  */
 protected function genericUpdatePosition(ModelCriteria $query, UpdatePositionEvent $event, EventDispatcherInterface $dispatcher = null)
 {
     if (null !== ($object = $query->findPk($event->getObjectId()))) {
         //for backward compatibility
         $object->setDispatcher($dispatcher !== null ? $dispatcher : $event->getDispatcher());
         $mode = $event->getMode();
         if ($mode == UpdatePositionEvent::POSITION_ABSOLUTE) {
             $object->changeAbsolutePosition($event->getPosition());
         } elseif ($mode == UpdatePositionEvent::POSITION_UP) {
             $object->movePositionUp();
         } elseif ($mode == UpdatePositionEvent::POSITION_DOWN) {
             $object->movePositionDown();
         }
     }
 }
コード例 #3
0
ファイル: Folder.php プロジェクト: savvagee/thelia
 public function updatePosition(UpdatePositionEvent $event)
 {
     if (null !== ($folder = FolderQuery::create()->findPk($event->getObjectId()))) {
         $folder->setDispatcher($event->getDispatcher());
         switch ($event->getMode()) {
             case UpdatePositionEvent::POSITION_ABSOLUTE:
                 $folder->changeAbsolutePosition($event->getPosition());
                 break;
             case UpdatePositionEvent::POSITION_DOWN:
                 $folder->movePositionDown();
                 break;
             case UpdatePositionEvent::POSITION_UP:
                 $folder->movePositionUp();
                 break;
         }
     }
 }
コード例 #4
0
ファイル: BaseAction.php プロジェクト: vigourouxjulien/thelia
 /**
  * Changes object position, selecting absolute ou relative change.
  *
  * @param ModelCriteria       $query
  * @param UpdatePositionEvent $event
  * @param EventDispatcherInterface $dispatcher
  *
  * @return null
  */
 protected function genericUpdatePosition(ModelCriteria $query, UpdatePositionEvent $event, EventDispatcherInterface $dispatcher = null)
 {
     if (null !== ($object = $query->findPk($event->getObjectId()))) {
         if (!isset(class_uses($object)['Thelia\\Model\\Tools\\PositionManagementTrait'])) {
             throw new \InvalidArgumentException("Your model does not implement the PositionManagementTrait trait");
         }
         $object->setDispatcher($dispatcher !== null ? $dispatcher : $event->getDispatcher());
         $mode = $event->getMode();
         if ($mode == UpdatePositionEvent::POSITION_ABSOLUTE) {
             $object->changeAbsolutePosition($event->getPosition());
         } elseif ($mode == UpdatePositionEvent::POSITION_UP) {
             $object->movePositionUp();
         } elseif ($mode == UpdatePositionEvent::POSITION_DOWN) {
             $object->movePositionDown();
         }
     }
 }