Файл: adultscript-2.0.3-pro/files/admin/modules/tools/components/backup.php
Строк: 42
<?php
defined('_VALID') or die('Restricted Accesss!');
set_time_limit(0);
class VComponent_Admin_tools_backup
{
private $db;
public function __construct()
{
$this->db = VF::factory('database');
}
public function render()
{
$errors = array();
$messages = array();
$warnings = array();
$mysqldump = NULL;
$paths = array(
'/usr/bin/mysqldump',
'/usr/sbin/mysqldump',
'/usr/local/bin/mysqldump',
'/usr/local/sbin/mysqldump'
);
foreach ($paths as $path) {
if (file_exists($path) &&
is_file($path) &&
is_executable($path)) {
$mysqldump = $path;
}
}
if (isset($_POST['submit-backup'])) {
$mysqldump = VF::factory('filter')->get('mysqldump');
if (!file_exists($mysqldump) OR
!is_file($mysqldump) OR
!is_executable($mysqldump)) {
$errors[] = 'MySQLDump binary not found or not a valid executable!';
}
if (!$errors) {
$cfg = require BASE_DIR.'/config.php';
$db_name = $cfg['db_name'];
$db_user = $cfg['db_username'];
$db_pass = $cfg['db_password'];
$db_host = $cfg['db_host'];
$filename = md5($cfg['secret'].'-'.time()).'.sql';
$cmd = $mysqldump.' -u '.$db_user.' -p'.$db_pass.' '.$db_name.' > '.TMP_DIR.'/downloads/'.$filename;
exec($cmd, $output, $return);
if ($return === 0) {
VDownload::force(TMP_DIR.'/downloads/'.$filename, $filename, 'txt');
} else {
$errors[] = 'Failed to execute the mysqldump cmd: '.$cmd;
}
}
}
$tpl = VF::factory('template');
$tpl->menu = 'main';
$tpl->submenu = 'tools';
$tpl->meta_title = 'Tools::Database Backup';
$tpl->errors = $errors;
$tpl->messages = $messages;
$tpl->warnings = $warnings;
$tpl->mysqldump = $mysqldump;
$tpl->load(array('header', 'tools_backup', 'footer'));
$tpl->display();
}
}