Xpoint
   [напомнить пароль]

Аналогия между OS и CMS

Метки: [без меток]
2007-06-14 13:49:10 [обр] im4LF[досье]

Достаточно долгое время размышлял над принципами CMS.
Вот решил собрать воедино некоторые мысли. Достаточно давно пришёл к выводу что Front офис сайта несколько напоминает привычный всем рабочий стол и проводник windows или kde/...
Back офис тоже содержит в себе черты проводника.

Сейчас я хочу провести сравнение между Front/Back офисами и графической оболочкой ОС (к примеру можно взять explorer у windows) а так же и с самой ОС.

Итак рассмотрим обычный сайт.
Для простоты пусть это будет сайт-визитка со следующими разделами:

  • Главная - содержит краткую текстовку "О компании", краткий перечень услуг, контакты.
  • О компании - обычный текстовый раздел, текст и картинки
  • Услуги - список услуг с кратким описанием и иконкой для каждого пукта. Каждый пункт услуг является ссылкой на расширенное описание - тест с картиками.
  • Контакты - текст (адрес, телефон), форма обратной связи, схема проезда.

Далее я буду писать блоки для каждого раздела, в которых будет 3 пункта: описание Front офиса (F), Back офиса (B) и графической оболочки или ОС, точнее как это можно было бы представить (OS)

Главная
Главное меню сайта
F: на главной странице, какой бы её дизайнер не представлял, присутвует главное меню сайта (хотя оно, конечно же, должно присутствовать на всем сайте, в любом разделе) - перечень основных разделов сайта.
OS: если взглянуть на рабочий стол windows, то ярлыки напоминают в какой-то степени пункты главного меню сайта.
B: продолжим с графической оболочкой - в любой графической оболочке можно создавать ярлыки. Создав ярлык на "рабочем столе" мы таким образом создадим пункт в главном меню на сайте.

note
Т.о. можно сказать что рабочий стол в ОС (точнее в её граф. части) есть аналог главной страницы сайта (корня сайта).

Содержимое главной страницы
F: все текстовки "О компании" "Услуги" "Контакты" - это краткие выдержки из соответствующих разделов.
G: в MacOS X есть такая вещь как widgets (они есть и в баузере Opera, а теперь и в Windows Vista :) ). Widgets это такие маленькие программки которые выполняют несколько простых функций (время показывают, погоду, курсы валют,...). Так вот эти widgets так же немного напоминают блоки "О компании", "Услуги"...
B: создание новых блоков информации на главной странице не всегда простая вещь для контент менеджера, поэтому её пока рассматривать не буду.

О компании
OS: обычный раздел сайта можно сравнить с папкой в файловой системе. Только эта папка должна иметь несколько параметров: заголовок (заголовок раздела), контент (непосредственно сам текст раздела), имя (к примеру для ЧПУ).
B: создание новой папки-раздела означает создание нового раздела на сайте.
F: во Front офисе данные (заголовок раздела, контент раздела) выглядят так как их выведет шаблон данной страницы.

note
Далее я буду называть разделы сайта и папки в ОС либо разделами либо узлами. В каждом узле можно создавать дочерние узлы.

Услуги
OS: то же что и раздел "О компании", т.е. узел. Но в данном разделе сайта есть список услуг. Список услуг можно организовать как список дочерних узлов. Но эти узлы должны быть другого типа, т.к. в их параметрах можно указать краткое описание, иконку. Однако эти узлы имеют и сходство с узлами "О компании", "Услуги" - заголовок, контент, имя.
B: в разделе "Услуги" можно создавать несколько типов узлов - непосредственно сами разделы (на подобие разделов "О компании", "Услуги") и разделы с расширенными параметрами (подпункты услуг).
F: здесь всё зависит от шаблона вывода.

note
Я бы хотел ввести некоторую типизацию. Разделы "О комании", "Услуги" и им подобные будут называться Section, а подразделы наподобии элементов списка услуг Item. Если перейти к идеологии ООП, то можно выделить основной класс - Section и его наследника Item.

Контакты
F: данный раздел похож на "О компании", но есть и отличия - присутствует схема проезда, форма обратной связи.
OS: "схема проезда" обычно является картинкой. Её так же можно организовать как подраздел определённого типа - Attach или Image. Лучше пусть он будет называться Image. Основными свойствами будут: имя, заголовок (к примеру подпись у картинки - "схема проезда"), возможно краткое описание ("проезд на таком-то таком-то маршрутном такси, ..."), и сама картинка, + возможно ещё одна картинка для preview.
"Обратная связь" - это уже не просто представление информации, а элемент взаимодействия с пользователем. У меня пока есть 2 идеи организации данного функционала.

  1. Весь раздел "Контакты" представить как исполняемое приложение (т.к., грубо говоря, есть кнопка "отправить сообщение"). Т.о. раздел "Контакты" являются аналогом выполняемого файла в ОС. В данном случае свойства раздела: имя, заголовок, контент (где непосредственно будет вписан адрес, телефон, и др. контактная инфа). Так же этот раздел будет "рисовать" формочку с полями ввода и кнопками + обрабатывать событие send (отправить сообщение).

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

  1. Раздел "Контакты" является аналогичным разделам "О компании", т.е. Section. В разделе "Контакты" создаётся "подраздел" типа Image, который является "схемой проезда". А для формы "обратной связи" вводится новый тип раздела - Executable. Этот раздел (Executable) создается в разделе "Контакты", в его свойства можно добавить свойство autorun, которое будет указывать на то что данный Executable подраздел запускается автоматически при запуске (открытии пользователем) раздела "Контакты". Этот подраздел и рисует форму обратной связи и обрабатывает событие.

Данное решение уже более устойчиво к пожеланию заказчика (перенести обратную связь в отдельный раздел): Executable подраздел просто переносится в новый раздел "Обратная связь" типа Section.

note
Если вспомнить о главной странице сайта и блоках-текстовках "О компании" "Услуги" "Контакты", роль которых выполняют Widgetы в воображаемой ОС, то Widgetы так же являются Executable разделами созданными на рабочем столе. Задача этих блоков "вытягивать" из соответствующих разделов маленькие отрывки текста.


Вот, пожалуй всё с вводной частью. Буду рад услышать комментарии, критику, советы.
Постепенно буду продолжать разворачивать свою мысль, если это кому интересно вообще )

спустя 1 час 10 минут [обр] Евгений[досье]

Первое, что просится сказать - вы представляете каждую страницу сайта как отдельный обьект со своим типом. В организации CMS вообще существует масса подходов, но по моему мнению самый удобный из них - модель страницы как некоего контейнера для информации, причём подчас очень разной. Вот, например, зайдите на любой портал: что вы там увидите?
Как правило это меню, заголовок, текст, баннеры, новисти и т.д. То есть у каждой страницы есть множество вложенных обьектов самого разного типа.
И во вторых, можно ввести условное разделение на страницы статические и динамические, со встроенными модулями.

Ну а вообще, если говорить об общей инфраструктуре и организации - то тут властвует только ваша фантазия. Как напишете, так и будет.

спустя 11 часов [обр] Алексей В. Иванов(0/2861)[досье]

im4LF[досье]
Я так и не понял, что вы имели ввиду. Что вы хотите сказать этим текстом и какова ваша цель?

Лично для меня похожесть ОС и сайтов заканчивается там же, где и начинается, а мысль такая: в ОС есть кнопочки, на сайтех есть ссылочки. Они похожи тем, что по ним можно щелкать. Всё.

спустя 2 дня 17 часов [обр] im4LF[досье]

Евгений[досье]

вы представляете каждую страницу сайта как отдельный обьект со своим типом

Все статьи раздела "Новости" имеют тип News, все обсуждения новостей имеют тип Opinion...

Вот, например, зайдите на любой портал: что вы там увидите?
Как правило это меню, заголовок, текст, баннеры, новисти и т.д.

Про меню писал. Баннеры - widget выпоняющий роль BannerRotator'a (например widget помещается на главную страницу и имеет свой-ство "through" - запускается на любом разделе сайта).

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

Именно - аттачи (картинки у статьи - тип Image), файлы (zip rar - например исходники, pdf - pdf версия статьи - всё это File)

Алексей В. Иванов[досье]

Я так и не понял, что вы имели ввиду. Что вы хотите сказать этим текстом и какова ваша цель?

Лично для меня похожесть ОС и сайтов заканчивается там же, где и начинается, а мысль такая: в ОС есть кнопочки, на сайтех есть ссылочки. Они похожи тем, что по ним можно щелкать. Всё.

Хм. А мне структура типового сайта очень напоминает ФС. С её адресацией, жесткими и символьными ссылками.
А так же разные типы файлов в ОС напоминают разные типы разделов на сайте.

спустя 4 часа 59 минут [обр] Алексей В. Иванов(0/2861)[досье]
Хотите ещё одну ОС написать?
спустя 16 дней [обр] im4LF[досье]
Хотите ещё одну ОС написать?
OC звучит конечно громко. Но сама концепция неплохо бы подошла. Удаленная консоль есть браузер, посылающий команы на сервер. tty есть http сервер. И т.д.
спустя 1 день 4 часа [обр] Степаныч(0/50)[досье]
Консоль - подразумевает терминал. http не терминальный протокол. Прямая аналогия бесполезна :)
Powered by POEM™ Engine Copyright © 2002-2005