PostNuke

Источник: http://www.3dnews.ru/

Алексей Кутовенко

Пакет PostNuke - это средство быстрого развертывания динамического сайта, позволяющее быстро и достаточно эффективно оперировать его содержанием и функциональными возможностями. Этот проект представляет собой глубокую модернизацию хорошо известной CMS phpNuke.

Краткая история появления PostNuke на свет такова. Существует весьма распространенная бесплатная система управления контентом web-сайта phpNuke. Написанная венесуэльским программистом Франсиско Бурси, она стала одной из первых свободных систем такого плана. PhpNuke оказался достаточно качественным продуктом для того, чтобы его начали успешно использовать другие разработчики. Через некоторое время процесс перешел в самоподдерживающуюся стадию, стали появляться все новые и новые дополнительные модули и прочие полезные вещи. В конце концов, phpNuke стал одной из наиболее известных на сегодня бесплатных CMS. Казалось бы, все хорошо, пользуйтесь на здоровье.

Однако не все так просто, как представляется на первый взгляд. Первый подводный камень - это условия распространения phpNuke, которые отличаются определенной оригинальностью по сравнению с аналогичными продуктами.

Формально, phpNuke, как и большинство бесплатных CMS, распространяется свободно, но это касается только публичных релизов. Все бета-версии и самые последние нововведения, реализованные в RC-версиях, лицензии GPL не соответствуют и доступны только членам клуба пользователей phpNuke.

Для того чтобы попасть в их ряды, придется каждый месяц расставаться с определенной суммой денег. Сам автор неоднократно давал понять, что phpNuke никогда не будет полностью открытым проектом, и он не будет поддерживать соответствующую политику разработки. Не исключено, что через некоторое время все новые версии этой CMS будут распространяться под отличной от GPL лицензией. С названными моментами еще можно как-то примириться: беты нужны далеко не всем, а если совсем невмоготу, то денег за членство в клубе хотят не таких уж и больших. Что касается релизов не под GPL, поживем - увидим, официально пока об этом речь не идет.

Второй риф гораздо серьезнее. Претензии к степени оптимизации самого кода phpNuke по мере накопления опыта эксплуатации проектов на его базе звучали все чаще и чаще. Следствия этого - замедление работы, проблемы для разработчиков дополнений и для тех, кто их использует. Это требовало исправлений кода, которые производились не так быстро, как этого хотелось бы многим пользователям. Это и подготовило в итоге почву для развития проектов, стремящихся устранить недостатки популярной системы. Кроме объективных причин были и субъективные, разработчики тоже люди, со своими эмоциями и амбициями. Конкретной реализацией одного такого начинания и является PostNuke.

Главным инициатором нового проекта стал Джон Кокс, который в свое время написал ряд руководств по установке и настройке phpNuke. Ключевыми отличиями PostNuke должны были стать открытость разработки, а также отделение ядра системы от модулей. Начиная с версии 0.71, в PostNuke реализована новая, доработанная система API. Эти меры позволяют сделать более прозрачным процесс разработки для PostNuke, а также несколько упростить работы по настройке пакета под индивидуальные нужды конкретного пользователя.

Разработчики, стремясь подчеркнуть расширяемость и определенный универсализм своего детища, величают PostNuke не просто CMS, а C3MS, то есть Community, Content, and Collaborative Management System. По сути, нам предлагают набор инструментов, своеобразный конструктор для постройки и поддержки собственного сайта. Благодаря своей модульной архитектуре PostNuke обладает хорошими задатками для расширения функциональных возможностей проектов, построенных на его основе.

Кроме качеств собственно системы, ценен факт наличия весьма активного сообщества пользователей данной CMS. У PostNuke достаточно большая команда официальных разработчиков и целая армия людей, принимающих участие в этом процессе, причем присоединится к данному сообществу может любой желающий. Это внушает определенный оптимизм относительно будущего данного проекта, что подтверждается регулярным появлением новых версий пакета.

Можно долго говорить о возможностях PostNuke и его отличиях от конкурентов. Если вас интересуют подробности, то лучше всего обратиться к первоисточникам - http://news.postnuke.com/, http://support.postnuke.com/, очень интересному форуму http://forums.postnuke.com/ и другим официальным сайтам. Полезную информацию также можно отыскать на http://www.postnuke.ru/, соответствующем тематическом форуме ru-board, а также на страницах других ресурсов. Мы же сейчас перейдем к практическим работам по знакомству с PostNuke.

Дистрибутив лучше всего брать из официальных источников - http://downloads.postnuke.com/. Только в этом случае нам гарантируется полное соответствие его замыслу создателей - оно и понятно, кому охота получать претензии за скачанные невесть откуда пакеты. Последняя на сегодняшний день стабильная версия - PostNuke 0.726 Phoenix.

Дословный русский перевод руководства по установке PostNuke можно отыскать здесь, поэтому остановимся только на некоторых важных моментах.

Установку системы можно произвести на разных языках, некоторые из них включены в изначальный комплект и могут быть выбраны на самой первой странице скрипта установки.

Русификацию PostNuke можно произвести перед его инсталляцией. Для этого необходимо предварительно скачать соответствующий языковой пакет и разархивировать его в тот же каталог, что и основные файлы PostNuke. Подборку таких пакетов можно отыскать на уже упоминавшемся www.postnuke.ru. В этом случае даже скрипт-инсталлятор порадует нас русским, правда, в достаточно скромном объеме. Впоследствии языки можно будет переключать с помощью панели Languages, при этом даже не потребуется ничего перезапускать, смена произойдет "на лету". Кстати говоря, параллельная работа с несколькими языками организована в PostNuke на весьма достойном уровне, так, например, можно настроить предоставление пользователям определенного контента в зависимости от избранного ими языка интерфейса.

Если вы решите отладить PostNuke на локальном компьютере, не забудьте отметить в ходе установки опцию INTRANET, в этом случае нас не затронут некоторые проблемы с адресами при обращении к страницам CMS. Все остальное пройдет практически на полном автопилоте - даже таблицы в базе данных создаются без нашего непосредственного вмешательства.

Дальнейшая настройка пакета производится с помощью "Меню администрирования" (Administration Menu), на котором находятся иконки доступных в данный момент системных и дополнительных модулей, щелкнув на которые можно перейти на страницы соответствующих настроек. Основные параметры CMS задаются на странице "Конфигурация" (Settings). Для многих модулей доступно краткое руководство по работе с ними, его можно увидеть, перейдя по ссылке "Онлайн руководство" (Online Manual). Попробуйте поработать с PostNuke самостоятельно, многое станет понятно без долгих объяснений.

Пришло время познакомиться с технологией управления модулями, ведь это один из ключевых моментов администрирования портальной CMS.

Добавление модулей к системе осуществляется достаточно несложным образом. Первым делом необходимо загрузить архив с понравившимся модулем. Затем копируем находящийся там каталог, имя которого совпадает с названием нового модуля в каталог modules нашего PostNuke, сохраняя при этом структуру вложенных папок. Регистрируемся на сайте в качестве администратора, переходим на администраторское меню, где выбираем раздел "Модули" (Modules). Нажимаем Regenerate, при этом PostNuke перечитывает файлы модулей и заново формирует их список, в который теперь войдет и новый модуль, только что добавленный нами. Если теперь посмотреть на крайний справа столбец таблицы модулей, можно заметить опции Initialize / Remove / Edit. Сейчас нам потребуется первая из них. После завершения инициализации нам станет доступна еще одна опция - Activate. Воспользуемся ей. По завершении этих операций у нас в "Меню администрирования" появится иконка инсталлированного модуля, с помощью которой можно перейти к его настройке сообразно прилагаемой документации.

Удаление ненужных модулей, как вы уже, наверное, догадались необходимо производить в обратном порядке. Как видите, с точки зрения пользователя данный процесс весьма напоминает аналогичный в phpNuke.

Таким образом, у нас есть возможность самостоятельно определять необходимые для нашего сайта модули, избавляясь от неиспользуемых и устанавливая необходимые нам, но не вошедшие в стандартный комплект.

Продолжая тему локализации, стоит добавить, что все файлы, связанные с языками определенного модуля, находятся в подкаталоге lang основного каталога модуля. Там находятся каталоги конкретных языков. Так что русифицировать необходимый модуль можно и самому, создав новый каталог rus, в который нужно скопировать файлы из имеющегося каталога eng. Затем, открывая их в каком-нибудь редакторе, необходимо перевести английские значения нужных констант на русский.

Поскольку только о покойниках принято говорить или хорошо или никак, а PostNuke к ним не относится, берем в руки ложку и пододвигаем поближе деготь.

Как уже ранее упоминалось, этот проект динамично развивается, но кроме совершенствования системы это способно принести еще и проблемы совместимости с уже написанными для него модулями. Установка "лучшее - враг хорошего" уже приводила к неоднократным переделкам самого ядра пакета. Задумки при этом реализуются интересные и полезные, но та доля неопределенности, столь характерная для любых подобных изменений, в этом случае может приобретать не самые удобные формы: так при выборе дополнительных модулей следует обязательно обращать внимание на замечания о совместимости с различными версиями PostNuke. Правда, разработчики обещали больше не вносить в API принципиальных изменений, по крайней мере, до релиза с заветным номером 1.0.

Несмотря на вполне рабочее состояние проекта, он все еще находится в состоянии предварительной версии. Более того, Джон Кокс, тот самый затейник всего этого проекта, вместе с "группой товарищей" начал разработку еще одной системы аналогичного назначения под названием Xaraya, что способствует дополнительной путанице.

Будем надеяться, что эти проблемы, в конце концов, не помешают дальнейшему развитию проекта. Лично я с большим интересом ожидаю PostNuke 1.0. Эта система даже в том состоянии тестовой версии, в котором она еще пребывает, вполне заслуживает внимания и может быть использована при построении сайта. Особенный интерес она представляет для людей, неравнодушных к программированию и желающих принять непосредственное участие в дальнейшей разработке пакета.

Закончить рассказ о PostNuke хотелось бы следующим рассуждением.

Идеальной системы, одинаково подходящей всем и каждому, которая, как жена Цезаря, была бы вне всякой критики и подозрений, сегодня нет, и она никогда не будет создана. Это касается и бесплатных CMS и дорогостоящих коммерческих продуктов. Применительно к теме портальных бесплатных CMS это означает, что выделить среди них безоговорочного лидера, который по всем параметрам опережает конкурентов, сегодня не представляется возможным. Каждая система хороша ровно настолько, насколько она удовлетворяет вашим конкретным персональным запросам, а лучший способ оценки пакетов по такому параметру - тестовая эксплуатация, благо такая возможность доступна.

Примечателен тот факт, что еще несколько лет тому назад многие web-мастера могли только мечтать о подобных решениях. Сейчас эта проблема уже не находится в плоскости "или такая система - или никакой". Если у нас нет желания или возможности написать собственную CMS, мы можем выбрать готовое решение по своему вкусу из ряда вполне достойных предложений. И это замечательно.