Example #1
0
 public function renderDefault($url)
 {
     $res = dibi::query('
   SELECT
         workId,
         url as file,
         title,
         text,', Model::sqlCategory() . ' as category,
         authorUrl,
         CONCAT_WS(" ", name, surname) as authorName,
         year,', Model::sqlWorkClassName() . 'as workClass,', 'award,
         type, 
         pages,
         words,
         characters,
         [read],
         added,
         edited             
         FROM [works] 
         join [authors] on author = authorId
         WHERE `url`=%s', $url)->fetchAll();
     //$res[0]['award'] = ($res[0]['award'] != 99) ? $res[0]['award'] . ". místo" : "nominaci";
     //2010-08-19 22:43:25
     $res[0]['added'] = preg_replace('/(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})/', '$3.$2.$1 $4:$5', $res[0]['added']);
     $res[0]['edited'] = preg_replace('/(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})/', '$3.$2.$1 $4:$5', $res[0]['edited']);
     $this->template->data = $res[0];
     $this->template->files = FileModel::getFiles($res[0]['workId']);
     Model::increaseRead($res[0]['workId']);
 }
Example #2
0
 protected function createComponentWorks($name)
 {
     //url as link,
     //title,
     $grid = new DataGrid();
     $grid->bindDataTable(dibi::getConnection()->dataSource('SELECT
       url as link,
       authorUrl,
       title,
       award,
       year,', Model::sqlWorkClassName() . 'as workClass,', 'type,                                     
       pages,
       [read]
       FROM [works]
       JOIN [authors] on author = authorId 
       WHERE authorUrl=%s', $this->id));
     $grid->addColumn('title', 'Název')->addDefaultSorting('asc')->getCellPrototype()->addClass('first');
     $grid->addNumericColumn('year', 'Rok')->getCellPrototype()->style('text-align: center;');
     $grid->addColumn('workClass', 'Třída')->getCellPrototype()->style('text-align: center;');
     $grid->addColumn('award', 'Ocenění');
     $grid->addColumn('type', 'Typ');
     $grid->addNumericColumn('pages', 'Stran')->getCellPrototype()->style('text-align: right');
     $grid->addColumn('read', 'Čtenost')->getCellPrototype()->style('text-align: right;');
     /*
           $grid->addActionColumn('Akce');
           $grid['title']->addFilter();
           $grid['authorName']->addFilter();
           $grid['year']->addSelectboxFilter();
           $grid['award']->addSelectboxFilter();
           $grid['type']->addSelectboxFilter();
           $grid['pages']->addSelectboxFilter();  */
     $grid->itemsPerPage = 0;
     $grid->multiOrder = FALSE;
     $renderer = $grid->getRenderer();
     $renderer->paginatorFormat = '%label% %input% z %count%';
     $renderer->infoFormat = 'Práce %from% - %to% z %count% | Zobrazit: %selectbox% | %reset%';
     $renderer->onRowRender[] = array($this, 'worksOnRowRendered');
     //$renderer->onCellRender[] = array($this, 'gridOnCellRendered');
     //$grid->rememberState = TRUE;
     return $grid;
     //$this->addComponent($grid, $name);
 }
 protected function createComponentWorks($name)
 {
     //url as link,
     //title,
     $grid = new DataGrid();
     $search = NULL;
     if (isset($this->searchFull)) {
         $search = "";
         foreach ($this->search as $one) {
             $search .= "title RLIKE '(^| )" . $one . "' OR ";
         }
         foreach ($this->searchFull as $one) {
             $search .= "title RLIKE '(^| )" . $one . " ' OR ";
         }
         $search = substr($search, 0, -3);
     }
     $grid->bindDataTable(dibi::getConnection()->dataSource('SELECT
       url as link,
       title,
       class,', Model::sqlCategory() . ' as category,', Model::sqlWorkClassName() . 'as grade,', 'CONCAT_WS(" ", name, surname) as authorName,', $this->formColumns(array('year', 'award', 'type')), 'pages,
       [read]
       FROM [works]
       join [authors] on author = authorId', '%if', isset($this->palice), 'AND class < [year] + 4', '%end', '%if', isset($this->palicka), 'AND class=[year]+' . (7 - $this->palicka), '%end', '%if', isset($this->celaPalicka), 'AND class >= [year] + 4', '%end', '%if', isset($this->grade), 'AND class=[year]+' . (3 - $this->grade), '%end', 'WHERE %and', $this->where, '%if', isset($search), 'AND %sql', $search, '%end', '%if', isset($this->searchFulltext), 'AND MATCH(text) AGAINST(%s)', $this->searchFulltext, '%end', '%if', count($this->order) > 0, 'ORDER BY %by', $this->order, '%end'));
     $grid->addColumn('title', 'Název')->getCellPrototype()->addClass('first');
     if (count($this->order) == 0) {
         $grid['title']->addDefaultSorting();
     }
     $grid->addColumn('authorName', 'Autor');
     if ($this->notCol('year') && !isset($this->order['read'])) {
         $grid->addNumericColumn('year', 'Rok')->getCellPrototype()->style('text-align: center;');
     }
     //if(!isset($this->palicka) && !isset($this->palice) ) $grid->addColumn('category', 'Kategorie');
     $grid->addColumn('grade', 'Třída');
     if ($this->notCol('award')) {
         $grid->addColumn('award', 'Ocenění');
     }
     if ($this->notCol('type')) {
         $grid->addColumn('type', 'Typ');
     }
     $grid->addNumericColumn('pages', 'Stran')->getCellPrototype()->style('text-align: right; padding-left: 0px; padding-right: 5px');
     if (isset($this->order['read'])) {
         $grid->addColumn('read', 'Čtenost')->getCellPrototype()->style('text-align: right;');
     }
     //if($this->advanced){
     $grid->addActionColumn('Akce');
     $grid['title']->addFilter();
     $grid['authorName']->addFilter();
     if (isset($grid['year'])) {
         $grid['year']->addSelectboxFilter();
     }
     if (isset($grid['award'])) {
         $grid['award']->addSelectboxFilter();
     }
     if (isset($grid['category'])) {
         $grid['category']->addSelectboxFilter();
     }
     if (isset($grid['type'])) {
         $grid['type']->addSelectboxFilter();
     }
     if (isset($grid['pages'])) {
         $grid['pages']->addSelectboxFilter();
     }
     //}
     //$grid->itemsPerPage = 1;
     $grid->multiOrder = FALSE;
     $grid->displayedItems = array('vše', 5, 8, 10, 20, 50, 100);
     $grid->itemsPerPage = $this->getCookiesItemsCount(8);
     $grid->nothingMessage = "Žádná práce nebyla nalezena.";
     $grid->hiddenFiltering = TRUE;
     $renderer = $grid->getRenderer();
     $renderer->paginatorFormat = '%label% %input% z %count%';
     $renderer->infoFormat = 'Práce %from% - %to% z %count% | Zobrazit: %selectbox% | %reset%';
     $renderer->onRowRender[] = array($this, 'worksOnRowRendered');
     $renderer->onCellRender[] = array($this, 'worksOnCellRendered');
     //$grid->rememberState = TRUE;
     return $grid;
     //$this->addComponent($grid, $name);
 }