Сразу оговорюсь, что свой движок я буду называть не иначе как Borhkus, и так во всей рассылке. Прежде чем начать его конкретно по байтам описывать предлагаю ознакомиться с более общими текстами. Вот два из них:
Эссе о моем движке
Borhkus есть система для конструирования и управления сложными и динамичными сайтами. Она позволяет удовлетворять любую прихоть владельца сайта в реальное время. Система не рассчитана на абсолютных носорогов, но на ее основе не сложно подготовить сайт, который может управляться человеком не владеющим сложными веб-технологиями.
В системе присутствуют три среды. Первая среда это гостевая, то есть для тех, кто посещает сайт. Она называется фронт-офисом в рамках системы. Вторая среда для пользователя (другими словами владельца сайта). Эта среда называется бэк-офисом, подготавливается разработчиком сайтом и позволяет производить все операции по управлению и обновлению. И третья среда является рабочим местом разработчика сайта. Позволяет создавать и обновлять шаблоны дизайна и данных, а также программировать функции, не включенные в ядро системы.
Таким образом, изначально система не готова обслуживать неподготовленного пользователя, не является конструктором сайтов из готовых кусков дизайна и модулей, она не создаст вам сайт за считанные минуты. Система является гибким и настраиваемым инструментом. Точно таким же как Dreamweaver или Photoshop . Система лишь дополнит ваш арсенал разработки сайтов, а не заменит его.
В любом текстовом редакторе готовятся коды шаблонов данных и код дополнительных функций, в любом редакторе HTML готовятся шаблоны дизайна, в любом графическом редакторе готовятся картинки, на листе бумаги записывается структура универсального хранилища данных и все это для того, чтобы загрузить в систему Borhkus . И только после этого система готова для создания сайта. Только после этого ее можно отдать обычному пользователю (если конечно все делалось для него).
Система является специализированной операционной системой, в которой работают под ее управлением различные приложения. Есть базовые приложения, которые удалить из системы нельзя. Есть пользовательские приложения, которые придают системе уникальность, настраивая ее на решение прикладных задач. Таким образом приложения являются по сути модулями. Приложения можно создавать отдельно от системы и затем инсталировать при необходимости в разные копии системы.
При разработке сайтов в команде система позволяет производить разделение труда. Дизайнер может готовить дизайн в любом удобном для него инструменте. Кодер может в любом редакторе HTML готовить код и размечать для системы (создавая шаблоны). Программист может создавать код для шаблонов ввода/вывода данных и при необходимости создавать дополнительные приложения. Наборщик может затем наполнять сайт контентом.
Технология шаблонов ввода/вывода
В моем движке используется эта идейка. В качестве прототипа я взял идею подобных шаблонов из системы «NetCat» от фирмы «Аист». Там они называются шаблоны данных. Итак, излагаю свои мысли о шаблонах ввода/вывода в виде ответов на свои же вопросы:
Что такое шаблон ввода/вывода?
Полное название таково: шаблон ввода/вывода информации списочного типа. Это означает что информация хранится в таблице с любым количеством разнотипных столбцов, а сам шаблон хранит в себе код отображения записей из таблицы, код ввода новых записей и коды обновления/удаления записей. Коды написаны на каком-либо серверном языке программирования/скриптования.
Зачем это нужно ?
Таким образом каждый шаблон (в совокупности с источником данных) представляет из себя хранилище информации определенного типа, а также способы управления этой информацией. И есть возможность вызывать любые порции информации в любом месте сайта (на любой странице).
Какие преимущества ?
На основе шаблонов ввода/вывода можно построить большое количество разнообразных функционалов: гостевые книги, форумы, баннерные системы, новостные ленты, фотоальбомы, подборки статей, архивы и многое другое. Также шаблоны предоставляют возможности стыковки с другими информационными системами.
Стандартизация (то есть сам шаблон пишется по определенным правилам) позволяет создавать универсальные шаблоны ввода/вывода, которые можно применить не на одном сайте.
Возможности шаблонов ввода/вывода
По-умолчанию, шаблон сохраняет информацию для той рубрики, в которой он вызывается. То есть один и тот же шаблон можно ипользовать на разных рубриках сайта, а информация будет на каждой рубрике своя. Эта возможность задана по-умолчанию. Но можно переопределить. К примеру, если нужно будет выводить один и тот же текст на всех рубриках, то можно создать шаблон и в нем указать не сохранять для каждой рубрики в отдельности.
Есть возможность закрепить за шаблоном источник данных (то есть таблицу) и в этом случае шаблон будет сохранять данные в нем. И возможно также не определять источник, тогда можно определит код, результат которого и будет выдаваться шаблоном. Эта возможность позволит в частности создавать следующие функционалы: карта сайта, голосование и другие.
Аналоги
По сути то, что в других движках называют модулями здесь зовется шаблонами ввода/вывода. В движке Borhkus модулями являются приложения, которые выполняются под управлением ядра системы. И эти приложения обеспечивают весьма специфические возможности. К примеру, на шаблонах можно построить несложный интернет-магазин. Но для полноценного (а еще точнее более быстрого по скорости) магазина лучше построить специализированное приложение. В свою очередь обычно приложения будут использовать все стандартные средства ядра системы, в том числе и шаблоны ввода/вывода.
Изюминка движка
Шаблоны ввода/вывода являются основой движка Borhkus и предоставляют несравненную гибкость при построении сайтов любой сложности. В полной своей реализации шаблоны предоставляют возможность вложения друг в друга, что позволит строить взаимосвязанные таблицы данных.
Резюме
Вот собственно и все в этом выпуске. В последующих выпусках я еще не раз вернусь к этим вложенным шаблонам. Так как самая идея еще сырая (в том виде, в котором я сейчас ее изложил). И от выпуска к выпуску я собираюсь ее либо убить либо привести к практической реализации (последнее скорее всего и будет, так как одна из реализаций у меня уже есть).
В следующем номере:
Далее будет таблица с терминами движка. Они по сути встречаются во всех движках, но у систем с различными принципами реализации эти термины могут сильно отличаться. Также я хочу дать общее представление о движке, как о сложной системе (в частности расскажу о применении шаблонов ввода/вывода, введу понятия шаблона дизайна и областей ввода/вывода). Будут также и рисунки.
На сим прощаюсь. Сухроб.
Расшифровки:
Фронт-офис — это суть парадного входа на сайте, то место, где гуляют посетители сайта, набрав его адрес. Сей термин удобен, естественно, когда у сайта есть бэк-офис.
Бэк-офис — это специальных вход на сайт для управления им. Например, его можно вызвать так: http://mysite.ru/admin/. Иными словами бэк-офис это все то, что появляется на сайте дополнительно после авторизации владельца сайта (в частности появляется панель управления).
Авторизация — процедура идентификации посетителя (впрочем это слово я думаю интуитивно всем понятно).
Шаблон — это нечто, используемое многократно без изменений. Применительно к двигателю сайта, например, шаблон дизайна это код, содержащий оформление без самих данных, которые в этом оформлении публикуются на сайте.
Серверный язык программирования — язык, который используется для создания кода, исполняемого на сервере, а клиенту (например, броузеру) передается только результат этого исполнения. Это удобно, если нужно, например, разгрузить клиент от больших вычислений, а также быть не зависимым от клиента.