/** * Uncompress update TAR * * Extract forum files to extensions folder * Step three (of 3) in Auto Update process. * @todo Finish auto-update, need work on exstrating, need run auto run update script * @uses Set_AWC_Forum_BreadCrumbs * @since Version 2.5.8 */ function autoupdate_unpack_and_update() { global $wgRequest, $IP; Set_AWC_Forum_BreadCrumbs(get_awcsforum_word('admin_autoupdate') . ' - ' . get_awcsforum_word('admin_expearimental'), true); $get_ver = $wgRequest->getVal('get_ver'); $save_tar = awc_dir . 'updates/AutoUpdate_tars/' . $get_ver . '.tar'; require awc_dir . 'includes/tar_cls.php'; $tar = new awcsforum_tar_compress_cls(); //$tar->filename = $save_tar; $arch = new tar(); $arch->extractTar($save_tar, awc_dir . 'updates/AutoUpdate_tars/'); // die($IP); // $tar->extract_files($IP . '/'); // working, just need to fix the TAR error problem above... // die(header("Location: " . awc_url . 'admin/get_updates/' . $get_ver)); }
function extract($src, $dest = false) { $path_parts = pathinfo($src); if (!$dest) { $dest = $path_parts['dirname'] . '/'; } $ext = '.' . $path_parts['extension']; $name = $path_parts['filename']; foreach ($this->WathArchive as $key => $val) { if (stripos($ext, $key) !== false) { $comp = $val; } } if ($comp == 'zip') { $zip = new zip(); return $zip->extractZip($src, $dest); } elseif (strlen($comp) > 1) { $tar = new tar(); if ($comp == 'bz') { $bzip2 = new bzip2(); $src = $bzip2->extractBzip2($src); } elseif ($comp == 'gz') { $gzip = new gzip(); $src = $gzip->extractGzip($src); } if ($tar->is_tar($src) || is_file($src)) { return $tar->extractTar($src, $dest); } else { file_put_contents($dest . $name, $src); } return $dest; } return false; }
// ----- db anlegen $file_temp = "include/install/community0.5_redaxo2.7.sql"; $h = fopen($file_temp, "r"); $conts = fread($h, filesize($file_temp)); $all = explode("\n", $conts); $add = new sql(); // $add->debugsql = 1; foreach ($all as $hier) { $add->setquery(Trim(str_replace("||||||+N+||||||", "\n", $hier), ";")); $add->flush(); } // ----- dateien anlegen $file_temp = $REX[INCLUDE_PATH] . "/install/community0.5_redaxo2.7.tar.gz"; $tar = new tar(); $tar->openTAR($file_temp); if (!$tar->extractTar()) { $err_msg = $I18N->msg("problem_when_extracting") . "<br>"; if (count($tar->message) > 0) { $err_msg .= $I18N->msg("create_dirs_manually") . "<br>"; reset($tar->message); for ($fol = 0; $fol < count($tar->message); $fol++) { $err_msg .= key($tar->message) . "<br>"; next($tar->message); } } } } elseif ($dbanlegen == 3) { // ----- update $fname = "include/install/update2_6-2_7.sql"; $h = fopen($fname, "r"); $create = fread($h, filesize($fname));
/** * Importiert das Tar-Archiv $filename in den Ordner /files * * @param string Pfad + Dateinamen zum Tar-Archiv * * @return array Gibt ein Assoc. Array zurück. * 'state' => boolean (Status ob fehler aufgetreten sind) * 'message' => Evtl. Status/Fehlermeldung */ function rex_a1_import_files($filename) { global $REX, $I18N_IM_EXPORT; $return = array(); $return['state'] = false; if ($filename == '') { $return['message'] = $I18N_IM_EXPORT->msg("no_import_file_chosen") . "<br>"; return $return; } // Ordner /files komplett leeren rex_deleteDir($REX['INCLUDE_PATH'] . "/../../files"); $tar = new tar(); $tar->openTAR($filename); if (!$tar->extractTar()) { $msg = $I18N_IM_EXPORT->msg("problem_when_extracting") . "<br>"; if (count($tar->message) > 0) { $msg .= $I18N_IM_EXPORT->msg("create_dirs_manually") . "<br>"; reset($tar->message); for ($fol = 0; $fol < count($tar->message); $fol++) { $msg .= rex_absPath(str_replace("'", "", key($tar->message))) . "<br>"; next($tar->message); } } } else { $msg = $I18N_IM_EXPORT->msg("file_imported") . "<br>"; } $return['state'] = true; $return['message'] = $msg; return $return; }