GetInfo.Ru – Компьютерная библиотека
Последние поступления
Как выбрать систему управления базы данных
Базы данных03/09/14
Этапы загрузки UNIX (в схеме)
Unix27/03/12
Gatewall Antispam: тотальный контроль электронной почты
Спам21/04/11
Мастер-класс: создаем Интернет-магазин (Часть 1)
Обзоры ПО20/04/11
CorelDRAW Graphics Suite X5: Что нового?
Обзоры ПО20/07/10
Добавить статью
Самые читаемые материалы
Программирование на ASP. Введение или первый урок.(15163)
Отображение картинки из БД напрямую - создание своего HttpHandler(13152)
Использование шаблонов дизайна в ASP .NET(11999)
Кеширование ASP.NET страниц(11433)
Пакетная компиляция в ASP.NET(11088)
Всего статей: 793Всего авторов: 364Подразделов: 47Добавлено за сутки: 0
Статьи  СТАТЬИ Форум  ФОРУМ Рейтинг  РЕЙТИНГ Поиск  ПОИСК Контакты  КОНТАКТЫ
» Главная » ASP » Visual Basic + ASP. Использование шаблонов.

Visual Basic + ASP. Использование шаблонов.


Олег Баша
programming@olevarty.ru

Платформа: 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 TEMPLATE_PATH As String


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 и получить тем самым приличную систему управления контентом.
Оригинал статьи: www.olevarty.ru

 
26.12.2003
Версия для печати Версия для печати Запомнить ссылку Запомнить ссылку
Ваша оценка:  1   2   3   4   5     

 О проектеПерепечаткаАвторамПартнерыО нас пишут
Наверх
©2003—2007. GETINFO.RU. ВСЕ ПРАВА ЗАЩИЩЕНЫ.