Строим сайт: Метафора Документа

Строим сайт: Метафора Документа

Мы определили свою цель: построить сайт, пригодный для среднестатистической компании, и не более того. Все, что сказано ниже, не предназначено ни для чего большего.

Естественно, на любом сайте информация дискретна. Стало быть, существует такой минимальный блок данных, который обрабатывается целиком, как единая сущность.

Назовем минимальную и неделимую единицу информации сайта Документом.

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

Например, тип документа для представления обычной HTML страницы несет такие поля, как текст документа (с его форматированием), title страницы, информацию для meta keywords и meta description. Тип документа для новости будет примерно таким же, как для HTML страницы, но с добавлением параметров времени выхода в свет данного события. Документ, ответственный за позицию в каталоге несет данные о товаре, цену, наличие на складе и проч.

Что из этого следует? То, что система управления сайтом должна предоставлять средства для управления типами документов — некий конструктор полей, по образу и подобию того, что мы видим в визуальных конструкторах баз данных.

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

Система управления сайтом должна предоставлять механизмы управления содержимым указанных полей (для поля форматированного текста выдавать контрол а-ля MSWord, для title и description достаточно обычного textarea, если дата — то элемент управления типа календарь и так далее...

С точки зрения программирования... Кому как удобнее. У меня создан класс — абстракция некоего хранилища документов, который обладает методами извлечения документов (по идентификатору, типу, дате и проч.) и методами записи документов в хранилище. То, как хранилище оперирует с данными и где они хранятся физически — инкапсулировано (более или менее).

Комментарии (1)

mem: 1080 total: 12 module: 5 xsl: 4