issue 2705 when delete last instance of layout, layout uninstall also

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12275 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ovclas 2012-11-21 08:49:51 +00:00
parent 02c0909e26
commit 41fc5be074
4 changed files with 56 additions and 11 deletions

View file

@ -286,8 +286,45 @@ class autoinstallAdminController extends autoinstall
function procAutoinstallAdminUninstallPackage()
{
$package_srl = Context::get('package_srl');
$this->uninstallPackageByPackageSrl($package_srl);
if(Context::get('return_url'))
{
$this->setRedirectUrl(Context::get('return_url'));
}
else
{
$this->setRedirectUrl(getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminInstalledPackages'));
}
}
/**
* Uninstall package by package serial number
*
* @return Object
*/
function uninstallPackageByPackageSrl($package_srl)
{
$oModel =& getModel('autoinstall');
$package = $oModel->getPackage($package_srl);
$this->_uninstallPackage($package);
}
/**
* Uninstall package by package path
*
* @return Object
*/
function uninstallPackageByPath($path)
{
$package->path = $path;
$this->_uninstallPackage($package);
}
private function _uninstallPackage($package)
{
$path = $package->path;
if(!$_SESSION['ftp_password'])
@ -323,15 +360,6 @@ class autoinstallAdminController extends autoinstall
$this->_updateinfo();
$this->setMessage('success_deleted', 'update');
if(Context::get('return_url'))
{
$this->setRedirectUrl(Context::get('return_url'));
}
else
{
$this->setRedirectUrl(getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminInstalledPackages'));
}
}
}
/* End of file autoinstall.admin.controller.php */

View file

@ -282,7 +282,6 @@ class ModuleInstaller
$output = $this->_removeDir_real($path);
return $output;
}
}
/**

View file

@ -215,6 +215,10 @@ class autoinstallModel extends autoinstall
if($path == ".") return "core";
$path_array = explode("/", $path);
$target_name = array_pop($path_array);
if(!$target_name)
{
$target_name = array_pop($path_array);
}
$type = substr(array_pop($path_array), 0, -1);
return $type;
}