public function remove_tmpl_files() { if (isset($_GET['page']) && 'wolf-theme-import') { if ($this->get_data()) { //var_dump( $this->tmp_dir ); wolf_clean_folder($this->tmp_dir); $message = __('Done', 'wolf'); wolf_admin_notice($message, 'updated'); } } }
/** * Remove temp files after importation */ public function remove_tmp_files() { wolf_clean_folder(WOLF_THEME_DIR . '/tmp'); }
/** * Unzip files in tmp folder, then replace the files * * @param string $file * @return bool */ public function unzip($file) { $this->theme_dir = WOLF_THEME_DIR; $this->tmp_dir = WOLF_THEME_DIR . '/tmp'; wolf_clean_folder($this->tmp_dir); // ensure that the tmp folder is empty $file_path = $file['tmp_name']; $zip = new ZipArchive(); $res = $zip->open($file_path); if ($res === TRUE) { $zip->extractTo($this->tmp_dir); $zip->close(); $this->recurse_copy($this->tmp_dir . '/' . wolf_get_theme_slug(), $this->theme_dir); wolf_clean_folder($this->tmp_dir); $this->remove_deprecated_files($this->theme_dir); return true; } else { $message = __('An occur occured while trying to update the theme.', 'wolf'); wolf_admin_notice($message, 'error'); return false; } }
/** * Import options from zip file or txt file */ public function import_options() { if (isset($_POST['wolf-options-import-file-submit'])) { if (!empty($_FILES['wolf-options-import-file']['name'])) { $txt_file = null; $file_content = null; $tmp_dir = WOLF_THEME_TMP_DIR; $file = $_FILES['wolf-options-import-file']; $ext = pathinfo($file['name'], PATHINFO_EXTENSION); $folder_name = str_replace('.' . $ext, '', $file['name']); if ('zip' != $ext && 'txt' != $ext) { $message = __('Only .txt file or zip file containing a text file are allowed', 'wolf'); wolf_admin_notice($message, 'error'); } else { // Go if ('zip' == $ext) { // unzip file $zip = new ZipArchive(); if ($zip->open($file['tmp_name']) === TRUE) { $zip->extractTo($tmp_dir); $zip->close(); $tmp_folder = $tmp_dir; if (is_dir($tmp_dir . '/' . $folder_name)) { $tmp_folder = $tmp_dir . '/' . $folder_name; } // get text file foreach (glob($tmp_folder . '/*.txt') as $filename) { $txt_file = $filename; break; } if ($txt_file) { $file_content = file_get_contents($txt_file); } else { $message = __('It seems that your archive is empty or does not contain a txt file', 'wolf'); wolf_admin_notice($message, 'error'); } } else { $message = __('We could not import the theme options', 'wolf'); wolf_admin_notice($message, 'error'); } } elseif ('txt' == $ext) { $file_content = file_get_contents($file['tmp_name']); } if ('' != $file_content) { // debug( $file_content ); $data = @unserialize(base64_decode($file_content)); if ($data && is_array($data)) { update_option('wolf_theme_options_' . wolf_get_theme_slug(), $data); wolf_admin_notice(__('New options imported successfully', 'wolf'), 'updated'); } else { wolf_admin_notice(__('The file doesn\'t seem to contain any options.', 'wolf'), 'updated'); } } else { $message = __('Looks like your text file is empty', 'wolf'); wolf_admin_notice($message, 'error'); } // clean tmp folder wolf_clean_folder($tmp_dir); } } else { $message = __('Please Select a file to upload', 'wolf'); wolf_admin_notice($message, 'error'); } return false; } }
/** * Remove all files in a folder * * @param string $dirname */ function wolf_clean_folder($dirname) { $dir_handle = null; $tmp_dir = WOLF_THEME_TMP_DIR; if (is_dir($dirname)) { $dir_handle = opendir($dirname); } if (!$dir_handle) { return false; } while ($file = readdir($dir_handle)) { if ($file != '.' && $file != '..' && $file != 'empty') { if (!is_dir($dirname . '/' . $file)) { unlink($dirname . '/' . $file); } else { wolf_clean_folder($dirname . '/' . $file); } } } closedir($dir_handle); if ($dirname != $tmp_dir && count(glob("{$dirname}/*")) === 0) { rmdir($dirname); } return true; }