Ejemplo n.º 1
0
 public function prepareFilter()
 {
     $result = new Filter();
     // FilterId links to the filter table
     if ($this->getComponent()->getType() == ComponentType::FILTERED_LISTING) {
         $filter = \Rebond\Cms\Filter\Data::loadById($this->getFilterId());
         if (isset($filter)) {
             $result->setId($filter->getId());
             $result->setTitle($filter->getTitle());
         }
         // FilterId links to a single content item
     } else {
         if ($this->getComponent()->getType() == ComponentType::SINGLE_ITEM) {
             $appData = '\\Rebond\\App\\' . $this->getComponent()->getModule()->getTitle() . '\\Data';
             $item = $appData::loadCurrent($this->getFilterId(), false);
             if (isset($item)) {
                 $result->setId($item->getContentGroup());
                 $result->setTitle($item->getTitle());
                 $result->setAppId($item->getAppId());
             }
             // Custom filter, use getFilter() to get custom value in getCustomFilter()
         } else {
             if ($this->getComponent()->getType() == ComponentType::CUSTOM_LISTING) {
                 $result->setTitle($this->getCustomFilter());
             }
         }
     }
     $this->setFilterId(0);
     $this->setFilter($result);
 }
Ejemplo n.º 2
0
 public function filter_edit()
 {
     // auth
     Auth::isAdminAuthorized($this->signedUser, 'admin.cms.filter', true, '/cms/filter');
     // check
     $id = Converter::int('id');
     $filter = \Rebond\Cms\Filter\Data::loadById($id, true);
     $form = new \Rebond\Cms\Filter\Form($filter);
     // action
     if (isset($_POST['save'])) {
         Auth::isAdminAuthorized($this->signedUser, 'admin.cms.layout.edit', true, '/cms/filter-edit?id=' . $id);
         if ($form->setFromPost()->validate()->isValid()) {
             $filter->save();
             Session::adminSuccess('saved', '/cms/filter');
         } else {
             Session::set('adminError', $form->getValidation()->getMessage());
         }
     }
     // view
     $this->setTpl();
     // main
     $tplMain = new Template(Template::MODULE, ['cms', 'filter']);
     $tplMain->set('item', $form);
     // layout
     if (Auth::isAdminAuthorized($this->signedUser, 'admin.cms.layout.edit', false)) {
         $this->tplLayout->set('column1', $tplMain->render('editor'));
     } else {
         $this->tplLayout->set('column1', $tplMain->render('view'));
     }
     // master
     $this->tplMaster->set('layout', $this->tplLayout->render('layout-1-col'));
     return $this->tplMaster->render('tpl-default');
 }
Ejemplo n.º 3
0
 public function getFilter($createIfNotExist = false)
 {
     if (!isset($this->filter)) {
         $this->filter = \Rebond\Cms\Filter\Data::loadById($this->filterId, $createIfNotExist);
     }
     return $this->filter;
 }