Итак, передо мной русская версия нашумевшей на Западе книги Бэрри Норта, получившей репутацию как одно из лучших пособий по Joomla для начинающих. В этом мы попробуем убедиться. Книга начинается с ознакомительного курса, с чего, собственно говоря, всё начиналось. Здесь я не буду останавливаться, т.к. история развития веб-технологий и возникновения Joomla давно известна. Следовало бы упомянуть подробнее о лицензии Joomla и о позиции команды разработчиков CMS по отношению к сторонним разработчикам, обязуя их выпускать все продукты по лицензии GNU/GPL, что вызвало немало споров и дискуссий, некоторые даже подписывали коллективную петицию.
История развития Joomla описана с учетом устаревшей информации, в частности, неуместно сравнение Joomla с Mambо, поскольку версия 1.5 является совершенно иным витком развития и отдельной CMS.
«Современная Mambо – это то же название, та же программная основа, но другая команда разработчиков. Современная Joomla – другое название, та же программная основа и та же команда».
С момента размежевания Mambo и Joomla 1.0 код и архитектура были действительно очень похожими, однако совершенно не учтены реалии Joomla 1.5 и это скорее, недостаток официального сайта, со странички которого Бэрри и процитировал в книге. Примечание: справедливости ради стоит отметить, что книга писалась, когда Joomla 1.5 была еще в состоянии Release Candidate (т.е. до официального выхода).
Ставя акцент на количестве вышедших под Joomla расширений и динамике развития сообщества, автор ни слова не упоминает о качестве кода многих продуктов. А ведь это очень важно, поскольку для пущей объективности стоит отметить странную политику JED, допускающую к публикации явный мусор, что, в конечном счёте, затрудняет поиск хорошего аналога в каталоге и засоряет код сайта различного рода поделками. В то же время следует отметить большое кол-во расширений, ведущих своё начало со времён Mambo, хоть и совместимых с Joomla 1.5, но морально устаревших несколько лет назад и имеющих громоздкий код. Я бы даже сказал, 3000 расширений – это не плюс Joomla, это её Ахиллесова пята.
Безусловно, начинающему пользователю все эти минусы не видны и их сложно объяснить, но когда человек имеет дело с данной системой не один год и занимается профессиональной разработкой, вопрос в свете профессиональной деятельности становится весьма актуальным, т.к. здесь учитывается качество коммерческого сайта, который получает клиент из рук разработчика. Если на таком сайте активно используются расширения сомнительного качества или явно устаревшие, то такой сайт начинает работать медленно (большое кол-во запросов к базе данных, неоптимизированный код), «вешать» хостинг, а то и вовсе быть легкой добычей для хакеров, если в одном из таких расширений будет дыра в безопасности. Всё это рождает миф о ненадёжности, о непригодности Joomla для серьёзных разработок, который идёт рука об руку с популярностью Joomla и, должен заметить, отчасти в этом виноваты редакторы JED, потворствуя распространению некачественных продуктов на официальном каталоге расширений. Полагаю, что этому вопросу нужно посвятить отдельный раздел в главе «Расширения», равно как и привести ряд рекомендаций, позволяющих пользователю осуществлять минимальную оценку качества.
Кроме явных достоинств Joomla объективности ради следует упомянуть известные недостатки, в связи с чем конкурирующие CMS Drupal и Wordpress имеют определенное преимущество. В базовой комплектации Joomla отсутствует гибкая система прав (ACL), также нет вложенности категорий и мультикатегорийности (назначение материала в несколько категорий), что является серьёзным ограничением. Было бы весьма полезным привести методы решения этих проблем через сторонние расширения, посвятив этому специальную главу.
В главе 2 «Загрузка и установка Joomla» подробно рассказывается о том, как ориентироваться на официальном сайте joomla.org и его тематических поддоменах, подробно описано как скачать Joomla и установить локально на примере пакета WAMP. Системные требования к CMS указаны ошибочно: автор говорит о минимальных требованиях PHP 4.3.x, MySQL 3.23.x, в то время как на самом деле минимальная конфигурация должна быть не ниже PHP 5.x, MySQL 5.x. Далее достаточно объёмно изложен процесс установки Joomla что будет полезным для новичков, впервые имеющих дело с системой. В то же время в главе рассматривается пример локальной установки и ссылка на список хостинг-компаний, но ни слова не упоминается о проблемах, возникающих при установке на хостинге и рекомендациях по правке конфигурационного файла, работе с панелью и правами у файлов и папок. А это может обнажить множество вопросов уже на этапе установки пользователем Joomla сразу на сервере. В качестве выхода можно было бы сделать примечание и отправлять пользователя в соответствующую главу или приложение книги, где этот вопрос будет освещён более предметно.
Глава 3 «Основы Администрирования Joomla» повествует о базовых функциях администрирования, которые понадобятся для понимания основ управления сайтом на базе Joomla. Подробно рассказано о главной странице панели администрирования, структуре меню, правах и категориях пользователей. Переводчик привёл в качестве сноски ссылку на скачивание русской документации с нашего портала что, конечно же, приятно, однако документация старая, трёхгодичной давности для Joomla 1.0; для версии 1.5 мануал по-прежнему не написан.
Останавливаться подробно на данной главе не буду, отмечу лишь что в ней Бэрри достаточно ёмко изложил основные моменты, связанные с управлением и администрированием Joomla (в отличие от аналогичной книги Хагена Графа, где немецкий коллега выделил ряд глав на описание каждого пункта админ.панели, что в конце концов, утомляет читателя).
В четвёртой и пятой главах Бэрри Норт рассказывает об организации информационного наполнения, т.е. о том, как создать структуру сайта, его каркас на примере простейшего сайта. Упоминается двухуровневая система контента, примеры создания пунктов меню (материал, блог категории/раздела, список категории/раздела и т.д.) После ознакомления с этими двумя главами пользователь сможет самостоятельно создавать простейшие сайты на CMS Joomla, организуя структуру.
6-я глава «Расширения» содержит информацию типах расширений Joomla: компоненты, модули, плагины, шаблоны и пакеты локализаций, подробно описан кажды тип, а также процесс установки расширений. Далее приводится краткое описание встроенных компонентов Joomla: баннеры (Banners), контакты (Contacts), ленты новостей (Newsfeeds), опросы (Polls), поиск (Search), каталог ссылок (Weblinks) и почтовые рассылки (Massmail).
А вот далее автор приводит в качестве рекомендации продукты сторонних разработчиков, позволяющие расширить стандартный функционал, забыв при этом указать их лицензию. В частности, вместе с расшириями joomlaXplorer (менеджер файлов на уровне амин.панели), Community Builder (расширение пользовательского профиля, личный кабинет), VirtueMart (интернет магазин), Joomap (карта сайта), Remository (организация файлового архива), распространяемыми по лицензии GNU/GPL, мы видим JomComment (система комментариев от Azrul), SlideShowPro (слайд-шоу и галерея), JCalPro (календарь событий) и MosetsTree (каталог товаров), которые распространяются на платной основе. Ничего не говорится об их цене и не приведены ссылки на сайты разработчиков, что является упущением.
По поводу самих расширений: безусловно, следует учитывать время написания книги – на тот момент Joomla 1.5 была на стадии бета-тестирования и широкий выбор расширений стал доступен спустя многие месяцы, поэтому следует отметить информацию, утратившую актуальность, с высоты сегодняшних дней, но и ставить это в вину автору книги с учётом описанной ситуации тоже не следует. Система развивается быстрее, чем книга успевает морально устареть, поэтому любая компьютерная литература хороша для познания фундаментальных основ, в то же время как все новые тенденции следует отслеживать самостоятельно, обращаясь к официальным источникам в Интернет.
Далее в главе описаны стандартные модули Joomla, а также приведены некоторые сторонние (опять же, без указания лицензии): JPG Flash rotator (анимация), Jumi (вставка php кода в материал), Adsense Module (Google Adsense реклама), то же самое и по расширениям – описание стандартных расширений, а также в качестве бонуса приведены два сторонних – редактор Wysiwyg pro и плагин для организации Google карт Googlemaps Plugin.
Несколько слов уделено трём, идущим в комплектации шаблонам, а также рекомендация по поиску и выбору шаблонов в Интеренет. Бэрри также вводит в курс относительно существования бесплатных и платных шаблонов. Кстати, в главе ни слова не сказано о пакетах локализаций, хотя во вступлении к главе локализации упоминались. Минус автору.
В следующей главе Бэрри подробно рассказывает о редактировании материала посредством WYSIWYG редактора TinyMCE (подробно расписана панель инструментов редактора), создании описания категориям, разделам и описывает атрибуты контента. На мой взгляд, излишне было посвящать этому отдельную главу, поскольку подобную информацию можно было изложить в 4 и 5-х главах.
Глава 8 «Привлечение посетителей» посвящена оптимизации контента и содержит слишком много теории и нужной информации, которую нетерпеливому веб-мастеру, желающему поскорее запустить сайт, будет просто скучно читать. Бэрри идёт вразрез с политикой книги об изучении азов Joomla без узкоспециализированных уклонов как то создание компонентов, CSS+XHMTL и пр. Информация, щедро приведённая Нортом в этой главе, также может относиться к узконаправленной и её в познавательных рамках можно было бы ужать минимум вдвое, не утомляя читателя SEO премудростями. В то же время не приводится конкретных рецептов, улучшающих SEO сайта (хаки), а упомянутые сторонние расширения вообще не описаны кроме краткой аннотации (Joomlap, OpenSEF и др.) хотя с практической точки зрения это было бы полезным. Также автор не упоминает, с какой целью следует использовать компоненты для формирования ЧПУ и насколько они снижают производительность, если встроенный механизм Joomla 1.5 успешно с этим справляется. Если речь зашла об оптимизации сайта под поисковое продвижение, не лишним было бы рассказать о перелинковке статей, закрытии внешних ссылок, методах повышения индекса цитируемости (PR) как то: регистрация в социальных закладках и белых каталогах, подача заявки на размещение сайта в авторитетном каталоге DMOZ, оптимизации самого сайта с целью ускорения загрузки страницы (этому вопросу можно посвятить, минимум, главу) и др.вопросах, известных в кругах SEO мастеров. Вместо этого он долго грузит общей теорией и не описывает трюки и хаки.
Непонятно какое отношение к данной главе имеет электронная почта – рассылка новостей по зарегистрированным пользователям сайта и использование сторонних почтовых сервисов. Уместнее было бы упомянуть о методах получения статистики посещаемости (для анализа популярности.) Эта глава, пожалуй, самая нудная и неудачная.
Далее Бэрри знакомит читателя с принципами создания шаблона (глава 9). Приятно отметить, что автор делает акцент на соблюдении стандартов W3C, а также вскользь затрагивает вопросы SEO и юзабилити, хотя, безусловно, для широкого освещения данных вопросов нужно изучать специальную литературу. Тем не менее, читатель уже изначально готовится к правильному ведению работы и отказу от табличного метода вёрстки, что не может не радовать, ведь на дворе 21-й век и табличная вёрстка в её чистом виде канула в бытие.
Не хотелось бы показаться привередливым, но в аннотации книги рассказывается о том, что книга легко повествует о создании сайта без каких либо знаний CSS+XHTML, в то же время в этой главе приводится пошаговый пример создания бестабличного шаблона, понимание принципов которого немыслимо без базового знания CSS+XHTML. Таким образом, я вижу несоответствие аннотации – следует либо исключить рекламный характер, призывающий, утрированно говоря, любую домохозяйку сделать сайт на Joomla за 7 дней, либо убрать эту главу вовсе. С другой стороны, приятно, что данная глава всё же есть (разбитой на несколько частей под названием CSSTemplateTutorial – случайно не док с официального сайта?), ведь после изучения админ.панели и принципов управления контентом, начинающему веб-мастеру обязательно захочется заняться внешним видом сайта. На мой взгляд, уместнее всего был бы разбор на примере одного из трёх стандартных шаблонов (например, бестабличный и семантичный шаблон Beez). Бэрри Норт также снабдил главу ссылками на полезные ресурсы, позволяющие узнать больше о технических аспектах CSS, HTML, а также о рассказал о шаблонизации Joomla, что является полезной информацией.
Последующие главы 10, 11 и 12 являются подробными, иллюстрированными и снабженные советами примерами, как на базе CMS Joomla и её сторонних расширений построить сайт школьной тематики, сайт ресторана и интерактивный блог.
На примере JCal Pro, Remository и некоторых других расширений, Норт наглядно рассказывает о том, как можно сделать несложный сайт школьной тематики, который будет иметь базовый для данной тематики функционал.
В главе о разработке блога, Бэрри приводит хорошие аргументы в пользу Joomla, делающие эту платформу более привлекательной для разработки, нежели специально заточенные под блоги движки, но в то же время не приводит рецептов, позволяющих реализовать полноценный блог, не уступающий функционалу того же Wordpress. В частности, я имею ввиду больное место – двухуровневую вложенность содержимого (а если мне нужно добавить для категории A дополнительные подкатегории?), далее не мешало бы привести в пример модуль-календарь статей. Хотя вероятно, на момент написания книги, такого расширения не под 1.5 еще не было написано.
Бэрри приводит в пример два платных решения, расширяющих возможности стандартного функционала: Phil Tayor tags (организация тегов на сайте) и MyBlog (блог) от компании Azrul. Далее идёт краткий обзор коммерческих расширений по организации системы комментариев (J! Reactions, JomComment, ComboMAX), описание настройки лент новостей (Syndicate, FeedBurner). Автор аргументировано приводит доводы о ненужности использования иконок социальных закладок на сайте. Завершают главу 12 рекомендации по расширению функционала блога путём добавления фунционала форума (автором предлагается ужасно громоздкий Fireboard), а также реализация электронной коммерции, что является идеологически отдельным проектом и плохо сочетается с блогом. В качестве решения предлагается неизвестное мне расширение MosIPN от Phil Taylor, а также DigiStore от iJoomla, хотя обойдён стороной популярный и простой в освоении магазин VirtueMart. Все это можно было бы описать отдельной главной (например, глава 13 «Электронная коммерция средствами Joomla»).
Приложения
Приложение А содержит список ресурсов, на которых можно получить квалифицированную помощь по Joomla, а также рекомендации по поиску информации.
Приложение B является самым неоднозначным в книге, поскольку его содержание – это реклама 6-ти ресурсов и интервью с его создателями. С практической точки зрения, посмотреть на примеры успешно работающих сайтов под управлением Joomla и узнать какие там использованы расширения интересно, но подача материала в форме интервью делает главу рекламной компанией этим ресурсам. Кому будет интересно читать интервью с неизвестными людьми? Это же не ежемесячный журнал. Логическим ходом был бы обзор интересных сайтов, построенных на Joomla и описание, какими средствами (расширениями) сайты сделаны.
Приложение С: быстрое введение в поисковую оптимизацию содержит видимо то, что Бэрри не успел упомянуть в своей объёмной главе 8 «Привлечение посетителей», посвящённой вопросам SEO оптимизации сайта.
Приложение D описывает процесс установки пакета WAMP5 (PHP5, Apache, MySQL), позволяющего создавать и отлаживать сайты на локальном компьютере.
Общий вывод
Книга, не смотря на помпу на Западе, не является панацеей и, хотя не делает из домохозяйки бога веб-дизайна за 7 дней, тем не менее, наглядно знакомит с принципами работы CMS Joomla. Из минусов я выделил бы нерациональный подход к подаче информации (глава 8, приложение C), а также излишнюю рекламу ресурсов и продуктов автора, а также его коллег, хотя правильнее было бы в учебных целях использовать бесплатные расширения для разбора практических примеров. Вкусным моментом книги являются главы, в которых последовательно описываются примеры создания сайта учебного заведения, сайта ресторана и блога. Эта информация будет полезной для тех пользователей, которые ставят своей целью быструю разработку сайта, не вникая в технические подробности. Пользователям, ищущим нестандартные решения и желающим узнать о тонкостях CMS Joomla больше, эта книга будет недостаточной.