| <?php |
|
|
| namespace Kanboard\Controller; |
|
|
| use Kanboard\Core\Plugin\Directory; |
| use Kanboard\Core\Plugin\Installer; |
| use Kanboard\Core\Plugin\PluginInstallerException; |
|
|
| |
| |
| |
| |
| |
| |
| class PluginController extends BaseController |
| { |
| |
| |
| |
| |
| |
| public function show() |
| { |
| $this->response->html($this->helper->layout->plugin('plugin/show', array( |
| 'plugins' => $this->pluginLoader->getPlugins(), |
| 'incompatible_plugins' => $this->pluginLoader->getIncompatiblePlugins(), |
| 'title' => t('Installed Plugins'), |
| 'is_configured' => Installer::isConfigured(), |
| ))); |
| } |
|
|
| |
| |
| |
| public function directory() |
| { |
| $installedPlugins = array(); |
|
|
| foreach ($this->pluginLoader->getPlugins() as $plugin) { |
| $installedPlugins[$plugin->getPluginName()] = $plugin->getPluginVersion(); |
| } |
|
|
| $this->response->html($this->helper->layout->plugin('plugin/directory', array( |
| 'installed_plugins' => $installedPlugins, |
| 'available_plugins' => Directory::getInstance($this->container)->getAvailablePlugins(), |
| 'title' => t('Plugin Directory'), |
| 'is_configured' => Installer::isConfigured(), |
| ))); |
| } |
|
|
| |
| |
| |
| |
| |
| public function install() |
| { |
| $this->checkCSRFParam(); |
| $pluginArchiveUrl = urldecode($this->request->getStringParam('archive_url')); |
|
|
| try { |
| $installer = new Installer($this->container); |
| $installer->install($pluginArchiveUrl); |
| $this->flash->success(t('Plugin installed successfully.')); |
| } catch (PluginInstallerException $e) { |
| $this->flash->failure($e->getMessage()); |
| } |
|
|
| $this->response->redirect($this->helper->url->to('PluginController', 'show')); |
| } |
|
|
| |
| |
| |
| |
| |
| public function update() |
| { |
| $this->checkCSRFParam(); |
| $pluginArchiveUrl = urldecode($this->request->getStringParam('archive_url')); |
|
|
| try { |
| $installer = new Installer($this->container); |
| $installer->update($pluginArchiveUrl); |
| $this->flash->success(t('Plugin updated successfully.')); |
| } catch (PluginInstallerException $e) { |
| $this->flash->failure($e->getMessage()); |
| } |
|
|
| $this->response->redirect($this->helper->url->to('PluginController', 'show')); |
| } |
|
|
| |
| |
| |
| public function confirm() |
| { |
| $pluginId = $this->request->getStringParam('pluginId'); |
| $plugins = array_merge( |
| $this->pluginLoader->getPlugins(), |
| $this->pluginLoader->getIncompatiblePlugins() |
| ); |
|
|
| $this->response->html($this->template->render('plugin/remove', array( |
| 'plugin_id' => $pluginId, |
| 'plugin' => $plugins[$pluginId], |
| ))); |
| } |
|
|
| |
| |
| |
| |
| |
| public function uninstall() |
| { |
| $this->checkCSRFParam(); |
| $pluginId = $this->request->getStringParam('pluginId'); |
|
|
| try { |
| $installer = new Installer($this->container); |
| $installer->uninstall($pluginId); |
| $this->flash->success(t('Plugin removed successfully.')); |
| } catch (PluginInstallerException $e) { |
| $this->flash->failure($e->getMessage()); |
| } |
|
|
| $this->response->redirect($this->helper->url->to('PluginController', 'show')); |
| } |
| } |
|
|