From c3ecaa35cd0f3b21b3db2487265454b129d17bc4 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Thu, 4 Apr 2019 22:16:37 +0200 Subject: [ticket/16010] Enforce alphabetical order for events in events.md PHPBB3-16010 --- phpBB/phpbb/event/md_exporter.php | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'phpBB/phpbb/event') diff --git a/phpBB/phpbb/event/md_exporter.php b/phpBB/phpbb/event/md_exporter.php index 085b20c234..c3942bd7ce 100644 --- a/phpBB/phpbb/event/md_exporter.php +++ b/phpBB/phpbb/event/md_exporter.php @@ -143,6 +143,8 @@ class md_exporter list($event_name, $details) = explode("\n===\n", $event, 2); $this->validate_event_name($event_name); + $sorted_events = [$this->current_event, $event_name]; + natsort($sorted_events); $this->current_event = $event_name; if (isset($this->events[$this->current_event])) @@ -150,6 +152,12 @@ class md_exporter throw new \LogicException("The event '{$this->current_event}' is defined multiple times"); } + // Use array_values() to get actual first element and check against natural order + if (array_values($sorted_events)[0] === $event_name) + { + throw new \LogicException("The event '{$sorted_events[1]}' should be defined before '{$sorted_events[0]}'"); + } + if (($this->filter == 'adm' && strpos($this->current_event, 'acp_') !== 0) || ($this->filter == 'styles' && strpos($this->current_event, 'acp_') === 0)) { -- cgit v1.2.1