%PDF- %PDF-
| Direktori : /home1/lightco1/www/administrator/components/com_baforms/controllers/ |
| Current File : //home1/lightco1/www/administrator/components/com_baforms/controllers/submissions.php |
<?php
/**
* @package BaForms
* @author Balbooa http://www.balbooa.com/
* @copyright Copyright @ Balbooa
* @license http://www.gnu.org/licenses/gpl.html GNU/GPL
*/
defined('_JEXEC') or die;
// import Joomla controlleradmin library
jimport('joomla.application.component.controlleradmin');
class BaformsControllerSubmissions extends JControllerAdmin
{
/**
* Proxy for getModel.
*/
public function getModel($name = 'submission', $prefix = 'baformsModel', $config = array())
{
$model = parent::getModel($name, $prefix, array('ignore_request' => true));
return $model;
}
public function changeState()
{
$id = $_POST['form_id'];
$model = $this->getModel();
$model->changeState($id);
}
public function exportXML()
{
$data = $_POST['exportData'];
$data = str_replace('*', '', $data);
$data = explode('|__|', $data);
$doc = new DOMDocument('1.0');
$doc->formatOutput = true;
$root = $doc->createElement('submissions');
$root = $doc->appendChild($root);
foreach($data as $item) {
if (!empty($item)) {
$item = json_decode($item);
$date = $this->getDate($item->id);
$postroot = $doc->createElement(str_replace(' ', '_', $item->form));
$postroot = $root->appendChild($postroot);
$title = $doc->createElement('date');
$title = $postroot->appendChild($title);
$text = $doc->createTextNode($date);
$text = $title->appendChild($text);
$message = explode('_-_', $item->message);
foreach($message as $mes) {
if (!empty($mes)) {
$mes = explode('|-_-|', $mes);
$patern = array('~', '`', '!', '@', '"', '#', '№', '$', ';',
'%', '^', '&', '?', '*', '(', ')', '-', '+',
'=', '/', '|', '.', "'", ',', '\\');
$replace = array(' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
' ', ' ', ' ', ' ', ' ', ' ', ' ');
$mes[0] = str_replace($patern, $replace, $mes[0]);
$title = $doc->createElement(str_replace(' ', '_', $mes[0]));
$title = $postroot->appendChild($title);
$text = $doc->createTextNode($mes[1]);
$text = $title->appendChild($text);
}
}
}
}
$file = '/tmp/baform.xml';
$bytes = $doc->save(JPATH_ROOT.$file);
if ($bytes) {
echo new JResponseJson(true, JPATH_ROOT.$file);
} else {
echo new JResponseJson(false, '', true);
}
jexit();
}
public function exportCSV()
{
$data = $_POST['exportData'];
$data = explode('|__|', $data);
$list = array();
$form = '';
foreach($data as $item) {
if (!empty($item)) {
$item = json_decode($item);
$date = $this->getDate($item->id);
$title = array();
$info = array();
$title[] = 'Date';
$title[] = 'Id';
$info[] = $date;
$info[] = $item->id;
$message = explode('_-_', $item->message);
foreach($message as $mes) {
if (!empty($mes)) {
$mes = explode('|-_-|', $mes);
$title[] = $mes[0];
$info[] = $mes[1];
}
}
if ($item->form != $form) {
$list[] = array($item->form);
$list[] = $title;
}
$list[] = $info;
$form = $item->form;
}
}
$file = '/tmp/baform.csv';
$fp = fopen(JPATH_ROOT.$file, 'w');
fwrite ($fp, b"\xEF\xBB\xBF");
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
echo new JResponseJson(true, JPATH_ROOT.$file);
jexit();
}
public function getDate($id)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select("date_time");
$query->from("#__baforms_submissions");
$query->where("id=" . $id);
$db->setQuery($query);
$items = $db->loadResult();
return $items;
}
public function doanload()
{
$file = $_GET['file'];
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
}
}