PDA

Просмотр полной версии : если на сервере нет recode_string ..


Антон Мельников
11.05.2003, 23:35
Если вы попытаетесь в installTool (или руками в localconf.php) установить [GFX][TTFLocaleConv] = cp1251..UTF-8, чтобы сделать на вашем сайте меню в графике на русском, вы могли получить следущую ошибку:

Fatal error: Call to undefined function: recode_string() in /www/typo3_src-3.5.0/t3lib/class.t3lib_stdgraphic.php on line 441

Скорее всего, ваш PHP скомпилирован без поддержки библиотеки recode. Если нельза перекомпилировать PHP, можно сделать перекодировку cp1251 -> UTF-8 самому, заменив в typo3_src-3.5.0/t3lib/class.t3lib_stdgraphic.php функцию recodeString($string) на вот такую:

function recodeString($string){
$out = '';
for ($i=0; $i < strlen($string); $i++) {
$char = ord($string[$i]);
$out .= ($char > 192)?"&#".(1040+($char-192)).";":$string[$i];
}
return $out;
}

У меня пока работает :)
(помогло вот это: www.webclass.ru/eng/Tutorials/PHP/Setting_Cyrillic_for.html )

Andreas Schwarzkopf
17.05.2003, 22:48
Супер идея!

Было бы неплохо включить эту функцию в качестве Extension на typo3.org.

Антон, если Вы позволите, я сделаю расширение от вашего имени. В знак благодарности могу описать здесь на сайте на русском, как это сделать. Хотя, может попробуете сами?

Вячеслав Анисимов / Averve.Net
17.05.2003, 23:04
Могу предложить более простое (на мой взгляд) решение этой проблемы. Я тоже ковырялся в исходниках и решил проблему своим путем:

function recodeString($string) {
$encodings = explode("..", $this->TTFLocaleConv);
return(iconv($encodings[0],$encodings[1],$string));
}

Необходимо расширение iconv. Оно есть на Win32 системах.

Вячеслав Анисимов / Averve.Net
17.05.2003, 23:09
Кстати, реализовать это дело в качестве расширение скорее всего не удастся. Я пробовал сделать законченное решение на основе XCLASS, но полный облом. Дело в том, что класс gifBuilder наследуется от stdGraphic напрямую из php-кода, не учитывая перегрузки заданные через массив XCLASS. Хотя может я не сильно глубоко залез :)

Вячеслав Анисимов / Averve.Net
17.05.2003, 23:21
Кстати, реализовать это дело в качестве расширение скорее всего не удастся. Я пробовал сделать законченное решение на основе XCLASS, но полный облом. Дело в том, что класс gifBuilder наследуется от stdGraphic напрямую из php-кода, не учитывая перегрузки заданные через массив XCLASS. Хотя может я не сильно глубоко залез :)

Konstantin
14.12.2004, 14:32
делается все проще
в Install прописываете

[GFX][TTFLocaleConv] = !пусто!

[t3lib_cs_convMethod] = !пусто!

[t3lib_cs_utils] = !пусто!

[forceCharset] = utf-8