From 6d8b1ff2e458844a2723434ad09057955207461e Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Wed, 25 Sep 2019 07:46:41 -0400 Subject: [PATCH] Fix issue processwire/processwire-issues#946 --- .../AdminThemeUikit/AdminThemeUikit.module | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/wire/modules/AdminTheme/AdminThemeUikit/AdminThemeUikit.module b/wire/modules/AdminTheme/AdminThemeUikit/AdminThemeUikit.module index ddd1d441..dcf6f95c 100644 --- a/wire/modules/AdminTheme/AdminThemeUikit/AdminThemeUikit.module +++ b/wire/modules/AdminTheme/AdminThemeUikit/AdminThemeUikit.module @@ -502,10 +502,23 @@ class AdminThemeUikit extends AdminThemeFramework implements Module, Configurabl * */ public function hookClearCaches(HookEvent $event) { - $page = $event->arguments(0); - if(is_null($page) || ($page instanceof Page && $page->template == 'admin')) { - $this->wire('session')->removeFor($this, 'prnav'); - $this->wire('session')->message("Cleared the admin theme navigation cache (primary nav)", Notice::debug); + + /** @var Page|User|null $page */ + $page = $event->arguments(0); + /** @var array $changes */ + $changes = $event->arguments(1); + /** @var User $user */ + $user = $this->wire('user'); + + if($page !== null && !($page instanceof Page)) return; + if(!is_array($changes)) $changes = array(); + + if($page === null || $page->template == 'admin' || ($page->id === $user->id && in_array('language', $changes))) { + /** @var Session $session */ + $session = $this->wire('session'); + $session->removeFor($this, 'prnav'); + $session->removeFor($this, 'sidenav'); + $session->message("Cleared the admin theme navigation cache (primary nav)", Notice::debug); } }