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); }
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'); }
public function getFilter($createIfNotExist = false) { if (!isset($this->filter)) { $this->filter = \Rebond\Cms\Filter\Data::loadById($this->filterId, $createIfNotExist); } return $this->filter; }