protected function getLayoutBlockFormWidget($objectId, $elementId, $uniqId = null, $code = 'networking_init_cms.admin.page')
{
if (!$elementId || !$code) {
throw new NotFoundHttpException();
}
/** @var \Networking\InitCmsBundle\Admin\Model\PageAdmin $pageAdmin */
$pageAdmin = $this->container->get($code);
/** @var Request $request */
$request = $this->get('request_stack')->getCurrentRequest();
$pageAdmin->setRequest($request);
if ($uniqId) {
$pageAdmin->setUniqid($uniqId);
}
$page = $pageAdmin->getModelManager()->find($pageAdmin->getClass(), $objectId);
if ($objectId && !$page) {
throw new NotFoundHttpException();
}
if (!$page) {
$page = $pageAdmin->getNewInstance();
}
$request->attributes->add(array('objectId' => $objectId));
$request->attributes->add(array('page_locale' => $page->getLocale()));
$pageAdmin->setSubject($page);
$formBuilder = $pageAdmin->getFormBuilder();
/** @var \Symfony\Component\Form\Form $form */
$form = $formBuilder->getForm();
$form->setData($page);
/** @var \Sonata\AdminBundle\Admin\AdminHelper $helper */
$helper = $this->get('sonata.admin.helper');
$view = $helper->getChildFormView($form->createView(), $elementId);
$twig = $this->get('twig');
$extension = $twig->getExtension('form');
$extension->initRuntime($twig);
$extension->renderer->setTheme($view, $this->admin->getFormTheme());
return $extension->renderer->searchAndRenderBlock($view, 'widget');
}