/** * @Route("/delete/{pid}", requirements={"pid" = "^[1-9]\d*$"}) * @Theme("admin") * @Template * * Delete a position. * * @param Request $request * @param BlockPositionEntity $positionEntity * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response */ public function deleteAction(Request $request, BlockPositionEntity $positionEntity) { if (!$this->hasPermission('ZikulaBlocksModule::position', $positionEntity->getName() . '::' . $positionEntity->getPid(), ACCESS_DELETE)) { throw new AccessDeniedException(); } $form = $this->createFormBuilder()->add('delete', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\SubmitType', ['label' => 'Delete'])->add('cancel', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\SubmitType', ['label' => 'Cancel'])->getForm(); $form->handleRequest($request); if ($form->isValid()) { if ($form->get('delete')->isClicked()) { $em = $this->getDoctrine()->getManager(); $em->remove($positionEntity); $em->flush(); $this->addFlash('status', __('Done! Position deleted.')); } if ($form->get('cancel')->isClicked()) { $this->addFlash('status', __('Operation cancelled.')); } return $this->redirect($this->generateUrl('zikulablocksmodule_admin_view')); } return ['form' => $form->createView(), 'position' => $positionEntity]; }