Веб-студия HV-designs - услуги создания и раскрутки сайтов в Воронеже
 
Главная
Создание сайтов
Раскрутка
Дизайн
Портфолио
Связь с нами
Доменные имена
Хостинг
Создание сайта
Поддержка сайта
Он-лайн реклама
Офф-лайн реклама
Наши партнеры
 
    Главная arrow Создание сайта arrow Шаблонирование  

Шаблонирование

Об этом я тоже расскажу вкратце; возможно этому будет посвящена статья в одном из следующих номеров "Программиста". Вернемся к системе Фламинго. Как был организован интерфейс этой баннерной сети? 400 видов статистики соответствуют 400 страницам? Нет. Один скрипт-шаблонизатор, которому передаются параметры - номер статистики и другие данные: даты, ограничения и т.д.
По уникальному номеру статистики скрипт считывал описание, которое состояло из имени файла с псевдо-html и имен файлов с SQL-запросами. Файл с описанием выглядел так:

2:data/html/2.htx,data/queries/info.sql
9:data/html/9.htx,data/queries/ban-list-one.sql,data/queries/get-banners-list.sql
12:data/html/12.htx,data/queries/ban-getinfo.sql
38:data/html/38.htx,data/queries/acc-hosts-hits.sql
44:data/html/44.htx,data/queries/acc-getsites-today.sql

Общая схема очень проста - выполнить все SQL-запросы и вставить результаты в псевдо-html, получив таким образом полноценную страничку, и выдать ее пользователю. Например, для вывода статистики с номером 2 (информация об аккаунте), требовалось выполнить SQL-запрос data/queries/info.sql, результаты вставить в data/html/2.htx. Результат вывести на экран.
А вот как обстояло дело подробнее. Первая задача - формирование SQL-запроса. В него нужно вставить идентификатор пользователя и другие параметры, которые переданы скрипту. Типичный пример SQL-запроса (data/queries/info.sql):

select
AccountName,
OwnerName,
OwnerEmail,
MainSite,
SiteName
from
Accounts
where
AccountId = <--AccountId-->

При разборе такого запроса значение параметра вставлялось на место строки <--ИмяПараметра-->. Существовали и специальные параметры, например - <--UserName--> - имя пользователя и <--AccountId--> - вычисленный по имени идентификатор аккаунта.
Результат выполнения полученного запроса заносился в html следующим образом. Каждое полученное из базы данных значение получало "имя", с помощью которого обозначалось его местоположение в html-шаблоне. Имя было составным. Первая часть - порядковый номер SQL-запроса, вторая часть - индекс значения в массиве результатов.
Допустим, выполнялся SQL-запрос с порядковым номером 1 (для примера рассмотрим запрос data/queries/info.sql). Запрос возвращал массив значений. Соответственно, значение AccountName, возвращенное базой данных, имело порядковый номер 0 в этом массиве. В html-шаблоне место, куда необходимо было вставить AccountName обозначалось как <--1.1-->.

Кусочек HTML-шаблона data/html/2.htx из нашего примера:

<TABLE BORDER=0 WIDTH=460>
<TR>
<TD WIDTH="50%">
<FONT SIZE="-1">
Имя, фамилия ответственного:
</FONT>
</TD><TD>
<INPUT type="text" name="OwnerName" size=33 value="<--1.1-->">
</TD>
</TR>

<TR>
<TD>
<FONT SIZE="-1">
Электронный адрес:
</TD><TD>
<INPUT type="text" name="OwnerEmail" size=33 value="<--1.2-->">
</TD>
</TR>

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

© 2012 (4732) 60-57-53