Esempio n. 1
0
		touch($prefs['mods_dir'] . "/Packages/00_list." . urlencode($prefs['mods_server']) . ".txt");
		$_REQUEST['reload'] = true;
	}
	if (isset($_REQUEST['reload'])) {
		$modslib->refresh_remote($prefs['mods_server'] . "/Packages/00_list.public.txt", $prefs['mods_dir'] . "/Packages/00_list." . urlencode($prefs['mods_server']) . ".txt");
	}
}
if (isset($_REQUEST['package'])) {
	$packtype = substr($_REQUEST['package'], 0, strpos($_REQUEST['package'], '-'));
	$package = substr($_REQUEST['package'], strpos($_REQUEST['package'], '-') + 1);
	$smarty->assign('packtype', $packtype);
	$smarty->assign('package', $package);
}
if (isset($_REQUEST['action']) and isset($package) and $iswritable) {
	if ($_REQUEST['action'] == 'configuration') {
		$mod = new TikiModInfo($packtype, $package);
		$mod->writeconf($prefs['mods_dir'], $_REQUEST['conf']);
		$_REQUEST['action'] = 'upgrade';
	}
	if ($_REQUEST['action'] == 'remove') {
		$deps = $modslib->find_deps_remove($prefs['mods_dir'], $prefs['mods_server'], array($packtype . '-' . $package));
		$smarty->assign('installask', $deps);
	} elseif (($_REQUEST['action'] == 'install') || ($_REQUEST['action'] == 'upgrade')) {
		$deps = $modslib->find_deps($prefs['mods_dir'], $prefs['mods_server'], array($packtype . '-' . $package));
		$smarty->assign('installask', $deps);
	}
} elseif (isset($_REQUEST['button-check'])) {
	$deps = $modslib->find_deps($prefs['mods_dir'], $prefs['mods_server'], $_REQUEST['install-wants']);
	$smarty->assign('installask', $deps);
} elseif (isset($_REQUEST['button-install'])) {
	$deps = $modslib->find_deps($prefs['mods_dir'], $prefs['mods_server'], $_REQUEST['install-wants']);
Esempio n. 2
0
 /**
  * @param $path
  * @param $mod
  * @param bool $upgrade
  * @return bool
  */
 function remove($path, $mod, $upgrade = false)
 {
     $this->feedback_info("removing " . $mod->modname . " (" . $mod->revision . ") ...");
     $file = $path . '/Installed/' . $mod->modname . '.info.txt';
     if (is_file($file)) {
         $info = new TikiModInfo($mod->modname);
         $err = $info->readinfo($file);
         if ($err !== false) {
             $this->feedback_error($err);
             return false;
         }
         if (!$upgrade and is_array($info->sql_remove) and count($info->sql_remove)) {
             global $tikilib;
             foreach ($info->sql_remove as $sql) {
                 $tikilib->query($sql, array());
             }
         }
         if (isset($info->files) and count($info->files)) {
             foreach ($info->files as $f) {
                 if (!@unlink($f[1])) {
                     $this->feedback_warning(sprintf(tra("%s impossible to remove"), $f[1]));
                 }
                 if (is_file($f[1] . '.orig.' . $info->revision)) {
                     rename($f[1] . '.orig.' . $info->revision, $f[1]);
                 }
             }
         }
         unlink($file);
         $this->rebuild_list($path . '/Installed/');
         if (is_file($path . '/Installed/' . $info->type . '-' . $info->name . '.conf.txt')) {
             unlink($path . '/Installed/' . $info->type . '-' . $info->name . '.conf.txt');
         }
         return $info->revision;
     } else {
         $this->feedback_warning("'{$file}' was not found for removing");
     }
 }