public function install($filename)
 {
     $src = ROOT . '/sys/tmp/' . $filename;
     $dest = ROOT . '/sys/tmp/install_plugin/';
     Zip::extractZip($src, $dest);
     if (!file_exists($dest)) {
         $this->errors = __('Some error occurred');
         return false;
     }
     $tmp_plugin_path = glob($dest . '*', GLOB_ONLYDIR);
     $tmp_plugin_path = $tmp_plugin_path[0];
     $plugin_basename = substr(strrchr($tmp_plugin_path, '/'), 1);
     $plugin_path = ROOT . '/sys/plugins/' . $plugin_basename;
     copyr($dest, ROOT . '/sys/plugins/', 0755);
     $this->files = getDirFiles($plugin_path);
     if (file_exists($plugin_path . '/config.dat')) {
         $config = json_decode(file_get_contents($plugin_path . '/config.dat'), true);
         include_once $plugin_path . '/index.php';
         $className = $config['className'];
         $obj = new $className(null);
         if (method_exists($obj, 'install')) {
             $obj->install();
         }
     }
     _unlink($src);
     _unlink($dest);
     return true;
 }
Example #2
0
 if ($deleteList) {
     foreach ($deleteList as &$curFile) {
         $curFile = trim($curFile);
         if ($curFile && substr($curFile, 0, 1) != "/") {
             $fileName[] = $curFile;
         }
     }
 }
 $writingZip = new Zip(KB_CACHEDIR . '/update/backup/' . $codeversion . '.zip');
 $writingZip->addFileArray($fileName);
 if ($writingZip->createZip()) {
     if ($writingZip->getErrors()) {
         $page_error[] = $writingZip->getErrors();
     }
 }
 $readingZip->extractZip(getcwd());
 if ($deleteList) {
     foreach ($deleteList as $curFile) {
         if ($curFile && substr($curFile, 0, 1) != "/") {
             if (file_exists($curFile) && !@unlink($curFile)) {
                 $page_error[] = "Could not unlink " . $curFile;
             }
         }
     }
 }
 if ($readingZip->getErrors()) {
     $page_error[] = $readingZip->getErrors();
 } else {
     Config::set('upd_CodeVersion', $piece['version']);
     $qry = DBFactory::getDBQuery(true);
     $qry->execute("INSERT INTO `kb3_config` (cfg_site, cfg_key, cfg_value) " . "SELECT cfg_site, 'upd_codeVersion', '{$piece['version']}' FROM `kb3_config` " . "GROUP BY cfg_site ON DUPLICATE KEY UPDATE cfg_value = '{$piece['version']}';");