В данной статье рассказывается о так называемых конструкторах контента (Content Construction Kit) и приводится обзор конструкторов контента для Joomla: Zoo, K2, FLEXIcontent, MightyResources, Cobalt 7 и Seblod.
Ликбез
В каждой CMS имеется несколько фиксированных форм контента, основной из которых является материал (статья). Эта форма обладает строгим набором полей и опций таких, как например, заголовок, описание, дата публикации, автор, состояние, и.т.д. Все это позволяет максимально удобно создавать статьи, но давайте на секунду задумаемся, а что если нам нужна немного другая форма контента?
Например, нам нужно, чтобы в статьях была также возможность указывать теги? Что делать? Идем искать расширение. А если нам нужна форма комментариев к статьям? Что делать? Идем искать расширение. А что, если нам нужны несколько форм обратной связи с различными полями для заполнения? Что делать? Идем искать расширение. Таким образом может накопиться масса расширений, после установки которых CMS зачастую превращается в глючного монстра, ведь всем этим нужно не только управлять, но и обновлять и следить за уязвимостями.
Типичный случай CMS Joomla, которую первоначально выбирают за простоту (легкое освоение админки) и функциональность (огромное количество расширений и шаблонов). Что же делать? Использовать конструкторы контента!
Content Construction Kit (CCK) — система создания контента или дословно: набор конструирования контента. Конструкторы контента представляют собой расширения CMS, которые позволяют очень гибко управлять материалами на сайте, создавать различные типы контента (такой контент, который нам нужен). После этого мы можем создавать сколько угодно экземпляров созданного типа контента, выражаясь терминологией ООП.
Почему разработчики выбирают CCK, ведь можно дописать требуемый функционал самому? Причины банальны: лень и, в некоторых случаях, боязнь hard-кодинга. Ведь гораздо проще получить результат в пару кликов, за что так любят Drupal с уже встроенным (начиная с 7-ой версии) модулем CCK.
Обзор конструкторов контента
Впервые термин CCK возник судя по всему применительно к CMS Drupal. Для Drupal 6 модуль CCK и модуль Views являются основными устанавливаемыми программистом модулями, сразу после установки самой CMS. В Drupal 7 CCK и Views являются частью ядра. Без них Drupal вряд ли был тем, за что его так холят и лелеют (любят и нахваливают).
Заметка: в Drupal 7 модуль CCK стал называться Fields.
В вечном споре Joomla против Drupal, приверженцы последней обычно приводят простой аргумент, цитирую: «А попробуйте сделать на Joomla сайт с различными типами контента! Не просто статейный сайт, а, например, каталог со множеством дополнительных полей. А слабо организовать поиск по такому каталогу, и не просто поиск, а поиск по любым полям, мультипоиск и т.д?».
Да, действительно, на базовой Joomla такого не сделаешь. На данный момент Joomla не доросла до собственного CCK, но существуют сторонние расширения. Рассмотрим самые известные из них.
Продукт | Описание |
YooZOOПоддерживает Joomla 1.5, 1.7, 2.5 http://www.yootheme.com/zoo |
Плюсы: Достаточно гибкий и мощный конструктор контента для Joomla. Удобен в использовании, т.к. имеет хороший визуальный интерфейс для управления полями (с ajax и drug and drop). Минусы: Нет интеграции с com_content. С фильтрацией контента дела обстоят тоже не очень хорошо. В бесплатной версии только 2 готовых приложения «blog» и «pages», другие приложения доступны за деньги, но самостоятельно реализовать их аналоги не составит труда. |
K2Поддерживает Joomla 1.5, 1.7, 2.5 http://getk2.org |
Плюсы: Также, очень популярная CCK-система. Для неё существует очень много модулей и плагинов, её поддерживает большое сообщество. Простая для понимая, но не такая гибкая как хотелось бы. Минусы: Работа с полями в конструктора, на мой взгляд, не удобна. Нет интерфейса для визуального редактирования шаблонов вывода контента. Компонент существует отдельно от стандартного джумловского com_content. С фильтрацией материалов у него всё плохо, в стандартном варианте её просто нет; есть платные модули, что устроит не многих. |
FLEXIcontentЕсть поддержка только версии Joomla 1.5 http://flexicontent.org |
Распространён довольно мало, поэтому думаю, что для новых версий Joomla он появится не скоро, если вообще появится. Интерфейс административной панели выполнен довольно симпатично. Есть фильтры, и тут они работают вполне приемлемо. На чистоту — компонент очень устарел и очевидно, что автор забросил его разработку. Но я все же включил его в обзор, лишь потому что он хранит данные в таблицах com_content, но вывод все равно осуществляет через свой компонент com_flexicontent, из-за чего многие плагины не всегда его понимают и косячат, тоже относится и к модулям. |
MightyResourcesПоддерживает только Joomla 1.5 http://www.mightyextensions.com/joomla-components/resources-cck-custom-content-types |
Плюсы: Более гибкий конструктор контента по сравнению с К2. Удобная работа с полями. Очень много параметров для настроек визуального вывода контента. Минусы: Если нужны дополнительные шаблоны оформления материалов, придется покупать платную лицензию, причем дизайн этих шаблонов оставляет желать лучшего. При работе с компонентом много багов и вытекающей из этого возни с настройками; много лишнего в стандартном выводе, который приходиться чистить. Фильтры работают по-дурацки. Опять же, нет интеграции со стандартным компонентом com_content. Замечание: Конструктор MightyResources устарел и был переписан с образованием нового продукта Cobalt 7 (см. далее). |
Cobalt 7Joomla 1.7 – 2.5 http://www.mintjoomla.com/joomla-components/cobalt.html |
Cobalt — это 7-е поколение конструкторов контента для Joomla, пришедший на замену JoomSuite Content, а затем Mighty Resources. Опробовать данный компонент на деле мне не довелось, поэтому приведу перевод рекламы с оффициального сайта. Cobalt использует самые передовые технологии:
Как видите — список впечатляет. Насчет интеграции с com_content ничего не сказано, нужно будет проверить (не может же быть что они проделали такую огромную работу, не исправив этот существенный недочет). |
SeblodJoomla 1.5, 1.7, 2.5 http://seblod.com |
Плюсы: Пожалуй самый мощный и самый гибкий компонент CCK для Joomla. Самый большой его плюс — это полная интеграция с системой Joomla, с категориями, материалами, пользователями, ролями пользователей, шаблонами. Гибкая настройка списков, таблиц, материалов. Можно вообще отказаться от использования сторонних модулей вывода и использовать только листинги Seblod. Легко переносить приложения созданные в Seblod между разными проектами. Отлично реализованы фильтры. Полностью бесплатный. Минусы: Сложен в изучении. Очень мало документации по нему, и распространён он значительно меньше чем K2 или ZOO в силу сложности. Заметка: Установить Seblod на Joomla можно за пару кликов. Удалить – гораздо сложнее. Слишком глубока его интеграция в Joomla. Поэтому, не устанавливаете Seblod на рабочие проекты просто, чтобы посмотреть его! Потом замучаетесь удалять. Тестируем компонент только на тестовом сервере! В прочем, это относится к любому вновь устанавливаемому компоненту. |
Итак, только часть из рассмотренных CCK-систем для Joomla интегрируется с com_content ядра, остальные используют свои таблицы для содержимого и по этой причине не совместимы с существующими плагинами и модулями Joomla. Среди тех компонентов CCK, что интегрируются с com_content, не все делают это на 100% успешно (я про FlexiContent).
Немаловажно также, что некоторые конструкторы имеют платные расширения, без которых решение некоторых задач может затрудниться.
Актуальными конструкторами контента для Joomla на сегодняшний день являются K2, Zoo, Cobalt 7 и Seblod.
Но настоящим конструктором контента из них является только Seblod — полнеценное расширение системы контента Joomla. Самый мощный из них, из-за чего сложен в освоении.
K2 и Zoo представляют из себя некое подобие конструкторов контента, потому что замкнуты на самих себе. Что это значит? Эти расширения при установке создают в базе данных собственные таблицы и только с ними и работают. Например, у К2 свои таблицы для статей, дополнительных полей и прочего. На них и замкнут весь компонент. При этом вся мощь расширений Joomla, созданных для работы с таблицами контента именно Joomla, а не K2, становится бессмысленной. Именно поэтому, используя K2 и аналоги мы получаем массу проблем с интеграцией других расширений. В Интернете форумы кишат вопросами вроде «Как интегрировать K2 с ххххx?». То же самое и с Zoo.
Что касается Cobalt 7, как я уже сказал: проверить функциональность, юзабилити и интеграцию с Joomla com_content я не успел. Но судя по всему это очень многообещающий конструктор контента.
Вечное противостояние или опять разжигаем Холивар
Вернемся к противостоянию Joomla vs Drupal. Если отбросить тему кеширования, темизации и пр., то становиться совершенно очевидно, что подобное сравнение совершенно бессмысленно. Потому как, стоит сравнивать например:
- Joomla и K2 с Drupal 6 и CCK,
- или Joomla + Seblod vs Drupal + CCK,
- в крайнем случае, Joomla без CCK и Drupal без CCK.
Как обстоят дела в других CMS?
Про Drupal уже сказали выше.
В ModX имеется встроенный аналог CCK, только под названием «переменные шаблона». Для большинства задач его достаточно.
В 1C-Битрикс также есть конструктор контента, даже в самой младшей редакции.
Как обстоит дело в других CMS я не интересовался.
Использованные материалы
- Выбор CCK для Joomla
http://nyphalim.ru/2012/02/04/1/ - Серия статей по Seblod CCK
на также сайте есть статьи по другим компонентам Joomla
http://wedal.ru/seblod.html - Обзор CCK компонентов для Joomla
http://www.amiseo.ru/joomla/extensions/obzor-cck-komponentov-dlya-joomla - Серия скринкастов по K2
http://ktonanovenkogo.ru/joomla/rasshireniy/komponent-k2-sozdaniya-blogov-katalogov-portalov-joomla-vozmozhnosti-ustanovka-rusifikaciya.html