public function create_full()
{
if (!defined('INI_SYSTEM_CHECK_DISABLED')) {
define('INI_SYSTEM_CHECK_DISABLED', ini_get('disable_functions'));
}
if (!strstr(INI_SYSTEM_CHECK_DISABLED, 'ini_set')) {
ini_set('memory_limit', '512M');
}
if (!strstr(INI_SYSTEM_CHECK_DISABLED, 'set_time_limit')) {
set_time_limit(600);
}
$backup_actions = array();
$backup_actions[] = 'make_db_backup';
$userfiles_folder = userfiles_path();
$media_folder = media_base_path();
$all_images = $this->app->media_manager->get_all('limit=10000');
if (!empty($all_images)) {
foreach ($all_images as $image) {
if (isset($image['filename']) and $image['filename'] != false) {
$fn = url2dir($image['filename']);
if (is_file($fn)) {
$backup_actions[] = $fn;
}
}
}
}
$host = parse_url(site_url());
$host_dir = false;
if (isset($host['host'])) {
$host_dir = $host['host'];
$host_dir = str_ireplace('www.', '', $host_dir);
$host_dir = str_ireplace('.', '-', $host_dir);
}
$userfiles_folder_uploaded = $media_folder . DS . $host_dir . DS . 'uploaded' . DS;
$userfiles_folder_uploaded = $media_folder . DS . $host_dir . DS;
$userfiles_folder_uploaded = \normalize_path($userfiles_folder_uploaded);
$folders = \rglob($userfiles_folder_uploaded . '*', GLOB_NOSORT);
if (!is_array($folders)) {
$folders = array();
}
$cust_css_dir = $userfiles_folder . 'css' . DS;
if (is_dir($cust_css_dir)) {
$more_folders = \rglob($cust_css_dir . '*', GLOB_NOSORT);
if (!empty($more_folders)) {
$folders = array_merge($folders, $more_folders);
}
}
if (!empty($folders)) {
$text_files = array();
foreach ($folders as $fold) {
if (!stristr($fold, 'backup')) {
if (stristr($fold, '.php') or stristr($fold, '.js') or stristr($fold, '.css')) {
$text_files[] = $fold;
} else {
$backup_actions[] = $fold;
}
}
}
if (!empty($text_files)) {
$backup_actions = array_merge($text_files, $backup_actions);
}
}
$cache_id = 'backup_queue';
$cache_id_loc = 'backup_progress';
$cache_state_id = 'backup_zip_state';
$this->app->cache_manager->save($backup_actions, $cache_id, 'backup');
$this->app->cache_manager->save(false, $cache_id_loc, 'backup');
$this->app->cache_manager->save(false, $cache_state_id, 'backup');
if (!defined('MW_NO_SESSION')) {
define('MW_NO_SESSION', 1);
}
return;
}