Merge branch '2.2' into 2.3

This commit is contained in:
Robbie Averill 2018-04-20 16:36:23 +12:00
commit 50f145a891
4 changed files with 87 additions and 79 deletions

View File

@ -3,19 +3,17 @@
language: php
php:
- 5.3
- 5.6
env:
- DB=MYSQL CORE_RELEASE=3
matrix:
include:
- php: 5.4
env: DB=PGSQL CORE_RELEASE=3
- php: 5.5
env: DB=MYSQL CORE_RELEASE=3.2
- php: 5.6
env: DB=MYSQL CORE_RELEASE=3.2
env: DB=PGSQL CORE_RELEASE=3
- php: 5.6
env: DB=MYSQL CORE_RELEASE=3
before_script:
- pear -q install --onlyreqdeps pear/PHP_CodeSniffer

View File

@ -21,7 +21,7 @@ class LanguageDropdownField extends GroupedDropdownField {
* @param string $list Indicates the source language list.
* Can be either Common-English, Common-Native, Locale-English, Locale-Native
*/
function __construct($name, $title, $excludeLocales = array(),
public function __construct($name, $title = null, $excludeLocales = array(),
$translatingClass = 'SiteTree', $list = 'Common-English', $instance = null
) {
$usedLocalesWithTitle = Translatable::get_existing_content_languages($translatingClass);

View File

@ -743,7 +743,12 @@ class Translatable extends DataExtension implements PermissionProvider {
if(!$obj || $obj->ObsoleteClassName) continue;
$obj->Locale = Translatable::default_locale();
$obj->writeToStage($stage);
$oldMode = Versioned::get_reading_mode();
Versioned::reading_stage($stage);
$obj->writeWithoutVersion();
Versioned::set_reading_mode($oldMode);
$obj->addTranslationGroup($obj->ID);
$obj->destroy();
unset($obj);
@ -932,7 +937,7 @@ class Translatable extends DataExtension implements PermissionProvider {
$fresh = Versioned::get_one_by_stage(
$baseDataClass,
Versioned::current_stage(),
'"ID" = ' . $this->owner->ID,
'"'.$baseDataClass.'"."ID" = ' . $this->owner->ID,
null
);
if ($fresh) {
@ -1065,6 +1070,7 @@ class Translatable extends DataExtension implements PermissionProvider {
$alreadyTranslatedLocales[$this->owner->Locale] = $this->owner->Locale;
$alreadyTranslatedLocales = array_combine($alreadyTranslatedLocales, $alreadyTranslatedLocales);
if ($fields->hasTabSet()) {
// Check if fields exist already to avoid adding them twice on repeat invocations
$tab = $fields->findOrMakeTab('Root.Translations', _t('Translatable.TRANSLATIONS', 'Translations'));
if(!$tab->fieldByName('CreateTransHeader')) {
@ -1132,6 +1138,7 @@ class Translatable extends DataExtension implements PermissionProvider {
}
}
}
}
function updateSettingsFields(&$fields) {
$this->addTranslatableFields($fields);
@ -1572,7 +1579,7 @@ class Translatable extends DataExtension implements PermissionProvider {
function MetaTags(&$tags) {
$template = '<link rel="alternate" type="text/html" title="%s" hreflang="%s" href="%s" />' . "\n";
$translations = $this->owner->getTranslations();
if($translations) {
if($translations->count()) {
$translations = $translations->toArray();
$translations[] = $this->owner;
@ -1766,7 +1773,7 @@ class Translatable extends DataExtension implements PermissionProvider {
* @deprecated 2.4 Use get_reading_locale()
*/
static function get_reading_lang() {
return i18n::get_lang_from_locale(self::get_reading_locale());
return i18n::get_lang_from_locale(self::get_current_locale());
}
/**

View File

@ -22,6 +22,9 @@ class TranslatableSiteConfigTest extends SapphireTest {
$this->origLocale = Translatable::default_locale();
Translatable::set_default_locale("en_US");
// Delete any default records created outside of fixtures
SiteConfig::get()->exclude('ID', $this->allFixtureIDs('SiteConfig'))->removeAll();
}
function tearDown() {