TYPOlight — серьезный игрок
обзор TYPOlight
Когда только начинаешься знакомиться с системой управления контентом TYPOlight, в голову сразу приходит другой open-source-продукт, TYPO3. Дело в названии: если судить только по нему, то можно предположить, что перед нами некая облегченная версия TYPO3, но на самом деле это не так. Определенное сходство между двумя проектами прослеживается (чувствуется, что создатели TYPOlight черпали вдохновение в том числе и в TYPO3), но не более того. Плюс никаких официальных отсылок к TYPO3 разработчики TYPOlight не делают, упоминая лишь, что третья версия их продукта, которая создается с чистого листа, по своему функционалу довольно близка TYPO3.
Пользователям же пока доступна вторая версия, которой также есть что предложить. В первую очередь — это стабильность системы и множество современных функций, которые необходимы для создания полноценных веб-сайтов и их администрирования. Правда, сразу отметим, что TYPOlight — это продукт для специалистов, и человеку, не обладающему техническими знаниями, будет сложно с ним работать.
Функционал
Многие бесплатные системы управления контентом (подчеркнем, не все, но действительно многие) сегодня, к сожалению, являются проектами незаконченными. С одной стороны, это хорошо, так как идет постоянное обновление функционала, улучшение возможностей и повышение стабильности; и вообще, одна из ключевых особенностей open source — это развитие. Но с другой — подобные продукты невозможно использовать в рамках серьезных проектов as is: их либо приходится дорабатывать, либо, что происходит чаще, мы попросту находим другой продукт.
С TYPOlight история совершенно иная: он сходу, без каких-либо усовершенствований может подойти огромному количеству проектов, которые не требуют от системы управления контентом каких-то уникальных функций. Если же требуют, то специалисты всегда могут изменить движок под собственные нужды, добавив что-то или скорректировав, благо что код оформлен очень прозрачно.
Что же касается ключевых особенностей TYPOlight, то они выглядят весьма неплохо:
- «живое» обновление (об этом мы расскажем подробнее чуть ниже);
- использование Ajax;
- комфортный пользовательский интерфейс;
- соответствие стандарту XHTML;
- сохранение различных версий контента (versioning) и функция undo;
- разделение среды администрирования веб-сайта и работы с контентом;
- страницы, выдаваемые конечному пользователю движком, генерируются полностью на базе шаблонов;
- автоматическое «шифрование» адресов электронной почты (защита от спама);
- мощная система управления полномочиями пользователей;
- движок генерирует URL, которые хорошо распознаются поисковыми системами;
- встроенный поиск;
- возможность создавать несколько веб-сайтов в рамках одной системы;
- поддержка GZip-сжатия;
- встроенная возможность распечатки страниц сайта в формате PDF.
Несколько слов о первом пункте только что перечисленных особенностей TYPOlight. Как отмечают сами разработчики проекта, многие современные системы управления контентом имеют один весомый недостаток: их довольно сложно обновлять. В TYPOlight этот процесс максимально оптимизирован и упрощен: чтобы обновить продукт, достаточно сделать несколько кликов мыши, а необходимость скачивать откуда-то архив с патчем и заливать его по FTP попросту отсутствует.
Редактирование контента |
Еще один важный момент — поддержка описываемой системой многих языков как для администрирования, так и для конечного контента. Поддерживаемых языков много (больше 15), и среди них есть русский, что, возможно, не так и важно для самих администраторов, которые, как правило, всю свою работу сталкиваются с английским, но, к примеру, для авторов проекта, занимающихся контентом, это будет дополнительным удобством.
Очень внимательно создатели TYPOlight подошли к рендерингу страниц в различных веб-браузерах. Для своего проекта был создан кросс-браузерный движок для работы с CSS-стилями. Несколько его характеристик:
- совместимость с Internet Explorer 7;
- создание колонок автоматически;
- возможен импорт готовых CSS-файлов;
- поддержка static- и liquid-разметки;
- движок создавался с учетом различных особенностей IE (читай — багов).
Далее, функционально TYPOlight состоит из нескольких частей, каждая из которых предоставляет пользователям свой функционал. Первая — это редактирование контента. Весь контент даже в рамках одной страницы можно делить на блоки и работать с каждым отдельно, при этом блоки могут быть разного типа. Для непосредственно редактирования текста в TYPOlight встроен известный редактор TinyMCE, работать с которым очень просто.
Другие составляющие описываемой системы управления контентом отвечают за следующие функции (с описанием особенностей):
- комментарии к статьям — встроенная защита от спама, требует регистрации для комментирования, поддерживает RSS/Atom;
- почтовые рассылки — письма в формате HTMl и plaint text, архив рассылки, CSV-импорт базы получателей;
- календарь — возможность выбора между полноценным календарем и мини-календарем, разные варианты просмотра (день, неделя, месяц), поддержка RSS/Atom, возможность создавать несколько календарей в рамках одного веб-сайта;
- файловый менеджер — возможность загрузки нескольких файлов одновременно, функция предпросмотра файлов и изображений, редактирование файлов, любые операции с уже загруженными файлами;
- генератор форм — автоматическое утверждение ввода, возможность либо хранить полученные данные на сервере, либо отправлять их по электронной почте, возможность включать определенный front-end-функционал веб-сайта с помощью формы;
- поисковый движок — автоматическое индексирование страниц веб-сайта, возможность корректировать поисковый индекс вручную, поддержка простой поисковой логики (AND/OR), кеширование поисковых результатов.
Плюсом ко всему перечисленному мы добавим стабильность TYPOlight. На базе этой системы управления контентом работает внушительное число относительно популярных веб-сайтов, по большей части иностранных. Кроме того, о TYPOlight охотно пишут обзоры в специализированной прессе, что также является положительным моментом.
Практика
Во второй части нашего материала речь пойдет о практических аспектах работы с TYPOlight. Очень важно для успешной работы с этой системой понимать, что любые генерируемые страницы строятся из определенных блоков/модулей на базе шаблонов. Иными словами, у нас есть некий общий шаблон для всех страниц веб-сайта, он, в свою очередь, состоит из модулей, плюс, работая уже с контентом, мы также можем добавлять туда разные модули. Сами же модули представляют собой определенный PHP-код, в котором содержится непосредственно логика того, как должен работать модуль.
Работа с пользователями |
Вот так выглядит «отрендеренный» модуль меню для навигации по веб-сайту, при рендеринге которого движок берет всю структуру веб-сайта.
<div class="**mod_navigation**">
<a href="home.html#skipNavigation" class="invisible" title="Skip navigation"></a>
<ul class="level_1">
<li><p class="active">Home</p></li>
<li class="parent"><a href="academy.html">The academy</a></li>
<li class="submenu">
<ul class="level_2">
<li><a href="events.html">News & Events</a></li>
<li><a href="impressions.html">Campus Impressions</a></li>
</ul>
</li>
<li class="parent"><a href="courses.html">Courses 2006</a></li>
<li class="submenu">
<ul class="level_2">
<li><a href="violin.html">Violin Master Class</a></li>
<li><a href="jazzpiano.html">Elements of Jazz Piano</a></li>
</ul>
</li>
</ul>
<a id="skipNavigation" class="invisible" title="Skip navigation"></a>
<div class="clear"></div>
</div>
Если изменить логику модуля, то он сможет рендерить в меню, к примеру, страницы только первого уровня и так далее.
Теперь об одном из самых важных аспектов — о создании собственных шаблонов для страниц. TYPOlight имеет определенный набор команд, с помощью которых движок понимает, какой контент куда ставить во время рендеринга.
Простой пример. Исходный HTML-код.
<div class="header">
<h1><a href="#">Blue Freedom</a></h1>
<h2>Free xhtml/css Template</h2>
</div>
<div class="title">Наш заголовок</div>
Первый div — это заголовок, не относящийся к нашему контенту и единый для всех шаблонов, а второй div — это заголовок непосредственно той страницы, которую хочет открыть посетитель веб-сайта. Чтобы движок стал рендерить на этом месте соответствующий контент, нам необходимо слегка подправить шаблон.
<div class="header">
<h1><a href="#">Blue Freedom</a></h1>
<h2>Free xhtml/css Template</h2>
</div>
<?php echo $this->header; ?>
Примерно в таком же ключе реализуется вся логика шаблонов в TYPOlight. Иными словами, с использованием языка PHP мы можем заложить в шаблоны вообще любую логику, если того потребует наш проект.
Файловый менеджер |
Например, нам необходимо каким-то образом обрабатывать данные, которые отправляют наши посетители через форму. Мы создаем файл processform.php с необходимым кодом. Вот простейший пример того, как мы можем обработать данные.
<?php
// process each form variable
foreach ($_SESSION['FORM_DATA'] as $key=>$value)
{
printf('Form Field: %s = [%s] <br />', $key, htmlentities($value));
}
?>
Отметим, что TYPOlight удаляет переменные $_POST и единственный способ получить данные из формы — через $_SESSION['FORM_DATA'].
В заключение же материала нам остается добавить, что TYPOlight — определенно серьезный конкурент многим известным системам управления контентом, распространяемым как open source. Разумеется, он придется по душе далеко не всей аудитории подобных продуктов, так как для его полноценного использования требуется обладать достаточным объемом технических знаний, но, с другой стороны, для комплексных проектов, над которыми работают профессионалы, он подойдет очень хорошо.