public function activate()
 {
     $this->header();
     $filter = new CustomDataFilter($this->page->getPosition());
     $filter->field('title');
     $filter->condition('published', 0);
     $filter->orderBy('date');
     $this->page->overview($this->getTemplateFile('/Cms/admin/data_categories'), Config::get('pagination.admin'), $filter);
     $this->footer();
 }
 public function top()
 {
     $this->breadcrumb->add('Rating');
     $this->header();
     $filter = new CustomDataFilter($this->flightPage->getPosition());
     $filter->fieldForeign('categories', 'name', 'airlineName');
     $filter->fieldForeign('categories', 'id', 'airlineId');
     $filter->fieldCalculation('rating', '(AVG(vdr_rating)+AVG(bord_rating)+AVG(service_rating))/3');
     $filter->join('categories', 'id', 'airline');
     $filter->condition('published', 1);
     $filter->orderBy('rating', false);
     $filter->groupBy('airline');
     $this->flightPage->overview('/Airlines/top', 0, $filter);
     $this->footer();
 }
 public function overview($tpl = null, $pagination = 0, CustomDataFilter $filter = null)
 {
     if ($filter === null) {
         $filter = new CustomDataFilter($this->position);
         foreach ($this->mainFields as $field) {
             $filter->field($field);
         }
         $filter->orderBy(reset($this->mainFields));
     }
     $pages = '';
     if ($pagination > 0) {
         $pg = new Pagination($pagination, $filter->getAmount());
         $pg->setUri($this->baseUri);
         $pg->parsePage();
         $filter->limit($pg->getPerPage(), $pg->getOffset());
         $pages = $pg->build();
     }
     $tpl = Response::getObject()->appendTemplate($tpl ? $tpl : "/Cms/fields/data_categories");
     $tpl->assign('pages', $pages, false);
     $tpl->assign('list', $filter->retrieveList(), false);
     $tpl->assign('baseUri', $this->baseUri);
     $tpl->output();
 }