CCK для Joomla - проблема выбора

  • 09.08.2015
CCK для Joomla

Эту статью я хочу посвятить особому классу расширений CCK (Content Construction Kit) - по простому это конструктор контента. Расширение, которое позволяет кроме написания статьи сконструировать: формы, виды, фильтры, а уже в это все богатство вписать контент. На сегодня это огромный класс расширения для Joomla, который изрядно расширяет применение системы в различных сайтах.

В этом обзоре я расскажу, об истории возникновения CCK, какие конструкторы бывают и попытаюсь описать слабые и сильные стороны этих решений.

История CCK в Joomla

На заре CMS конструкторов контента не было, в Joomla 1.0 были специализированные каталоги, которые во многом решали задачи того времени. Эта политика сформировала образ CMS, как системы, которая требует программиста для создания сложных форм или не стандартного функционального решения.

С выходом Joomla 1.5 ситуация начала меняться, появились инструменты и API позволяющие реализовать достаточно гибкие решения, что позволило начать работать над CCK, которые определили основной вектор развития. Именно тогда были заложены такие компоненты, как ZOO и K2 и именно из-за ограничений Joomla 1.5 возникли те проблемы, которые есть сейчас.

Выход первых CCK от части решил те проблемы, которые были, но эти решения не позволяли догнать лидера того времени в области конструирования контента (Drupal), так, как требовали, либо огромного количества плагинов, либо знания программирования. В переходных период между Joomla 1.5 и 2.5 выходят расширения, которые не являются ССК, а претендуют на звание WAB (Web Application Builder) - конструкторы веб-приложений. WAB позволяют не просто конструировать формы, а по аналогии с Drupal создавать почти, любое приложение со сложными зависимостями, используя админ панель. Яркими представителями этого класса являются Seblod и Fabrik.

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

Обзор конструкторов контента для Joomla

В статье я приведу не все конструкторы контента, которые есть для Joomla, так, как их огромное количество, только в официальном каталоге расширения Joomla их больше 3-х десятков.

ZOO

Один из первых представителей ССК, и наверное один из самых необычных. Он разрушает весь пользовательский опыт пользователя системы, при этом творение клуба Yootheme является одним из популярных CCK. ZOO вводит новое понятие расширения - "Элементы", которые выполняют функцию полей для его приложений. Имеет платную и бесплатную версии. В России получило популярность "Приложение" JBZOO - некоторые считают его отдельным компонентом из-за достаточно широкой функциональности, однако это лишь "Приложение" расширяющее возможности CCK ZOO.

Информация по Zoo на русском языке:

K2

Это еще один представитель CCK первой волны, сыскавший самую большую популярность. Секрет популярности K2 был прост, он понятен для пользователя, уже работавшего с системой. В Joomla 1.5 он добавлял все то, чего не хватало владельцу сайта: профиль пользователя, разграничение прав, комментарии и дополнительные поля. Поставил один раз и забыл. С развитием CMS, это стало его проклятием, так как система прав развивалась, и работа с профилем стала куда проще и интересней, а разработчики всё продолжают тянуть эти анахронизмы из-за обратной совместимости. K2 полностью бесплатен имеет массу своих дополнений и расширений.

Информация по k2 на русском языке:

FlexiContent

FlexiContent один из последних представителей ССК первой волны и при этом он отличается от своих собратьев очень сильно. Во-первых, по сути это надстройка над стандартными материалами, перехватывая управление у com_content он функционально дополняет его, при этом используется свой интерфейс. Для человека, который впервые поставил FlexiContent будет неожиданностью, то что настроек в этом компоненте великое множество, любой чих настраивается через админ панель, при этом относительно кривой внешний вид и весьма запутанная настройка, отпугивает от него новичков. При всех своих недостатках - FlexiContent занимает первую строчку в JED.

Информация по FlexiContent на русском языке:

Cobalt

Позиционируется, как очень быстрый ССК с возможностью привязки полей не к категории, а непосредственно к материалу. Полностью автономен, но при этом заявлена поддержка плагинов и расширений для материалов Joomla. Cobalt представитель новой волны ССК, но корни его уходят во времена перехода с Joomla 1.0 к компоненту Joomsuite content. В 2008 году еще не существовало понятия ССК и тогда он позиционировался, как альтернатива материалам Joomla, кстати он был платным, сейчас Cobalt 8 распространяется бесплатно.

Информация по Cobalt на русском языке:

Seblod

Относится уже к классу WAB - позиционируется, как убийца Drupal. По отзывам людей побывавших по обе стороны баррикады, он сейчас более функциональное решение нежели Drupal. От всех других конструкторов его так же отличает очень высокий порог входа, надо не просто понимать CMS, а понимать на высоком уровне систему логики приложений, которые вы хотите создать, а так же понимание самого Seblod.

Информация по Seblod на русском языке:

Fabrik

Старейший WAB, который появился еще во время Joomla 1.5, популярен в определенных кругах, но широкой популярности не получил, по нескольким причинам: требуется высокий уровень знаний вебмастера, достаточно много глюков и проблем, изначально не верное позиционирование. В России почти не используется, однако его применяли для таких известных проектов, как каталог расширений Joomla (JED)

MiniCCK

Этот решение стоит особняком от всех других представленных в обзоре, так как по сути это плагин для материалов Joomla. У него фактически нет своей админ панели, все настраивается в плагине, но за то со своими функциями вывода дополнительных полей он справляется отлично. Поля выводятся, как в редакторе материала, так и на фронте сайта. Одна из важных возможностей MiniCCK вывод полей в шаблоне материала через вставку специальных сниппетов, что позволяет создавать на выходе очень гибкие системы полей.

Информация по MiniCCK на русском языке:

В заключение хочется отметить, что в области ССК Joomla шагнула далеко, я бы сказал, что нынешнее поколение конструкторов на много превосходят саму CMS в развитии, однако я наверное удивлю Вас, если скажу, что потребности в подобных решениях большая часть пользователей не испытывает, так как ей хватает возможностей обычных материалов. Однако если вы решили, что для вашего проекта нужен ССК, то начните подбирать компонент определив для себя следующие параметры:

  • Разделы сайта в которых будет использован ССК - в идеале вы не должны использовать ни каких других расширений кроме него.
  • Оцените свои возможности, профессиональные или финансовые, так как использование ССК скорей всего наложит дополнительные расходы на создание проекта.
  • Ну и конечно помните, что, за функциональность надо расплачиваться производительностью, и скорей всего выбор того или иного решения наложит определенные требования к вашему хостингу.

Это интересно:

Вадим Куницын
Россия , Калининград , 31 год

Комментарии  

Artem Lebsak
+10 # Artem Lebsak 11.08.2015 16:37
CCK для Joomla сейчас проще разделить на те, что "обвешивают" дополнительными полями  com_content (используют его таблицы за основу) и полностью автономные (чьи данные хранятся в отдельных таблицах и никак не связаны с com_content). Я лично предпочитаю вторые.
WAB или CCK – могут дать одинаковый результат, но предполагают разные методологию разработки/интеграции. WAB считай с чистого листа, CCK на основе уже заданных направляющих. При работе с WAB без написания кода функций не обойтись (кто бы не утвержал обратное), с CCK есть шанс настроить готовый функционал.
ZOO один из лучших CCK, благодаря высокой производительности и прозрачному SEO. "Вкурив" логику (прочитав документацию и посмотрев видео один вечер), создавать поля и управлять типами контента. Позволяет легко создать отправку материалов на сайт даже не зарегистрированным пользователям. В сочетании с JBZoo – прекрасное решение для интернет-магазина со сложной фильтрацией товаров по параметрам.
K2 возник как блог для Joomla, в те времена, когда у материалов com_content не было тегов. Поддерживает дополнительные поля и группы полей, сопоставляемые с категориями материалов. Очень широко поддерживается разработчиками шаблонов для Joomla. Реально тянет большие массивы материалов, однако это не CCK, даже в обвесе дополнительными расширениями от сторонних разработчиков.
FlexiContent прозрачнее других кастомизируется под дизайн сайта. На этом всё. Это полноценный CCK, где есть всё что нужно, но без уникальных особенностей. Zoo сложнее кастомизировать под дизайн, зато приятнее в использовании. FlexiContent удобнее разработчикам, Zoo конечным пользователям. И опять же - FlexiContent обвес com_content, что для меня минус (при миграции с версии на версию Joomla, для масштабного, долгосрочного проекта).
Cobalt ходит у меня в любимчиках, хотя темпы развития сейчас провисают. Новые возможности появляются с каждым апдейтом и они регулярны, но хочется уже глобальных перемен. Уникальная особенность - лог действий пользователей. Бесценно для создания инструментов ведения бизнеса, а не просто справочных каталогов.
Fabrik это вообще не CCK, а компонент форм, который вырос до WAB. С таким ракурсом есть ещё ChronoForms, который даже поудобнее будет.
Как минимум стоит ещё упомянуть ComponentCreator (вот это WAB, так WAB). JReviews и SobiPro, которые шагнули до CCK/WAB со стороны каталогов.
Мой личный выбор сейчас - Zoo+JBZoo для электронной коммерции, Cobalt для информационных проектов и ориентированных user generated content, ну и Cobalt+Emerald для платного доступа/монетизации информационных проектов.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Вадим Куницын
0 # Вадим Куницын 11.08.2015 16:54
На счет WAB ты очень сильно ошибаешься, в них можно создать без знания программирования очень многое, дело тут в другом, что нужно будет очень хорошо прорабатывать фронт, а для него скорей всего потребуется знание программирования, хотя надо учесть важный аспект, по сути сейчас чистой верстки без PHP и JS не бывает.

По поводу ComponentCreator я не согласен это не WAB, а скорей генератор расширений.

А уж на счет производительности ZOO я вообще не согласен, по сути расширение, которое изначально требует акселератора и кеширования, и без необходимого обвеса на хосте ходит пешком.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
SmetDenis
0 # SmetDenis 11.08.2015 17:45
Есть PHP код, которому не требуется opcode cache ? Покажите мне :)
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Вадим Куницын
0 # Вадим Куницын 11.08.2015 18:18
Вопрос требуется не требуется не требуется :-) А в том, как будет работать если вдруг акселератора не будет :) Если брать материалы Joomla, то будут вполне сносно работать, а если взять ZOO, то уже не все так красиво будет.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
SmetDenis
0 # SmetDenis 11.08.2015 18:31
У меня прекрасно работает ;) Что я делаю не так?
А вообще, как минимум странно, запускать сайт на не настроенном хостинге. Особенно если это дает очевидный прирост в скорости практически любому скрипту.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Вадим Куницын
+1 # Вадим Куницын 11.08.2015 23:09
Кстати Денис не хочешь написать про настройку серверов для Joomla? За одно и про JBZoo, я знаю, что ты его планируешь выделить в отдельное расширение.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
SmetDenis
0 # SmetDenis 11.08.2015 23:23
Спасибо! Я не только планирую выделить, а мы уже начали делать 3.x Сейчас в основном обкатываю инфраструктуру под разработку. Вчера затолкали все проекты в TeamCity, авто сборка и тесты даже заработали с пол пинка. Есть скрипты на симфони для создания патчей. В общемта... Решил отныне делать по tdd, как говорится "хватит жить как попало, будем жить как придется" :lol: :D

Я бы рад чего-нить написать, но времени действительно нету. До сих пор в черновиках пылятся статьи для своего блога с шибко умными мыслями по less, верстку и тонкие моменты в о хостерах. В основном хотел кидать ссылки на них в тех поддержке :lol: :lol: Если говорить о сервера, то как бы тут Joomla не причем, проблемы в настройках везде примерно одинаковые.

Будет время - обязательно что-нить нацарапаю.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
CB9TOIIIA
+2 # CB9TOIIIA 11.08.2015 23:48
Да, я помню обещенную статью про LESS :lol:
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Аркадий Седельников
-2 # Аркадий Седельников 11.08.2015 20:04
Zoo неоправданно жрет память, я несколько раз смортел на объект контента Zoo - это просто ужас, мало того что информации в нем пресс, так она еще в разных местах дублируется, и не единожды.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
SmetDenis
+13 # SmetDenis 11.08.2015 22:09
Давайте конкретнее... Что и как Вы измеряли, откуда такие выводы? Какие-то числа?
Вот смотрю результат работы фильтра по 10 тыс материалам. Выводится 100 штук на странице + наши модули. Все вместе менее 15Мб, сам компонент с приложением всего 6-7Мб. Без кеша CMS. Это много? Если измерить чистую J! с компонентом пустышкой, то будет пик памяти в 7-8Мб. - Скрины профайлеров llfl.ru/27o4no llfl.ru/61pm33
И тут не чистый Zoo. Так бы съел еще меньше (~ минус наш фрейм 1-3 МБ)

Где тормозит? Где много памяти съедает? 15 Мб на весь сайт - это много?? А если использовать нативный опкод кешер из PHP 5.5-5.6, то можно сэкономить еще ~10%.
Дико извиняюсь, но ваш вывод похож на что-то вроде "много написано, много объектов - значит тормозит")))
Или вы решили распечатать один из объектов через print_r/var_dump и похоже удивились ссылками между объектами-хелперов из пула синглетонов в памяти (это про ваш "пресс и дублирование информации"). Жаль... мало кто понимает что такое ссылки. Полистайте "C" c плюсами, например.

У меня есть масса скриптов на сборке симфони общим весом ~40Мб почти голого php. Скрипты летаю и делают рутину, много чего используют. Хотя абстракций в симфонии выше крыши, код на порядок сложнее любого из Joomla.

Примерно полгода назад специально делали вывод 1000 материалов Zoo на одной странице, каждый из которых был специально переполнен всеми видами полей (и стандартных и наших). На один материал уходило примерно 15ms и 130кб HTML-я. Суммарный вес страницы исчислялся десятками мегабайт. Повторюсь, специально переполненный материал. На типичном сайте числа скромнее.

Другой вопрос, что примерно 80-90% джумлистов не умеет настраивать ни сайт и тем более vps ==> сразу делают выводы о-ля "все плохо". Они надеются на "идеальные" настройки шареда за 200 руб или коробочную vps-ку. Ну... это как-то не профессионально...

У меня опыт работы с подобными "веб-мастерами" и их прекрасными хостингами всех цветов радуги ооооооочень богатый, до ужаса огромный. ;) Какой там акселератор! Если на доброй половине сайтов стоит мизерный, стандартный, 16 килобайтный realpath_cache_size + open_basedir + apache npm и прокси nginx. О какой скорости и памяти может идти речь?? Толковых людей в мире этой CMS, к сожалению, мало.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
ivan
-5 # ivan 14.08.2015 10:51
в joomla до сих пор нет вменяемого cck основаного на стандартных материалах
в том числе и из-за этого я перешел на wp + acf
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Вадим Куницын
0 # Вадим Куницын 14.08.2015 12:50
Э... вы читали статью?? Там говорится о 3-x ССК, которые как раз используют материалы Joomla.
Так как имел счастье пользоваться acf, могу сказать, что его нельзя назвать полноценным ССК (во всяком случае бесплатную версию) он, как раз похожа на miniCCK.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
ivanpanfilov
0 # ivanpanfilov 15.01.2016 17:49
вы кажется не в курсе архитектуры wordpress
кастомные поля там из коробки и api в наличии.
ACF предоставляет лиш более высокоуровневый api и визуальное редактирование и настройку - причем на порядки лучше чем у joomla.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Сергей Мочалов
+2 # Сергей Мочалов 14.08.2015 20:56
Да есть сравнивать в контексте Wordpress то как раз MiniCCK больше всего и напоминает ACF для Wordpress. Хотя с точки зрения интерфейса MiniCCK есть еще куда расти.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Аркадий Седельников
+1 # Аркадий Седельников 14.08.2015 22:03
Так подскажи куда, подрастем.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Дмитрий Семин
0 # Дмитрий Семин 20.10.2015 14:55
Испробовав seblod, остановился на нем. Понравился. Реально крутая штука. До этого сидел на к2 и jbzoo. Для инет магазинов seblod не подойдет конечно, но если прикрутить сторонние расширения для создания магазина на базе материалов джумлы, может что и выйдет.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Вадим Куницын
0 # Вадим Куницын 20.10.2015 17:48
На сколько я знаю сейчас разработчики Seblod пилят корзину для компонента, так что в скором времени они еще и коммерческую составляющую подтянут.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
ivanpanfilov
0 # ivanpanfilov 15.01.2016 17:55
Недавно открыл для себя ksenmart - решение не лишенное недостатков. Но лучшее что есть из бесплатного на данный момент для Joomla. Как то обошлись без наворачивания ненужных структур.
Запиливание корзины на основе cck - путь в никуда. E-commerce система - это не просто набор дополнительных полей для хранения. Тут нужно как правило полноценное решение.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Leva27
+2 # Leva27 29.01.2016 02:02
Открыл ксенмарт год или полтора назад, из коробки было все круто, но шаг вправо, шаг влево - расстрел, элементарные казалось бы правки ждал от разработчиков инфы очень долго (ну и вообще, какой же это CCK?). Потом таки нашел JBZoo и утащил все проекты на него, под джумлу магаз и не только - только на нем, Денис и команда идут в правильном направлении!
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Вадим Куницын
+1 # Вадим Куницын 29.01.2016 23:20
В целом да... вы правы...
А тем кто ищет магазины стоит почитать вот эту статью joomlaportal.ru/.../...
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору

Добавить комментарий

Обновить
Защитный код

Joomla!® CMS — пожалуй, лучшая система управления контентом с открытым исходным кодом

Joomla! — это больше, чем просто программное обеспечение, это люди, включающие разработчиков, дизайнеров, системных администраторов, переводчиков, копирайтеров, и, что самое главное — простых пользователей.

Мы рады пригласить вас в ряды нашего сообщества!

Скачать Joomla! 3 Документация Joomla! CMS Свернуть

Расширения Joomla

Новости портала

Новое в блогах

Видео