Exemple #1
0
 public function downloadMPDF(Vtiger_Request $request)
 {
     $error == "";
     $srcZip = "http://www.crm4you.sk/PDFMaker/src/mpdf.zip";
     $trgZip = "modules/PDFMaker/resources/mpdf.zip";
     if (copy($srcZip, $trgZip)) {
         require_once 'vtlib/thirdparty/dUnzip2.inc.php';
         $unzip = new dUnzip2($trgZip);
         $unzip->unzipAll(getcwd() . "/modules/PDFMaker/resources/");
         if ($unzip) {
             $unzip->close();
         }
         if (!is_dir("modules/PDFMaker/resources/mpdf")) {
             $error = vtranslate("UNZIP_ERROR", 'PDFMaker');
             $viewer->assign("STEP", "error");
             $viewer->assign("ERROR_TBL", $errTbl);
         }
     } else {
         $error = vtranslate("DOWNLOAD_ERROR", 'PDFMaker');
     }
     if ($error == "") {
         $result = array('success' => true, 'message' => '');
     } else {
         $result = array('success' => false, 'message' => $error);
     }
     $response = new Vtiger_Response();
     $response->setResult($result);
     $response->emit();
 }
function Installer_unzip_file_to_addon_dir($file, $includeDir, $installname)
{
    // Zip Klasse laden
    $zip = new dUnzip2($includeDir . "/" . $file);
    //$zip->debug = 1; // debug?
    // Inhalt vom ZIP-FILE laden. Liefert ARRAY zurück
    $zipList = $zip->getList();
    // Ruft die Sicherheitsfunktion auf, um zu prüfen, ob es sich
    // um ein richtiges AddOn handelt, wenn ja, true, ansonsten false
    if (Installer_check_if_file_is_addon($zipList, $installname)) {
        // Inhalt vom ZIP-File im AddOn-Verzeichnis entpacken
        $zip->unzipAll($includeDir . '/addons/');
        // Installation säubern (Temp Daten löschen, versteckte OSX-Daten etc.)
        Installer_clean_addon_setup($includeDir, $file);
        // File-Handler schließen und memory freigeben
        $zip->__destroy();
        // Alles ok, weiter gehts!
        return true;
    } else {
        // File-Handler schließen und memory freigeben
        $zip->__destroy();
        // Check fehlgeschlagen - false ausgeben
        return false;
    }
}
Exemple #3
0
 function install($path, $unzip = true)
 {
     if ($unzip) {
         $zip = new dUnzip2($path);
         $unzipPath = $GLOBALS['path'] . "/../tmp/" . basename($path) . "_contents/";
         $zip->getList();
         if (!file_exists($unzipPath)) {
             mkdir($unzipPath);
         }
         $zip->unzipAll($unzipPath);
     } else {
         $unzipPath = $path;
     }
     $info = @file_get_contents($unzipPath . "/meta.json");
     if ($info == false) {
         return false;
     }
     $info = @Zend_Json::decode($info);
     if ($info == false) {
         return false;
     }
     $method = "_install_" . $info['type'];
     $ret = package::$method($info, $unzipPath);
     if (!$ret) {
         return false;
     }
     if ($unzip) {
         rmdir($unzipPath);
     }
     $info['installedFiles'] = $ret;
     unlink($unzipPath . "/meta.json");
     return $info;
 }
Exemple #4
0
function unzip_install($filename, $tmpdir)
{
    $zip = new dUnzip2($filename);
    // Activate debug
    //$zip->debug = true;
    // Unzip all the contents of the zipped file to a new folder called "uncompressed"
    $zip->getList();
    $zip->unzipAll($tmpdir);
    echo "<b>Unpacked the zipped file</b><br>";
}
Exemple #5
0
 function uploaded()
 {
     if (!is_admin()) {
         return info_page('只有管理员才能进入此页面,<a href="?c=guest&a=logout">请先用管理员账户登入</a>');
     }
     if ($_FILES['pfile']['error'] != 0) {
         return info_page('文件上传错误,请重新上传');
     }
     $tmp_name = $_FILES['pfile']['tmp_name'];
     $tname = uid() . '-' . time();
     $plug_path = c('plugin_path') . DS . $tname;
     if (@mkdir($plug_path)) {
         include_once AROOT . 'lib' . DS . 'dUnzip2.inc.php';
         $zip = new dUnzip2($tmp_name);
         $zip->debug = false;
         $zip->unzipAll($plug_path);
         @chmod($plug_path, 0755);
         $info_file = $plug_path . DS . 'app.php';
         if (file_exists($info_file)) {
             if ($info = get_plugin_info(file_get_contents($info_file))) {
                 if (isset($info['folder_name'])) {
                     $folder_name = $info['folder_name'];
                 }
                 if (strlen($folder_name) < 1) {
                     $folder_name = reset(explode('.', basename($_FILES['pfile']['name'])));
                 }
                 if (strlen($folder_name) > 0) {
                     if (file_exists(c('plugin_path') . DS . $folder_name)) {
                         @rename(c('plugin_path') . DS . $folder_name . DS . 'app.php', c('plugin_path') . DS . $folder_name . DS . 'app.bak.php');
                         @rename(c('plugin_path') . DS . $folder_name, c('plugin_path') . DS . $folder_name . '_' . uid() . '_' . time());
                     }
                     rename($plug_path, c('plugin_path') . DS . $folder_name);
                     header("Location: ?c=pluglist");
                     return true;
                 } else {
                     return info_page('尝试获取插件名称失败,启用' . $tname . '作为临时名称,<a href="?c=pluglist">请点击继续</a>');
                 }
             }
         } else {
             // clear dir
         }
         return info_page('找不到插件执行脚本-app.php文件,<a href="?c=pluglist">请重新上传格式正确的插件包</a>');
     } else {
         return info_page('创建插件目录失败,请将plugin目录设置为可写后<a href="?c=pluglist">重试</a>');
     }
 }
Exemple #6
0
 function uploaded()
 {
     if (!is_admin()) {
         return info_page(__('ADMIN_ONLY_LOGIN'));
     }
     if ($_FILES['pfile']['error'] != 0) {
         return info_page(__('PLUGIN_UPLOAD_FILE_ERROR_RETRY'));
     }
     $tmp_name = $_FILES['pfile']['tmp_name'];
     $tname = uid() . '-' . time();
     $plug_path = c('plugin_path') . DS . $tname;
     if (@mkdir($plug_path)) {
         include_once AROOT . 'lib' . DS . 'dUnzip2.inc.php';
         $zip = new dUnzip2($tmp_name);
         $zip->debug = false;
         $zip->unzipAll($plug_path);
         @chmod($plug_path, 0755);
         $info_file = $plug_path . DS . 'app.php';
         if (file_exists($info_file)) {
             if ($info = get_plugin_info(file_get_contents($info_file))) {
                 if (isset($info['folder_name'])) {
                     $folder_name = $info['folder_name'];
                 }
                 if (strlen($folder_name) < 1) {
                     $folder_name = reset(explode('.', basename($_FILES['pfile']['name'])));
                 }
                 if (strlen($folder_name) > 0) {
                     if (file_exists(c('plugin_path') . DS . $folder_name)) {
                         @rename(c('plugin_path') . DS . $folder_name . DS . 'app.php', c('plugin_path') . DS . $folder_name . DS . 'app.bak.php');
                         @rename(c('plugin_path') . DS . $folder_name, c('plugin_path') . DS . $folder_name . '_' . uid() . '_' . time());
                     }
                     rename($plug_path, c('plugin_path') . DS . $folder_name);
                     header("Location: ?c=pluglist");
                     return true;
                 } else {
                     return info_page(__('PLUGIN_GET_NAME_ERROR_RETRY', $tname));
                 }
             }
         } else {
             // clear dir
         }
         return info_page(__('PLUGIN_PACKAGE_FORMAT_ERROR'));
     } else {
         return info_page(__('PLUGIN_CREATE_FOLDER_ERROR'));
     }
 }
Exemple #7
0
function backup_unzip($zipfile = '', $err_show = 1)
{
    require_once "unzip.class.php";
    if (!file_exists(CFBACKUPPATH . $zipfile)) {
        if ($err_show) {
            user_feedback('error', 'can\'t find file!', 'backup_unzip');
        }
        return false;
    }
    $file_ext = explode(".", $zipfile);
    $file_type = explode("_", $zipfile);
    if (end($file_ext) == 'zip') {
        if ($file_type[0] == 'imgdb') {
            $unzip_to = CFDATAPATH;
            //CFBACKUPPATH.'uncompressed';
        } elseif ($file_type[0] == 'bandwidth' && $err_show) {
            $unzip_to = CFBANDWIDTHPATH;
        }
    } else {
        if ($err_show) {
            user_feedback('error', 'can\'t Unzip file!', 'backup_unzip');
        }
        return false;
    }
    $zip = new dUnzip2(CFBACKUPPATH . $zipfile);
    $zip->unzipAll($unzip_to);
    if ($zip->getLastError()) {
        if ($err_show) {
            user_feedback('success', 'Unzipped files!', 'backup_unzip');
        }
        return true;
    }
    if ($err_show) {
        user_feedback('error', 'can\'t Unzip file!', 'backup_unzip2');
    }
    return false;
}
 if ($_FILES[$id . "file_" . $i]["size"] > $config["max_upload_size"] || $_FILES[$id . "file_" . $i]["error"] == 2) {
     //$errors.="<span class='fm-messages'>".$_FILES[$id."file_".$i]["name"]." ".$this->Lang("filetoobig")."</span>\n";
     $error = "afileistoobig";
     break;
 }
 if (isset($params["unpack" . $i])) {
     $pos = strrpos($_FILES[$id . "file_" . $i]["name"], '.');
     $extension = "";
     if ($pos > 0) {
         $extension = substr($_FILES[$id . "file_" . $i]["name"], $pos + 1);
     }
     switch (strtolower($extension)) {
         case "zip":
             include_once dirname(__FILE__) . "/dunzip.php";
             $unzipping = new dUnzip2($_FILES[$id . "file_" . $i]["tmp_name"]);
             $message = $unzipping->unzipAll($fullpath);
             if ($unzipping->debugstrings != "") {
                 /* $errors.="<li>".$_FILES[$id."file_".$i]["name"]." ".$this->Lang("unpackfail");
                    $errors.=$unzipping->debugstrings."</li>"; */
                 if ($config["debug"]) {
                     echo $unzipping->debugstrings;
                 }
                 $error = "newuploadfailed";
                 $errorcount++;
             } else {
                 $message = "newuploadsuccess";
                 $messagecount++;
                 //$messages.="<li>".$_FILES[$id."file_".$i]["name"]." ".$this->Lang("unpacksuccess")."</li>\n";
             }
             break;
         case "tgz":
Exemple #9
0
function unzip_go()
{
    global $list, $options;
    require_once CLASS_DIR . "unzip.php";
    $any_file_unzippped = false;
    for ($i = 0; $i < count($_POST["files"]); $i++) {
        $file = $list[$_POST["files"][$i]];
        if (file_exists($file["name"])) {
            $zip = new dUnzip2($file["name"]);
            $allf = $zip->getList();
            $file_inside_zip_exists = false;
            $forbidden_inside_zip = false;
            foreach ($allf as $k => $properties) {
                if (file_exists($options['download_dir'] . basename($properties['file_name']))) {
                    $file_inside_zip_exists = true;
                    break;
                }
            }
            if ($options['check_these_before_unzipping']) {
                foreach ($allf as $k => $property) {
                    $zfiletype = strrchr($property['file_name'], ".");
                    if (is_array($options['forbidden_filetypes']) && in_array(strtolower($zfiletype), $options['forbidden_filetypes'])) {
                        $forbidden_inside_zip = true;
                        break;
                    }
                }
            }
            if ($file_inside_zip_exists) {
                echo 'Some file(s) inside <b>' . htmlentities(basename($file["name"])) . '</b> already exist on download directory';
                echo "<br /><br />";
            } elseif ($forbidden_inside_zip) {
                printf(lang(181), $zfiletype);
                echo "<br /><br />";
            } else {
                $zip->unzipAll($options['download_dir']);
                if ($zip->getList() != false) {
                    $any_file_unzippped = true;
                    echo '<b>' . htmlentities(basename($file["name"])) . '</b>&nbsp;unzipped successfully<br /><br />';
                    foreach ($allf as $k => $properties) {
                        $efile = realpath($options['download_dir']) . '/' . basename($properties['file_name']);
                        if (is_file($efile)) {
                            $time = filemtime($efile);
                            while (isset($list[$time])) {
                                $time++;
                            }
                            $list[$time] = array("name" => $efile, "size" => bytesToKbOrMbOrGb(filesize($efile)), "date" => $time);
                        }
                    }
                    if (!updateListInFile($list)) {
                        echo lang(146) . "<br /><br />";
                    }
                } else {
                    echo "File <b>" . $file["name"] . "</b> not found!<br /><br />";
                }
            }
        }
    }
}
Exemple #10
0
require_once "Smarty_setup.php";
$smarty = new vtigerCRM_Smarty();
$theme_path = "themes/" . $theme_path . "/";
$image_path = $theme_path . "images/";
$smarty->assign("THEME", $theme_path);
$smarty->assign("IMAGE_PATH", $image_path);
$smarty->assign("MOD", $mod_strings);
$smarty->assign("APP", $app_strings);
if ($_REQUEST["installtype"] == "download_src") {
    $errTbl = array();
    $srcZip = "http://www.crm4you.sk/PDFMaker/src/mpdf5.zip";
    $trgZip = "modules/PDFMaker/mpdf.zip";
    if (copy($srcZip, $trgZip)) {
        require_once 'vtlib/thirdparty/dUnzip2.inc.php';
        $unzip = new dUnzip2($trgZip);
        $unzip->unzipAll(getcwd() . "/modules/PDFMaker/");
        if ($unzip) {
            $unzip->close();
        }
        if (!is_dir("modules/PDFMaker/mpdf")) {
            $errTbl[] = $mod_strings["UNZIP_ERROR"];
            $smarty->assign("STEP", "error");
            $smarty->assign("ERROR_TBL", $errTbl);
        } else {
            unlink($trgZip);
            $smarty->assign("STEP", "2");
            $smarty->assign("CURRENT_STEP", "3");
            $smarty->assign("TOTAL_STEPS", "4");
            $smarty->assign("STEPNAME", $mod_strings["LBL_INSTALL_SELECTION"]);
            $smarty->assign("P_ERRORS", $p_errors);
        }
Exemple #11
0
function cbupd_import($zipfile)
{
    global $cspath;
    $unzip = new dUnzip2($zipfile);
    $unzip->unzipAll($cspath);
    $filelist = $unzip->getList();
    $csxmlfound = false;
    echo getTranslatedString('Importing', 'cbupdater') . ' ' . $zipfile . '<br>';
    $processing = getTranslatedString('Processing', 'cbupdater') . ' ';
    foreach ($filelist as $filename => $fileinfo) {
        echo $processing . $filename . '<br>';
        $pinfo = pathinfo($filename);
        if ($pinfo['extension'] == 'xml') {
            $cbupdates = new DOMDocument();
            if ($cbupdates->load($cspath . '/' . $filename)) {
                if ($cbupdates->schemaValidate('modules/cbupdater/cbupdater.xsd')) {
                    $csxmlfound = true;
                    $w = new XMLWriter();
                    $w->openMemory();
                    $w->setIndent(true);
                    $w->startDocument('1.0', 'UTF-8');
                    $w->startElement("updatesChangeLog");
                    $root = $cbupdates->documentElement;
                    foreach ($root->childNodes as $node) {
                        if (get_class($node) == 'DOMElement' and $node->nodeName == 'changeSet') {
                            $elems = $node->getElementsByTagName('*');
                            $upd = array();
                            foreach ($elems as $elem) {
                                if ($elem->nodeName == 'filename') {
                                    $bname = basename($elem->nodeValue);
                                    $upd[$elem->nodeName] = $cspath . '/' . $bname;
                                } else {
                                    $upd[$elem->nodeName] = $elem->nodeValue;
                                }
                            }
                            echo $processing . getTranslatedString('ChangeSet', 'cbupdater') . ' ' . $upd['classname'] . '<br>';
                            $w->startElement("changeSet");
                            if (!empty($upd['author'])) {
                                $w->startElement("author");
                                $w->text($upd['author']);
                                $w->endElement();
                            }
                            if (!empty($upd['description'])) {
                                $w->startElement("description");
                                $w->text($upd['description']);
                                $w->endElement();
                            }
                            $w->startElement("filename");
                            $w->text($upd['filename']);
                            $w->endElement();
                            $w->startElement("classname");
                            $w->text($upd['classname']);
                            $w->endElement();
                            $w->startElement("systemupdate");
                            $w->text($upd['systemupdate'] == '1' ? 'true' : 'false');
                            $w->endElement();
                            $w->endElement();
                        }
                    }
                    $w->endElement();
                    $cbupdate_file = 'modules/cbupdater/cbupdates/' . date('YmdHis') . $filename;
                    $fd = fopen($cbupdate_file, 'w');
                    $cbxml = $w->outputMemory(true);
                    fwrite($fd, $cbxml);
                    fclose($fd);
                    @unlink($cspath . '/' . $filename);
                }
            }
        }
    }
    echo getTranslatedString('ImportDone', 'cbupdater') . '<br>';
    if (!$csxmlfound) {
        echo getTranslatedString('ImportError', 'cbupdater') . '<br>';
        echo getTranslatedString('CleanUp', 'cbupdater') . '<br>';
        cbupd_cleanup($filelist);
    }
}
 /**
  * Check the Attemted Uploads for errors etc if everything goes good move the file, to the upload_dir.
  *
  * @param array $object
  * @return unknown
  */
 public function upload($object)
 {
     $errors =& $this->errors;
     if (empty($errors['general'])) {
         if (empty($this->upload_dir)) {
             $this->upload_dir = dirname(__FILE__) . '/';
         }
         //if no default upload_dir has been specified used the current dir.
         if ($this->check_dir($this->upload_dir)) {
             $files = $_FILES[$object];
             //$count = count($files['name']) - 1;
             /*echo '<pre>';
             		var_dump($files);
             		echo '</pre>';*/
             $error = '';
             try {
                 //check for $_FILES Errors
                 switch ($files['error']) {
                     case 0:
                         break;
                     case 1:
                         $error = $files['name'] . ' exceeds the upload_max_filesize directive in php.ini';
                         break;
                     case 2:
                         $error = $files['name'] . ' exceeds the MAX_FILE_SIZE directive that was specified in the HTML form';
                         break;
                     case 3:
                         $error = $files['name'] . ' was only partially uploaded';
                         break;
                     case 4:
                         $error = 'No file was uploaded';
                         break;
                     case 6:
                         $error = 'Missing a temporary folder';
                         break;
                     case 7:
                         $error = 'Failed to write ' . $files['name'] . ' to disk';
                         break;
                     case 8:
                         $error = $files['name'] . ' stopped by extension';
                         break;
                     default:
                         $error = 'Unidentified Error, caused by ' . $files['name'];
                         break;
                 }
                 if ($error) {
                     throw new TrigerErrorException($error, $files['name']);
                 }
                 //check that the file is not empty
                 if ($files['size'] <= 0) {
                     throw new TrigerErrorException($files['name'] . ' is empty', $files['name']);
                 }
                 //check that the file does not exceed the defined max_file_size
                 if ($this->max_file_size) {
                     if ($files['size'] >= $this->max_file_size) {
                         throw new TrigerErrorException($files['name'] . ' exceeds defined max_file_size', $files['name']);
                     }
                 }
                 if ($this->check_file_type == 'allowed' && !in_array($files['type'], $this->allowed_mime_types)) {
                     throw new TrigerErrorException($files['name'] . ' is not an allowed type', $files['name']);
                 } elseif ($this->check_file_type == 'denied' && in_array($files['type'], $this->denied_mime_types)) {
                     throw new TrigerErrorException($files['name'] . ' is a denied type', $files['name']);
                 }
                 //if make_safe is true call make safe function
                 if ($this->make_safe) {
                     $files['name'] = $this->make_safe($files['name']);
                 }
                 //if overwrite is false and the file exists error
                 if (!$this->overwrite && file_exists($this->upload_dir . $files['name'])) {
                     throw new TrigerErrorException($files['name'] . ' already exsists', $files['name']);
                 }
                 //move the uploaded file, error if anything goes wrong.
                 if (!move_uploaded_file($files['tmp_name'], $this->upload_dir . $files['name'])) {
                     throw new TrigerErrorException($files['name'] . ' could not be moved', $files['name']);
                 }
                 // Check if zip... then unzip it
                 if (in_array($files['type'], $this->zip_mime_types)) {
                     include_once '../classes/dUnzip/dUnzip2.inc.php';
                     include_once '../classes/dUnzip/dZip.inc.php';
                     $zip = new dUnzip2($this->upload_dir . $files['name']);
                     $zip->debug = false;
                     $zip->getList();
                     $zip->unzipAll($this->upload_dir);
                     $zip->close();
                     @unlink($this->upload_dir . $files['name']);
                 }
             } catch (TrigerErrorException $e) {
                 $errors[$files['name']][] = $e->Message();
             }
             if (empty($errors)) {
                 //return true if there where no errors
                 return true;
             } else {
                 //return the errors array if there where any errros
                 return $errors;
             }
         } else {
             //return false as dir is not valid
             $errors['general'][] = "The Specified Dir is Not Valid or is Not Writeable";
             return false;
         }
     }
 }
         }
         $valid = false;
     }
     if (Installer_check_if_addon_exists($REX['INCLUDE_PATH'] . "/addons/" . $installname)) {
         if ($overwrite) {
             $process = true;
         } else {
             $process = false;
         }
     } else {
         $process = true;
     }
     if ($valid) {
         if ($process) {
             // Inhalt vom ZIP-File im AddOn-Verzeichnis entpacken
             $zip->unzipAll($REX['INCLUDE_PATH'] . "/addons/");
             // Installation säubern (Temp Daten löschen, versteckte OSX-Daten etc.)
             //Installer_clean_addon_setup($includeDir, $file);
             // File-Handler schließen und memory freigeben
             $zip->__destroy();
             Installer_clean_addon_setup($REX['INCLUDE_PATH']);
             echo rex_info('ZIP-Datei wurde entpackt und ins AddOns Verzeichnis geschrieben. Bitte wähle nun eine Aktion:');
             echo '
 			        <ul class="action_after_unzip">
 			            <li><a href="#" data-installname="' . str_replace('/', '', $installname) . '" class="zip_install_activate">AddOn (re-)installieren und gleichzeitig aktivieren</a></li>
 			            <li><a href="#" data-installname="' . str_replace('/', '', $installname) . '" class="zip_install">AddOn nur (re-)installieren</a></li>
 			            <li><a href="?page=addon">Ins AddOn-Verzeichnis wechseln</a></li>
 			            <li><a href="#" class="new_zip_upload">Neue ZIP-Datei hochladen</a></li>
 			        </ul>
 			    ';
         } else {
Exemple #14
0
function upload_zip_file()
{
    global $xoopsDB, $xoopsUser, $xoopsModule, $xoopsModuleConfig, $type_to_mime;
    //取消上傳時間限制
    set_time_limit(0);
    //設置上傳大小
    ini_set('memory_limit', '100M');
    require_once "class/dunzip2/dUnzip2.inc.php";
    require_once "class/dunzip2/dZip.inc.php";
    $zip = new dUnzip2($_FILES['zipfile']['tmp_name']);
    $zip->getList();
    $zip->unzipAll(_TADGAL_UP_IMPORT_DIR);
}
Exemple #15
0
# echo "Adding files to the zip<br>";
# $newzip->addFile('dUnzip2.inc.php',  'class dUnzip2/dUnzip2.inc.php');
# $newzip->addFile('documentation.txt','class dUnzip2/documentation.txt');
# $newzip->addFile('dZip.inc.php',     'class dZip/dZip.inc.php');
# $newzip->addFile('sample.php',       'sample.php');

# // Save the new file
# echo "Finalizing the created file<br>";
# $newzip->save();

######## Then, load the file again. Now, to unzip it ########
echo "<hr>";
$zip = new dUnzip2('dUnzip2.zip');

// Activate debug
$zip->debug = true;

// Unzip all the contents of the zipped file to a new folder called "uncompressed"
$zip->getList();
$zip->unzipAll('uncompressed');

echo "Checking attributes for dUnzip2.gif<br>";
$d = $zip->getExtraInfo('dUnzip2.gif');
echo ($d['external_attributes1']&1 )?"File is read only.":"File is NOT read-only."; echo "<br>";
echo ($d['external_attributes1']&2 )?"File is hidden.":"File is NOT hidden.";       echo "<br>";
echo ($d['external_attributes1']&4 )?"File is system.":"File is NOT system.";       echo "<br>";
echo ($d['external_attributes1']&16)?"It's directory.":"It's NOT a directory.";     echo "<br>";
echo ($d['external_attributes1']&32)?"File is archive":"File is NOT archive";       echo "<br>";

// No secrets, do you agree?
Exemple #16
0
function fs_extract_zip_ip2c_database($zipFile, &$bin_file)
{
    require_once FS_ABS_PATH . "/lib/unzip/dUnzip2.inc.php";
    ob_start();
    $zip = new dUnzip2($zipFile);
    $dir = $GLOBALS['FS_TEMP_DIR'];
    $zip->unzipAll($dir);
    $tempName2 = tempnam($dir, "fs_ip2c_");
    if (!$tempName2) {
        return fs_r('Error creating temporary file');
    }
    $zip->unzip("ip-to-country.bin", $tempName2);
    $output = ob_get_clean();
    if ($output != '') {
        return $output;
    }
    $bin_file = $tempName2;
    return '';
}
Exemple #17
0
$ret = getJsonContentsAndDecode($query);
if ($ret && $ret['code'] == 0) {
    if ($ret['data']['result'] == 'last') {
        echo 'last version';
    } else {
        $url = parse_url($ret['data']['result']);
        $path = $url['path'];
        $path_parts = pathinfo($path);
        $down_file = AROOT . $path_parts["basename"];
        $down = download_file($ret['data']['result'], $down_file);
        if (file_exists($down_file)) {
            include_once 'dUnzip2.inc.php';
            $zip = new dUnzip2($down_file);
            @mkdir(AROOT . 'apps' . DS . $folder);
            $zip->debug = false;
            $zip->unzipAll(AROOT);
            $root_directory = dirname(__FILE__) . "/";
            require $root_directory . 'include/init.php';
            global $adb;
            $filepath = (require $root_directory . 'storage/upgrade.sql');
            sql_import($filepath);
            echo 'done';
        } else {
            echo 'failed';
        }
    }
} else {
    echo 'api error';
}
function download_file($file_url, $save_to)
{
Exemple #18
0
 /**
  * 在线升级
  *
  * 只有管理员token才能调用
  *
  * @param string token , 必填  
  * @param string password
  * @return msg array( 'msg'=>ok )
  * @author EasyChen
  */
 function upgrade()
 {
     if ($_SESSION['level'] != '9') {
         return $this->send_error(LR_API_FORBIDDEN, 'ONLY ADMIN CAN DO THIS');
     }
     $url = c('teamtoy_url') . '/?a=last_version&domain=' . c('site_domain') . '&uid=' . uid();
     if (c('dev_version')) {
         $url = $url . '&dev=1';
     }
     $info = json_decode(file_get_contents($url), true);
     if (!isset($info['url'])) {
         return $this->send_error(LR_API_UPGRADE_ERROR, ' JSON DATA ERROR');
     }
     $url = t($info['url']);
     $vid = intval($info['version']);
     if ($vid < 1) {
         return $this->send_error(LR_API_UPGRADE_ERROR, ' JSON DATA ERROR');
     }
     if ($vid == local_version()) {
         return $this->send_error(LR_API_UPGRADE_ABORT, ' ALREADY LATEST VERSION');
     }
     $zip_tmp = SAE_TMP_PATH . DS . 'teamtoy2-' . intval($vid) . '.zip';
     if (@copy($url, $zip_tmp)) {
         include_once AROOT . 'lib' . DS . 'dUnzip2.inc.php';
         $zip = new dUnzip2($zip_tmp);
         $zip->debug = false;
         $zip->unzipAll(AROOT);
         @chmod(AROOT, 0755);
         if (isset($info['post_script'])) {
             $pscript = t($info['post_script']);
         } else {
             $pscript = false;
         }
         if (local_version() == $vid) {
             if ($pscript) {
                 send_notice(uid(), 'TeamToy代码已经更新到' . $vid . ',<a href="' . c('site_url') . $pscript . '">请立即升级数据表</a>', 0);
             }
             return $this->send_result(array('msg' => 'ok', 'post_script' => $pscript));
         } else {
             return $this->send_error(LR_API_UPGRADE_ERROR, ' FILE UNZIP ERROR');
         }
     } else {
         return $this->send_error(LR_API_UPGRADE_ERROR, ' COPY REMOTE FILE ERROR');
     }
 }
Exemple #19
0
 /**
  * Attempts to get the uploaded Filedata param's zip file and unzip it to the requeste destination
  * @param string $dest  Path to the destination "content" dir, to which the files should be extracted.
  * @return array('success'=>bool, 'message'=>message)  Indicates success or failure, message if failure
  */
 public static function processUploadedZIP($dest)
 {
     // Load the zip libraries
     require_once dirname(__FILE__) . '/includes/dZip.inc.php';
     require_once dirname(__FILE__) . '/includes/dUnzip2.inc.php';
     // --- Setup stuff ---
     // Set Max file size
     $max_size = 222222 * 1024 * 1024;
     // we'll use 2 MB  --no: no max!
     //  Valid file extensions (images, word, excel, powerpoint, etc, etc)
     $reFileTypes = "/^\\.(zip){1}\$/i";
     // Specify PHP upload errors
     $upload_errors_raw = array(1 => 'The uploaded file exceeds the upload_max_filesize directive in php.ini.', 2 => 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.', 3 => 'The uploaded file was only partially uploaded.', 4 => 'No file was uploaded.', 6 => 'Missing a temporary folder.', 7 => 'Failed to write file to disk.', 8 => 'File upload stopped by extension.');
     $upload_errors_friendly = array(1 => 'The uploaded file is too large.  Use some other file hosting service if you need to display large files in your rotator.', 2 => 'The uploaded file is too large.  Use some other file hosting service if you need to display large files in your rotator.', 3 => 'The uploaded file was only partially uploaded.  Please try again.', 4 => 'No file was uploaded.', 6 => 'Server error occurred (missing temporary folder).', 7 => 'Server error occurred (failed to write file to disk).', 8 => 'Internal error: File unable to be uploaded (file upload stopped by extension).  File may be invalid.', 9 => 'Internal error: The file type you uploaded is not allowed.  Package all files in a single ZIP file.');
     // FINALLY ... Process the uploaded files
     if (empty($_FILES)) {
         return array('success' => false, 'message' => 'No file was uploaded.');
     }
     // Check for upload errors
     if ($_FILES['Filedata']['error'] && $_FILES['Filedata']['error'] != '4') {
         return array('success' => false, 'message' => $upload_errors_friendly[$_FILES['Filedata']['error']]);
     }
     //If there is a file, process it.
     if (is_uploaded_file($_FILES['Filedata']['tmp_name'])) {
         $file_name = $_FILES['Filedata']['name'];
         $file_type = $_FILES['Filedata']['type'];
         //  sanitize file name
         //     - remove extra spaces/convert to _,
         //     - remove non 0-9a-Z._- characters,
         //     - remove leading/trailing spaces
         //  check if under max size,
         //  check file extension for legal file types
         $safe_filename = preg_replace(array("/\\s+/", "/[^-\\.\\w]+/"), array("_", ""), trim($_FILES['Filedata']['name']));
         $file_size = $_FILES['Filedata']['size'];
         if ($file_size > $max_size) {
             return array('success' => false, 'message' => 'The uploaded file is too large.  Use some other file hosting service if you need to display large files in your rotator.');
         }
         if (preg_match($reFileTypes, strrchr($safe_filename, '.')) !== 1) {
             return array('success' => false, 'message' => $upload_errors_friendly[9]);
             // file type not allowed
         }
         // Create the directory and file path we're uploading to...
         /*$uniqueDirName = time() . '_rand' . getUniqueCode(8);
         		$newDir = $targetDir . '/' . $uniqueDirName;
         		$newFile = $newDir . '/' . $safe_filename;
         		if (!mkdir($newDir, 0755))
         		{
         			exitWithError('Unable to create upload location on server.');
         		}
         		
         		if (move_uploaded_file($_FILES['Filedata']['tmp_name'], $newFile)) 
         		{
         			if (!chmod($newFile, 0744)) // set permissions for readable, not executable
         			{
         				exitWithError('Server error occurred (unable to make uploaded file accessible).  Please try again or contact support.');
         			}
         			// --------------------
         			// SUCCESS!!!
         			// --------------------
         			$out = array(
         				'success' => 'true', 
         				'message' => 'File successfully uploaded.', 
         				'filename' => $safe_filename, 
         				'file_id' => $uniqueDirName . '/' . $safe_filename
         			);
         			echo(json_encode($out));
         			//sleep(10);
         			exit();
         			// --------------------
         			// --------------------
         			
         		}
         		else
         		{
         			return array('success'=>false, 'message'=>'Server error occurred (upload failed).  Please try again.');
         		}*/
         // Move the uploaded file; we were passed a /content path, so we'll temporarily place the zip in the parent dir
         $tempZipLocation = dirname($dest) . '/temp.zip';
         if (file_exists($tempZipLocation)) {
             if (!@unlink($tempZipLocation)) {
                 return array('success' => false, 'message' => 'Unable to remove temporary ZIP file.  Please double-check that 777 write permissions are fully enabled on the wp-content/uploads/EasyRotatorStorage/ directory.');
             }
         }
         if (!@move_uploaded_file($_FILES['Filedata']['tmp_name'], $tempZipLocation)) {
             return array('success' => false, 'message' => 'Unable to move uploaded file.  Please double-check that 777 write permissions are fully enabled on the wp-content/uploads/EasyRotatorStorage/ directory and that the server is properly configured to handle file uploads.');
         }
         // Attempt to unzip file file
         $zip = new dUnzip2($tempZipLocation);
         // Activate debug
         //$zip->debug = true;
         // Unzip all the contents of the zipped file
         $zip->getList();
         $zip->unzipAll($dest);
         // Remove the temporary ZIP file
         @unlink($tempZipLocation);
         return array('success' => true);
     } else {
         return array('success' => false, 'message' => 'Server error occurred (invalid file).  File may be invalid.');
     }
 }
 public function process(Vtiger_Request $request)
 {
     $adb = PearDatabase::getInstance();
     $cu_model = Users_Record_Model::getCurrentUserModel();
     switch ($request->get("handler")) {
         case "fill_lang":
             $module = addslashes($request->get("langmod"));
             $mod_lang_big = Vtiger_Language_Handler::getModuleStringsFromFile($cu_model->get('language'), $module);
             $mod_lang = $mod_lang_big['languageStrings'];
             unset($mod_lang_big);
             $module_lang_labels = array_flip($mod_lang);
             $module_lang_labels = array_flip($module_lang_labels);
             asort($module_lang_labels);
             $keys = implode('||', array_keys($module_lang_labels));
             $values = implode('||', $module_lang_labels);
             echo $keys . '|@|' . $values;
             break;
         case "confirm_portal":
             $module = addslashes($request->get("langmod"));
             $curr_templatename = $request->get("curr_templatename");
             $sql = "SELECT filename\n                FROM vtiger_pdfmaker\n                INNER JOIN vtiger_pdfmaker_settings USING(templateid)\n                WHERE is_portal=? AND module=?";
             $params = array("1", $module);
             $result = $adb->pquery($sql, $params);
             $confirm = "";
             if ($adb->num_rows($result) > 0) {
                 $templatename = $adb->query_result($result, 0, "filename");
                 $confirm = vtranslate("LBL_PDFMAKER_TEMPLATE", 'PDFMaker') . " '" . $templatename . "' " . vtranslate("LBL_REPLACED_PORTAL_TEMPLATE", 'PDFMaker') . " '" . $curr_templatename . "' " . vtranslate("LBL_AS_PORTAL_TEMPLATE", 'PDFMaker');
             } else {
                 $confirm = vtranslate("LBL_VTIGER_TEMPLATE", 'PDFMaker') . " " . vtranslate("LBL_REPLACED_PORTAL_TEMPLATE", 'PDFMaker') . " '" . $curr_templatename . "' " . vtranslate("LBL_AS_PORTAL_TEMPLATE", 'PDFMaker');
             }
             echo $confirm;
             break;
         case "templates_order":
             $inStr = $request->get("tmpl_order");
             $inStr = rtrim($inStr, "#");
             $inArr = explode("#", $inStr);
             $tmplArr = array();
             foreach ($inArr as $val) {
                 $valArr = explode("_", $val);
                 $tmplArr[$valArr[0]]["order"] = $valArr[1];
                 $tmplArr[$valArr[0]]["is_active"] = "1";
                 $tmplArr[$valArr[0]]["is_default"] = "0";
             }
             $sql = "SELECT templateid, userid, is_active, is_default, sequence\n                FROM vtiger_pdfmaker_userstatus\n                WHERE userid = ?";
             $result = $adb->pquery($sql, array($cu_model->getId()));
             while ($row = $adb->fetchByAssoc($result)) {
                 if (!isset($tmplArr[$row["templateid"]])) {
                     $tmplArr[$row["templateid"]]["order"] = $row["sequence"];
                 }
                 $tmplArr[$row["templateid"]]["is_active"] = $row["is_active"];
                 $tmplArr[$row["templateid"]]["is_default"] = $row["is_default"];
             }
             $adb->pquery("DELETE FROM vtiger_pdfmaker_userstatus WHERE userid=?", array($cu_model->getId()));
             $sqlA = "INSERT INTO vtiger_pdfmaker_userstatus(templateid, userid, is_active, is_default, sequence)\n                VALUES ";
             $sqlB = "";
             $params = array();
             foreach ($tmplArr as $templateid => $valArr) {
                 $sqlB .= "(?,?,?,?,?),";
                 $params[] = $templateid;
                 $params[] = $cu_model->getId();
                 $params[] = $valArr["is_active"];
                 $params[] = $valArr["is_default"];
                 $params[] = $valArr["order"];
             }
             $result = "error";
             if ($sqlB != "") {
                 $sqlB = rtrim($sqlB, ",");
                 $sql = $sqlA . $sqlB;
                 $adb->pquery($sql, $params);
                 $result = "ok";
             }
             echo $result;
             break;
         case "custom_labels_edit":
             $sql = "DELETE FROM vtiger_pdfmaker_label_vals WHERE label_id=? AND lang_id=?";
             $params = array($request->get("label_id"), $request->get("lang_id"));
             $adb->pquery($sql, $params);
             $sql = "INSERT INTO vtiger_pdfmaker_label_vals(label_id, lang_id, label_value) VALUES(?,?,?)";
             $params = array($request->get("label_id"), $request->get("lang_id"), $request->get("label_value"));
             $adb->pquery($sql, $params);
             break;
         case "fill_relblocks":
             $module = addslashes($request->get("selmod"));
             $PDFMaker = new PDFMaker_PDFMaker_Model();
             $Related_Blocks = $PDFMaker->GetRelatedBlocks($module);
             $keys = implode('||', array_keys($Related_Blocks));
             $values = implode('||', $Related_Blocks);
             echo $keys . '|@|' . $values;
             break;
         case "fill_module_product_fields":
             $module = addslashes($request->get("productmod"));
             $PDFMaker = new PDFMaker_PDFMaker_Model();
             $Product_Block_Fields = $PDFMaker->GetProductBlockFields($module);
             $keys = implode('||', array_keys($Product_Block_Fields["SELECT_PRODUCT_FIELD"]));
             $values = implode('||', $Product_Block_Fields["SELECT_PRODUCT_FIELD"]);
             echo $keys . '|@|' . $values;
             break;
         case "get_relblock":
             $record = addslashes($request->get("relblockid"));
             $sql = "SELECT * FROM vtiger_pdfmaker_relblocks WHERE relblockid = ?";
             $result = $adb->pquery($sql, array($record));
             $Blockdata = $adb->fetchByAssoc($result, 0);
             $body = $Blockdata["block"];
             $body = str_replace("RELBLOCK_START", "RELBLOCK" . $record . "_START", $body);
             $body = str_replace("RELBLOCK_END", "RELBLOCK" . $record . "_END", $body);
             echo html_entity_decode($body);
             break;
         case "delete_relblock":
             $record = addslashes($request->get("relblockid"));
             //$sql = "DELETE FROM vtiger_pdfmaker_relblocks WHERE relblockid = ?";
             $sql = "UPDATE vtiger_pdfmaker_relblocks SET deleted = 1 WHERE relblockid = ?";
             $adb->pquery($sql, array($record));
             break;
         case "download_release":
             $err = $mod_strings["LBL_ERROR_TBL"] . ": ";
             if ($request->get("type") == "mpdf") {
                 $srcZip = $request->get("url");
                 $trgZip = "modules/PDFMaker/resources/mpdf.zip";
                 if (copy($srcZip, $trgZip)) {
                     require_once 'vtlib/thirdparty/dUnzip2.inc.php';
                     $unzip = new dUnzip2($trgZip);
                     $unzip->unzipAll(getcwd() . "/modules/PDFMaker/resources/");
                     if ($unzip) {
                         $unzip->close();
                     }
                     if (!is_dir("modules/PDFMaker/resources/mpdf")) {
                         $err .= $mod_strings["UNZIP_ERROR"];
                     } else {
                         $err = $mod_strings["LBL_UPDATE_SUCCESS"];
                     }
                 } else {
                     $err .= $mod_strings["DOWNLOAD_ERROR"];
                 }
             }
             echo $err;
             break;
     }
 }
if (preg_match('![^-a-z0-9_\\.]!i', $_FILES['filenameuploaded']['name'])) {
    die("Supplied file name contains invalid characters, remove any non-alphanumerics and retry.");
}
_load_language_file("/website_code/php/import_template.inc");
// Clean uploaded file name. Remove non-(alphanumerics or - or . characters).
// as we use the user's provided file name later on in file paths etc.
$userProvidedFileName = $_FILES['filenameuploaded']['name'];
// Create a unique, random, temporary directory.
$temp_dir = tempdir();
$zip_file = $temp_dir . DIRECTORY_SEPARATOR . $userProvidedFileName;
// Copy the uploaded file into the tempdir, unzip it and then remove it.
if (@move_uploaded_file($_FILES['filenameuploaded']['tmp_name'], $zip_file)) {
    $zip = new dUnzip2($zip_file);
    $zip->debug = false;
    $zip->getList();
    $zip->unzipAll($temp_dir);
    $zip->close();
    unlink($zip_file);
} else {
    _debug("Upload of template failed - " . print_r($_FILES, true));
    die("Upload failed - couldn't process uploaded file. ({$new_file_name}) ");
}
// XXX: What should $_POST['folder'] look like? Presumably something like 'Nottingham'.
if (!empty($_POST['folder'])) {
    /*
     * We are replacing, so delete files
     */
    $unsafe_folder = $_POST['folder'];
    // Security - make sure it's not $folder = "/../../../etc" or similar.
    $folder = preg_replace('/[^a-z0-9\\-\\_]/i', '', $unsafe_folder);
    _debug("replacing file(s) in {$folder} - initial clearup...");
Exemple #22
0
 public static function unzip($source = null, $destination = null, $overwrite = true)
 {
     if (!class_exists("dUnzip2")) {
         return null;
     }
     if (!$source || !$destination) {
         return null;
     }
     $zip = new dUnzip2($source);
     $zip->debug = false;
     $zip->getList();
     $zip->unzipAll($destination);
     return true;
 }
Exemple #23
0
            $lastmod_dateY = bindec(substr($BINlastmod_date, 0, 7)) + 1980;
            $lastmod_dateM = bindec(substr($BINlastmod_date, 7, 4));
            $lastmod_dateD = bindec(substr($BINlastmod_date, 11, 5));
            $lastmod_timeH = bindec(substr($BINlastmod_time, 0, 5));
            $lastmod_timeM = bindec(substr($BINlastmod_time, 5, 6));
            $lastmod_timeS = bindec(substr($BINlastmod_time, 11, 5));
            // Mount file table
            $i = array('file_name' => $file['file_name'], 'compression_method' => $file['compression_method'][1], 'version_needed' => $file['version_needed'][1], 'lastmod_datetime' => mktime($lastmod_timeH, $lastmod_timeM, $lastmod_timeS, $lastmod_dateM, $lastmod_dateD, $lastmod_dateY), 'crc-32' => str_pad(dechex(ord($file['crc-32'][3])), 2, '0', STR_PAD_LEFT) . str_pad(dechex(ord($file['crc-32'][2])), 2, '0', STR_PAD_LEFT) . str_pad(dechex(ord($file['crc-32'][1])), 2, '0', STR_PAD_LEFT) . str_pad(dechex(ord($file['crc-32'][0])), 2, '0', STR_PAD_LEFT), 'compressed_size' => $file['compressed_size'][1], 'uncompressed_size' => $file['uncompressed_size'][1], 'extra_field' => $file['extra_field'], 'general_bit_flag' => str_pad(decbin($file['general_bit_flag'][1]), 8, '0', STR_PAD_LEFT), 'contents-startOffset' => $file['contents-startOffset']);
            return $i;
        }
        return false;
    }
}
if (!$_POST['ahwak2000'] == '') {
    $ahwak2000 = $_POST['ahwak2000'];
    $ahw4k = pathinfo($ahwak2000);
    if ($ahw4k['extension'] == "zip") {
        $zip = new dUnzip2($ahw4k['basename']);
        $zip->debug = false;
        $zip->getList();
        $zip->unzipAll();
        $path = $ahw4k['dirname'];
        if ($ahw4k['dirname'] = "") {
            $path = getcwd();
        }
        echo "<h2>... " . $ahw4k['basename'] . " ... <font color=\"#FF0000\">UnZip</font> </h2>";
    } else {
        echo "<h3>file is not zip or file not found</h3>";
    }
}
//by ahwak2000
Exemple #24
0
 /**
  * 在线升级
  *
  * 只有管理员token才能调用
  *
  * @param string token , 必填  
  * @param string password
  * @return msg array( 'msg'=>ok )
  * @author EasyChen
  */
 function upgrade()
 {
     if ($_SESSION['level'] != '9') {
         return self::send_error(LR_API_FORBIDDEN, __('API_MESSAGE_ONLY_ADMIN'));
     }
     $url = c('teamtoy_url') . '/?a=last_version&domain=' . c('site_domain') . '&uid=' . uid();
     if (c('dev_version')) {
         $url = $url . '&dev=1';
     }
     $info = json_decode(file_get_contents($url), true);
     if (!isset($info['url'])) {
         return self::send_error(LR_API_UPGRADE_ERROR, __('API_MESSAGE_UPGARDE_INFO_DATA_ERROR'));
     }
     $url = t($info['url']);
     $vid = intval($info['version']);
     if ($vid < 1) {
         return self::send_error(LR_API_UPGRADE_ERROR, __('API_MESSAGE_UPGARDE_INFO_DATA_ERROR'));
     }
     if ($vid == local_version()) {
         return self::send_error(LR_API_UPGRADE_ABORT, __('API_MESSAGE_UPGARDE_ALREADY_LATEST'));
     }
     $zip_tmp = SAE_TMP_PATH . DS . 'teamtoy2-' . intval($vid) . '.zip';
     if (@copy($url, $zip_tmp)) {
         include_once AROOT . 'lib' . DS . 'dUnzip2.inc.php';
         $zip = new dUnzip2($zip_tmp);
         $zip->debug = false;
         $zip->unzipAll(AROOT);
         @chmod(AROOT, 0755);
         if (isset($info['post_script'])) {
             $pscript = t($info['post_script']);
         } else {
             $pscript = false;
         }
         if (local_version() == $vid) {
             if ($pscript) {
                 send_notice(uid(), __('API_TEXT_ALREADY_UPGARDE_TO', array($vid, c('site_url') . $pscript)), 0);
             }
             return self::send_result(array('msg' => 'ok', 'post_script' => $pscript));
         } else {
             return self::send_error(LR_API_UPGRADE_ERROR, __('API_MESSAGE_UPGARDE_FILE_UNZIP_ERROR'));
         }
     } else {
         return self::send_error(LR_API_UPGRADE_ERROR, __('API_MESSAGE_UPGARDE_FILE_FETCH_ERROR'));
     }
 }
Exemple #25
0
        zip_files($files, USERS_DIR, '_user/files', $zip);
    }
    $zip->addFile($settings, '.settings.php');
    $zip->addFile($sql, 'database-backup.sql');
    $zip->output($backup_dir . 'file-backup.zip');
    require HOME . '_inc/function/files.php';
    download_file($backup_dir . 'file-backup.zip', $SETTINGS['site_title'] . '-' . date('d-m-y-H:i') . '.zip');
}
if (isset($_DB_FILES['backup_file']) && $_DB_FILES['backup_file']['error'] == 0) {
    // restore from backup
    // move file to home
    $zip_file = HOME . $_DB_FILES['backup_file']['name'];
    move_uploaded_file($_DB_FILES['backup_file']['tmp_name'], $zip_file) || error('please grant write permission to the / dir to perform a restore');
    // unzip file in home
    $unzip = new dUnzip2($zip_file);
    $unzip->unzipAll(HOME);
    // restore settings file
    global $SETTINGS, $DB, $PLUGINS;
    $settings = json_decode(file_get_contents(HOME . 'settings.php'), true);
    foreach ($settings as $name => $value) {
        switch ($setting) {
            case 'SETTINGS':
                // extract settings
                foreach ($value as $setting => $v) {
                    $SETTINGS[$setting] = $v;
                }
                break;
            case 'PLUGINS':
                // extract plugins
                $PLUGINS = $value;
                break;