diff options
Diffstat (limited to 'phpBB/phpbb/console/command/extension')
| -rw-r--r-- | phpBB/phpbb/console/command/extension/command.php | 30 | ||||
| -rw-r--r-- | phpBB/phpbb/console/command/extension/disable.php | 52 | ||||
| -rw-r--r-- | phpBB/phpbb/console/command/extension/enable.php | 52 | ||||
| -rw-r--r-- | phpBB/phpbb/console/command/extension/purge.php | 52 | ||||
| -rw-r--r-- | phpBB/phpbb/console/command/extension/show.php | 62 | 
5 files changed, 248 insertions, 0 deletions
| diff --git a/phpBB/phpbb/console/command/extension/command.php b/phpBB/phpbb/console/command/extension/command.php new file mode 100644 index 0000000000..364d954082 --- /dev/null +++ b/phpBB/phpbb/console/command/extension/command.php @@ -0,0 +1,30 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ +namespace phpbb\console\command\extension; + +abstract class command extends \phpbb\console\command\command +{ +	/** @var \phpbb\extension\manager */ +	protected $manager; + +	/** @var \phpbb\log\log */ +	protected $log; + +	public function __construct(\phpbb\user $user, \phpbb\extension\manager $manager, \phpbb\log\log $log) +	{ +		$this->manager = $manager; +		$this->log = $log; + +		parent::__construct($user); +	} +} diff --git a/phpBB/phpbb/console/command/extension/disable.php b/phpBB/phpbb/console/command/extension/disable.php new file mode 100644 index 0000000000..1eee16cbd9 --- /dev/null +++ b/phpBB/phpbb/console/command/extension/disable.php @@ -0,0 +1,52 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ +namespace phpbb\console\command\extension; + +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; + +class disable extends command +{ +	protected function configure() +	{ +		$this +			->setName('extension:disable') +			->setDescription($this->user->lang('CLI_DESCRIPTION_DISABLE_EXTENSION')) +			->addArgument( +				'extension-name', +				InputArgument::REQUIRED, +				$this->user->lang('CLI_EXTENSION_NAME') +			) +		; +	} + +	protected function execute(InputInterface $input, OutputInterface $output) +	{ +		$name = $input->getArgument('extension-name'); +		$this->manager->disable($name); +		$this->manager->load_extensions(); + +		if ($this->manager->is_enabled($name)) +		{ +			$output->writeln('<error>' . $this->user->lang('CLI_EXTENSION_DISABLE_FAILURE', $name) . '</error>'); +			return 1; +		} +		else +		{ +			$this->log->add('admin', ANONYMOUS, '', 'LOG_EXT_DISABLE', time(), array($name)); +			$output->writeln('<info>' . $this->user->lang('CLI_EXTENSION_DISABLE_SUCCESS', $name) . '</info>'); +			return 0; +		} +	} +} diff --git a/phpBB/phpbb/console/command/extension/enable.php b/phpBB/phpbb/console/command/extension/enable.php new file mode 100644 index 0000000000..59ff11e9b7 --- /dev/null +++ b/phpBB/phpbb/console/command/extension/enable.php @@ -0,0 +1,52 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ +namespace phpbb\console\command\extension; + +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; + +class enable extends command +{ +	protected function configure() +	{ +		$this +			->setName('extension:enable') +			->setDescription($this->user->lang('CLI_DESCRIPTION_ENABLE_EXTENSION')) +			->addArgument( +				'extension-name', +				InputArgument::REQUIRED, +				$this->user->lang('CLI_EXTENSION_NAME') +			) +		; +	} + +	protected function execute(InputInterface $input, OutputInterface $output) +	{ +		$name = $input->getArgument('extension-name'); +		$this->manager->enable($name); +		$this->manager->load_extensions(); + +		if ($this->manager->is_enabled($name)) +		{ +			$this->log->add('admin', ANONYMOUS, '', 'LOG_EXT_ENABLE', time(), array($name)); +			$output->writeln('<info>' . $this->user->lang('CLI_EXTENSION_ENABLE_SUCCESS', $name) . '</info>'); +			return 0; +		} +		else +		{ +			$output->writeln('<error>' . $this->user->lang('CLI_EXTENSION_ENABLE_FAILURE', $name) . '</error>'); +			return 1; +		} +	} +} diff --git a/phpBB/phpbb/console/command/extension/purge.php b/phpBB/phpbb/console/command/extension/purge.php new file mode 100644 index 0000000000..517e9a74c9 --- /dev/null +++ b/phpBB/phpbb/console/command/extension/purge.php @@ -0,0 +1,52 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ +namespace phpbb\console\command\extension; + +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; + +class purge extends command +{ +	protected function configure() +	{ +		$this +			->setName('extension:purge') +			->setDescription($this->user->lang('CLI_DESCRIPTION_PURGE_EXTENSION')) +			->addArgument( +				'extension-name', +				InputArgument::REQUIRED, +				$this->user->lang('CLI_EXTENSION_NAME') +			) +		; +	} + +	protected function execute(InputInterface $input, OutputInterface $output) +	{ +		$name = $input->getArgument('extension-name'); +		$this->manager->purge($name); +		$this->manager->load_extensions(); + +		if ($this->manager->is_enabled($name)) +		{ +			$output->writeln('<error>' . $this->user->lang('CLI_EXTENSION_PURGE_FAILURE', $name) . '</error>'); +			return 1; +		} +		else +		{ +			$this->log->add('admin', ANONYMOUS, '', 'LOG_EXT_PURGE', time(), array($name)); +			$output->writeln('<info>' . $this->user->lang('CLI_EXTENSION_PURGE_SUCCESS', $name) . '</info>'); +			return 0; +		} +	} +} diff --git a/phpBB/phpbb/console/command/extension/show.php b/phpBB/phpbb/console/command/extension/show.php new file mode 100644 index 0000000000..f9322034d7 --- /dev/null +++ b/phpBB/phpbb/console/command/extension/show.php @@ -0,0 +1,62 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ +namespace phpbb\console\command\extension; + +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; + +class show extends command +{ +	protected function configure() +	{ +		$this +			->setName('extension:show') +			->setDescription($this->user->lang('CLI_DESCRIPTION_LIST_EXTENSIONS')) +		; +	} + +	protected function execute(InputInterface $input, OutputInterface $output) +	{ +		$this->manager->load_extensions(); +		$all = array_keys($this->manager->all_available()); + +		if (empty($all)) +		{ +			$output->writeln('<comment>' . $this->user->lang('CLI_EXTENSION_NOT_FOUND') . '</comment>'); +			return 3; +		} + +		$enabled = array_keys($this->manager->all_enabled()); +		$this->print_extension_list($output, $this->user->lang('CLI_EXTENSIONS_ENABLED') . $this->user->lang('COLON'), $enabled); + +		$output->writeln(''); + +		$disabled = array_keys($this->manager->all_disabled()); +		$this->print_extension_list($output, $this->user->lang('CLI_EXTENSIONS_DISABLED') . $this->user->lang('COLON'), $disabled); + +		$output->writeln(''); + +		$purged = array_diff($all, $enabled, $disabled); +		$this->print_extension_list($output, $this->user->lang('CLI_EXTENSIONS_AVAILABLE') . $this->user->lang('COLON'), $purged); +	} + +	protected function print_extension_list(OutputInterface $output, $type, array $extensions) +	{ +		$output->writeln("<info>$type</info>"); + +		foreach ($extensions as $extension) +		{ +			$output->writeln(" - $extension"); +		} +	} +} | 
