Fixed multi-language saving issues with default language in Flex Pages

This commit is contained in:
Matias Griese
2019-10-14 11:11:00 +03:00
parent 8fc7755e90
commit a6e78de197
2 changed files with 16 additions and 1 deletions

View File

@@ -17,9 +17,10 @@
* Fixed fatal error if there are numeric folders in `Flex Pages`
* Fixed error on missing `Flex` templates in if `Flex Objects` plugin isn't installed
* Fixed `PageTranslateTrait::getAllLanguages()` and `getAllLanguages()` to include default language
* Fixed multi-language saving issues with default language in `Flex Pages`
* Grav 1.7: Fixed PHP 7.1 compatibility issues
* Selfupgrade CLI: Fixed broken selfupgrade assets reference [#2681](https://github.com/getgrav/grav/issues/2681)
# v1.7.0-beta.10
## 10/03/2019

View File

@@ -13,6 +13,7 @@ namespace Grav\Common\Page\Flex;
use Grav\Common\Debugger;
use Grav\Common\Grav;
use Grav\Common\Language\Language;
use Grav\Framework\Flex\Storage\FolderStorage;
use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
@@ -25,6 +26,7 @@ class PageStorage extends FolderStorage
protected $ignore_files;
protected $ignore_folders;
protected $ignore_hidden;
protected $include_default_lang_file_extension;
protected $recurse;
protected $base_path;
@@ -44,6 +46,7 @@ class PageStorage extends FolderStorage
$this->ignore_hidden = (bool)$config->get('system.pages.ignore_hidden');
$this->ignore_files = (array)$config->get('system.pages.ignore_files');
$this->ignore_folders = (array)$config->get('system.pages.ignore_folders');
$this->include_default_lang_file_extension = $config->get('system.languages.include_default_lang_file_extension', true);
$this->recurse = $options['recurse'] ?? true;
$this->regex = '/(\.([\w\d_-]+))?\.md$/D';
}
@@ -185,6 +188,17 @@ class PageStorage extends FolderStorage
$template = $row['template'] ?? $meta['template'] ?? $keyMeta['template'] ?? '';
$lang = $row['lang'] ?? $meta['lang'] ?? $keyMeta['lang'] ?? '';
// Handle default language, if it should be saved without language extension.
if ($lang && !$this->include_default_lang_file_extension && empty($meta['markdown'][$lang])) {
$grav = Grav::instance();
/** @var Language $langauge */
$language = $grav['language'];
if ($lang === $language->getDefault()) {
$lang = '';
}
}
$keys = [
'key' => null,
'params' => null,