Рассмотрим 2 варианта информеров.
1. Информеры, которые загружаются с сервера как файл в графическом формате.
2. Динамически создающиеся в момент загрузки страницы.
В обоих случаях для создаия информера, - суть файла в графическом формате с какой - либо информационной нагрузкой, необходим серверный компонент создающий графические файлы. Один из лучших - ShotGraph. Разработчик - Михаил Чикалов. Возможности свободно распространимой версии более чем достаточны.
Определимся с содержанием информера. К примеру, нужен информер, который с заданной периодичностью будет отображать информацию о соотношении обращений клиентов различными броузерами (NN/IE).
Для получения данных воспользуйтесь базой описанной в предидущем примере. Поскольку серверный компонент ShotGraph умеет работать с WSH (Windows Scripting Host), то останется написать код скрипта, который с заданной периодичностью будет исполняться WSH и перезаписывать файл информера.
Код vbs - файла:
' -- Для получения данных из базы воспользуемся уже имеющимся ODBC - ресурсом
' -- (смотри предидущую статью)
Set ConUser = CreateObject("ADODB.Connection")
myDSN="DSN=MyCounter;uid="";pwd="""
ConUser.Open myDSN
Set RsUser = CreateObject("ADODB.Recordset")
' -- IE Counter --
IESQLString = "SELECT Count(T_Counter.IdCounter) AS IECount FROM T_Counter HAVING " & _ "(((Left([IDClient],1))='I'));" ' -- можно использовать Left$ --
RsUser.Open(IESQLString), ConUser
IE=RsUser("IECount")
RsUser.Close
' -- NN Counter --
NNSQLString = "SELECT Count(T_Counter.IdCounter) AS NNCount FROM T_Counter HAVING " & _ "(((Left([IDClient],1))='N'));"
RsUser.Open(NNSQLString), ConUser
NN=RsUser("NNCount")
RsUser.Close
Set RsUser = nothing
ConUser.Close
Set ConUser = nothing
' -- Создаем файл информера
Set g=CreateObject("shotgraph.image")
g.CreateImage 80,50,4
'White color
g.SetColor 0,255,255,255
'Black color
g.SetColor 1,0,0,0
'Blue color
g.SetColor 2,&h99,&h99,&hcc
g.SetBgColor 2
g.SetBkMode "TRANSPARENT"
g.CreatePen "PS_SOLID",5,1
g.Rectangle 0,0,80,50
g.CreateFont "Times New Roman",0,18,0,True,True,False,False
g.SetTextAlign "TA_LEFT","TA_TOP"
g.SetTextColor 1
g.TextOut 15,5,"IE/NN"
g.CreateFont "Times New Roman",0,20,0,True,True,False,False
g.SetTextAlign "TA_LEFT","TA_TOP"
g.SetTextColor 0
g.TextOut 15,20,IE & "/" & NN
g.JpegImage 90,0,"test.jpg"
' -- файл создан
Cкопируйте код в файл и сохраните с расширением .vbs
После исполнения данного файла в указанном Вами каталоге (в данном случае - в том каталоге, из которого был запущен vbs - файл), будет создан файл информера "test.jpg"
Вам останется указать линк в странице на него. Периодичность запуска скрипта может быть любой, тут простор для творчества. Практически каждый серьезный продукт имеет встроенный шедулер, позволяющий запускать Ваши файлы по расписанию. Из внешних шедулеров мне нравится CronNT.
Для того, чтобы генерировать информер динамически, в момент загрузки страницы можно использовать код приведенный выше, но с небольшими изменениями.
В заголовке используйте конструкцию:
<%
Response.ContentType="image/gif"
Set g=Server.CreateObject("shotgraph.image")
' -- код --
' -- код --
img=g.GifImage(-1,1,"")
Response.BinaryWrite(img)
%>