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 buildFilter() { $options = []; $options['clearSelect'] = true; $options['select'][] = \Rebond\Cms\Filter\Data::getList(['id', 'title']); $options['where'][] = ['filter.module_id = ?', $this->getModel()->getModuleId()]; $options['order'][] = 'filter.display_order, filter.title'; $items = \Rebond\Cms\Filter\Data::loadAll($options); return Util\Form::buildDropdownList('filterId' . $this->unique, $items, 'id', 'title', $this->getModel()->getFilterId()); }
protected static function mapEntity(Model $model, $row, $alias = 'content') { if (isset($row[$alias . 'Id'])) { $model->setId($row[$alias . 'Id']); } if (isset($row[$alias . 'ModuleId'])) { $model->setModuleId($row[$alias . 'ModuleId']); $model->setModule(\Rebond\Cms\Module\Data::join($row, $alias . '_module')); } if (isset($row[$alias . 'ContentGroup'])) { $model->setContentGroup($row[$alias . 'ContentGroup']); } if (isset($row[$alias . 'FilterId'])) { $model->setFilterId($row[$alias . 'FilterId']); $model->setFilter(\Rebond\Cms\Filter\Data::join($row, $alias . '_filter')); } if (isset($row[$alias . 'AuthorId'])) { $model->setAuthorId($row[$alias . 'AuthorId']); $model->setAuthor(\Rebond\Core\User\Data::join($row, $alias . '_author')); } if (isset($row[$alias . 'PublisherId'])) { $model->setPublisherId($row[$alias . 'PublisherId']); $model->setPublisher(\Rebond\Core\User\Data::join($row, $alias . '_publisher')); } if (isset($row[$alias . 'Title'])) { $model->setTitle($row[$alias . 'Title']); } if (isset($row[$alias . 'UrlFriendlyTitle'])) { $model->setUrlFriendlyTitle($row[$alias . 'UrlFriendlyTitle']); } if (isset($row[$alias . 'UseExpiration'])) { $model->setUseExpiration($row[$alias . 'UseExpiration']); } if (isset($row[$alias . 'GoLiveDate'])) { $model->setGoLiveDate($row[$alias . 'GoLiveDate']); } if (isset($row[$alias . 'ExpiryDate'])) { $model->setExpiryDate($row[$alias . 'ExpiryDate']); } if (isset($row[$alias . 'PublishedDate'])) { $model->setPublishedDate($row[$alias . 'PublishedDate']); } if (isset($row[$alias . 'Version'])) { $model->setVersion($row[$alias . 'Version']); } if (isset($row[$alias . 'CreatedDate'])) { $model->setCreatedDate($row[$alias . 'CreatedDate']); } if (isset($row[$alias . 'ModifiedDate'])) { $model->setModifiedDate($row[$alias . 'ModifiedDate']); } return $model; }
protected static function mapper(array $row, $alias = 'gadget') { $model = new \Rebond\Cms\Gadget\Model(false); if (isset($row[$alias . 'Id'])) { $model->setId($row[$alias . 'Id']); } if (isset($row[$alias . 'PageId'])) { $model->setPageId($row[$alias . 'PageId']); $model->setPage(\Rebond\Cms\Page\Data::join($row, $alias . '_page')); } if (isset($row[$alias . 'ComponentId'])) { $model->setComponentId($row[$alias . 'ComponentId']); $model->setComponent(\Rebond\Cms\Component\Data::join($row, $alias . '_component')); } if (isset($row[$alias . 'Col'])) { $model->setCol($row[$alias . 'Col']); } if (isset($row[$alias . 'FilterId'])) { $model->setFilterId($row[$alias . 'FilterId']); $model->setFilter(\Rebond\Cms\Filter\Data::join($row, $alias . '_filter')); } if (isset($row[$alias . 'CustomFilter'])) { $model->setCustomFilter($row[$alias . 'CustomFilter']); } if (isset($row[$alias . 'DisplayOrder'])) { $model->setDisplayOrder($row[$alias . 'DisplayOrder']); } if (isset($row[$alias . 'Status'])) { $model->setStatus($row[$alias . 'Status']); } if (isset($row[$alias . 'CreatedDate'])) { $model->setCreatedDate($row[$alias . 'CreatedDate']); } if (isset($row[$alias . 'ModifiedDate'])) { $model->setModifiedDate($row[$alias . 'ModifiedDate']); } return $model; }
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; }
public function buildFilter() { $options = []; $options['clearSelect'] = true; $options['select'][] = \Rebond\Cms\Filter\Data::getList(['id', 'title']); $models = \Rebond\Cms\Filter\Data::loadAll($options); return Util\Form::buildDropdownList('filterId' . $this->unique, $models, 'id', 'title', $this->getModel()->getFilterId(), $this->filterValidator['foreignKey']); }
public function selectGadgetFilter() { if (!$this->hasPrivilege('admin.page.gagdet')) { return $this->noPrivilege('admin.page.gagdet'); } $json = []; $json['result'] = ResultType::ERROR; // check $id = Converter::int('id', 'post', 0); $search = Converter::string('search', 'post'); $gadget = \Rebond\Cms\Gadget\Data::loadById($id); if (!isset($gadget)) { $json['message'] = Lang::lang('itemNotFound', [$id]); return json_encode($json); } $results = []; // Single Item if ($gadget->getComponent()->getType() == \Rebond\Cms\ComponentType::SINGLE_ITEM) { $appData = '\\Rebond\\App\\' . $gadget->getComponent()->getModule()->getTitle() . '\\Data'; $options = []; $options['where'][] = ['content.version IN (?)', [0, 1, 3]]; if (isset($search) && $search != '') { $options['where'][] = ['content.title LIKE ?', '%' . $search . '%']; } $options['order'][] = 'content.title'; $items = $appData::loadAll($options, false); if (isset($items) && count($items) > 0) { foreach ($items as $item) { $result = new \Rebond\Cms\Filter(); $result->setId($item->getContentGroup()); $result->setTitle($item->getTitle()); $result->setAppId($item->getAppId()); $results[] = $result; } } // Listing } else { if ($gadget->getComponent()->getType() == \Rebond\Cms\ComponentType::LISTING) { // Filtered Listing } else { if ($gadget->getComponent()->getType() == \Rebond\Cms\ComponentType::FILTERED_LISTING) { $options = []; $options['where'][] = ['filter.module_id = ?', $gadget->getComponent()->getModuleId()]; if ($search != '') { $options['where'][] = ['filter.title LIKE ?', '%' . $search . '%']; } $options['order'][] = 'filter.title'; $filters = \Rebond\Cms\Filter\Data::loadAll($options); if (isset($filters) && count($filters) > 0) { foreach ($filters as $filter) { $result = new \Rebond\Cms\Filter(); $result->setId($filter->getId()); $result->setTitle($filter->getTitle()); $result->setAppId($filter->getId()); $results[] = $result; } } // Custom Listing } else { if ($gadget->getComponent()->getType() == 'CustomListing') { // Generic } else { if ($gadget->getComponent()->getType() == 'Generic') { } } } } } $tpl = new Template(Template::MODULE, ['cms', 'gadget']); $tpl->set('id', $gadget->getId()); $tpl->set('results', $results); $tpl->set('search', $search); $json['result'] = ResultType::SUCCESS; $json['html'] = $tpl->render('select-filter'); return json_encode($json); }