82 lines
1.9 KiB
PHP
82 lines
1.9 KiB
PHP
<?php
|
|
/**
|
|
* @package JEM
|
|
* @copyright (C) 2013-2024 joomlaeventmanager.net
|
|
* @copyright (C) 2005-2009 Christoph Lukes
|
|
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
|
|
*
|
|
* Based on: https://gist.github.com/dongilbert/4195504
|
|
*/
|
|
|
|
defined('_JEXEC') or die;
|
|
|
|
use Joomla\CMS\MVC\Controller\AdminController;
|
|
use Joomla\CMS\Session\Session;
|
|
|
|
/**
|
|
* JEM Component Export Controller
|
|
*
|
|
*/
|
|
class JemControllerExport extends AdminController
|
|
{
|
|
/**
|
|
* Proxy for getModel.
|
|
*
|
|
*/
|
|
public function getModel($name = 'Export', $prefix = 'JemModel', $config=array()) {
|
|
$model = parent::getModel($name, $prefix, array('ignore_request' => true));
|
|
return $model;
|
|
}
|
|
|
|
public function export()
|
|
{
|
|
// Check for request forgeries
|
|
Session::checkToken() or jexit('Invalid Token');
|
|
|
|
$this->sendHeaders("jem_export-" . date('Ymd-His') . ".csv", "text/csv");
|
|
$this->getModel()->getCsv();
|
|
jexit();
|
|
}
|
|
|
|
public function exportcats()
|
|
{
|
|
// Check for request forgeries
|
|
Session::checkToken() or jexit('Invalid Token');
|
|
|
|
$this->sendHeaders("categories.csv", "text/csv");
|
|
$this->getModel()->getCsvcats();
|
|
jexit();
|
|
}
|
|
|
|
public function exportvenues()
|
|
{
|
|
// Check for request forgeries
|
|
Session::checkToken() or jexit('Invalid Token');
|
|
|
|
$this->sendHeaders("venues.csv", "text/csv");
|
|
$this->getModel()->getCsvvenues();
|
|
jexit();
|
|
}
|
|
|
|
public function exportcatevents()
|
|
{
|
|
// Check for request forgeries
|
|
Session::checkToken() or jexit('Invalid Token');
|
|
|
|
$this->sendHeaders("catevents.csv", "text/csv");
|
|
$this->getModel()->getCsvcatsevents();
|
|
jexit();
|
|
}
|
|
|
|
private function sendHeaders($filename = 'export.csv', $contentType = 'text/plain')
|
|
{
|
|
// TODO: Use UTF-8
|
|
// We have to fix the model->getCsv* methods too!
|
|
// header("Content-type: text/csv; charset=UTF-8");
|
|
header("Content-type: text/csv;");
|
|
header("Content-Disposition: attachment; filename=" . $filename);
|
|
header("Pragma: no-cache");
|
|
header("Expires: 0");
|
|
}
|
|
}
|