protected function _generateExport() { $csv = new CsvWriter(); $csv->open(); $content = $this->set->firstContent; $fields = array(); do { if ($content->config->get('visible')) { $fields[] = $content->config->get('label'); } } while ($content = $content->nextContent); $csv->append($fields); while ($set = $this->sets->getNext()) { $fields = array(); $this->_onRenderSetChanged(); $content = $this->set->firstContent; do { if ($content->config->get('visible')) { $fields[] = $content->render(Set::MODE_EXPORT); } } while ($content = $content->nextContent); $csv->append($fields); } $data = chr(239) . chr(187) . chr(191) . $csv->getContents(); $csv->close(); $res = $this->response(); $res->asDownload($this->_getExportFilename()); $res->postContent($data); }
public function renderTable() { $q = $this->factory()->appQuick(); $u = $this->factory()->appUi(); $globalDelete = $this->set->allowDelete; $globalEdit = $this->set->allowEdit; $table = '<table><thead><tr>'; $capabilities = $this->set->getCapabilities(); $content = $this->set->firstContent; do { if ($content->config->get('visible')) { $c = $content->config->get('label'); if ($content->config->get('escapeLabel', true)) { $c = $q->e($c); } if ($capabilities->sort && $content->sortable) { $arguments = $this->getUrlArguments('sort'); $arguments['sortBy'] = $content->name; if ($this->sortBy == $content->name && $this->sortDirection == 'desc') { $arguments['sortDirection'] = 'asc'; } else { $arguments['sortDirection'] = 'desc'; } $url = $this->pageUrl . $this->encodeArgs($arguments); $c = '<a href="' . $q->e($url) . '">' . $c . '</a>'; } $table .= '<td>' . $c . '</td>'; } } while ($content = $content->nextContent); if ($globalEdit) { $table .= '<td>' . $q->t('Bearbeiten') . '</td>'; } if ($globalDelete) { $table .= '<td>' . $q->t('Löschen') . '</td>'; } $table .= '</tr></thead><tbody>'; while ($set = $this->sets->getNext()) { $this->_onRenderTableSetChanged(); $content = $this->set->firstContent; $table .= '<tr>'; do { if ($content->config->get('visible')) { $table .= '<td>' . $content->render('list'); } } while ($content = $content->nextContent); if ($globalEdit) { if ($this->set->allowEdit) { $table .= '<td>' . $u->link($this->getEditUrl($this->set->getId()), $q->t('Bearbeiten')) . '</td>'; } else { $table .= '<td></td>'; } } if ($globalDelete) { if ($this->set->allowDelete) { $table .= '<td>' . $u->link($this->getDeleteUrl($this->set->getId()), $q->t('Löschen')) . '</td>'; } else { $table .= '<td></td>'; } } $table .= '</tr>'; } $table .= '</tbody></table>'; return $table; }