public function updateLayoutBlockSortAction(Request $request)
{
$zones = $request->get('zones', array());
$objectId = $request->get('objectId');
$pageAdmin = $this->container->get('networking_init_cms.admin.page');
foreach ($zones as $zone) {
$zoneName = $zone['zone'];
if (array_key_exists('layoutBlocks', $zone) && is_array($zone['layoutBlocks'])) {
foreach ($zone['layoutBlocks'] as $key => $layoutBlockStr) {
$sort = ++$key;
$blockId = str_replace('layoutBlock_', '', $layoutBlockStr);
if ($blockId) {
try {
/** @var \Networking\InitCmsBundle\Model\LayoutBlockInterface $layoutBlock */
$layoutBlock = $this->admin->getObject($blockId);
if ($layoutBlock) {
$layoutBlock->setSortOrder($sort);
$layoutBlock->setZone($zoneName);
}
$this->admin->update($layoutBlock);
} catch (\Exception $e) {
$message = $e->getMessage();
return new JsonResponse(array('messageStatus' => 'error', 'message' => $message));
}
}
}
}
}
$data = array('messageStatus' => 'success', 'message' => $this->translate('message.layout_blocks_sorted', array('zone' => '')));
$page = $pageAdmin->getModelManager()->find($pageAdmin->getClass(), $objectId);
$pageAdmin->setSubject($page);
if ($page) {
$pageStatus = $this->renderView('NetworkingInitCmsBundle:PageAdmin:page_status_settings.html.twig', array('admin' => $pageAdmin, 'object' => $page));
$data['pageStatusSettings'] = $pageStatus;
$data['pageStatus'] = $this->translate($page->getStatus());
}
return new JsonResponse($data);
}