summaryrefslogtreecommitdiff
path: root/lib/plugins/extension/admin.php
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2013-08-10 10:23:04 +0200
committerAndreas Gohr <andi@splitbrain.org>2013-08-10 10:23:04 +0200
commitfee60c9e19860de9edb1dd146ec7063bb9eda392 (patch)
tree5450bd99f0eea55b57d9f6f94fb50f46ea3eeebb /lib/plugins/extension/admin.php
parent72dda0b4378651b271f5fb516fb8e21a80ac3ebf (diff)
downloadrpg-fee60c9e19860de9edb1dd146ec7063bb9eda392.tar.gz
rpg-fee60c9e19860de9edb1dd146ec7063bb9eda392.tar.bz2
manual install tab now works
Diffstat (limited to 'lib/plugins/extension/admin.php')
-rw-r--r--lib/plugins/extension/admin.php46
1 files changed, 31 insertions, 15 deletions
diff --git a/lib/plugins/extension/admin.php b/lib/plugins/extension/admin.php
index 3237a26e5..62d94e899 100644
--- a/lib/plugins/extension/admin.php
+++ b/lib/plugins/extension/admin.php
@@ -22,7 +22,7 @@ class admin_plugin_extension extends DokuWiki_Admin_Plugin {
*
* loads additional helpers
*/
- public function __construct(){
+ public function __construct() {
$this->gui = plugin_load('helper', 'extension_gui');
}
@@ -49,37 +49,36 @@ class admin_plugin_extension extends DokuWiki_Admin_Plugin {
/* @var helper_plugin_extension_repository $repository */
$repository = $this->loadHelper('extension_repository');
-
- if(!$repository->hasAccess()){
- $url = $this->gui->tabURL('', array('purge'=>1));
+ if(!$repository->hasAccess()) {
+ $url = $this->gui->tabURL('', array('purge' => 1));
msg($this->getLang('repo_error').' [<a href="'.$url.'">'.$this->getLang('repo_retry').'</a>]', -1);
}
/* @var helper_plugin_extension_extension $extension */
$extension = $this->loadHelper('extension_extension');
- if ($INPUT->post->has('fn')) {
+ if($INPUT->post->has('fn') && checkSecurityToken()) {
$actions = $INPUT->post->arr('fn');
- foreach ($actions as $action => $extensions) {
- foreach ($extensions as $extname => $label) {
- switch ($action) {
+ foreach($actions as $action => $extensions) {
+ foreach($extensions as $extname => $label) {
+ switch($action) {
case 'install':
case 'reinstall':
case 'update':
try {
$extension->setExtension($extname);
$installed = $extension->installOrUpdate();
- foreach($installed as $extension => $info){
+ foreach($installed as $ext => $info) {
msg(sprintf($this->getLang('msg_'.$info['type'].'_'.$info['action'].'_success'), $info['base']), 1);
}
- }catch (Exception $e){
+ } catch(Exception $e) {
msg($e->getMessage(), -1);
}
break;
case 'uninstall':
$extension->setExtension($extname);
$status = $extension->uninstall();
- if ($status !== true) {
+ if($status !== true) {
msg($status, -1);
} else {
msg(sprintf($this->getLang('msg_delete_success'), hsc($extension->getDisplayName())), 1);
@@ -88,7 +87,7 @@ class admin_plugin_extension extends DokuWiki_Admin_Plugin {
case 'enable';
$extension->setExtension($extname);
$status = $extension->enable();
- if ($status !== true) {
+ if($status !== true) {
msg($status, -1);
} else {
msg(sprintf($this->getLang('msg_enabled'), hsc($extension->getDisplayName())), 1);
@@ -97,7 +96,7 @@ class admin_plugin_extension extends DokuWiki_Admin_Plugin {
case 'disable';
$extension->setExtension($extname);
$status = $extension->disable();
- if ($status !== true) {
+ if($status !== true) {
msg($status, -1);
} else {
msg(sprintf($this->getLang('msg_disabled'), hsc($extension->getDisplayName())), 1);
@@ -106,6 +105,24 @@ class admin_plugin_extension extends DokuWiki_Admin_Plugin {
}
}
}
+ } elseif($INPUT->post->str('installurl') && checkSecurityToken()) {
+ try {
+ $installed = $extension->installFromURL($INPUT->post->str('installurl'));
+ foreach($installed as $ext => $info) {
+ msg(sprintf($this->getLang('msg_'.$info['type'].'_'.$info['action'].'_success'), $info['base']), 1);
+ }
+ } catch(Exception $e) {
+ msg($e->getMessage(), -1);
+ }
+ } elseif(isset($_FILES['installfile']) && checkSecurityToken()) {
+ try {
+ $installed = $extension->installFromUpload('installfile');
+ foreach($installed as $ext => $info) {
+ msg(sprintf($this->getLang('msg_'.$info['type'].'_'.$info['action'].'_success'), $info['base']), 1);
+ }
+ } catch(Exception $e) {
+ msg($e->getMessage(), -1);
+ }
}
}
@@ -118,7 +135,7 @@ class admin_plugin_extension extends DokuWiki_Admin_Plugin {
$this->gui->tabNavigation();
- switch($this->gui->currentTab()){
+ switch($this->gui->currentTab()) {
case 'search':
$this->gui->tabSearch();
break;
@@ -133,7 +150,6 @@ class admin_plugin_extension extends DokuWiki_Admin_Plugin {
$this->gui->tabPlugins();
}
-
ptln('</div>');
}
}