Поставил 4.7.0 несколько дней назад. Делал сайт, радовался.
Потом встала задача русифицировать бэк-энд. Стандартным способом полез в Extensions Manager->Language Packages, отметил русския язык, нажал Update from repository. Все успешно загрузилось и установилось (каталог typo3conf/l10n/ru заполнен всем, чем положено).
Захожу в User settings, выбираю язык Russian. Перелогиниваюсь и получаю:
Код:
Uncaught TYPO3 Exception
#1: PHP Catchable Fatal Error: Argument 2 passed to t3lib_div::array_merge_recursive_overrule() must be an array, boolean given, called in /home/sts/Work/php/apollo_site/typo3/sysext/lang/lang.php on line 529 and defined in /home/sts/Work/php/apollo_site/t3lib/class.t3lib_div.php line 1861 (More information)
t3lib_error_Exception thrown in file
/home/sts/Work/php/apollo_site/t3lib/error/class.t3lib_error_errorhandler.php in line 107.
4 t3lib_error_ErrorHandler::handleError(4096, "Argument 2 passed to t3lib_div::array_merge_recurs…typo3/sysext/lang/lang.php on line 529 and defined", "/home/sts/Work/php/apollo_site/t3lib/class.t3lib_div.php", 1861, array)
/home/sts/Work/php/apollo_site/t3lib/class.t3lib_div.php:
01859: * @return array Resulting array where $arr1 values has overruled $arr0 values
01860: */
01861: public static function array_merge_recursive_overrule(array $arr0, array $arr1, $notAddKeys = FALSE, $includeEmptyValues = TRUE, $enableUnsetFeature = TRUE) {
01862: foreach ($arr1 as $key => $val) {
01863: if (is_array($arr0[$key])) {
3 t3lib_div::array_merge_recursive_overrule(array, boolean, boolean, boolean)
/home/sts/Work/php/apollo_site/typo3/sysext/lang/lang.php:
00527: // Merge current language labels onto labels from previous language
00528: // This way we have a labels with fall back applied
00529: $localLanguage[$this->lang] = t3lib_div::array_merge_recursive_overrule($localLanguage[$this->lang], $tempLL[$language], FALSE, FALSE);
00530: }
00531: }
2 language::readLLfile("EXT:lang/locallang_misc.xml")
/home/sts/Work/php/apollo_site/typo3/sysext/lang/lang.php:
00467:
00468: // Get default file
00469: $localLanguage = $this->readLLfile($fileRef);
00470:
00471: if (is_array($localLanguage) && count($localLanguage)) {
1 language::includeLLFile("EXT:lang/locallang_misc.xml")
/home/sts/Work/php/apollo_site/typo3/backend.php:
00038: require('classes/class.livesearch.php');
00039:
00040: $GLOBALS['LANG']->includeLLFile('EXT:lang/locallang_misc.xml');
00041:
00042:
Файлы, на подгрузке которых возникает проблема - разные. Иногда это lang/locallang_misc.xml, иногда lang/locallang_login.xml, иногда другие. Сбрасывание кеша помогает на 1 раз - все работает на русском, пока кеш снова не запишется. После этого - снова та же ошибка. Такое впечатление, что она считает, что файл есть в кеше, но прочитать его не может.
Права на каталоги, естественно, в порядке.
Подумал было, что в процессе работы что-то успело испортиться. Завел новый сайт, новую БД. Поставил blankpackage версии 4.7.1, чистая установка. Включаю русский - то же самое.
Никто с таким не сталкивался? А то как-то сильно разочаровывает такая ситуация.
p.s. Похоже, что это у меня что-то локально при генерации языкового кеша происходит - на удаленном сервере та же конфигурация, скопированная один в один, с той же БД сначала выдала те же ошибки, потом я стер кеш (тоже скопированный с моего компьютера) - и все стало в порядке. Так что, проблема стала менее актуальной, но разобраться все же хочется.