/** * @param array $paParams * @return \Zend\Http\Response */ public function csv(array $paParams = null) { $laResult = $this->getEntityManager()->getRepository($this->_sEntityExtended)->getList($paParams); //Debug::displayd($laResult); $lsFileName = $this->_sRoute . date('Y-m-d') . '.csv'; $lsData = ''; if (is_array($this->_aGridCols)) { $lsComma = ''; foreach ($this->_aGridCols as $lsCol => $lsTitle) { $lsData .= $lsComma . '"' . $lsTitle . '"'; $lsComma = ','; } $lsData .= ";\n"; } if (is_array($laResult['resultSet'])) { foreach ($laResult['resultSet'] as $lsline => $laValue) { if (is_array($laValue)) { $lsComma = ''; foreach ($this->_aGridFields as $lsCol => $lsField) { $lsData .= $lsComma . '"' . utf8_decode($this->formatFieldToCSV($lsField, $laValue[$lsField])) . '"'; $lsComma = ','; } $lsData .= ";\n"; } } } header('Content-Description: File Transfer'); header('Content-Type: text/plan'); header('Content-Disposition: attachment; filename="' . $lsFileName . '"'); header('Connection: Keep-Alive'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . count($lsData)); echo $lsData; $loView = new ViewModel(); $loView->setTerminal(true); $loResponse = $this->getResponse(); return $loResponse; }
/** * * @param int $pnStatus * @param bool $pbActive * @param string $psBack * @param string $psFolderTitle * @return string|\Onion\View\Model\ViewModel */ public function gridx($pnStatus = 0, $pbActive = 1, $psBack = 'index', $psFolderTitle = null) { $loGrid = Application::factory('User\\Grid\\UserGrid'); $lnPage = $this->request('p', 0); $lnRows = $this->request('rows', $loGrid->get('numRows')); $lsOrder = $this->request('ord', $loGrid->get('order')); $lsOrderCol = $this->request('col', $loGrid->get('orderCol')); $lsQuery = $this->request('q', ''); $lsField = $this->request('f', ''); $lsField = $loGrid->isSearchField($lsField) ? $lsField : $loGrid->get('searchFieldDefault'); $lsWhere = ''; if ($loGrid->get('showSearch') && !empty($lsQuery)) { $loSearch = new Search(); $loSearch->set('sSearchFields', $lsField); $lsWhere .= $loSearch->createRLikeQuery('"' . $lsQuery . '"', 'r'); } $laParams = array('status' => $pnStatus, 'active' => $pbActive, 'rows' => $lnRows, 'page' => $lnPage, 'col' => $lsOrderCol, 'ord' => $lsOrder, 'q' => $lsQuery, 'where' => $lsWhere); if (method_exists($this, 'gridBeforeSelect')) { $laParams = $this->gridBeforeSelect($laParams); } $laResult = $this->getEntityManager()->getRepository($this->_sEntityExtended)->getList($laParams, $lbCache = false); if (method_exists($this, 'gridAfterSelect')) { $laResult = $this->gridAfterSelect($laResult); } $laMessages = $this->flashMessenger()->getMessages(); $loGrid->setData($laResult['resultSet'])->setTotalResults($laResult['totalCount'])->setBackTo($psBack)->setMessages($laMessages)->setNumRows($lnRows)->setSearchFieldDefault($lsField)->setSearchQuery($lsQuery)->setOrder($lsOrder)->setOrderCol($lsOrderCol)->setCurrentPage($lnPage); $lsGrid = $loGrid->render($this->_sRoute, $psFolderTitle); if (method_exists($this, 'gridAfterRender')) { $lsGrid = $this->gridAfterRender($lsGrid); } $loView = new ViewModel(); if ($this->isXmlHttpRequest()) { $loView->setTerminal(true); // desabilita o layout $loResponse = $this->getResponse(); $loResponse->setStatusCode(200); $loResponse->setContent($lsGrid); return $loResponse; } else { $loView->setVariables(array('lsGrid' => $lsGrid, 'lsFolder' => '', 'lsTitleP' => ''), true); } return $loView; }