mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-29 07:12:15 +09:00
#18859373 : module uninstall
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@7399 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
258159d0a3
commit
10a9cbf347
19 changed files with 480 additions and 75 deletions
|
|
@ -9,6 +9,7 @@
|
|||
class autoinstallAdminView extends autoinstall {
|
||||
|
||||
var $categories;
|
||||
var $ftp_set = false;
|
||||
|
||||
function init() {
|
||||
$template_path = sprintf("%stpl/",$this->module_path);
|
||||
|
|
@ -18,6 +19,8 @@
|
|||
|
||||
$ftp_info = Context::getFTPInfo();
|
||||
if(!$ftp_info->ftp_root_path) Context::set('show_ftp_note', true);
|
||||
else $this->ftp_set = true;
|
||||
|
||||
|
||||
$this->dispCategory();
|
||||
$oModel = &getModel('autoinstall');
|
||||
|
|
@ -39,7 +42,7 @@
|
|||
{
|
||||
if(!is_array($items)) $items = array($items);
|
||||
$item_list = array();
|
||||
$targets = array('category_srl', 'package_srl', 'item_screenshot_url', 'package_voted', 'package_voter', 'package_description', 'package_downloaded', 'item_regdate', 'title', 'item_version', 'package_star');
|
||||
$targets = array('category_srl', 'package_srl', 'item_screenshot_url', 'package_voted', 'package_voter', 'package_description', 'package_downloaded', 'item_regdate', 'title', 'item_version', 'package_star', 'depfrom');
|
||||
$targetpackages = array();
|
||||
foreach($items as $item)
|
||||
{
|
||||
|
|
@ -48,7 +51,7 @@
|
|||
$oModel = &getModel('autoinstall');
|
||||
if($package == null)
|
||||
$packages = $oModel->getInstalledPackages(array_keys($targetpackages));
|
||||
|
||||
$depto = array();
|
||||
foreach($items as $item)
|
||||
{
|
||||
$v = $this->rearrange($item, $targets);
|
||||
|
|
@ -56,10 +59,52 @@
|
|||
{
|
||||
$v->current_version = $packages[$v->package_srl]->current_version;
|
||||
$v->need_update = $packages[$v->package_srl]->need_update;
|
||||
$v->type = $oModel->getTypeFromPath($packages[$v->package_srl]->path);
|
||||
if($this->ftp_set && $v->depfrom) {
|
||||
$depfrom = explode("," , $v->depfrom);
|
||||
foreach($depfrom as $package_srl)
|
||||
{
|
||||
$depto[$package_srl][] = $v->package_srl;
|
||||
}
|
||||
}
|
||||
if($v->type == "core") $v->avail_remove = false;
|
||||
else if($v->type == "module") {
|
||||
$v->avail_remove = $oModel->checkRemovable($packages[$v->package_srl]->path);
|
||||
}
|
||||
else $v->avail_remove = true;
|
||||
}
|
||||
$item_list[$v->package_srl] = $v;
|
||||
}
|
||||
|
||||
if(count($depto) > 0)
|
||||
{
|
||||
$installed = $oModel->getInstalledPackages(implode(",", array_keys($depto)));
|
||||
foreach($installed as $key=>$val)
|
||||
{
|
||||
$path = $val->path;
|
||||
$type = $oModel->getTypeFromPath($path);
|
||||
if(!$type || $type == "core") continue;
|
||||
$config_file = $oModel->getConfigFilePath($type);
|
||||
if(!$config_file) continue;
|
||||
|
||||
$xml = new XmlParser();
|
||||
$xmlDoc = $xml->loadXmlFile(FileHandler::getRealPath($path).$config_file);
|
||||
if(!$xmlDoc) continue;
|
||||
if($type == "drcomponent") $type = "component";
|
||||
$title = $xmlDoc->{$type}->title->body;
|
||||
$installed[$key]->title = $title;
|
||||
}
|
||||
Context::set('installed', $installed);
|
||||
foreach($installed as $key=>$val)
|
||||
{
|
||||
foreach($depto[$key] as $package_srl)
|
||||
{
|
||||
$item_list[$package_srl]->avail_remove = false;
|
||||
$item_list[$package_srl]->deps[] = $key;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $item_list;
|
||||
}
|
||||
|
||||
|
|
@ -235,5 +280,37 @@
|
|||
$this->categories = &$oModel->getCategoryList();
|
||||
Context::set('categories', $this->categories);
|
||||
}
|
||||
|
||||
function dispAutoinstallAdminUninstall()
|
||||
{
|
||||
$package_srl = Context::get('package_srl');
|
||||
if(!$package_srl) return $this->dispAutoinstallAdminIndex();
|
||||
$oModel =& getModel('autoinstall');
|
||||
$installedPackage = $oModel->getInstalledPackage($package_srl);
|
||||
if(!$installedPackage) return $this->dispAutoinstallAdminInstalledPackages();
|
||||
|
||||
if(!$_SESSION['ftp_password'])
|
||||
{
|
||||
Context::set('need_password', true);
|
||||
}
|
||||
$installedPackage = $oModel->getPackage($package_srl);
|
||||
$path = $installedPackage->path;
|
||||
$type = $oModel->getTypeFromPath($path);
|
||||
if(!$type || $type == "core") $this->stop("msg_invalid_request");
|
||||
$config_file = $oModel->getConfigFilePath($type);
|
||||
if(!$config_file) $this->stop("msg_invalid_request");
|
||||
|
||||
$xml = new XmlParser();
|
||||
$xmlDoc = $xml->loadXmlFile(FileHandler::getRealPath($path).$config_file);
|
||||
if(!$xmlDoc) $this->stop("msg_invalid_request");
|
||||
if($type == "drcomponent") $type = "component";
|
||||
$title = $xmlDoc->{$type}->title->body;
|
||||
$installedPackage->title = $title;
|
||||
$installedPackage->type = $type;
|
||||
Context::set('package', $installedPackage);
|
||||
|
||||
$this->setTemplateFile('uninstall');
|
||||
Context::addJsFilter($this->module_path.'tpl/filter', 'uninstall_package.xml');
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue