Exemplo n.º 1
0
 /**
  * @Route("/changeorder", options={"expose"=true})
  * @Method("POST")
  * 
  * Changeblockorder.
  *
  * @param Request $request
  * 
  *  blockorder array of sorted blocks (value = block id)
  *  position int zone id
  *
  * @return AjaxResponse|ForbiddenResponse true or Ajax error
  */
 public function changeblockorderAction(Request $request)
 {
     $this->checkAjaxToken();
     if (!SecurityUtil::checkPermission('ZikulaBlocksModule::', '::', ACCESS_ADMIN)) {
         return new ForbiddenResponse($this->__('No permission for this action.'));
     }
     $blockorder = $request->request->get('blockorder', array());
     $position = $request->request->get('position');
     // remove all blocks from this position
     $query = $this->entityManager->createQueryBuilder()->delete()->from('ZikulaBlocksModule:BlockPlacementEntity', 'p')->where('p.pid = :pid')->setParameter('pid', $position)->getQuery();
     $query->getResult();
     // add new block positions
     foreach ((array) $blockorder as $order => $bid) {
         $placement = new BlockPlacementEntity();
         $placement->setPid($position);
         $placement->setBid($bid);
         $placement->setSortorder($order);
         $this->entityManager->persist($placement);
     }
     $this->entityManager->flush();
     return new AjaxResponse(array('result' => true));
 }