Сегодня я узнал о ещё одной хорошей CMS

Её имя - ProcessWire 2. На главной странице их сайта (http://processwire.com/) расположено видео, которое демонстрирует основные возможности. В чём-то есть схожесть с друпалом, в чём-то есть схожесть с Е5.

Что мы имеем? По сути это таже модель MVC, но модель данных составляется динамически, в зависимости от ситуации. То, что в Е5 называется таблицей данных, в ProcessWire зовётся шаблоном.

Работа с системой по сути сводится к разработке шаблонов данных (состоящих из комбинации различных полей), а затем использование этих шаблонов в произвольной структуре. Так, например родителем элемента "Новость", может быть элемент шаблона "Содержание", а потомком "Новости" опять же "Содержание" или "Комментарии". Т.е. каждая строка системы может иметь отличный тип от всех остальных строк.

В Е5 возможные дочерние элементы строк к рамках одной таблицы определены жёстко. Так, например, к новостям мы можем прикрепить дочерние элементы "Фотогалерея" и "Комментарии", которые будут присутствовать у всех новостей, в качестве подтаблиц. А в ProcessWire одна новость может иметь фотогалерею, другая - может иметь только комментарии.

С точки зрения юзабилити, ProcessWire превосходно адаптирован под пользователя. За минимум действий вы получите максимум результата. Админка работает как часы (чего не скажешь об админке Е5, в которой например не работает перетаскивание дочерних элементов к родительским, и вообще перемещение элементов иногда глючит).

Рассмотрим типичную задачу - сделать сайт-каталог Небоскрёбов (демо-сайт ProcessWire 2).

Реализация на ProcessWire:

  1. Создаём шаблон "Город" (название + описание)
  2. Создаём шаблон "Архитектор" (название + описание)
  3. Создаём шаблон "Небоскрёб" (название + описание + координаты + город + архитекторы)
  4. Создаём элементов шаблона "Архитекторы" , например "Девид Магеланос", "Санчо Кэсседи" и "Ариель Четландес"
  5. Создаём нексолько элементов шаблона "Города", например "Нью Йорк", "Неаполь", "Сан Франциско" и "Милан"
  6. Создаём под элементом "Нью Йорк" несколько подэлементов шаблона "Небоскрёб" и связываем их с имеющимися архитекторами. При этом связь осуществляется путём добавления нового поля "Архитектор", которе имеет тип "Ссылка на множество страниц", и родителя "Архитекторы". Решенее мягко говоря не гибкое и не самое лучшее.

Т.е. на протяжении всей работы мы имеем дело с одним деревом, в котором есть всё. Для экономии загрузки, авторы подгружают разделы Ajax-ом.

Также не ясно, на чём конкретно пишутся шаблоны вывода всего этого содержания. За время копания в админке, мне так и не удалось это выяснить. Судя по всему, есть некоторое внутреннее API, которое привязывается через всё тотже старый добрый Smarty :)

Реализация на E5

Первые 3 пункта полностью совпадают. Для ускорения этих операций, в Е5 предусмотрены не только шаблоны полей, но и шаблоны таблиц.

  1. Создаём таблицу "Город"
  2. Создаём таблицу "Архитектор"
  3. Создаём таблицу "Небоскрёб"
    привязываем поля "Архитекторы" и "Город" к соответствующим таблицам
    "Архитекторы" будет иметь возможность множественного выбора, "Город" - еденичного
    Как альтернатива - мы можем сделать таблицу "Небоскрёб" подтаблицей "Городов" (можно сказать, что это будет аналог ProcessWire-вскового решения),
  4. Создаём шаблоны вывода городов, архитекторов и небоскрёбов, делаем необходимые настройки, для автоматической генерации и распознавания URL
  5. Заполняем таблицу Архитекторов и Городов
  6. Заполняем таблицу Небоскрёбов, привязывая её к Архитекторам и Городам (в Е5 есть компонент, который позволяет добавлять Архитекторов и Города "не лету")

Лично мне, реализация на Е5 кажется более прозрачной и простой. Многие скажут, что такое решение ограничивает пользователя и в этом есть доля правды. В Е5 я не могу присоеденить подстроку "Небоскрёб" прямо в таблице "Город", для этого мне придётся для ВСЕХ городов делать подтаблицу "Небоскрёб". Таким образом, если я буду работать с таблицей данных, каждая строка которых будет иметь уникальное предназначение (одна строка - небоскрёб, вторая - новость), то у меня будет гигантский список пустых подтаблиц напротив каждой строки.

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

UPDATE

Недавно узнал на чём пишутся шаблоны для ProcessWire. В одном из роликов, разработчик показал как нужно менять шаблон после добавления новых типов данных. Для этого автор использует вставки PHP кода в HTML.

Значит без PHP программистов не обойтись. Сразу вспоминается Bitrix, в которой всё таки какое-никакое визуальное программирование модулей было. PHP вставки в нём можно было редактировать (менять свойства компонентов)

Автор: E5 Developer

Дата: 05 марта 2013



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

Имя

E-mail

Комментарий

Контрольный вопрос:
Сколько будет: 10+2-6


 
Наши работы
Массажные кровати LongLife

Благотворительная организация Преображение

Автомобили из Кореи СК-МОТОРС

Мобильные бани МОБИБА

Европейские ограждения Евростандарт

Портал недвижимости Аренда 911

Сеть саун Кантри

Строительная компания Сибирский Стиль

Автомобили из Кореи СК-МОТОРС

Арбитражный суд НСО

Сервис-кухня Ланч

Ремонт и обслуживание компьютеров ПК-Сервис

Интернет-каталог велосипедов и детской мебели Дами

 

Главная О студии Расценки Портфолио Статьи Контакты