From eebaebca0efe5b28ee084d7ff809cbe62bf76d8f Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Mon, 13 Jul 2009 21:11:03 +0000 Subject: [PATCH] BUGFIX Setting lang-code instead of locale in CMSMain->init() for TinyMCE spell checking BUGFIX Always choosing translatable default language in CMSMain->init() for TinyMCE spell checking. Always setting $CMSMain->Locale in order to have it available for the spell checking git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@81716 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- code/CMSMain.php | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/code/CMSMain.php b/code/CMSMain.php index 3fb695f5..4a0ee603 100644 --- a/code/CMSMain.php +++ b/code/CMSMain.php @@ -87,31 +87,22 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr // Locale" attribute is either explicitly added by LeftAndMain Javascript logic, // or implied on a translated record (see {@link Translatable->updateCMSFields()}). - if(Translatable::is_enabled()) { - // $Lang serves as a "context" which can be inspected by Translatable - hence it - // has the same name as the database property on Translatable. - if($this->getRequest()->requestVar("Locale")) { - $this->Locale = $this->getRequest()->requestVar("Locale"); - } elseif($this->getRequest()->requestVar("locale")) { - $this->Locale = $this->getRequest()->requestVar("locale"); - } else { - $this->Locale = Translatable::default_locale(); - } - Translatable::set_current_locale($this->Locale); - } - - // collect languages for TinyMCE spellchecker plugin - if(Translatable::is_enabled()) { - $spellcheckLangs = Translatable::get_existing_content_languages(); + // $Lang serves as a "context" which can be inspected by Translatable - hence it + // has the same name as the database property on Translatable. + if($this->getRequest()->requestVar("Locale")) { + $this->Locale = $this->getRequest()->requestVar("Locale"); + } elseif($this->getRequest()->requestVar("locale")) { + $this->Locale = $this->getRequest()->requestVar("locale"); } else { - $defaultLang = Translatable::default_locale(); - $spellcheckLangs = array($defaultLang => i18n::get_locale_name($defaultLang)); + $this->Locale = Translatable::default_locale(); } - $spellcheckSpec = array(); - foreach($spellcheckLangs as $lang => $title) $spellcheckSpec[] = "{$title}={$lang}"; - - // Set custom options for TinyMCE specific to CMSMain - HtmlEditorConfig::get('cms')->setOption('spellchecker_languages', '+' . implode(',', $spellcheckSpec)); + Translatable::set_current_locale($this->Locale); + + // collect languages for TinyMCE spellchecker plugin. + // see http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker + $lang = i18n::get_lang_from_locale($this->Locale); + $langName = i18n::get_locale_name($this->Locale); + HtmlEditorConfig::get('cms')->setOption('spellchecker_languages', "+{$langName}={$lang}"); Requirements::javascript(CMS_DIR . '/javascript/CMSMain.js'); Requirements::javascript(CMS_DIR . '/javascript/CMSMain_left.js');