public function loadRowsAction() { $result = new Server\Result(); $result->content = []; ob_start(); $request = $this->parseRequest(); $dataManager = new Ui\DataManager($request['modelName'], $request['managerName']); if ($request['download']) { ini_set('memory_limit', '2000M'); set_time_limit(0); $request['params']['all'] = true; $request['params']['download'] = true; ob_end_clean(); header('Content-Encoding: UTF-8'); header("Content-Type: text/csv"); header("Content-Disposition: attachment; filename=" . $request['modelName']::$objectName . '.csv'); echo ""; // UTF-8 BOM $cols = $dataManager->getCols(); $cols = array_slice($cols, 1); $endRow = true; foreach ($cols as $colName => $options) { if (!$endRow) { echo ";"; } $endRow = false; echo '"' . $options['label'] . '"'; } echo "\n"; $endRow = true; } if (!$request['params']['all']) { $pages = $dataManager->getPages($request['params'], $request['model']); $request['params']['page'] = $pages->params['page']; $request['params']['limit'] = $pages->params['limit']; } $rows = $dataManager->getRows($request['params'], $request['model']); foreach ($rows as $row) { if ($request['download']) { $row = array_slice($row, 1, -1); foreach ($row as $col) { if (!$endRow) { echo ";"; } $endRow = false; echo '"' . str_replace(["\n", '"'], ['“'], $col) . '"'; } echo "\n"; $endRow = true; } else { Ui\Table::drawRow($row); } } if ($request['download']) { exit; } $result->content['rows'] = ob_get_contents(); ob_clean(); $result->content['pages'] = ''; if (isset($pages) && $pages) { if ($pages) { $pages->draw(); echo '<div style="background:#fff;">записей: <b>' . $pages->options['count'] . '</b>. страница <b>' . $pages->params['page'] . '</b> из <b>' . $pages->params['pages'] . '</b></div>'; } $result->content['pages'] = ob_get_contents(); ob_end_clean(); } $result->send(); }