/** * @param Symfony\Component\HttpFoundation\Request $request * * @return Symfony\Component\HttpFoundation\Response */ public function indexAction(Request $request) { $this->validateAccessForRole('ROLE_ACCESS_THEMES'); $listManager = $this->createEntityListManager('RZ\\Roadiz\\Core\\Entities\\Theme'); $listManager->handle(); $this->assignation['filters'] = $listManager->getAssignation(); $this->assignation['themes'] = $listManager->getEntities(); $themeType = new \RZ\Roadiz\CMS\Forms\ThemesType(); $this->assignation['availableThemesCount'] = $themeType->getSize(); return $this->render('themes/list.html.twig', $this->assignation); }
/** * Build form for theme and site informations. * * @param Symfony\Component\HttpFoundation\Request $request * * @return Symfony\Component\Form\Forms */ protected function buildInformationsForm(Request $request) { $siteName = SettingsBag::get('site_name'); $metaDescription = SettingsBag::get('seo_description'); $emailSender = SettingsBag::get('email_sender'); $emailSenderName = SettingsBag::get('email_sender_name'); $timeZone = $this->getService('config')['timezone']; $timeZoneList = (include dirname(__FILE__) . '/Resources/import/timezones.php'); $defaults = ['site_name' => $siteName != '' ? $siteName : "My website", 'seo_description' => $metaDescription != '' ? $metaDescription : "My website is beautiful!", 'email_sender' => $emailSender != '' ? $emailSender : "", 'email_sender_name' => $emailSenderName != '' ? $emailSenderName : "", 'install_frontend' => true, 'timezone' => $timeZone != '' ? $timeZone : "Europe/Paris"]; $builder = $this->createFormBuilder($defaults)->add('site_name', 'text', ['required' => true, 'label' => $this->getTranslator()->trans('site_name'), 'constraints' => [new NotBlank()]])->add('email_sender', 'email', ['required' => true, 'label' => $this->getTranslator()->trans('email_sender'), 'constraints' => [new NotBlank()]])->add('email_sender_name', 'text', ['required' => true, 'label' => $this->getTranslator()->trans('email_sender_name'), 'constraints' => [new NotBlank()]])->add('seo_description', 'text', ['required' => false, 'label' => $this->getTranslator()->trans('meta_description')])->add('timezone', 'choice', ['choices' => $timeZoneList, 'label' => $this->getTranslator()->trans('timezone'), 'required' => true]); $themesType = new \RZ\Roadiz\CMS\Forms\ThemesType(); if ($themesType->getSize() > 0) { $builder->add('separator_1', new SeparatorType(), ['label' => $this->getTranslator()->trans('themes.frontend.description')])->add('install_theme', 'checkbox', ['required' => false, 'label' => $this->getTranslator()->trans('install_theme')])->add('className', $themesType, ['label' => $this->getTranslator()->trans('theme.selector'), 'required' => true, 'constraints' => [new \Symfony\Component\Validator\Constraints\NotNull(), new \Symfony\Component\Validator\Constraints\Type('string')]]); } return $builder->getForm(); }