Elgg  Version master
CsvDownloadAction.php
Go to the documentation of this file.
1 <?php
2 
3 namespace Elgg\Controllers;
4 
6 
12 abstract class CsvDownloadAction extends DownloadAction {
13 
17  protected function getFilename(): string {
18  return 'output.csv';
19  }
20 
24  protected function getMimeType(): string {
25  return 'text/csv';
26  }
27 
33  protected function getSeparator(): string {
34  return ';';
35  }
36 
42  protected function getEnclosure(): string {
43  return '"';
44  }
45 
51  protected function getEscape(): string {
52  return '\\';
53  }
54 
60  protected function getContentHeaders(): array {
61  return [];
62  }
63 
69  abstract protected function getContentRows(): array;
70 
74  final protected function getContents(): string {
75  $fh_temp = new \ElggTempFile();
76  $fh = $fh_temp->open('write');
77 
78  $headers = $this->getContentHeaders();
79  if (!empty($headers)) {
80  fputcsv($fh, $headers, $this->getSeparator(), $this->getEnclosure(), $this->getEscape());
81  }
82 
83  foreach ($this->getContentRows() as $row) {
84  fputcsv($fh, $row, $this->getSeparator(), $this->getEnclosure(), $this->getEscape());
85  }
86 
87  $contents = $fh_temp->grabFile();
88  $fh_temp->close();
89 
90  return $contents;
91  }
92 }
return[ 'admin/delete_admin_notices'=>['access'=> 'admin'], 'admin/menu/save'=>['access'=> 'admin'], 'admin/plugins/activate'=>['access'=> 'admin'], 'admin/plugins/activate_all'=>['access'=> 'admin'], 'admin/plugins/deactivate'=>['access'=> 'admin'], 'admin/plugins/deactivate_all'=>['access'=> 'admin'], 'admin/plugins/set_priority'=>['access'=> 'admin'], 'admin/security/security_txt'=>['access'=> 'admin'], 'admin/security/settings'=>['access'=> 'admin'], 'admin/security/regenerate_site_secret'=>['access'=> 'admin'], 'admin/site/cache/invalidate'=>['access'=> 'admin'], 'admin/site/flush_cache'=>['access'=> 'admin'], 'admin/site/icons'=>['access'=> 'admin'], 'admin/site/set_maintenance_mode'=>['access'=> 'admin'], 'admin/site/set_robots'=>['access'=> 'admin'], 'admin/site/theme'=>['access'=> 'admin'], 'admin/site/unlock_upgrade'=>['access'=> 'admin'], 'admin/site/settings'=>['access'=> 'admin'], 'admin/upgrade'=>['access'=> 'admin'], 'admin/upgrade/reset'=>['access'=> 'admin'], 'admin/user/ban'=>['access'=> 'admin'], 'admin/user/bulk/ban'=>['access'=> 'admin'], 'admin/user/bulk/delete'=>['access'=> 'admin'], 'admin/user/bulk/unban'=>['access'=> 'admin'], 'admin/user/bulk/validate'=>['access'=> 'admin'], 'admin/user/change_email'=>['access'=> 'admin'], 'admin/user/delete'=>['access'=> 'admin'], 'admin/user/login_as'=>['access'=> 'admin'], 'admin/user/logout_as'=>[], 'admin/user/makeadmin'=>['access'=> 'admin'], 'admin/user/resetpassword'=>['access'=> 'admin'], 'admin/user/removeadmin'=>['access'=> 'admin'], 'admin/user/unban'=>['access'=> 'admin'], 'admin/user/validate'=>['access'=> 'admin'], 'annotation/delete'=>[], 'avatar/upload'=>[], 'comment/save'=>[], 'diagnostics/download'=>['access'=> 'admin', 'controller'=> \Elgg\Diagnostics\DownloadController::class,], 'entity/chooserestoredestination'=>[], 'entity/delete'=>[], 'entity/mute'=>[], 'entity/restore'=>[], 'entity/subscribe'=>[], 'entity/trash'=>[], 'entity/unmute'=>[], 'entity/unsubscribe'=>[], 'login'=>['access'=> 'logged_out'], 'logout'=>[], 'notifications/mute'=>['access'=> 'public'], 'plugins/settings/remove'=>['access'=> 'admin'], 'plugins/settings/save'=>['access'=> 'admin'], 'plugins/usersettings/save'=>[], 'register'=>['access'=> 'logged_out', 'middleware'=>[\Elgg\Router\Middleware\RegistrationAllowedGatekeeper::class,],], 'river/delete'=>[], 'settings/notifications'=>[], 'settings/notifications/subscriptions'=>[], 'user/changepassword'=>['access'=> 'public'], 'user/requestnewpassword'=>['access'=> 'public'], 'useradd'=>['access'=> 'admin'], 'usersettings/save'=>[], 'widgets/add'=>[], 'widgets/delete'=>[], 'widgets/move'=>[], 'widgets/save'=>[],]
Definition: actions.php:76
open(string $mode)
Open the file with the given mode.
Definition: ElggFile.php:171
This class represents a physical file (by default in the system temp directory).
Helper class for CSV download actions.
getContentRows()
Returns an array of rows with data for your file.
getFilename()
{File name for download.string}
getMimeType()
{Return the content mimetype for the Content-Type header.string}
getSeparator()
Returns the separator.
getEnclosure()
Returns the enclosure.
getContentHeaders()
Returns the first row of headers for your file.
Helper class for download actions.
Download response builder.
if(!empty($title) &&!empty($icon_name)) if(!empty($title)) if(!empty($menu)) if(!empty($header)) if(!empty($body)) $contents
Definition: message.php:73
$headers
Definition: section.php:21