/** * 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(); } } }
/** * 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(); } } }
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; } } }
/** * @param ModelCriteria $query * @param UpdatePositionEvent $event * @param EventDispatcherInterface|null $dispatcher * * @since 2.3 */ protected function genericUpdateDelegatePosition(ModelCriteria $query, UpdatePositionEvent $event, EventDispatcherInterface $dispatcher = null) { if (null !== ($object = $query->findOne())) { 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(); } } }