mirror of
https://github.com/flarum/framework.git
synced 2025-02-06 22:50:44 +08:00
Allow configuring default enabled extensions as part of installation (#2757)
This is needed for the testing library
This commit is contained in:
parent
9a9a644c56
commit
809e0d2ae0
|
@ -22,6 +22,7 @@ class Installation
|
||||||
private $debug = false;
|
private $debug = false;
|
||||||
private $baseUrl;
|
private $baseUrl;
|
||||||
private $customSettings = [];
|
private $customSettings = [];
|
||||||
|
private $enabledExtensions = null;
|
||||||
|
|
||||||
/** @var DatabaseConfig */
|
/** @var DatabaseConfig */
|
||||||
private $dbConfig;
|
private $dbConfig;
|
||||||
|
@ -78,6 +79,13 @@ class Installation
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function extensions($enabledExtensions)
|
||||||
|
{
|
||||||
|
$this->enabledExtensions = $enabledExtensions;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
public function adminUser(AdminUser $admin)
|
public function adminUser(AdminUser $admin)
|
||||||
{
|
{
|
||||||
$this->adminUser = $admin;
|
$this->adminUser = $admin;
|
||||||
|
@ -152,7 +160,7 @@ class Installation
|
||||||
});
|
});
|
||||||
|
|
||||||
$pipeline->pipe(function () {
|
$pipeline->pipe(function () {
|
||||||
return new Steps\EnableBundledExtensions($this->db, $this->paths->vendor, $this->getAssetPath());
|
return new Steps\EnableBundledExtensions($this->db, $this->paths->vendor, $this->getAssetPath(), $this->enabledExtensions);
|
||||||
});
|
});
|
||||||
|
|
||||||
return $pipeline;
|
return $pipeline;
|
||||||
|
|
|
@ -22,6 +22,23 @@ use League\Flysystem\Filesystem;
|
||||||
|
|
||||||
class EnableBundledExtensions implements Step
|
class EnableBundledExtensions implements Step
|
||||||
{
|
{
|
||||||
|
const EXTENSION_WHITELIST = [
|
||||||
|
'flarum-approval',
|
||||||
|
'flarum-bbcode',
|
||||||
|
'flarum-emoji',
|
||||||
|
'flarum-lang-english',
|
||||||
|
'flarum-flags',
|
||||||
|
'flarum-likes',
|
||||||
|
'flarum-lock',
|
||||||
|
'flarum-markdown',
|
||||||
|
'flarum-mentions',
|
||||||
|
'flarum-statistics',
|
||||||
|
'flarum-sticky',
|
||||||
|
'flarum-subscriptions',
|
||||||
|
'flarum-suspend',
|
||||||
|
'flarum-tags',
|
||||||
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var ConnectionInterface
|
* @var ConnectionInterface
|
||||||
*/
|
*/
|
||||||
|
@ -37,11 +54,17 @@ class EnableBundledExtensions implements Step
|
||||||
*/
|
*/
|
||||||
private $assetPath;
|
private $assetPath;
|
||||||
|
|
||||||
public function __construct(ConnectionInterface $database, $vendorPath, $assetPath)
|
/**
|
||||||
|
* @var string[]|null
|
||||||
|
*/
|
||||||
|
private $enabledExtensions;
|
||||||
|
|
||||||
|
public function __construct(ConnectionInterface $database, $vendorPath, $assetPath, $enabledExtensions = null)
|
||||||
{
|
{
|
||||||
$this->database = $database;
|
$this->database = $database;
|
||||||
$this->vendorPath = $vendorPath;
|
$this->vendorPath = $vendorPath;
|
||||||
$this->assetPath = $assetPath;
|
$this->assetPath = $assetPath;
|
||||||
|
$this->enabledExtensions = $enabledExtensions ?? self::EXTENSION_WHITELIST;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getMessage()
|
public function getMessage()
|
||||||
|
@ -66,23 +89,6 @@ class EnableBundledExtensions implements Step
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const EXTENSION_WHITELIST = [
|
|
||||||
'flarum-approval',
|
|
||||||
'flarum-bbcode',
|
|
||||||
'flarum-emoji',
|
|
||||||
'flarum-lang-english',
|
|
||||||
'flarum-flags',
|
|
||||||
'flarum-likes',
|
|
||||||
'flarum-lock',
|
|
||||||
'flarum-markdown',
|
|
||||||
'flarum-mentions',
|
|
||||||
'flarum-statistics',
|
|
||||||
'flarum-sticky',
|
|
||||||
'flarum-subscriptions',
|
|
||||||
'flarum-suspend',
|
|
||||||
'flarum-tags',
|
|
||||||
];
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return \Illuminate\Support\Collection
|
* @return \Illuminate\Support\Collection
|
||||||
*/
|
*/
|
||||||
|
@ -109,7 +115,7 @@ class EnableBundledExtensions implements Step
|
||||||
|
|
||||||
return $extension;
|
return $extension;
|
||||||
})->filter(function (Extension $extension) {
|
})->filter(function (Extension $extension) {
|
||||||
return in_array($extension->getId(), self::EXTENSION_WHITELIST);
|
return in_array($extension->getId(), $this->enabledExtensions);
|
||||||
})->sortBy(function (Extension $extension) {
|
})->sortBy(function (Extension $extension) {
|
||||||
return $extension->getTitle();
|
return $extension->getTitle();
|
||||||
})->mapWithKeys(function (Extension $extension) {
|
})->mapWithKeys(function (Extension $extension) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user