Все новое — хорошо доделанное старое. Именно по этому пути шел я, обновляя, а точнее переписывая заново свой блог. То, что было в версии 2.0 практически устраивало меня по функционалу, но было совершенно ужасно по оформлению и внутренней части. Панель администрирования была недописана и не имела графического интерфейса, чтобы удалить комментарий приходилось заново набирать в адресной строке /admin/?p=comments&action=delete&id=31413, что жутко раздражало, а добавление новых записей в блог было вообще смешным. Теперь все не так, все стало удобнее, в том числе и возможности быстрого расширения.
Наконец-то нормальный фреймворк, наконец-то полное подчинение паттерну MVC, удобные шаблоны и минимум быдлокода. echo '
...' - ужас. Как я и говорил, все это реализовано на фреймворке Symfony (версии 1.2.7 — самой свежей на момент написания), в качестве ORM использован Propel, что дает нам легкую сменю СУБД, если вдруг Oracle решит убить MySQL. Хоть PostgreSQL, хоть кризисный SQLite в нашем распоряжении. В качестве JavaScript-фреймворка использован jQuery, что и следовало ожидать, зная меня, а блочная верстка полностью соответствует стандарту XHTML 1.0 Strict (кроме блога, в нем я не вижу смысла полностью соответствовать им). Далее, по принципу математической дедукции, пойдем от общего к частному и рассмотрим основные изменения по порядку.
Самые заметные и полезные изменения коснулись главной страницы. Во-первых появилась единая навигация на всем сайте — единая навигация теперь отображается на каждой странице, что меньше дезориентирует пользователя. Шапка тоже претерпела изменения. В нее вынесены контакты, что позволило полностью избавиться от левой колонки в старом дизайне, и превратить верстку в двухколоночную. В блоке последних трех постов больше не отображаются картинки, так как все равно их нельзя было разглядеть. В блоках «проекты», «наработки» и «галерея» все по-прежнему, отображаются три последние пункта с названием. В блоке «цитатник» немного изменилось отображение цитат. Теперь первая цитата грузится сразу, AJAX задействуется лишь при нажатии кнопки обновить. Это хорошо заметно пользователям с отключенным JavaScript или вообще без оного, например на 2G-телефонах.
Желанные изменения коснулись блока с твиттером. Теперь при запросе ленты, сначала проверяется не была ли она скачана менее часа назад. Если была, то нет смысла заново обращаться к тормозному сервису твиттера и парсить их RSS, когда можно распарсить ее прямо с сервера. Удобно, быстро и меньше нагрузка на канал. Давно так хотел сделать.
Так же появился блок отображения последних комментариев.
Так как страница блога является самой посещаемой из всех страниц сайта, нужно было сделать ее еще более удобной. Из функциональных преобразований можно отметить самые важные: Появилась кнопка «подгрузить комментарии», о которой просили в обсуждении. AJAX-добавление теперь не только добавляет ваш комментарий к существующим, оно полностью обновляет всю ленту. Вдруг кто-нибудь успел уже написать. Ну и самое ожидаемое — в комментариях появились некоторые HTML-теги. Думаю это все, чего нужно для комментария: автоматическое распознавание ссылок и пол дюжины простых тегов, с которыми можно ознакомиться нажав на иконку вопроса возле кнопки «отправить». Так же теперь есть генерация превьюшек для блога, так что больше не придется созерцать большеразмерные картинки, уменьшенные при помощи CSS-аттрибутов width и height.
Остальные изменения косметические. Например появление иконки «ФУ БЛЯ НАХ», позволяющей быстро скрыть не понравившийся вам пост. Никакой нагрузки она не несет, после обновления страницы все вернется на место. Так же немного изменен шаблон у комментариев.
Так как проектов становится все больше и больше, появилась необходимость удобной навигации по ним. Именно поэтому теперь созданы страницы, на которых отображаются списки проектов и наработок с кратким описанием. На главной странице работ теперь отображается 5 последних работ из каждой категории. Остальные преобразования вы можете посмотреть сами, комментирование все так же открыто.
На данный момент самое тонкое место, так как было написано очень быстро и практически не задумываясь. Хотя может оправдает себя. Появился крутой жаваскриптовый эффект выделения и скругленные углы (в браузерах, поддерживающих CSS 3). Все остальное осталось так же.
Главное нововведение в цитатнике — теперь можно просматривать цитату отдельно. Это удобно, так как можно будет кинуть другу в Jabber, не уточняя «вот там вот двадцать пятая снизу смешная». Ну и графически цитаты стали гораздо приятнее, так как я нагло стырил CSS-ку у башорговской бездны.
Я старался максимально облегчить переход на новую версию блога. Именно поэтому были полностью сохранены URL'ы, так что все внешние ссылки, сформированные ранее, будут действительны и сейчас. Даже старый адрес RSS-ленты /blog/rss.php все еще действителен, хотя папки /blog/, а тем более файла rss.php в ней нет и в помине, это простой алиас. Новый адрес кстати /blog/rss, кто хочет, может обновить в своих ридерах, но это не важно.
Некоторые изменения в сайдбаре: Кто-то просил в блоке последних комментариев сделать не Имя » Пост, а Пост » Имя, чтобы было выравнивание по названию поста. Что ж, получайте выравнивание по названию поста. В шапке блока «комментарии» появились волшебные стрелочки, очень гениально переключающие режим просмотра.
Убран блок «Холивар», так как всем итак понятно кто победил, а это все-таки еще один лишний запрос на страницу. Я старался держать планку максимум в 7-8 запросов на страницу и то ночью просыпался с мыслью, что это ужасно много.
Количество отображаемых последних записей в блоге и картинок в галерее расширено до 5, а последние наработки и проекты теперь выглядят лучше.
И да, наконец-то появился желанный поиск. Правда придется подождать, когда Google проиндексирует новую версию бложека.