Blog » Silverstripe (модуль "Блог"): локализация "Tag cloud" виджета
В текущей версии блог-модуля в Silverstripe CMS не получается отображать набранные по-русски метки в облаке тегов — выводятся крякозябры:
Чтобы решить эту задачу, достаточно открыть на редактирование файл "blog\code\widgets\TagCloudWidget.php" и заменить в этой строке:
$theseTags = split(" *, *", strtolower(trim($entry->Tags)));
вызов функции "strtolower" на "mb_strtolower":
$theseTags = split(" *, *", mb_strtolower(trim($entry->Tags)));
Заметьте, что внутренняя кодировка для многобайтовых функций в PHP уже установлена в файле "sapphire\main.php",
if (function_exists('mb_http_output')) {
mb_http_output('UTF-8');
mb_internal_encoding('UTF-8');
}
То есть, ещё раз делать это не нужно.
Также, если у вас есть доступ к php.ini, вы можете не менять код, а перегрузить обычные строковые функции их мультибайтовыми аналогами:
[mbstring]
mbstring.func_overload = 2
При чём, на уровне .htaccess это официально не работает (по состоянию на PHP 5.3.8). Раньше работало, но с ошибками, потом от поддержки перегрузки на уровне папок отказались.
На этой странице еще нет комментариев.