Current path: home/webdevt/www/schtroumpf.fr/modules/ets_superspeed/controllers/admin/
?? Go up: /home/webdevt/www/schtroumpf.fr/modules/ets_superspeed/controllers
<?php
/**
* Copyright ETS Software Technology Co., Ltd
*
* NOTICE OF LICENSE
*
* This file is not open source! Each license that you purchased is only available for 1 website only.
* If you want to use this file on more websites (or projects), you need to purchase additional licenses.
* You are not allowed to redistribute, resell, lease, license, sub-license or offer our resources to any third party.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future.
*
* @author ETS Software Technology Co., Ltd
* @copyright ETS Software Technology Co., Ltd
* @license Valid for 1 website (or project) for each purchase of license
*/
if (!defined('_PS_VERSION_')) { exit; }
class AdminSuperSpeedDatabaseController extends ModuleAdminController
{
public function __construct()
{
parent::__construct();
$this->context= Context::getContext();
$this->bootstrap = true;
}
public function initContent()
{
$this->_postDatabase();
parent::initContent();
}
public function renderList()
{
$this->context->smarty->assign(
array(
'html_form' =>$this->renderFormDataBase(),
)
);
return $this->module->display(_PS_MODULE_DIR_.$this->module->name.DIRECTORY_SEPARATOR.$this->module->name.'.php', 'admin.tpl');
}
public function renderFormDataBase()
{
$datas = array();
foreach (Ets_superspeed_defines::getInstance()->getFieldConfig('_datas_dynamic') as $key => $data) {
$total = (int)Ets_superspeed_defines::getTotalRowTable($key,$data['where']);
if (isset($data['table2']) && isset($data['where2']))
$total += (int)Ets_superspeed_defines::getTotalRowTable($data['table2'],$data['where2']);
$data = array(
'total' => $total,
'name' => $data['name'],
'desc' => $data['desc'],
'link_download' => $this->context->link->getAdminLink('AdminSuperSpeedDatabase') . '&downloadDb=1&table=' . $key,
'link_delete' => $this->context->link->getAdminLink('AdminSuperSpeedDatabase') . '&deleteDb=1&table=' . $key,
);
$datas[] = $data;
}
$this->context->smarty->assign(
array(
'datas' => $datas,
'link_delete_all' => $this->context->link->getAdminLink('AdminSuperSpeedDatabase') . '&deleteallDb=1',
)
);
return $this->module->display(_PS_MODULE_DIR_.$this->module->name.DIRECTORY_SEPARATOR.$this->module->name.'.php', 'form_data.tpl');
}
protected function actionDownloadDb($table)
{
$datas_dynamic = Ets_superspeed_defines::getInstance()->getFieldConfig('_datas_dynamic');
if (isset($datas_dynamic[$table]) && $data = $datas_dynamic[$table]) {
$total = (int)Ets_superspeed_defines::getTotalRowTable($table,$data['where']);
if (isset($data['table2']) && isset($data['where2']))
$total2 = (int)Ets_superspeed_defines::getTotalRowTable($data['table2'],$data['where2']);
else
$total2 = 0;
if ($total || $total2) {
if ($total) {
$csv = $this->getCSVData($data['table'], $data['where']);
}
if ($total2)
$csv2 = $this->getCSVData($data['table2'], $data['where2']);
if (isset($csv2) && isset($csv)) {
$zip = new ZipArchive();
$moduleDir = dirname(__FILE__) . '/';
$zip_file_name = date("Y-m-d") . '_' . $data['table'] . '_' . $data['table2'] . '.zip';
if ($zip->open($moduleDir . $zip_file_name, ZipArchive::OVERWRITE | ZipArchive::CREATE) === true) {
$zip->addFromString($data['table'] . '.xls', $csv);
$zip->addFromString($data['table2'] . '.xls', $csv2);
if (ob_get_length() > 0) {
ob_end_clean();
}
ob_start();
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: public');
header('Content-Description: File Transfer');
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $zip_file_name . '"');
header('Content-Transfer-Encoding: binary');
ob_end_flush();
readfile($moduleDir . $zip_file_name);
if(file_exists($moduleDir . $zip_file_name))
@unlink($moduleDir . $zip_file_name);
exit;
}
} elseif (isset($csv2)) {
header("Content-type: application/x-msdownload");
header("Content-disposition: csv; filename=" . date("Y-m-d") . $data['table2'] . ".csv; size=" . Tools::strlen($csv2));
echo $csv2;
exit();
} else {
header("Content-type: application/x-msdownload");
header("Content-disposition: csv; filename=" . date("Y-m-d") . $data['table'] . ".csv; size=" . Tools::strlen($csv));
echo $csv;
exit();
}
}
}
}
protected function actionDeleteDb($table)
{
$datas_dynamic = Ets_superspeed_defines::getInstance()->getFieldConfig('_datas_dynamic');
if (isset($datas_dynamic[$table]) && ($data = $datas_dynamic[$table])) {
if (isset($data['table2']) && isset($data['where2']))
Ets_superspeed_defines::deleteRowTable($data['table2'],$data['where2']);
if(isset($data['table']) && isset($data['where']))
{
Ets_superspeed_defines::deleteRowTable($data['table'],$data['where']);
}
if (Tools::isSubmit('ajax')) {
die(
json_encode(
array(
'success' => $this->module->displaySuccessMessage($this->l('Deleted data successfully')),
)
)
);
}
Tools::redirectAdmin($this->context->link->getAdminLink('AdminSuperSpeedDatabase', true) . '&conf=2');
}
}
protected function actionDeleteAllDb()
{
$datas_dynamic = Ets_superspeed_defines::getInstance()->getFieldConfig('_datas_dynamic');
foreach ($datas_dynamic as $data) {
if (isset($data['table2']) && isset($data['where2']))
Ets_superspeed_defines::deleteRowTable($data['table2'],$data['where2']);
if(isset($data['table']) && isset($data['where']))
Ets_superspeed_defines::deleteRowTable($data['table'],$data['where']);
}
if (Tools::isSubmit('ajax')) {
die(
json_encode(
array(
'success' => $this->module->displaySuccessMessage($this->l('Deleted all data successfully')),
)
)
);
}
Tools::redirectAdmin($this->context->link->getAdminLink('AdminSuperSpeedDatabase', true) . '&conf=2');
}
public function _postDatabase()
{
$datas_dynamic = Ets_superspeed_defines::getInstance()->getFieldConfig('_datas_dynamic');
if (Tools::isSubmit('downloadDb') && ($table = Tools::getValue('table')) && Validate::isCleanHtml($table) ) {
$this->actionDownloadDb($table);
}
if (Tools::isSubmit('deleteDb') && ($table = Tools::getValue('table')) && Validate::isTableOrIdentifier($table)) {
$this->actionDeleteDb($table);
}
if (Tools::isSubmit('deleteallDb')) {
$this->actionDeleteAllDb();
}
}
public function getCSVData($table, $where)
{
$results = Ets_superspeed_defines::getTotalRowTable($table,$where,false);
$tam = '';
$csv = '';
if ($results) {
foreach ($results as $key => $result) {
$message = $result;
if ($key == 0) {
$i = 1;
foreach ($result as $key1 => $value1) {
if ($i != count($result))
$csv .= $key1 . "\t";
else
$csv .= $key1 . "\r\n";
$i++;
unset($value1);
}
}
$csv .= join("\t", $message) . "\r\n";
}
}
unset($tam);
$csv = chr(255) . chr(254) . mb_convert_encoding($csv, "UTF-16LE", "UTF-8");
return $csv;
}
}