<% // get the page to display from the URL var sPage = "" + Request.QueryString ( "page" );
// make sure it's a page we allow them to view! switch ( sPage ) { case "Wider": case "COM": case "Handle404": case "Categories": case "CategoryPage": case "Columns": case "ResultsPage": case "Date": case "Contact": case "Subscribe": case "MailToList": break;
<% // ============================================ // the content of this page // ============================================ function Content ( ) { Out ( '<td width="20%"> </td>' ); Out ( '<td width="60%">' );
// create handle to FileSystemObject var ofso = Server.CreateObject ( 'Scripting.FileSystemObject' );
// each source file that we show source for could have a related // documentation file for us to display before and after the // source. for now, I use a generic header and footer file. the // 'true' tells ShowFile to pass through any HTML to the browser.
switch ( sPage ) { case "Categories": case "CategoryPage": case "Columns": Out ( '<p><img src="images/new.gif"> <a href="Categories.zip">Download</a> all the source for the category demonstration!<p>' ); break; }
ShowSource ( oFSO, sPage + '.asp', true );
// show any extra utility file(s) too switch ( sPage ) { case "Wider": ShowSource ( oFSO, 'include/SetGlobals.asp', true ); ShowSource ( oFSO, 'utils/Header.asp', true ); break;
case "Categories": case "CategoryPage": case "Columns": case "Subscribe": case "MailToList": ShowSource ( oFSO, 'utils/Database.asp', true ); break;
case "Categories": case "CategoryPage": case "Columns": ShowSource ( oFSO, 'utils/ShowCategory.asp', true ); break; }
// show the generic footer ShowFile ( oFSO, 'Generic.pst', true, false );
// we've finished with the object so free the resource oFSO = null;
Out ( '<p><center><a href="FSO.asp"><img src="images/source.gif" border=0></a></center>' );
Out ( '</td>' ); Out ( '<td width="20%"> </td>' ); } %>
utils/ShowFile.asp <% // have we advertized our mailing list yet? var bDoneLink = false;
// ============================================ // display the contents of the given file // ============================================ function ShowFile ( oFSO, sFile, bPassHTML, bShowName ) { var ForReading = 1; // var ForWriting = 2; // var ForAppending = 8;
// open asp file for reading var fFile = oFSO.OpenTextFile ( Server.MapPath( sFile ), ForReading );
// read entire file contents into variable var s = fFile.ReadAll ( );
if ( !bPassHTML ) { // replace & with & so HTML displayed, not interpreted s = s.replace ( /&/g, '&' );
// replace < with < so HTML displayed, not interpreted s = s.replace ( /</g, '<' );
// replace newline with HTML equivalent s = s.replace ( //n/g, '<br>' );
// replace tabs with 3 spaces s = s.replace ( //t/g, ' ' );
// show filename and change font color for source code s = '<font color="black">' + s + '</font>';
if ( bShowName ) s = '<h4>' + sFile + '</h4>' + s; }
Out ( s );
fFile.Close ( ); }
// ============================================ // show a source file outside the table // ============================================ function ShowSource ( oFSO, sFile, bShowName ) { // advertize our mailing list before the first source file if ( !bDoneLink ) { bDoneLink = true; Out ( '<p><b>Get informed when the source code below changes!</b> <a href="subscribe.asp">Subscribe to our mailing list.</a>' ); }
Out ( '</td>' ); Out ( '<td width="20%"> </td></tr><tr><td colspan=3 width="100%" bgcolor="#ff9900">' );