From 16475f04235061b934d304134542c067d610b3f6 Mon Sep 17 00:00:00 2001 From: Oliver Bienert Date: Wed, 11 Nov 2015 13:08:46 +0100 Subject: [PATCH] Added new configuration field 'noBackend' to prevent admin pages being redirected when set to true Check if this option is set at the beginning of method 'detectLanguageRedirect' --- AutodetectLanguage.module | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/AutodetectLanguage.module b/AutodetectLanguage.module index ed85ea2..7792a86 100644 --- a/AutodetectLanguage.module +++ b/AutodetectLanguage.module @@ -36,11 +36,13 @@ class AutodetectLanguage extends WireData implements Module, ConfigurableModule $this->defaultSiteLanguageCode = ""; $this->onlyOnHomepage = ""; $this->noDetectGetParam = ""; + $this->noBackend = 1; } public function detectLanguageRedirect(HookEvent $event) { - if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { - $page = wire("page"); + $page = $event->object; + if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) + AND ($page->template != "admin" OR $this->noBackend == false)) { // defaults to "en" if unset if (empty($this->defaultSiteLanguageCode)) { @@ -176,6 +178,13 @@ class AutodetectLanguage extends WireData implements Module, ConfigurableModule if(isset($data['noDetectGetParam'])) $field->value = $data['noDetectGetParam']; $inputfields->add($field); - return $inputfields; + $field = wire('modules')->get('InputfieldCheckbox'); + $field->name ='noBackend'; + $field->label = 'Only detect language on frontend'; + $field->attr('value', $data['noBackend'] ? $data['noBackend'] : 0 ); + $field->attr('checked', $data['noBackend'] === 1 ? 'checked' : '' ); + $inputfields->add($field); + + return $inputfields; } }