* finish task#481.
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user