diff --git a/CHANGELOG.md b/CHANGELOG.md index a3fb0d136..79074f36a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# v1.3.3 +## xx/xx/2017 + +1. [](#improved) + * Forced `natsort` on plugins to ensure consistent plugin load ordering across platforms [#1614](https://github.com/getgrav/grav/issues/1614) + # v1.3.2 ## 08/16/2017 diff --git a/system/src/Grav/Common/Plugins.php b/system/src/Grav/Common/Plugins.php index 340caf15d..25fb356ad 100644 --- a/system/src/Grav/Common/Plugins.php +++ b/system/src/Grav/Common/Plugins.php @@ -27,13 +27,18 @@ class Plugins extends Iterator $locator = Grav::instance()['locator']; $iterator = $locator->getIterator('plugins://'); - foreach ($iterator as $directory) { + + $plugins = []; + foreach($iterator as $directory) { if (!$directory->isDir()) { continue; } + $plugins[] = $directory->getBasename(); + } - $plugin = $directory->getBasename(); + natsort($plugins); + foreach ($plugins as $plugin) { $this->add($this->loadPlugin($plugin)); } }