Ejemplo n.º 1
0
 protected function commonSettingList(Request $request, $settingGroup = null)
 {
     $criteria = [];
     if (null !== $settingGroup) {
         $criteria = ['settingGroup' => $settingGroup];
     }
     /*
      * Manage get request to filter list
      */
     $listManager = $this->createEntityListManager('RZ\\Roadiz\\Core\\Entities\\Setting', $criteria, ['name' => 'ASC']);
     $listManager->handle();
     $this->assignation['filters'] = $listManager->getAssignation();
     $settings = $listManager->getEntities();
     $this->assignation['settings'] = [];
     foreach ($settings as $setting) {
         $form = $this->buildShortEditForm($setting);
         $form->handleRequest($request);
         if ($form->isValid() && $form->getData()['id'] == $setting->getId()) {
             try {
                 $this->editSetting($form->getData(), $setting);
                 $msg = $this->getTranslator()->trans('setting.%name%.updated', ['%name%' => $setting->getName()]);
                 $this->publishConfirmMessage($request, $msg);
             } catch (EntityAlreadyExistsException $e) {
                 $this->publishErrorMessage($request, $e->getMessage());
             }
             if (null !== $settingGroup) {
                 return $this->redirect($this->generateUrl('settingGroupsSettingsPage', ['settingGroupId' => $settingGroup->getId()]));
             } else {
                 return $this->redirect($this->generateUrl('settingsHomePage'));
             }
         }
         $document = null;
         if ($setting->getType() == NodeTypeField::DOCUMENTS_T) {
             $document = SettingsBag::getDocument($setting->getName());
         }
         $this->assignation['settings'][] = ['setting' => $setting, 'form' => $form->createView(), 'document' => $document];
     }
     return null;
 }
Ejemplo n.º 2
0
 /**
  * @return array $assignation
  */
 public function prepareBaseAssignation()
 {
     parent::prepareBaseAssignation();
     /*
      * Use kernel DI container to delay API requuests
      */
     $this->themeContainer = $this->getContainer();
     $this->assignation['themeServices'] = $this->themeContainer;
     /*
      * Switch this to true to use uncompressed JS and CSS files
      */
     $this->assignation['head']['backDevMode'] = false;
     //Settings
     $this->assignation['head']['siteTitle'] = SettingsBag::get('site_name') . ' backstage';
     $this->assignation['head']['mapsStyle'] = SettingsBag::get('maps_style');
     $this->assignation['head']['mainColor'] = SettingsBag::get('main_color');
     $this->assignation['head']['googleClientId'] = SettingsBag::get('google_client_id') ? SettingsBag::get('google_client_id') : "";
     $this->assignation['head']['themeName'] = static::$themeName;
     $this->themeContainer['nodeTree'] = function ($c) {
         if (is_object($this->getUser())) {
             $parent = $this->getUser()->getChroot();
         } else {
             $parent = null;
         }
         return new NodeTreeWidget($this->getRequest(), $this, $parent);
     };
     $this->themeContainer['tagTree'] = function ($c) {
         return new TagTreeWidget($this->getRequest(), $this);
     };
     $this->themeContainer['folderTree'] = function ($c) {
         return new FolderTreeWidget($this->getRequest(), $this);
     };
     $this->themeContainer['maxFilesize'] = function ($c) {
         return min(intval(ini_get('post_max_size')), intval(ini_get('upload_max_filesize')));
     };
     $this->themeContainer['grunt'] = function ($c) {
         return include dirname(__FILE__) . '/static/public/config/assets.config.php';
     };
     $this->themeContainer['settingGroups'] = function ($c) {
         return $this->getService('em')->getRepository('RZ\\Roadiz\\Core\\Entities\\SettingGroup')->findBy(['inMenu' => true], ['name' => 'ASC']);
     };
     $this->themeContainer['adminImage'] = function ($c) {
         /*
          * Get admin image
          */
         return SettingsBag::getDocument('admin_image');
     };
     $this->assignation['nodeStatuses'] = ['draft' => Node::DRAFT, 'pending' => Node::PENDING, 'published' => Node::PUBLISHED, 'archived' => Node::ARCHIVED, 'deleted' => Node::DELETED];
     return $this;
 }