Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Тематические форумы > Установка

Ответ
 
Опции темы Опции просмотра
Старый 13.01.2007, 17:01   #1
extreme
Новенький
 
Регистрация: 08.01.2007
Адрес: Ижевск
Сообщений: 3
Отправить сообщение для extreme с помощью ICQ
По умолчанию

Спасибо за наводку, покопался.

в t3lib/class.t3lib_tcemain.php функция checkValue_input:

PHP код:
// Secures the string-length to be less than max. Will probably make problems with multi-byte strings!
if (intval($tcaFieldConf['max'])>0) {$value substr($value,0,intval($tcaFieldConf['max']));} 
Этот substr, как и предупреждается, режет utf8-строку из поля ввода побайтово.

Дальше варианты:

1) Если руками заменить на mb_substr с указанием utf-8 - работает нормально.

2) Если включить в php.ini
Код:
mbstring.internal_encoding = UTF-8
mbstring.func_overload = 2
то поля ввода обрабатываются тоже правильно, но взамен слетает кодировка в clickmenu.

Куда копать дальше?
extreme вне форума   Ответить с цитированием
Старый 13.01.2007, 19:18   #2
Valery Romanchev
Administrator
 
Аватар для Valery Romanchev
 
Регистрация: 23.08.2003
Адрес: Moscow, Russia
Сообщений: 1,926
Отправить сообщение для Valery Romanchev с помощью Skype™
По умолчанию

похоже - это minor баг
так что ему прямая дорога в баг трекер
по mb_substr и checkValue_input
там есть 2 бага, но не те
http://bugs.typo3.org/view.php?id=2776
http://bugs.typo3.org/view.php?id=2020
__________________
Веб-студия ТТЛАБ
www.ttlab.ru
Valery Romanchev вне форума   Ответить с цитированием
Старый 13.01.2007, 20:26   #3
extreme
Новенький
 
Регистрация: 08.01.2007
Адрес: Ижевск
Сообщений: 3
Отправить сообщение для extreme с помощью ICQ
По умолчанию

Логично использовать t3lib_cs::substr, отписал баг репорт #4781.

У себя пропатчил checkValue_input() так:

PHP код:
// Secures the string-length to be less than max. Will works with multi-byte strings!
    
if (intval($tcaFieldConf['max'])>0)    {
        if (!
is_object($this->csConvObj))    {
            if (
TYPO3_MODE=='FE') {
                
$this->csConvObj = &$GLOBALS['TSFE']->csConvObj;
            } elseif (
is_object($GLOBALS['LANG']))    {    // BE assumed:
                
$this->csConvObj = &$GLOBALS['LANG']->csConvObj;
            } else {    
// The object may not exist yet
                
$this->csConvObj = &t3lib_div::makeInstance('t3lib_cs');
            }
        }
        
        if (
TYPO3_MODE=='FE')    {
            
$charset $GLOBALS['TSFE']->renderCharset;
        } elseif (
is_object($GLOBALS['LANG']))    {    // BE assumed:
            
$charset $GLOBALS['LANG']->charSet;
        } else {    
// best guess
            
$charset $GLOBALS['TYPO3_CONF_VARS']['BE']['forceCharset'];
        }
        
$value $this->csConvObj->substr($charset,$value,0,intval($tcaFieldConf['max']));
    } 
Ну и добавил var $csConvObj; в класс.

Не знаю только, стоило столько городить или достаточно было парой строк ограничиться.

Последний раз редактировалось extreme; 13.01.2007 в 23:02
extreme вне форума   Ответить с цитированием
Старый 27.08.2007, 22:02   #4
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

http://bugs.typo3.org/view.php?id=5618

А баг и ныне там...
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка при сохранении записей в ве Volodymyr Pavlyuk Общие вопросы 0 07.08.2006 14:46
В RTE при сохранении куда-то исчезает тэг hr... amida HTMLArea, RTE, tinymce_rte и другие визуальные редакторы 6 30.06.2005 03:38


Часовой пояс GMT +4, время: 04:59.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория