// WEBSITE.FGL, (c) 2008 by Steve Repetti, All Rights Reserved
// CLASSES: pageClass, GuestBook, gbData
LIBRARY \fgl\libs\system.flb
CLASS pageClass
PUBLIC:
local ver="1.0"
METHOD navmenu( curmenu )
local s, a, i, cnt
a = {
{ "Designer", "designer.htm", "" },
{ "Developer", "developer.htm", "" },
{ "Author", "author.htm", "" },
{ "Advocate", "advocate.htm", "" },
{ "Speaker", "speaker.htm", "" },
{ "</td><td align=center nowrap width='100%'>", "", "" },
{ "Awards", "awards.htm", "" },
{ " <img src='images/new.png' border=0> In the news", "inthenews.htm", "" },
{ "</td><td align=right nowrap width='1%'>", "", "" },
{ "Blog", "http://webtechinsight.blogspot.com/", "_blank" },
{ "Contact", "contact.htm", "" },
{ "Home", "index.htm", "" }
}
curmenu = upper( curmenu )
s = "<table border=0 class=txt width=100% cellspacing=0 cellpadding=0><tr><td nowrap width='1%'>"
cnt = len( a )
for ( i=1; i<=cnt; i++ )
if ( left( a[i,1], 1 ) == "<" )
s += a[i,1]
continue
end
if ( curmenu == upper( a[i,1] ) )
s += "<a href='" + a[i,2] + "'" + ( strempty( a[i,3] ) ? "" : " target=" + a[i,3] ) + "><u>" + a[i,1] + "</u></a>"
else
s += "<a href='" + a[i,2] + "'" + ( strempty( a[i,3] ) ? "" : " target=" + a[i,3] ) + ">" + a[i,1] + "</a>"
end
if ( ( i != cnt ) && ( left( a[i+1,1], 1 ) != "<" ) )
s += " | "
end
end
s += "</td></tr></table>"
return( s )
END
METHOD metaData( desc="", keywords="" )
local s
if ( strempty( desc ) )
desc = "Business website for Steve Repetti"
end
if ( strempty( keywords ) )
keywords = "Steve Repetti,Steven Repetti,Zude,FGL,open5G,VirtualDESK,PerfectMenu,Angie & Steve,Angie and Steve,Data Portability,Open Source,OpenSocial,SocialMix,technologist"
end
s = "<meta name=\"author\" content=\"Steve Repetti/TextPad/FGL\">\r\n" +
" <meta http-equiv='PICS-Label' content=\"(PICS-1.1 'http://www.weburbia.com/safe/ratings.htm' l r (s 0))\">\r\n" +
" <meta name=\"keywords\" content=\"" + keywords + "\">\r\n" +
" <meta name=\"description\" content=\"" + desc + "\">"
return( s )
END
METHOD header( )
local s = "<table border=0 cellspacing=0 cellpadding=0 class=txt width=100% height=100%><tr height=1%><td>" +
"<table border=0 cellspacing=0 cellpadding=0 class=smtxt width=100% height=44 bgcolor='#A0A0A0'>" +
"<tr><td colspan=2><img src='images/dot_black.gif' width=100% height=1></td></tr>" +
"<tr><td nowrap>" +
" <b>Visit me at:</b> " +
" <a href='http://www.scrapplet.com/SteveRepetti' class=nav target=_blank>Scrapplet</a> | " +
" <a href='http://www.linkedin.com/in/steverepetti' class=nav target=_blank>Linkedin</a> | " +
" <a href='http://www.facebook.com/profile.php?id=556295938' class=nav target=_blank>Facebook</a> | " +
" <a href='http://www.myspace.com/steverepetti' class=nav target=_blank>MySpace</a> | " +
" <a href='http://twitter.com/SteveRepetti' class=nav target=_blank>Twitter</a> " +
"</td><td nowrap align=right>" +
" <b>Also visit:</b> " +
" <a href='http://www.angieandsteve.com' class=nav target=_blank>Angie & Steve</a>" +
// " <a href='http://www.zude.com/64908052004083023896' class=nav target=_blank>My Profile</a> | " +
// " <a href='guestbook.htm' class=nav>Guestbook</a> " +
" " +
"</td></tr>" +
"<tr><td colspan=2><img src='images/dot_black.gif' width=100% height=2></td></tr>" +
"<tr height=20 bgcolor=white><td colspan=2> </td></tr>" +
"</table>" +
"</td></tr><tr><td align=center valign=top>";
return( s )
END
METHOD contentTop( )
local s = "<table border=0 cellspacing=0 cellpadding=0 class=txt width=780>" +
"<tr height=100%>" +
"<td>" +
"<table border=0 cellspacing=0 cellpadding=25 class=txt width=780 height=100% style='border:solid 3px #000000;' bgcolor='#FFFFFF'><tr><td>";
return( s )
END
METHOD contentBottom( )
local s = "</td></tr></table>" +
"</td>" +
"<td><img src='images/shadow_right.gif' width=12 height=100%></td>" +
"</tr>" +
"<tr height=15>" +
"<td><img src='images/shadow_bottom.gif' width=100% height=15></td>" +
"<td><img src='images/shadow_bottom_right.gif' width=12 height=15></td>" +
"</tr>" +
"</table>";
return( s )
END
METHOD copyright( )
local s = "<br><font class=smtxt><font color='#a0a0a0'>© 2008-2009 by Steve Repetti, All Rights Reserved</font></font><br><br>" +
"</td></tr></table>";
return( s )
END
METHOD source( )
return( "" )
//return( "<center>" + fglSourceLink( "smtxt" ) + "<br><br></center>" )
END
END
CLASS GuestBook
PUBLIC:
local aData
const datafile = 'c:\sdweb\home\websites\steverepetti\gb.dat'
const timezone = "ET"
const maxlen = 1024
METHOD get( )
local data, e
data = fileReadASCII( ::datafile )
try
unpack( data, self )
catch( e )
::aData = {}
end
return( 1 )
END
METHOD set( )
return( fileWriteASCII( ::datafile, pack( self ) ) )
END
METHOD add( from, msg )
local date, index
if ( len( msg ) > ::maxlen )
msg = left( msg, ::maxlen )
end
::get( )
index = len( ::aData ) + 1
date = date( "MMMM DD, YYYY" ) + " " + timetostr( time( ), 0 ) + "m " + ::timezone
::aData[index] = new( "gbData", date, from, msg )
::set( )
return( index )
END
METHOD display( maxnum=50 )
local s, cnt, i, max, obj, blog
::get( )
cnt = len( ::aData )
if ( ! cnt )
return( "No guestbook entries." )
end
max = cnt - maxnum
if ( max < 1 )
max = 1
end
s = new( "ServerBuffer" )
blog = new( "weblog" )
s += blog.init( "#acd1fa" )
for ( i=cnt; i>=max; i-- )
obj = ::aData[i]
s += blog.display( obj.date, obj.from, obj.msg )
end
return( s.value )
END
END
CLASS gbData
PUBLIC:
local date, from, msg
METHOD new( date="", from="", msg="" )
::date = date
::from = from
::msg = msg
return( 1 )
END
END