После выхода версии typo 4.1 тут же захотелось опробовать её в деле. В принципе, сам процесс обновления практически не отличался от предыдущего, добавился только 4-й пункт, из-за того что изменился адрес и способ доступа к svn-репозитарию проекта. Ещё одна вещь, которая бросилась в глаза после завершения обновления, это проблема с обработкой тэгов typo:code, typo:lightbox. Это только те теги, которые я заметил. Судя по , существуют и другие похожие проблемы. обещает разобраться с этим в релизе 4.1.1. Пока что пришлось для топовых постов поменять <typo:code> на <pre> а <typo:lightbox /> на <img />
Итак, сам процесс обновления описан ниже:
1) Останавливаем lighttpd:
/etc/init.d/lighttpd stop
2) Делаем backup сайта:
tar cfv cooper.ezlibrary.com_r1193.tar www.ezlibrary.com/*
gzip cooper.ezlibrary.com_r1193.tar
Где-то с конца прошлого года казалось, что проект вот-вот закончит свое существование. Об этом можно было судить потому, что разработка не велась несколько месяцев, официальный сайт проекта был недоступен в течение трёх месяцев без каких-либо официальных объяснений. Не была известна дата следующего официального релиза и, если говорить, в общем и целом - будущее проекта. На этом фоне многие приверженцы Typo начали переходить на Mephisto или другие blog-engines.
И вот, наконец, вышел очередной релиз Typo 4.1 , в котором реализовано несколько интересных вещей:
Поддержка Ruby on Rails 1.2.
Внесены функциональные и эргономические изменения в раздел администрирования блога (back office).
Добавлена поддержка интернационализации и локализации, используя localization плагин. Из поддерживаемых языков в данном релизе кроме английского языка доступен ещё французский.
Комментарии и trackbacks по умолчанию модерируемы.
Исправлено множество ошибок и проведено улучшение кода.
Поддержка RSS для тэгов и категорий.
Плагины используют механизм Rails plugin.
Typo 4.2 по прогнозам должно быть выпущено через два месяца, и судя по планам этот релиз будет выглядеть также впечатляюще:
Поддержка пользовательских ролей и процесса публикации статьи.
Возможность реализации на одной копии Typo множества блогов.
Переход с модуля Localization на Globalization для поддержки i18n и l10n.
Интеграция предложенных разработчиками патчей как плагинов.
Завершение улучшения административного раздела блога.
Прежде всего остановил демоны Lighttpd и httpd.
Затем сделал backup typo-директории и БД MySQL.
Попытался запустить update
$svn update
После небольшого раздумья svn выдает ошибку
svn: Working copy ‘log’ is missing or not locked
поиск в Google мало чем помог, – на все подобные вопросы в форумах либо нет ответа, либо примитивное “удалите директорию и попробуйте ещё раз”.
Ничего не остается делать, – скидываю log в другое место, пробую update, выдается то же самое, только уже svn не нравится директория ‘tmp/cache’. Перемещаю её вслед за log.
После этого svn update проходит без проблем. Возвращаю директории ‘tmp/cache’ и log обратно, дальше нужно обновить структуру БД:
После установки typo из trunk (rev.1055) к моему удивлению поддержка UNICODE работала нормально во всех проверенных мной режимах. Огорчило только то, что в “живом поиске” русские буквы трансформировались в последовательность типа %uxxxx (см. рисунок) и соответственно поиск на русском языке не работал.
После небольшого исследования оказалось, что “портит” кирилицу javascript функция escape(). Мной были рассмотрены разные варианты решения проблемы, в том числе использование класса UString из библиотеки .
Поиск по различным форумам/блогам дал свой рещзультат. Было найдено упоминание о похожей ситуации и рекомендовалось использовать encodeURIComponent() вместо escape(). И это действительно помогло.
Непосредственно лечить проблему надо так. В файле /app/views/shared/_search.rhtml строку
:with => "'q=' + escape($F('q'))" -%>
заменить на
:with => "'q=' + encodeURIComponent($F('q'))" -%>
до исправления
и после…
Также проверил на корректность работы Live Search с китайским языком, тест прошёл успешно:
mysql -p
create database typo_user_typo CHARACTER SET utf8;
grant all on typo_user_typo.* to 'typo_user'@'localhost' \
identified by 'typo_password';
flush privileges;
use typo_user_typo;
source /home/typo_user/websites/www.mysite.com/db/schema.mysql.sql;