mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 04:18:52 +00:00
[ticket/11150] Implement install extension link in ACP
PHPBB3-11150
This commit is contained in:
parent
adb8d30d98
commit
6a15ad1368
6 changed files with 61 additions and 19 deletions
|
@ -45,7 +45,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<strong>{{ extension.name }}</strong><br />
|
<strong>{{ extension.name }}</strong><br />
|
||||||
<span><a href="{{ extension.url }}">{{ lang('DETAILS') }}</a> • <a href="">{{ lang('INSTALL') }}</a></span>
|
<span><a href="{{ extension.url }}">{{ lang('DETAILS') }}</a> • <a href="{{ U_ACTION }}&action=install&extension={{ extension.composer_name|url_encode }}">{{ lang('INSTALL') }}</a></span>
|
||||||
</td>
|
</td>
|
||||||
<td>{{ extension.version }}</td>
|
<td>{{ extension.version }}</td>
|
||||||
<td>{{ extension.description }}</td>
|
<td>{{ extension.description }}</td>
|
||||||
|
|
0
phpBB/ext/index.htm
Normal file → Executable file
0
phpBB/ext/index.htm
Normal file → Executable file
|
@ -405,6 +405,46 @@ class acp_extensions
|
||||||
{
|
{
|
||||||
global $phpbb_container;
|
global $phpbb_container;
|
||||||
|
|
||||||
|
$action = $this->request->variable('action', 'list');
|
||||||
|
|
||||||
|
/** @var \phpbb\language\language $language */
|
||||||
|
$language = $phpbb_container->get('language');
|
||||||
|
|
||||||
|
/** @var \phpbb\composer\manager $composer_manager */
|
||||||
|
$composer_manager = $phpbb_container->get('ext.composer.manager');
|
||||||
|
|
||||||
|
switch ($action)
|
||||||
|
{
|
||||||
|
case 'install':
|
||||||
|
$extension = $this->request->variable('extension', '');
|
||||||
|
|
||||||
|
if (empty($extension))
|
||||||
|
{
|
||||||
|
redirect($this->u_action);
|
||||||
|
}
|
||||||
|
|
||||||
|
$formatter = new \Composer\Console\HtmlOutputFormatter([
|
||||||
|
'warning' => new \Symfony\Component\Console\Formatter\OutputFormatterStyle('black', 'yellow')
|
||||||
|
]);
|
||||||
|
|
||||||
|
$composer_io = new \phpbb\composer\io\web_io($language, '', \Symfony\Component\Console\Output\OutputInterface::VERBOSITY_NORMAL, $formatter);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$composer_manager->install((array) $extension, $composer_io);
|
||||||
|
}
|
||||||
|
catch (\phpbb\exception\runtime_exception $e)
|
||||||
|
{
|
||||||
|
trigger_error($language->lang_array($e->getMessage(), $e->get_parameters()) . '<br /><br />' . $composer_io->getOutput() . adm_back_link($this->u_action), E_USER_WARNING);
|
||||||
|
}
|
||||||
|
|
||||||
|
trigger_error($language->lang('EXTENSIONS_INSTALLED') . '<br /><br />' . $composer_io->getOutput() . adm_back_link($this->u_action));
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 'remove':
|
||||||
|
break;
|
||||||
|
case 'list':
|
||||||
|
default:
|
||||||
/** @var \phpbb\composer\extension_manager $manager */
|
/** @var \phpbb\composer\extension_manager $manager */
|
||||||
$manager = $phpbb_container->get('ext.composer.manager');
|
$manager = $phpbb_container->get('ext.composer.manager');
|
||||||
$this->page_title = 'ACP_EXTENSIONS_GALLERY';
|
$this->page_title = 'ACP_EXTENSIONS_GALLERY';
|
||||||
|
@ -413,6 +453,8 @@ class acp_extensions
|
||||||
$this->request->enable_super_globals();
|
$this->request->enable_super_globals();
|
||||||
$this->template->assign_var('extensions', $manager->get_available_packages());
|
$this->template->assign_var('extensions', $manager->get_available_packages());
|
||||||
$this->request->disable_super_globals();
|
$this->request->disable_super_globals();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -119,7 +119,7 @@ class installer
|
||||||
->setDumpAutoloader(false)
|
->setDumpAutoloader(false)
|
||||||
->setPreferStable(true)
|
->setPreferStable(true)
|
||||||
->setRunScripts(false)
|
->setRunScripts(false)
|
||||||
->setDryRun(false);
|
->setDryRun(true);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -282,6 +282,7 @@ class installer
|
||||||
// Generates the entry
|
// Generates the entry
|
||||||
$available[$name] = [];
|
$available[$name] = [];
|
||||||
$available[$name]['name'] = $highest_version->getPrettyName();
|
$available[$name]['name'] = $highest_version->getPrettyName();
|
||||||
|
$available[$name]['composer_name'] = $highest_version->getName();
|
||||||
$available[$name]['version'] = $highest_version->getPrettyVersion();
|
$available[$name]['version'] = $highest_version->getPrettyVersion();
|
||||||
|
|
||||||
if ($version instanceof CompletePackage)
|
if ($version instanceof CompletePackage)
|
||||||
|
|
|
@ -29,6 +29,7 @@ class console_io extends ConsoleIO
|
||||||
* @param InputInterface $input The input instance
|
* @param InputInterface $input The input instance
|
||||||
* @param OutputInterface $output The output instance
|
* @param OutputInterface $output The output instance
|
||||||
* @param HelperSet $helperSet The helperSet instance
|
* @param HelperSet $helperSet The helperSet instance
|
||||||
|
* @param language $language Language object
|
||||||
*/
|
*/
|
||||||
public function __construct(InputInterface $input, OutputInterface $output, HelperSet $helperSet, language $language)
|
public function __construct(InputInterface $input, OutputInterface $output, HelperSet $helperSet, language $language)
|
||||||
{
|
{
|
||||||
|
|
|
@ -15,25 +15,23 @@ namespace phpbb\composer\io;
|
||||||
|
|
||||||
use Composer\IO\BufferIO;
|
use Composer\IO\BufferIO;
|
||||||
use phpbb\language\language;
|
use phpbb\language\language;
|
||||||
use Symfony\Component\Console\Helper\HelperSet;
|
use Symfony\Component\Console\Formatter\OutputFormatterInterface;
|
||||||
use Symfony\Component\Console\Input\InputInterface;
|
use Symfony\Component\Console\Output\StreamOutput;
|
||||||
use Symfony\Component\Console\Output\OutputInterface;
|
|
||||||
|
|
||||||
class web_io extends BufferIO
|
class web_io extends BufferIO
|
||||||
{
|
{
|
||||||
use translate_composer_trait;
|
use translate_composer_trait;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* @param language $language Language object
|
||||||
*
|
* @param string $input Input string
|
||||||
* @param InputInterface $input The input instance
|
* @param int $verbosity Verbosity level
|
||||||
* @param OutputInterface $output The output instance
|
* @param OutputFormatterInterface $formatter Output formatter
|
||||||
* @param HelperSet $helperSet The helperSet instance
|
|
||||||
*/
|
*/
|
||||||
public function __construct(InputInterface $input, OutputInterface $output, HelperSet $helperSet, language $language)
|
public function __construct(language $language, $input = '', $verbosity = StreamOutput::VERBOSITY_NORMAL, OutputFormatterInterface $formatter = null)
|
||||||
{
|
{
|
||||||
$this->language = $language;
|
$this->language = $language;
|
||||||
|
|
||||||
parent::__construct($input, $output, $helperSet);
|
parent::__construct($input, $verbosity, $formatter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue