diff --git a/classes/MLContent.php b/classes/MLContent.php index eccfc0cc..75378a25 100644 --- a/classes/MLContent.php +++ b/classes/MLContent.php @@ -8,6 +8,8 @@ */ class MLContent extends MLCmsObject { + protected $allowedExtensions = ['htm', 'txt', 'md']; + public static function findLocale($locale, $page) { if (!$page->exists) { diff --git a/models/MessageImport.php b/models/MessageImport.php index e7909ad8..3657727b 100644 --- a/models/MessageImport.php +++ b/models/MessageImport.php @@ -30,6 +30,7 @@ class MessageImport extends ImportModel public function importData($results, $sessionKey = null) { $codeName = MessageExport::CODE_COLUMN_NAME; + $defaultName = Message::DEFAULT_LOCALE; foreach ($results as $index => $result) { try { @@ -44,8 +45,9 @@ public function importData($results, $sessionKey = null) // Create empty array, if $message is new $message->message_data = $message->message_data ?: []; - if (!isset($message->message_data[Message::DEFAULT_LOCALE])) { - $result[Message::DEFAULT_LOCALE] = $code; + if (!isset($message->message_data[$defaultName])) { + $default = (isset($result[$defaultName]) && !empty($result[$defaultName])) ? $result[$defaultName] : $code; + $result[$defaultName] = $default; } $message->message_data = array_merge($message->message_data, $result); diff --git a/tests/unit/behaviors/TranslatablePageTest.php b/tests/unit/behaviors/TranslatablePageTest.php index e84efc8d..6220d627 100644 --- a/tests/unit/behaviors/TranslatablePageTest.php +++ b/tests/unit/behaviors/TranslatablePageTest.php @@ -22,13 +22,6 @@ public function setUp(): void $resolver = new Resolver(['theme1' => $datasource]); $resolver->setDefaultDatasource('theme1'); Model::setDatasourceResolver($resolver); - - TranslatablePage::extend(function($page) { - if (!$page->isClassExtendedWith('RainLab\Translate\Behaviors\TranslatablePage')) { - $page->addDynamicProperty('translatable', ['title']); - $page->extendClassWith('RainLab\Translate\Behaviors\TranslatablePage'); - } - }); } public function tearDown(): void diff --git a/updates/builder_table_update_rainlab_translate_locales.php b/updates/builder_table_update_rainlab_translate_locales.php index 8674f925..3468b177 100755 --- a/updates/builder_table_update_rainlab_translate_locales.php +++ b/updates/builder_table_update_rainlab_translate_locales.php @@ -1,30 +1,41 @@ -integer('sort_order')->default(0); - }); - - $locales = Locale::all(); - foreach($locales as $locale) { - $locale->sort_order = $locale->id; - $locale->save(); - } - } - - public function down() - { - Schema::table('rainlab_translate_locales', function($table) - { - $table->dropColumn('sort_order'); - }); - } -} \ No newline at end of file +integer('sort_order')->default(0); + }); + } + + $locales = Locale::all(); + foreach($locales as $locale) { + $locale->sort_order = $locale->id; + $locale->save(); + } + } + + public function down() + { + if (!Schema::hasTable(self::TABLE_NAME)) { + return; + } + + if (Schema::hasColumn(self::TABLE_NAME, 'found')) { + Schema::dropColumn(['sort_order']); + } + } +} diff --git a/updates/update_messages_table.php b/updates/update_messages_table.php index 37380276..7dbc713e 100644 --- a/updates/update_messages_table.php +++ b/updates/update_messages_table.php @@ -5,19 +5,30 @@ class UpdateMessagesTable extends Migration { + const TABLE_NAME = 'rainlab_translate_messages'; + public function up() { - Schema::table('rainlab_translate_messages', function($table) - { - $table->boolean('found')->default(1); - }); + if (!Schema::hasTable(self::TABLE_NAME)) { + return; + } + + if (!Schema::hasColumn(self::TABLE_NAME, 'found')) { + Schema::table(self::TABLE_NAME, function($table) + { + $table->boolean('found')->default(1); + }); + } } public function down() { - Schema::table('rainlab_translate_messages', function($table) - { - $table->dropColumn('found'); - }); + if (!Schema::hasTable(self::TABLE_NAME)) { + return; + } + + if (Schema::hasColumn(self::TABLE_NAME, 'found')) { + Schema::dropColumn(['found']); + } } -} \ No newline at end of file +}