Пример #1
0
 /**
  * Display list of available plugins
  */
 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())));
 }
Пример #2
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     if (!Installer::isConfigured()) {
         throw new LogicException('Kanboard is not configured to install plugins itself');
     }
     $installer = new Installer($this->container);
     $availablePlugins = Directory::getInstance($this->container)->getAvailablePlugins();
     foreach ($this->pluginLoader->getPlugins() as $installedPlugin) {
         $pluginDetails = $this->getPluginDetails($availablePlugins, $installedPlugin);
         if ($pluginDetails === null) {
             $output->writeln('<error>* Plugin not available in the directory: ' . $installedPlugin->getPluginName() . '</error>');
         } elseif ($pluginDetails['version'] > $installedPlugin->getPluginVersion()) {
             $output->writeln('<comment>* Updating plugin: ' . $installedPlugin->getPluginName() . '</comment>');
             $installer->update($pluginDetails['download']);
         } else {
             $output->writeln('<info>* Plugin up to date: ' . $installedPlugin->getPluginName() . '</info>');
         }
     }
 }