public function tearDown() { MultilingualRootURLController::set_use_locale_url($this->origLocaleRoutingEnabled); Translatable::set_current_locale($this->origCurrentLocale); Translatable::set_default_locale($this->origLocale); Translatable::set_allowed_locales($this->origAllowedLocales); i18n::set_locale($this->origi18nLocale); Cookie::force_expiry('language'); if ($this->origCookieLocale) { Cookie::set('language', $this->origCookieLocale); } $_SERVER['HTTP_ACCEPT_LANGUAGE'] = $this->origAcceptLanguage; MultilingualRootURLController::reset(); parent::tearDown(); }
function testCanTranslate() { $origAllowedLocales = Translatable::get_allowed_locales(); $cmseditor = $this->objFromFixture('Member', 'cmseditor'); $testPage = $this->objFromFixture('Page', 'testpage_en'); $this->assertTrue($testPage->canTranslate($cmseditor, 'de_DE'), "Users with canEdit() permission can create a new translation if locales are not limited"); Translatable::set_allowed_locales(array('ja_JP')); $this->assertTrue($testPage->canTranslate($cmseditor, 'ja_JP'), "Users with canEdit() permission can create a new translation if locale is in Translatable::get_allowed_locales()"); $this->assertFalse($testPage->canTranslate($cmseditor, 'de_DE'), "Users with canEdit() permission can't create a new translation if locale is not in Translatable::get_allowed_locales()"); $this->assertType('Page', $testPage->createTranslation('ja_JP')); try { $testPage->createTranslation('de_DE'); $this->setExpectedException("Exception"); } catch (Exception $e) { } Translatable::set_allowed_locales($origAllowedLocales); }
<?php LeftAndMain::require_css('express/css/custom.css'); SiteTree::add_extension('ExpressSiteTree'); ContentController::add_extension('ExpressSiteTree_Controller'); SiteConfig::add_extension('CustomSiteConfig'); // Don't allow h1 in the editor HtmlEditorConfig::get('cms')->setOption('theme_advanced_blockformats', 'p,pre,address,h2,h3,h4,h5,h6'); // Add in start and type attributes for ol HtmlEditorConfig::get('cms')->setOption('extended_valid_elements', 'img[class|src|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name|usemap],iframe[src|name|width|height|title|align|allowfullscreen|frameborder|marginwidth|marginheight|scrolling],object[width|height|data|type],param[name|value],map[class|name|id],area[shape|coords|href|target|alt],ol[start|type]'); // Macrons HtmlEditorConfig::get('cms')->enablePlugins(array('ssmacron' => '../../../framework/thirdparty/tinymce_ssmacron/editor_plugin_src.js')); HtmlEditorConfig::get('cms')->insertButtonsAfter('charmap', 'ssmacron'); GD::set_default_quality(90); FulltextSearchable::enable(); // Configure document converter. if (class_exists('DocumentConverterDecorator')) { DocumentImportIFrameField_Importer::set_docvert_username('ss-express'); DocumentImportIFrameField_Importer::set_docvert_password('hLT7pCaJrYVz'); DocumentImportIFrameField_Importer::set_docvert_url('http://docvert.silverstripe.com:8888/'); Page::add_extension('DocumentConverterDecorator'); } // Default translations if (class_exists('Translatable')) { Translatable::set_default_locale('en_NZ'); Translatable::set_allowed_locales(array('en_NZ', 'mi_NZ', 'zh_cmn', 'en_GB')); SiteTree::add_extension('Translatable'); SiteConfig::add_extension('Translatable'); } Config::inst()->update('i18n', 'common_locales', array("mi_NZ" => array(0 => 'Māori'))); Config::inst()->update('i18n', 'common_languages', array("mi" => array(0 => 'Māori')));
function testLocalesForMember() { $origAllowedLocales = Translatable::get_allowed_locales(); Translatable::set_allowed_locales(array('de_DE', 'ja_JP')); $cmseditor = $this->objFromFixture('Member', 'cmseditor'); $translator = $this->objFromFixture('Member', 'germantranslator'); $this->assertEquals(array('de_DE', 'ja_JP'), singleton('SiteTree')->getAllowedLocalesForMember($cmseditor), 'Members with TRANSLATE_ALL permission can edit all locales'); $this->assertEquals(array('de_DE'), singleton('SiteTree')->getAllowedLocalesForMember($translator), 'Members with TRANSLATE_<locale> permission cant edit all locales'); Translatable::set_allowed_locales($origAllowedLocales); }
* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. **/ // Use _ss_environment.php file for configuration require_once "conf/ConfigureFromEnv.php"; // Register custom site configuration extension DataObject::add_extension('SiteConfig', 'CustomSiteConfig'); // Set the site locale i18n::set_locale('en_US'); //Turn on Silverstripe Translation Object::add_extension('SiteTree', 'Translatable'); Object::add_extension('SiteConfig', 'Translatable'); Translatable::set_allowed_locales(array('en_US', 'de_DE', 'es_ES', 'ja_JP')); //Turn on Silverstripe Translation // Search index for Orgs Object::add_extension('Org', 'AutocompleteOrgDecorator'); // Enable SSL for specific subdomains if (Director::isLive()) { Director::forceSSL(array('/^Security/', '/^profile/', '/^join/', '/^user-survey/', '/^summit/', '/^news-manage/', '/^vote-vancouver/')); } // Email errors and warnings global $email_log; SS_Log::add_writer(new SS_LogFileWriter(Director::baseFolder() . '/logs/site.log'), SS_Log::ERR); $email_log_writer = new Custom_SS_LogEmailWriter($email_log); $email_log_writer->setFormatter(new SS_CustomLogErrorEmailFormatter()); SS_Log::add_writer($email_log_writer, SS_Log::ERR, '<='); // Default From address for email global $email_from;