foreach ($code as $piece) { //version number must be greater than current version, else do nothing if ($piece['version'] > $codeversion && $piece['version'] == $_GET['code_dl_ref']) { if (!file_exists(getcwd() . "/update")) { mkdir(KB_CACHEDIR . "/update", 0777); } $hostFileName = $piece['url']; $lastPart = explode('/', $hostFileName); $cacheFileName = KB_CACHEDIR . "/update/" . $lastPart[count($lastPart) - 1]; new FileCacher($hostFileName, $cacheFileName); break; } } } 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)) {