From 4cf2ee5e385cce7681836200c3633ab4efa47d9b Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Thu, 8 Jan 2009 04:24:42 +0000 Subject: [PATCH] BUGFIX Explicitly setting "lang" as a GET var when getting a page within the CMS (if the language chooser DOM object is available, hence translation mode is enabled). Used in CMSMain->init() to set the "current language". (merged from branches/translatable in r64523, thanks wakeless!) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/branches/2.3@69899 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- code/CMSMain.php | 7 +++++++ javascript/LeftAndMain_right.js | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/code/CMSMain.php b/code/CMSMain.php index bc475a3f..69d22fc3 100644 --- a/code/CMSMain.php +++ b/code/CMSMain.php @@ -79,6 +79,11 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr public function init() { parent::init(); + if(Translatable::is_enabled()) { + $this->Lang = $this->requestParams["lang"] ? $this->requestParams["lang"] : Translatable::default_lang(); + Translatable::set_reading_lang($this->Lang); + } + // collect languages for TinyMCE spellchecker plugin if(Translatable::is_enabled()) { $spellcheckLangs = Translatable::get_existing_content_languages(); @@ -472,6 +477,7 @@ JS; */ public function getNewItem($id, $setID = true) { list($dummy, $className, $parentID, $suffix) = array_pad(explode('-',$id),4,null); + if(Translatable::is_enabled()) { if (!Translatable::is_default_lang()) { $originalItem = Translatable::get_original($className,Session::get("{$id}_originalLangID")); @@ -483,6 +489,7 @@ JS; return $originalItem; } } + $newItem = new $className(); if( !$suffix ) { diff --git a/javascript/LeftAndMain_right.js b/javascript/LeftAndMain_right.js index 9b09510d..58d7d2d5 100755 --- a/javascript/LeftAndMain_right.js +++ b/javascript/LeftAndMain_right.js @@ -300,6 +300,12 @@ CMSRightForm.prototype = { var sep = (SiteTreeHandlers.loadPage_url.indexOf('?') == -1) ? '?' : '&'; url = SiteTreeHandlers.loadPage_url + sep + 'ID=' + id; } + + // used to set language in CMSMain->init() + var lang = $('LangSelector') ? $F('LangSelector') : null; + if(lang) { + url += '&lang='+lang; + } statusMessage("loading..."); this.loadURLFromServer(url);