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']); }
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); }