(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Visual Basic + ASP. Использование шаблонов (исходники)

Источник: olevarty
Олег Баша

Платформа: Windows NT, 2000, XP
Веб-сервер: IIS 4,5
Технологии: ASP, COM
Языки: Visual Basic Script, Visual Basic 6.0
Приложения: Microsoft Visual Basic 6.0

Сегодня крайне сложно найти в Интернете более-менее приличный сайт, сверстанный на "чистом" html. Даже, если количество страниц не превышает одного, двух десятков, мысль о постепенном расширении сайта или, скажем, о его редизайне тут же причинит кошмарную головную боль веб-мастеру, если он попытается представить себе кодирование каждой отдельной страницы вручную. А построение объемных сайтов вообще не мыслимо без использования шаблонов.

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

С использованием Active Server Pages и простенькой DLL мы создадим систему генерации страниц сайта "на лету" на основании некоего существующего шаблона, подставляя в зависимости от полученного параметра в него тот или иной контент.

Итак, поехали.
Для начала, возьмите одну сверстанную страницу Вашего сайта, она и будет нашим шаблоном. Переименуйте её, назвав template.htm. Далее, уберите из нее весь контент, если таковой на ней имеется. Потом приведите страницу к виду, как показано в листинге 1.

Листинг 1. HTML-шаблон.

<html>
<head>
<title>{$Title$}</title>
</head>
<body>

{$Content$}

</body>
</html>

Далее, создайте файл main.asp с кодом, приведенном в листинге 2.

Листинг 2. Страница ASP.

<% @ Language="VBScript" %>
<%
Dim obj
Dim RetVal
  set obj = Server.CreateObject("WebSite.CMain")
  RetVal = obj.GetPage(Session, Request)
set obj = Nothing
Response.Write(RetVal)%>

Теперь самое главное. Открываем Visual Basic. Создаем новую ActiveX DLL. Меняем имя с Project1 на WebSite. Добавляем новый класс и называем его Cmain. См. Листинг 3.

Листинг 3. Класс WebSite.Cmain.

Public Function GetPage(Session, Request) As String
Dim sPageBack$
Dim Content$

Content =
   getTemplateFile(Request.QueryString("File") & ".txt")
sPageBack =
   getTemplateFile("template.htm")
sPageBack =
   Replace(sPageBack, "{$Title$}", _
       "Пример использования шаблонов")
sPageBack =
   Replace(sPageBack, "{$Content$}", _
       Content)
GetPage = sPageBack
End Function

Private Function getTemplateFile(sFileName As String)
                As String
Dim fso As Object, f As Object
Dim sFile$
   If Right(TEMPLATE_PATH, 1) <> "" Then
       TEMPLATE_PATH = TEMPLATE_PATH & ""
   End If
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile(TEMPLATE_PATH & sFileName, 1)
       sFile = f.ReadAll()
   Set f = Nothing
   Set fso = Nothing
getTemplateFile = sFile
End Function

Private Sub Class_Initialize()
   TEMPLATE_PATH = App.Path
End Sub

Далее, для простоты помесите всё в одну папку, откомпилируйте и зарегистрируйте на Вашем сервере COM-object. Создайте 2 файла: 1.txt и 2.txt и поместите в них какой-нибудь контент. Теперь попробуйте в браузере открыть страницы http://yourdomain/main.asp?file=1 и http://yourdomain/main.asp?file=2. Должно работать как часы.

Обратите внимание, что мы не делаем никакой проверки корректности имени файла, запрашиваемого через адресную строку. Это, в частности, приведет к тому, что при попытке открыть http://yourdomain/main.asp возникнет ошибка. Так же, необходимо проверять все параметры еще и из соображений безопасности. В данном примере код сильно упрощен только для того, чтобы продемонстрировать основные идеи. Использовать его по другому назначению без усовершенствования не рекомендую.

Так же, хотелось бы обратить Ваше внимание вот на что:

  • Во первых - как вы должны были заметить, мы с легкостью можем передать в наш класс объекты Session и Response. В принципе, можно передать и любой другой объект. Это открывает весьма большие возможности.
  • Во вторых - dll работает значительно быстрее, т. к. ее код откомпилирован, в отличие от обычной asp-страницы.
  • В третьих - Вся логика приложения (или сайта) становится прозрачной и легко читаемой благодаря ООП.
  • В четвертых - далее можно легко перейти к автоматической генерации страниц сайта. Например, написать несложное приложение, конвертирующее и размещающее Ваши новые материалы на сайте. Это опять-таки можно сделать на ASP и Visual Basic и получить тем самым приличную систему управления контентом.


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 08.11.2006 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office для дома и учебы 2019 (лицензия ESD)
Microsoft 365 Business Basic (corporate)
Microsoft 365 Apps for business (corporate)
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год.
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Работа в Windows и новости компании Microsoft
ЕRP-Форум. Творческие дискуссии о системах автоматизации
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100