Upgrade форума Linux.ru
23-05-2010 20:54
к комментариям - к полной версии
- понравилось!
Долго собирался. Наконец решился и обновил скрипт форума FudForum - на мой взгляд один из лучших скриптов форума. Во всяком случае из бесплатных - точно. Так вот - обновил с версии 2.7.7 до версии 3.0.1
В целом стандартный гимор с шаблонами решился довольно стандартно и быстро. Не стандартно было одно. Форум имеет многолетнюю историю. И в начале он был в кодировке CP1251 и файлы хранились не в базе MySQL, а в виде файлов. При апгрейде все то, что было в CP1251 и хранилось в базе корректно обновилось. Но вот то, что хранилось в файлах в директории FUDForum/messages/ никак не проапгрейдилось. В результате Вы понимаете, что и как показывалось при обращении к этим записям через форум. Сплошная псевдографика. Переконвертировать файлы просто iconv-ом не получилось, ибо бились спецсимволы и у форума совсем "ехала крыша". Пришлось править сам скрипт форума. Это не сложно совсем :-) Итак, нам нужно заменить строчку в одном из трех файлов:
Директория /theme/default
Файл msg.php - отвечает за отображение сообщений в форуме в виде списка. В нем находим строчку
return fread($GLOBALS['__MSG_FP__'][$id], $len);
И заменяем ее на
return iconv ("CP1251" , "UTF8" ,fread($GLOBALS['__MSG_FP__'][$id], $len));
То же самое делаем с файлами
tree.php - отображает список сообщений в виде дерева
и
tree_msg.php - отвечает за отображение сообщений при хождении по дереву сообщений
В общем-то и все - все сразу работает :-)
Да - кто еще не понял, фунция iconv отвечает за конвертацию файлов из CP1251 в UTF8, который используется в FUDForum-е начиная с версии 3.0.0. И еще раз да! :-) У вас в системе должен стоять сам iconv. Ибо функция php iconv всего лишь вызывает эту системную функцию. Без проинсталлированного в системе iconv ничего работать не будет.
вверх^
к полной версии
понравилось!
в evernote