Example #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);
 }
Example #2
0
 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());
 }
Example #3
0
 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;
 }
Example #4
0
 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;
 }
Example #5
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');
 }
Example #6
0
 public function getFilter($createIfNotExist = false)
 {
     if (!isset($this->filter)) {
         $this->filter = \Rebond\Cms\Filter\Data::loadById($this->filterId, $createIfNotExist);
     }
     return $this->filter;
 }
Example #7
0
 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']);
 }
Example #8
0
 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);
 }