protected function createComponentAuthors($name) { $grid = new DataGrid(); $search = ""; if (isset($this->searchFull)) { foreach ($this->search as $one) { //$search .= "name LIKE '%".$one."%' OR surname LIKE '% ".$one."%' OR "; $search .= "name RLIKE '(^| ){$one}' OR surname RLIKE '(^| ){$one}' OR "; } foreach ($this->searchFull as $one) { $search .= "name RLIKE '(^| )" . $one . " ' OR surname RLIKE '(^| )" . $one . " ' OR "; } $search = substr($search, 0, -3); } $grid->bindDataTable(dibi::getConnection()->dataSource('SELECT authorUrl as link, name, surname,', $this->formColumns(array('class')), Model::sqlClassName(Model::getSchoolYear()) . 'as classMark,', Model::sqlSumWorks() . 'as [sum],', Model::sqlSumReads() . 'as [read]', 'FROM [authors]', 'WHERE %and', $this->where, '%if', isset($search), 'AND %sql', $search, '%end')); $grid->addColumn('name', 'Jméno')->getCellPrototype()->addClass('first'); $grid->addColumn('surname', 'Příjmení')->addDefaultSorting('asc'); if ($this->notCol('class')) { $grid->addColumn('class', 'Maturita')->getCellPrototype()->style('text-align: center;'); } $grid->addColumn('classMark', 'Třída')->getCellPrototype()->style('text-align: right;'); $grid->addColumn('sum', 'Počet prací')->getCellPrototype()->style('text-align: right;'); $grid->addColumn('read', 'Čtenost')->getCellPrototype()->style('text-align: right;'); $grid->multiOrder = FALSE; $grid->displayedItems = array('vše', 5, 8, 10, 20, 50, 100); $grid->itemsPerPage = $this->getCookiesItemsCount(8); $grid->nothingMessage = "Žádný autor nebyl nalezen."; $grid->hiddenFiltering = TRUE; $renderer = $grid->getRenderer(); $renderer->paginatorFormat = '%label% %input% z %count%'; $renderer->infoFormat = 'Autoři %from% - %to% z %count% | Zobrazit: %selectbox% | %reset%'; $renderer->onRowRender[] = array($this, 'authorsOnRowRendered'); //$renderer->onCellRender[] = array($this, 'gridOnCellRendered'); return $grid; //$this->addComponent($grid, $name); }