Beispiel #1
0
 } 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 {