} else { if (isset($_GET['code_apply_ref'])) { $code = $parser->getCodeInfo(); foreach ($code as $piece) { //version number must be greater than current version, else do nothing if ($piece['version'] > $dbversion && $piece['version'] == $_GET['code_apply_ref']) { if (!file_exists(KB_CACHEDIR . "/update/backup")) { mkdir(KB_CACHEDIR . "/update/backup", 0777); } $hostFileName = $piece['url']; $lastPart = explode('/', $hostFileName); $cacheFileName = KB_CACHEDIR . "/update/" . $lastPart[count($lastPart) - 1]; //get the file list from the zip, and backup the existing files, this allows //the board admin to roll back the source manually at a later time. $readingZip = new Zip($cacheFileName); $fileList = $readingZip->getFileList(); $deleteList = array(); if (is_array($fileList)) { foreach ($fileList as $file) { if ($file['filename'] == "cache/todelete.txt") { $tmp = $readingZip->extractFile($file['index']); $deleteList = explode("\n", $tmp[0]["content"]); } else { if (is_dir($file['filename'])) { // Add empty directories to the backup list. $dirlist = scandir($file['filename']); if (count($dirList) == 2) { $fileName[] = $file['filename']; } unset($dirlist); } else {