* finish task#481.

This commit is contained in:
wangchunsheng
2011-10-25 01:54:20 +00:00
parent eaa1c21312
commit 28957fca2f
2 changed files with 26 additions and 8 deletions
+9 -6
View File
@@ -204,6 +204,8 @@ class extension extends control
die($this->display());
}
if($preInstallHook = $this->extension->getHookFile($extension, 'preinstall')) include $preInstallHook;
/* Save to database. */
$this->extension->saveExtension($extension, $type);
@@ -224,15 +226,12 @@ class extension extends control
$this->view->error = sprintf($this->lang->extension->errorInstallDB, $return->error);
die($this->display());
}
$this->extension->updateExtension($extension, $data);
}
else
{
$this->extension->updateExtension($extension, $data);
}
$this->extension->updateExtension($extension, $data);
$this->view->downloadedPackage = !empty($downLink);
if($postInstallHook = $this->extension->getHookFile($extension, 'postinstall')) include $postInstallHook;
$this->display();
}
@@ -245,10 +244,14 @@ class extension extends control
*/
public function uninstall($extension)
{
if($preUninstallHook = $this->extension->getHookFile($extension, 'preuninstall')) include $preUninstallHook;
$this->extension->executeDB($extension, 'uninstall');
$this->extension->updateExtension($extension, array('status' => 'available'));
$this->view->removeCommands = $this->extension->removePackage($extension);
$this->view->header->title = $this->lang->extension->uninstallFinished;
if($postUninstallHook = $this->extension->getHookFile($extension, 'postuninstall')) include $postUninstallHook;
$this->display();
}
+17 -2
View File
@@ -315,6 +315,21 @@ class extensionModel extends model
return $license;
}
/**
* Get hook file for install or uninstall.
*
* @param string $extension
* @param string $hook preinstall|postinstall|preuninstall|postuninstall
* @access public
* @return string|bool
*/
public function getHookFile($extension, $hook)
{
$hookFile = "ext/$extension/hook/$hook.php";
if(file_exists($hookFile)) return $hookFile;
return false;
}
/**
* Get the install db file.
*
@@ -382,7 +397,7 @@ class extensionModel extends model
$pathes = $this->getPathesFromPackage($extension);
foreach($pathes as $path)
{
if($path == 'db' or $path == 'doc') continue;
if($path == 'db' or $path == 'doc' or $path == 'hook') continue;
$path = $appRoot . $path;
if(is_dir($path))
{
@@ -492,7 +507,7 @@ class extensionModel extends model
foreach($pathes as $path)
{
if($path == 'db' or $path == 'doc' or $path == '..' or $path == '.') continue;
if($path == 'db' or $path == 'doc' or $path == 'hook' or $path == '..' or $path == '.') continue;
$copiedFiles = $this->classFile->copyDir($extensionDir . $path, $appRoot . $path);
}
foreach($copiedFiles as $key => $copiedFile)