/** * Modified inventory fetcher * * @return array */ public function inventory() { $inventory = parent::inventory(); $defaultLang = $this->site->defaultLanguage->code; $expression = '!(.*?)(\\.(' . implode('|', $this->site->languages->codes()) . ')|)\\.' . $this->site->options['content.file.extension'] . '$!i'; foreach ($inventory['meta'] as $key => $meta) { $inventory['meta'][$key] = array($defaultLang => $meta); } foreach ($inventory['content'] as $key => $content) { preg_match($expression, $content, $match); $file = $match[1]; $lang = isset($match[3]) ? $match[3] : $defaultLang; if (in_array($file, $inventory['files'])) { $inventory['meta'][$file][$lang] = $content; } else { $inventory['content'][$lang] = $content; } unset($inventory['content'][$key]); } return $inventory; }
/** * Modified inventory fetcher * * @return array */ public function inventory() { $inventory = parent::inventory(); $defaultLang = $this->site->defaultLanguage->code; $expression = '!(.*?)(\\.(' . implode('|', $this->site->languages->codes()) . ')|)\\.' . $this->kirby->options['content.file.extension'] . '$!i'; foreach ($inventory['meta'] as $key => $meta) { $inventory['meta'][$key] = array($defaultLang => $meta); } foreach ($inventory['content'] as $key => $content) { preg_match($expression, $content, $match); $file = $match[1]; $lang = isset($match[3]) ? $match[3] : null; if (in_array($file, $inventory['files'])) { $inventory['meta'][$file][$lang] = $content; } else { if (is_null($lang)) { $lang = f::extension($file); if (empty($lang)) { $lang = $defaultLang; } } $inventory['content'][$lang] = $content; } unset($inventory['content'][$key]); } // try to fill the default language with something else if (!isset($inventory['content'][$defaultLang])) { $inventory['content'][$defaultLang] = a::first($inventory['content']); } return $inventory; }