<!--
Using Include files to Give Your Site a Consistent Look and Feel
Jon Vote, Idioma Software Inc.
03/2002
www.idioma-software.com
A very powerful feature of ASP is the ability to use Include files containing common routines that are shared among many other pages. A good use of Include files is in maintaining a consistent look and feel for your sites. Web pages are generally a Header followed by Content followed by a Footer. It is a simple matter to write a common Header routine and a common Footer routine that is called from all other ASP pages on your site. The code for the Header and Footer reside in one and only one place. If you decide to change the look and feel, you can do so by changing only the Header and/or Footer routines. You can even have a page that changes based on the time of day or month (not shown here).
The example below uses a common Header and Footer routine to give a consistent look and feel to three example ASP pages. The Header and Footer code is contained in HeaderFooter.inc along with a couple of string parsing routines used to return the name of the currently running ASP page. The Header routine makes use of this information to include or not include a link for the calling page at the left margin menu.
To install this code on your machine, please follow the instructions below. You will be creating 4 seperate files so be sure to cut and paste in the appropriate spots.
1) Create HeaderFooter.inc by copying and pasting the code between the areas marked below.
2) Create Page1.asp by copying the code indictated for Page1.asp below.
3) Create Page1.asp by copying the code indictated for Page2.asp below.
4) Create Page1.asp by copying the code indictated for Page3.asp below.
5) You should now have 4 files. Three .asp pages and an include file that is called by each. Open either Page1.asp, Page2.asp or Page3.asp.
-->
<!-- Begin code for HeaderFooter.inc -->
<% 'PutHeader - Put the standard header
Public Sub PutHeader(ByVal strCaller)
%>
<BODY BGCOLOR="005050" TEXT="#FF0066" ALINK="#FF0000" VLINK="#FF00FF" LINK="#00FFFF">
<CENTER>
<H3>Using Include Files to Give Your Site a Consistent Look and Feel</H3><BR>
</CENTER>
<Table>
<TR>
<TD BGColor="0000FF">
<UL>
<%
Response.Write "<LI>"
If strCaller = "Page1.asp" Then
Response.Write "Page1"
Else
Response.Write "<A Href=Page1.asp>Page1</A>"
End If
Response.Write "<LI>"
If strCaller = "Page2.asp" Then
Response.Write "Page2"
Else
Response.Write "<A Href=Page2.asp>Page2</A>"
End If
Response.Write "<LI>"
If strCaller = "Page3.asp" Then
Response.Write "Page3"
Else
Response.Write "<A Href=Page3.asp>Page3</A>"
End If
%>
</UL>
<TD Width="90%">
<%
End Sub
%>
<% 'PutFooter - Put the standard footer
Public Sub PutFooter()
%>
</TR>
</TABLE>
<CENTER>
<H4>This Sample Code Brought to You by
<a href="http://www.idioma-software.com">
Idioma Software Inc.
</A>
<BR>Quality Software Solutions
</H4>
</CENTER>
<%
End Sub
%>
<% 'GetCallerName - Returns the file name of the calling routine.
Public Function GetCallerName()
GetCallerName = JustTheFile(Request.ServerVariables("SCRIPT_NAME"))
End Function
%>
<% 'JustTheFile - Strips the Path name, returns only the file name.
'
'For similar path parsing routines see:
'
' Useful Routines for Parsing Path Names
' www.skycoder.com
Public Function JustTheFile(ByVal strPathName)
Dim intPos
intPos = InStrRev(strPathName, "\")
If intPos = 0 then
IntPos = InStrRev(strPathName, "/")
End If
If intPos = 0 then
IntPos = InStrRev(strPathName, ":")
End If
If intPos > 0 then
JustTheFile = Mid(strPathName, intPos+1)
Else
JustTheFile = strPathName
End If
End Function
%>
<!-- End code for HeaderFooter.inc -->
<!-- Begin code for Page1.asp -->
<%@ LANGUAGE="VBSCRIPT" %>
<% Option Explicit %>
<!--#Include File=HeaderFooter.inc -->
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual InterDev 1.0">
<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>Document Title</TITLE>
</HEAD>
<% Call PutHeader(GetCallerName()) %>
Are you still copying all of your header and footer text
from HTML page to HTML page?? Well, no more. Now with the
help of Include files and for a nominal fee of zero
dollars and zero cents YOU TOO can have it all.
Simply create a separate file, which will be
included in all your asp pages. In this routine, you
define a procedure called PutHeader that will send the
HTML for the top part of your page. Write another routine
called PutFooter that will send the HTML for the bottom part
of your page. Now you declare the include file at the top
of each page and call the PutHeader routine at the top and
the PutFooter routine at the bottom and Whoa Dude! You
have consistency!
<% Call PutFooter %>
</BODY>
</HTML>
<!-- End code for Page1.asp -->
<!-- Begin code for Page2.asp -->
<%@ LANGUAGE="VBSCRIPT" %>
<% Option Explicit %>
<!--#Include File=HeaderFooter.inc -->
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual InterDev 1.0">
<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>Document Title</TITLE>
</HEAD>
<% Call PutHeader(GetCallerName()) %>
<CENTER>
<TABLE>
<TH ColSpan=3>Here is a table just sort of for laughs.</TH>
<TR>
<TD>A<TD>B<TD>C
</TR>
<TR>
<TD>D<TD>E<TD>F
</TR>
<TR>
<TD>G<TD>H<TD>I
</TR>
<TR>
<TD>J<TD>K<TD>L
</TR>
<TR>
<TD>M<TD>N<TD>O
</TR>
<TR>
<TD>P<TD>Q<TD>R
</TR>
<TR>
<TD>S<TD>T<TD>U
</TR>
<TR>
<TD>V<TD>W<TD>X
</TR>
<TR>
<TD>Y<TD>Z<TD>:)
</TR>
</TABLE>
</CENTER>
<% Call PutFooter %>
</BODY>
</HTML>
<!-- End code for Page2.asp -->
<!-- Begin code for Page3.asp -->
<%@ LANGUAGE="VBSCRIPT" %>
<% Option Explicit %>
<!--#Include File=HeaderFooter.inc -->
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual InterDev 1.0">
<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>Document Title</TITLE>
</HEAD>
<%
Dim i
Call PutHeader(GetCallerName())
For i = 1 to 10
Response.Write "I'm not sure what to put here so I'll just leave it blank<BR>"
Next
Call PutFooter
%>
</BODY>
</HTML>
<!-- End code for Page3.asp -->