diff --git a/CHANGELOG.md b/CHANGELOG.md index cda367a8c..7c97dafeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ * Fixed `print_r()` in twig * Fixed sorting by groups in `Flex Users` * Changing `Flex Page` template causes the other language versions of that page to lose their content [admin#1958](https://github.com/getgrav/grav-plugin-admin/issues/1958) + * Fixed plugins getting intialized multiple times (by CLI commands for example) # v1.7.0-rc.17 ## 10/07/2020 diff --git a/system/src/Grav/Common/Plugins.php b/system/src/Grav/Common/Plugins.php index cb8436970..252e4b61b 100644 --- a/system/src/Grav/Common/Plugins.php +++ b/system/src/Grav/Common/Plugins.php @@ -30,6 +30,8 @@ class Plugins extends Iterator /** @var array */ public $formFieldTypes; + private $plugins_initialized = false; + /** * Plugins constructor. */ @@ -108,6 +110,10 @@ class Plugins extends Iterator */ public function init() { + if ($this->plugins_initialized) { + return $this->items; + } + $grav = Grav::instance(); /** @var Config $config */ @@ -134,6 +140,8 @@ class Plugins extends Iterator $event = new PluginsLoadedEvent($grav, $this); $grav->dispatchEvent($event); + $this->plugins_initialized = true; + return $this->items; }