Let's take a look at a real life example, using Hyperseek, to see how the PLUGIN System works
Consider the following HTML Template ....
<HTML>
<HEAD>
<!-- PLUGIN:META -->
</HEAD>
<BODY>
<TABLE BORDER=0 WIDTH=80% ALIGN="CENTER">
<TR>
<TD VALIGN="TOP" COLSPAN=2>
<!-- PLUGIN:MENU -->
</TD>
</TR>
<TR>
<TD VALIGN="TOP">
<!-- PLUGIN:CATEGORIES -->
</TD>
<TD VALIGN="TOP">
<!-- PLUGIN:BODY -->
</TD>
</TR>
<TR>
<TD VALIGN="TOP" COLSPAN=2>
<!-- PLUGIN:SEARCH -->
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
When the application is run, using this template, the program will parse the template, looking for your plugin tags. When it finds them, it executes the proper functions and routines associated with each plugin it finds. It will then replace the PLUGIN tag in your template with the resulting HTML code from the functions it ran (merging the 2), and then send the merged template to your visitors browser.
Looking at the example above. Assume that your visitor is using Hyperseek, and has browsed to the "Internet:Webmasters" category. Once merged, the actual HTML that the program generates from your template, using the plugins is below:
<HTML>
<HEAD>
<!-- PLUGIN:META -->
<TITLE>JJS CGI and Perl Resources: Hyperseek Search Engine, iforums, jackhammer</TITLE>
<META NAME="description" CONTENT="the best CGI Collection ever assembled.">
<META NAME="keywords" CONTENT="bbs, forums, messaging, search engine, search engine">
</HEAD>
<BODY>
<TABLE BORDER=0 WIDTH=80% ALIGN="CENTER">
<TR>
<TD VALIGN="TOP" COLSPAN=2>
<!-- PLUGIN:MENU -->
<A HREF="/search/search.php">Home</A> <B>></B>
<a href="/search/search.php/Internet/">Internet</a>
<B> > </B>Webmasters
</TD>
</TR>
<TR>
<TD VALIGN="TOP">
<!-- PLUGIN:CATEGORIES -->
<TABLE BORDER=0 CELLSPACING=6 WIDTH="99%">
<TR>
<TD VALIGN="top" ALIGN="left">
<FONT FACE="Tahoma,Verdana,Arial,Helvetica" SIZE="2">
<A HREF="/search/search.php/Design/">Design</A> <BR>
<A HREF="/search/search.php/Financial/">Financial</A> <BR>
<A HREF="/search/search.php/News/">News</A> <BR>
</FONT>
</TD>
<TD VALIGN="top" ALIGN="left">
<FONT FACE="Tahoma,Verdana,Arial,Helvetica" SIZE="2">
<A HREF="/search/search.php/Promotion/">Promotion</A> <BR>
<A HREF="/search/search.php/Users/">Users</A> <BR>
<A HREF="/search/search.php/Webmasters">Webmasters</A><BR>
</FONT>
</TD>
</TR>
</TABLE>
</TD>
<TD VALIGN="TOP">
<!-- PLUGIN:BODY -->
<B>Results 1 - 2 of at least 2</B>
<BR>
<UL>
<LI> <A HREF="/cgi-bin/hyperseek.cgi?ID=899723703">
A Privacy Guarantee for Web Businesses</A> <BR>
HonorWeb.com announces the opportunity for Internet businesses to
improve self-regulation efforts, build their customer confidence,
increase their image and electronic commerce. Become an Honor Role Member
using a Privacy Guarantee.
<BR><LI>
<LI> <A HREF="/cgi-bin/hyperseek.cgi?ID=899721695">
Affiliate Programs from BBLMEDIA.COM</A> <BR>
Free referral opportunities for website owners to earn commissions
advertising web based businesses. Generate revenue through your website.
<BR></LI>
</UL>
</TD>
</TR>
<TR>
<TD VALIGN="TOP" COLSPAN=2>
<!-- PLUGIN:SEARCH -->
<FORM METHOD=POST ACTION="/cgi-bin/hyperseek.cgi" NAME="SearchForm">
Look <INPUT NAME="Terms" MAXLENGTH=800 SIZE=15 VALUE="">
<SELECT NAME="howmuch">
<OPTION VALUE="ALL" SELECTED>All of My Search Engine
<OPTION VALUE="Internet:Webmasters">This Category Only
<OPTION VALUE="RESULTSET">Within your results
</SELECT>
<INPUT TYPE=submit VALUE="Go">
</FORM>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
So, based on the basic HTML that you supply in the template, and the placement of your plugins, Hyperseek is able to draw a screen for your visitor exactly as you envisioned it, and with all of the proper data, links, etc. that it needs in order to function properly.