* adjust extension.
This commit is contained in:
@@ -116,6 +116,8 @@ class extension extends control
|
||||
*/
|
||||
public function install($extension, $downLink = '', $md5 = '', $type = '', $overridePackage = 'no', $ignoreCompatible = 'no', $overrideFile = 'no', $agreeLicense = 'no', $upgrade = 'no')
|
||||
{
|
||||
set_time_limit(0);
|
||||
|
||||
$this->view->error = '';
|
||||
$installTitle = $upgrade == 'no' ? $this->lang->extension->install : $this->lang->extension->upgrade;
|
||||
$installType = $upgrade == 'no' ? $this->lang->extension->installExt : $this->lang->extension->upgradeExt;
|
||||
@@ -341,9 +343,11 @@ class extension extends control
|
||||
*/
|
||||
public function uninstall($extension, $confirm = 'no')
|
||||
{
|
||||
/* Determine whether need to back up. */
|
||||
$dbFile = $this->extension->getDBFile($extension, 'uninstall');
|
||||
if($confirm == 'no' and file_exists($dbFile))
|
||||
{
|
||||
$this->view->title = $this->lang->extension->waring;
|
||||
$this->view->confirm = 'no';
|
||||
$this->view->code = $extension;
|
||||
die($this->display());
|
||||
@@ -358,7 +362,7 @@ class extension extends control
|
||||
|
||||
if($preUninstallHook = $this->extension->getHookFile($extension, 'preuninstall')) include $preUninstallHook;
|
||||
|
||||
if(file_exists($dbFile)) $this->view->backDBName = $this->extension->backupDB($extension);
|
||||
if(file_exists($dbFile)) $this->view->backupFile = $this->extension->backupDB($extension);
|
||||
|
||||
$this->extension->executeDB($extension, 'uninstall');
|
||||
$this->extension->updateExtension($extension, array('status' => 'available'));
|
||||
|
||||
@@ -65,6 +65,7 @@ $lang->extension->byCategory = 'By Category';
|
||||
$lang->extension->installFailed = '%s failed, the reason is:';
|
||||
$lang->extension->uninstallFailed = 'Uninstall failed, the reason is:';
|
||||
$lang->extension->confirmUninstall = 'Uninstall will delete or modify database, whether to uninstall?';
|
||||
$lang->extension->noticeBackupDB = 'Before uninstalling, we recommend backing up the database.';
|
||||
$lang->extension->installFinished = 'Good, the extension has been %s successfully.';
|
||||
$lang->extension->refreshPage = 'Refresh';
|
||||
$lang->extension->uninstallFinished = 'Extension has been successfully uninstalled.';
|
||||
@@ -85,6 +86,8 @@ $lang->extension->upgradeExt = 'Upgrade';
|
||||
$lang->extension->installExt = 'Install';
|
||||
$lang->extension->upgradeVersion = '(Upgrade from %s to %s)';
|
||||
|
||||
$lang->extension->waring = 'Waring';
|
||||
|
||||
$lang->extension->errorOccurs = 'Error:';
|
||||
$lang->extension->errorGetModules = "Get extensions' categories data from the www.zentao.net failed. ";
|
||||
$lang->extension->errorGetExtensions = 'Get extensions from www.zentao.net failed. You can visit <a href="http://www.zentao.net/extension/" target="_blank">www.zentao.net</a> to find your extensions, download it manually and then upload to zentaopms to install it.';
|
||||
|
||||
@@ -65,6 +65,7 @@ $lang->extension->byCategory = '分类浏览';
|
||||
$lang->extension->installFailed = '%s失败,错误原因如下:';
|
||||
$lang->extension->uninstallFailed = '卸载失败,错误原因如下:';
|
||||
$lang->extension->confirmUninstall = '卸载插件会删除或修改相关的数据库,是否继续卸载?';
|
||||
$lang->extension->noticeBackupDB = '卸载前,建议备份数据库。';
|
||||
$lang->extension->installFinished = '恭喜您,插件顺利的%s成功!';
|
||||
$lang->extension->refreshPage = '刷新页面';
|
||||
$lang->extension->uninstallFinished = '插件已经成功卸载';
|
||||
@@ -85,6 +86,8 @@ $lang->extension->upgradeExt = '升级';
|
||||
$lang->extension->installExt = '安装';
|
||||
$lang->extension->upgradeVersion = '(从%s升级到%s)';
|
||||
|
||||
$lang->extension->waring = '警告';
|
||||
|
||||
$lang->extension->errorOccurs = '错误:';
|
||||
$lang->extension->errorGetModules = '从www.zentao.net获得插件分类失败。可能是因为网络方面的原因,请检查后重新刷新页面。';
|
||||
$lang->extension->errorGetExtensions = '从www.zentao.net获得插件失败。可能是因为网络方面的原因,您可以到<a href="http://www.zentao.net/extension/" target="_blank">www.zentao.net</a>手工下载插件,然后上传安装。';
|
||||
|
||||
@@ -747,21 +747,23 @@ class extensionModel extends model
|
||||
$sqls = file_get_contents($this->getDBFile($extension, 'uninstall'));
|
||||
$sqls = explode(';', $sqls);
|
||||
|
||||
/* Get tables for backup. */
|
||||
$backupTables = array();
|
||||
foreach($sqls as $sql)
|
||||
{
|
||||
$sql = trim($sql);
|
||||
if(preg_match('/^DROP TABLE `?([^` ]*)`?|^ALTER TABLE `?([^` ]*)`? .*DROP .+/i', $sql, $out))
|
||||
if(preg_match('/TABLE +`?([^` ]*)`?/i', $sql, $out))
|
||||
{
|
||||
if(!empty($out[1])) $backupTables[] = $out[1];
|
||||
if(!empty($out[2])) $backupTables[] = $out[2];
|
||||
if(!empty($out[1])) $backupTables[$out[1]] = $out[1];
|
||||
}
|
||||
}
|
||||
|
||||
/* Back up database. */
|
||||
if($backupTables)
|
||||
{
|
||||
$backDBName = $this->app->getTmpRoot() . $extension . date('Ymd') . '.sql';
|
||||
if($zdb->backupDB($backDBName, $backupTables) == 0) return $backDBName;
|
||||
$backupFile = $this->app->getTmpRoot() . $extension . '.' . date('Ymd') . '.sql';
|
||||
$result = $zdb->dump($backupFile, $backupTables);
|
||||
if($result->result) return $backupFile;
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -18,8 +18,9 @@
|
||||
<?php if(isset($confirm) and $confirm == 'no'):?>
|
||||
<?php
|
||||
echo "<p class='waring'>{$lang->extension->confirmUninstall}";
|
||||
echo html::a(inlink('uninstall', "extension=$code&confirm=yes"), $lang->extension->uninstall);
|
||||
echo html::a(inlink('uninstall', "extension=$code&confirm=yes"), $lang->extension->uninstall, '', "class='btn'");
|
||||
echo "</p>";
|
||||
echo "<p>{$lang->extension->noticeBackupDB}</p>"
|
||||
?>
|
||||
<?php elseif(!empty($error)):?>
|
||||
<?php
|
||||
@@ -29,7 +30,7 @@
|
||||
<?php else:?>
|
||||
<?php
|
||||
echo "<h3 class='a-center success'>{$title}</h3>";
|
||||
if(!empty($backDBName)) echo '<p>' . sprintf($lang->extension->backDBFile, $backDBName) . '</p>';
|
||||
if(!empty($backupFile)) echo '<p>' . sprintf($lang->extension->backDBFile, $backupFile) . '</p>';
|
||||
if($removeCommands)
|
||||
{
|
||||
echo "<p class='strong'>{$lang->extension->unremovedFiles}</p>";
|
||||
|
||||
Reference in New Issue
Block a user