/** * 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; } } }
/** * 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(); } } }
/** * Handle import category change position event * * @param \Thelia\Core\Event\UpdatePositionEvent $updatePositionEvent */ public function importCategoryChangePosition(UpdatePositionEvent $updatePositionEvent) { $this->handler->getCategory($updatePositionEvent->getObjectId(), true); $this->genericUpdatePosition(new ImportCategoryQuery(), $updatePositionEvent); }
/** * @param UpdatePositionEvent $event * @return null|\Symfony\Component\HttpFoundation\Response */ protected function performAdditionalUpdatePositionAction($event) { $category = CategoryQuery::create()->findPk($event->getObjectId()); $response = null; if ($category != null) { // Redirect to parent category list $category_id = $category->getParent(); $response = $this->redirectToListTemplateWithId($category_id); } return $response; }
/** * Handle import category change position event * * @param UpdatePositionEvent $updatePositionEvent * @param $eventName * @param EventDispatcherInterface $dispatcher */ public function importCategoryChangePosition(UpdatePositionEvent $updatePositionEvent, $eventName, EventDispatcherInterface $dispatcher) { $this->handler->getCategory($updatePositionEvent->getObjectId(), true); $this->genericUpdatePosition(new ImportCategoryQuery(), $updatePositionEvent, $dispatcher); }