Контактная информация            Баг трекер            Предложение хостинг-провайдерам

CMS Open Constructor — бесплатная CMS с открытым исходным кодом (GNU GPL v2) для веб-студий

Игорь Бронников (ne0d1n) Автор: Игорь Бронников (ne0d1n)
Дата: 3 июля 2007
Рубрика: IMHO

CMS Open Constructor для веб-студий или фрилансеров

Всю гибкость CMS Open Constructor могут почувствовать разработчики, имеющие базовые знания HTML, CSS, Smarty — знания PHP не нужны.


Open Constructor — не классическая CMS

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

В отличие от большинства модульных CMS, которые собирают сайт нужной конфигурации из готовых модулей, Open Constructor предназначен именно для создания сайтов «с нуля».

В Open Constructor нет таких понятий, как «модуль» или «тема оформления», с помощью которых в модульных CMS быстро собираются готовые сайты.


Гибкий Open Constructor

В отличие от многих модульных CMS, в Open Constructor имеется необычайно гибкий инструментарий, позволяющий создавать сайты высокой сложности, практически не прибегая к программированию, используя готовые встроенные разделы данных, такие как «публикации», «фотогалереи», «статьи», «гостевые книги», или создавая собственные структуры данных — «гибридные данные».

Гибридные данные — мощная отличительная особенность CMS Open Constructor. Можно создавать свои разделы данных, используя комбинацию из примитивных типов данных, таких как: числа, дата, время, простой текст, HTML текст, логический.

В дополнение к примитивам, есть типы данных — файл, документ (фактически, связь с другим документом системы), массив документов, раздел данных, рейтинг документа. Созданные подобным образом разделы гибридных данных впоследствии функционируют также, как и «родные» разделы данных — «статьи», «публикации».

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

Например, если создать дерево жанров (фантастика, комедия, драма) и гибридный тип документов «фильм», то связав их, можно сделать каталог фильмов с возможностью выборки фильмов по его жанру, причем каждый фильм может быть привязан к одному или сразу нескольким жанрам.

Деревья и гибридные документы также создаются без программирования на PHP, используются только стандартные средства Open Constructor.


Вывод данных в CMS Open Constructor — дизайн отдельно, контент отдельно

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

Для вывода данных используются «объекты обработки и вывода» или просто «объекты» в терминологии Open Constructor.

Каждый объект связывает данные определенного типа с шаблоном вывода. Все шаблоны пишутся вручную, хотя для примера у каждого раздела есть «шаблон по умолчанию», который может быть использован как образец. В качестве шаблонизатора используется Smarty.

Существуют и специализированные объекты, которые вместо вывода совершают определенные действия, например авторизацию, добавление комментария или отправку письма.

Для всех типов данных есть объекты вывода документа, списка документов, листалки списка, для списков гибридных документов можно задавать методы сортировки и фильтрации. Если сортировка или фильтрация не достаточны, например, в случае, когда список документов — продукты в «корзине» пользователя и ID документов (выбранных товаров) хранится в сессии, есть объект «инъекция». Инъекцией можно передать список ID документов из сессии в объект перед тем, как данные будут выведены.


В CMS Open Constructor все страницы реально существуют

Open Constructor не использует распространенный подход CMS, когда одним index.php обрабатываются все страницы сайта.

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

Каждая страница имеет свой шаблон, в шаблоне страницы задаются блоки, и для каждой страницы сайта можно указать, в каком блоке какой «объект обработки и вывода» будет находиться. Например, форма авторизации на главной странице может быть в левой колонке, на других страницах — в верхней строке или там, где этого захочет разработчик.


Подсветка синтаксиса (HTML, PHP, XML, JavaScript), обнаружение ошибок компиляции шаблона

Для шаблонов в GUI предусмотрен редактор с подсветкой синтаксиса.

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


CMS Open Constructor поддерживает кеширование блоков и кеширование страниц

Можно настроить как кеширование страницы целиком, так и кеширование отдельного объекта.


Возможность внедрять собственный PHP код

Хотя возможностей системы в большинстве случаев хватает, в то же время Open Constructor не ограничивает пользователя, и при необходимости можно использовать PHP код, для которого предусмотрен тип данных «PHP код», и соответствующий тип «объектов обработки и вывода». Объект PHP кода можно привязать как к блоку, если объект осуществляет вывод данных, так и к какому-либо событию, которое может произойти на странице, например аутентификации пользователя, загрузки объектов.


UTF-8, расширенный поиск, bread crumbs, Captcha, система пользователей

Использование UTF-8 позволяет создавать многоязычные сайты.

Open Constructor имеет встроенную систему поиска по разделам сайта (система поиска имеет русский и английский стеммер), а для гибридных типов данных доступны также настраиваемые системы фильтрации и сортировки данных.

Есть механизмы работы с «хлебными крошками» (bread crumbs).

Для защиты от спама есть встроенный механизм CAPTCHA, причем имеющий одну особенность.

Системой безопасности контролируются все ресурсы Open Constructor, у каждого из ресурсов есть пользователь — владелец ресурса и группа пользователей, что очень похоже на систему безопасности файловой системы операционных систем семейства Unix. Пользователь может входить в любое количество групп, что позволяет гибко настроить роли пользователей в управлении сайтом.


Ложка дегтя

Хотя для обработки простых форм, таких как отправка комментария, отправка письма или авторизация пользователя существуют готовые объекты, более сложные задачи, связанные с регистрацией пользователей или обработкой не предусмотренных системой данных, требуют от программиста, создающего код обработки, соответствующих знаний не только PHP, но и понимания того, как устроен Open Constructor изнутри, а также знакомства с API, которое пока не достаточно хорошо документировано.

Кроме того, есть специфичные требования к хостингу, что может не подойти под стандартный план хостинга, в частности выключенный safe-mode, хотя хорошему хостинг-провайдеру эти требования выполнить будет не сложно.

Если эта ложка дегтя не испортила вам вкуса всей бочки меда, приглашаем попробовать Open Constructor


Требования к Серверу:

  • OS: Linux,Unix,Windows 2000/XP
  • Apache: 1.3 и выше
  • FTP*: любой. FTP сервер обязателен, поскольку Open Constructor публикует файлы через FTP. для Windows в качестве ftp сервера можно использовать бесплатный FileZilla Server.
  • MySQL: 4.1.x
  • PHP: 4.4.x установленный как модуль (а не как CGI) c mbstring, gd2, safe-mode должен быть выключен

* При установке сервера убедитесь в следующем:

имеет ли FTP-пользователь право писать файлы в файловую систему правильно ли указан корень сайта относительно home папки ftp-юзера


Требования к веб-клиенту:

  • Browser: IE 5.5 и выше
  • JRE*: 1.4 и выше. JRE нужен для встроенного аплета редактора PHP и шаблонов Smarty с подсветкой синтаксиса, и многих других функций, таких как выравнивание кода (indent/outdent)


Установка CMS Open Constructor

Последняя версия Open Constructor и документация: http://www.openconstructor.org/

Скаченный дистрибутив распаковывается и папка «openconstructor» копируется в корень сайта.

Для установки из Internet Explorer (другие браузеры не подходят) нужно открыть страницу /openconstructor сайта и следовать инструкциям.


Ссылки по теме: http://groups.google.com/group/openconstructor

Комментарии

RSS RSS
jMas, 9 августа 2007
Огромное человеческое Спасибо.
jMas, 9 августа 2007
И еще небольшой вопросик: OK не является ли Framework'ом?

Просто не плохо было бы использовать не ограниченное колличество "точек вставок", а просто какую-то одну точку и естественно следить за порядком следования обектов, добавляемых в эту точку.
Санжар Ахмедов, 10 августа 2007
Нет, ОК не является фреймворком. У фреймворка нет GUI, потому что API является "пользовательским интерфейсом" фреймворка, а у ОК нет публичного API ко всему функционалу, так как изначально ОК не задумывался как фреймворк.

Не совсем понял что имеется ввиду под "точками вставок"...
Дмитрий, 14 августа 2007
КАК установить OpenConstructor??? Устанавливаю на локальный комп (хочу сначала потестить сайт перед публикацией в инете), стоит пакет Денвер (думаю, знают все что это такое - php, mysql и т.п.). Пожалуйста, уважаемые разработчики CMS, напишите пошагово как установить ваш движок на локальный компьютер... Спасибо.
jMas, 20 августа 2007
Санжар Ахмедов, под "точками вставки" я предпологал {new block=...}
Роман, 8 сентября 2007
После установки и прохода мастера вываливается ошибка
Ошибка синтаксического анализа XML: неправильный
Адрес: http://localhost/openconstructor/data/
Строка 30, символ 60: <searchbar title="Поиск документов" text="" showNoIndex="

-------------------------------------------------------------------------^
Игорь Бронников, 10 сентября 2007
Роман, обычно такие ошибки появляются, если ставить ОК не из Internet Explorer.
Сергей Капустин, 10 сентября 2007
Список мелочей, из-за которых могут возникнуть проблемы с установкой Open Constructor http://www.openconstructor.org/blog/index.php/.category.faq/article/.20/
Cергей, 14 сентября 2007
С открытым кодом.Чобы создавать сайт с 0,мне нравится.Но у меня стоит php5,apache2.2,mysql5 Open Constructor не работает
Игорь Скляревский, 7 октября 2007
Возможно, я предвзят, но что-то у меня нет никакого доверия к продукту от разработчиков, которые не позаботились о такой малости, как кроссброузерность, чтоб админпанель работала не только с IE.
Сергей Капустин, 9 октября 2007
Игорь,

1. Несколько очень важных функций в интерфейсе системы могут работать только на IE

2. Пользоваться системой можно и через FF используя специальный плагин http://ietab.mozdev.org/

3. Мы занимаемся решением проблемы с кроссбраузерностью

Игорь Бронников, 9 октября 2007
У FireFox есть проблема с парсингом XSLT, насколько я знаю, это основная причина почему FireFox до сих пор не поддерживается.
SlaNT, 20 марта 2008
В огненной лисе выглядит УЖАСНО:( админка практически не работает. Начал было качать, но теперь остановил :) зачем мне терять 20% пользователе и возможных заказчиков :( у которых стоит firefox
Dblmok, 23 марта 2008
И процент пользователей firefox в настоящее время непрерывно растёт.
Так что imho в проектировании системы допустили промашку.
Весь движок на открытых технологиях, и на тебе - привязка к M$ IE. Странно это.
Но если сделаете независимым от браузера/платформы - обязательно попробую, что то в этом движке есть прикольное.
netklon, 7 мая 2008
Доработка под Firefox в ближайших планах.
mibz, 9 декабря 2008
Да, пожалуй, в наше время поддержка и комфортная работа в FF стала обязательной. Этот браузер, особенно после акций продвижения Яндексом, стал очень популярным.
P.S. OpenConstructor - очень могучая система! Огромное спасибо разработчикам!
Dolphin, 27 марта 2009
2. Пользоваться системой можно и через FF используя специальный плагин http://ietab.mozdev.org/

ы.... В линуксе?

Я так и не понял - на кой черт нужно это извращение с необходимостью FTP-сервера?

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

Имя:     Email:
Комментарий:
Введите символы, которые видите на картинке.
Если символы неразборчивы, кликните по картинке несколько раз.