А существуют ли среди бесплатных CMS такие, что позволяют создавать свои сложные типы данных, имеющие множество полей разных типов, и удобно ими оперировать?
Мой опыт далее.
Задавшись целью создать небольшой тематический портал, я спроектировал его модель и разделил все данные на несколько связанных между собой сущностей. Каждая из сущностей имеет несколько полей различных типов: текст, значение из списка, картинка, прикрепленный файл, дата, ссылка, ссылка на элемент того же или другого типа. Поля могут быть множественными. Такая структура позволяет удобно фильтровать данные и связывать их между собой.
Также было необходимо создать шаблоны для страниц списков, детальных страниц, блоков связанных элементов и блока фильтрации/сортировки для страниц списков.
Сформулировав эти свои потребности, я решил поискать CMS, подходящую для работы с такими данными. Упреждая вопрос «почему не написал сайт на фреймворке %крутой_известный_фреймворк%?» — потому что написание удобного backend`а для таких структур данных — занятие трудоемкое и непростое.
Я просмотрел большинство популярных бесплатных CMS на PHP: Drupal, Joomla, CMS Made Simple, MODx, DataLife Engine. Ни одна из них не удовлетворяла требованиям полностью. Как выяснилось, большинство из них в базовой комплектации вообще не дают возможности добавить собственные поля различным типам материалов и как-то работать с ними.
Ближе всех был, пожалуй, Drupal. В нем по крайней мере была поддержка пользовательских полей и возможность создавать собственные представления(views) со сложными условиями отбора/сортировки по ним (для этого правда пришлось собрать целый пакет модулей, CCK+Views+поля CCK).
Но даже тут было много неприятных моментов. Например, для поддержки различных типов полей пришлось качать много отдельных модулей. Почему весь этот функционал не был реализован непосредственно в CCK — для меня загадка. Также я пока не разобрался, можно ли редактировать шаблоны вручную, а не из административного интерфейса. Справка по Views утверждает что шаблоны типа normal хранятся в базе, а значит это вряд ли удастся.
Ничего лучшего чем Drupal я пока не нашел, хоть мой прошлый отзыв о нем и был весьма нелестным. Может быть кому-то приходилось решать подобные задачи, и вы знаете удобные CMS для работы с такими структурами данных?
Мой опыт далее.
Задача
Задавшись целью создать небольшой тематический портал, я спроектировал его модель и разделил все данные на несколько связанных между собой сущностей. Каждая из сущностей имеет несколько полей различных типов: текст, значение из списка, картинка, прикрепленный файл, дата, ссылка, ссылка на элемент того же или другого типа. Поля могут быть множественными. Такая структура позволяет удобно фильтровать данные и связывать их между собой.
Также было необходимо создать шаблоны для страниц списков, детальных страниц, блоков связанных элементов и блока фильтрации/сортировки для страниц списков.
Сформулировав эти свои потребности, я решил поискать CMS, подходящую для работы с такими данными. Упреждая вопрос «почему не написал сайт на фреймворке %крутой_известный_фреймворк%?» — потому что написание удобного backend`а для таких структур данных — занятие трудоемкое и непростое.
Что нужно было от CMS
- Работа на PHP5 и MySQL 5;
- Удобный интерфейс для создания собственных типов данных с разнообразными полями;
- Широкий выбор полей различных типов. Даты, файлы, изображения, ссылки, привязки к другим элементам;
- Возможность создавать шаблоны вручную с помощью html+css+js, используя в них плэйсхолдеры для подстановки данных из полей;
- Задание отборов/сортировок по созданным полям данных;
Подбор
Я просмотрел большинство популярных бесплатных CMS на PHP: Drupal, Joomla, CMS Made Simple, MODx, DataLife Engine. Ни одна из них не удовлетворяла требованиям полностью. Как выяснилось, большинство из них в базовой комплектации вообще не дают возможности добавить собственные поля различным типам материалов и как-то работать с ними.
Ближе всех был, пожалуй, Drupal. В нем по крайней мере была поддержка пользовательских полей и возможность создавать собственные представления(views) со сложными условиями отбора/сортировки по ним (для этого правда пришлось собрать целый пакет модулей, CCK+Views+поля CCK).
Но даже тут было много неприятных моментов. Например, для поддержки различных типов полей пришлось качать много отдельных модулей. Почему весь этот функционал не был реализован непосредственно в CCK — для меня загадка. Также я пока не разобрался, можно ли редактировать шаблоны вручную, а не из административного интерфейса. Справка по Views утверждает что шаблоны типа normal хранятся в базе, а значит это вряд ли удастся.
Резюмируя
Ничего лучшего чем Drupal я пока не нашел, хоть мой прошлый отзыв о нем и был весьма нелестным. Может быть кому-то приходилось решать подобные задачи, и вы знаете удобные CMS для работы с такими структурами данных?