public function executeExport($request) { if ($request->isMethod('POST')) { $exportManager = sfExportManager::create('Resource'); $sheets = array('stuff' => array('have', 'need'), 'info' => array('have', 'need'), 'time' => array('need')); foreach ($sheets as $prefix => $types) { $class = sfInflector::camelize($prefix . 'Resource'); $fields = Doctrine::getTable($class)->getColumnNames(); $fields = array_combine($fields, $fields); foreach ($fields as $key => $value) { $fields[$key] = sfInflector::humanize($value); } foreach ($types as $type) { $results = Doctrine::getTable($class)->createQuery()->where('transaction_type = ?', $type)->execute(); $exportManager->exportCollectionSheet($results, $fields, sprintf('%s %s', $type, $prefix)); } } $title = $request->getParameter('title', 'Donate_Nashville_Export'); $title = $request->getParameter('include_timestamp') ? $title . '-' . date('Y-m-d H:i') : $title; $exportManager->output($title); return sfView::NONE; } }
public function executeExport(sfWebRequest $request) { // sorting if ($request->getParameter('sort')) { $this->setSort(array($request->getParameter('sort'), $request->getParameter('sort_direction'))); } $this->pager = $this->getPager(); if ($request->isMethod('post')) { $manager = new sfExportManager($this->getResponse()); $fields = array_intersect_key($request->getParameter('export'), $request->getParameter('include')); if(false === $manager->export($this->pager->getQuery()->limit(9999999)->execute(), $fields, 'dsPersonExport')) { // There was an error when generating the download. Redirect to the referer and set the error in a flash message $this->redirectReferer($manager->getErrorMessage()); } if($route = $manager->getDownloadRoute()) { $this->redirect($route); } return sfView::NONE; } }
$company2['name'] = 'Company Name 2'; $company2['city'] = 'City 2'; $company2['state'] = 'State 2'; $company2->save(); $companies = Doctrine::getTable('Company') ->createQuery() ->whereIn('id', array($company1['id'], $company2['id'])) ->execute(); $manager = new sfExportManager(); $csvArray = $manager->doExport($companies, array('name')); $t->is(count($csvArray), 3, 'Three rows (including "headers")'); $t->is(count($csvArray[0]), 1, 'One Column: "name"'); $t->is($csvArray[1], $company1['name'], 'First row is Company 1'); $t->is($csvArray[2], $company2['name'], 'Second row is Company 2'); $manager = new sfExportManager(); $csvArray = $manager->doExport($companies, array('name', 'city' => 'Company City', 'state')); $t->is(count($csvArray), 3, 'Three rows (including "headers")'); $headers = explode(',', $csvArray[0]); $t->is(count($headers), 3, 'Three Column: "name", "city", "state"'); $t->is($headers[1], 'Company City', 'Label for "city" is "Company City"'); $row1 = explode(',', $csvArray[1]); $row2 = explode(',', $csvArray[2]); $t->is($row1[1], $company1['city'], 'First row second column is is Company 1 city'); $t->is($row2[1], $company2['city'], 'Second row second column is is Company 2 city');