| WebTools 
Templates: Page 2  3. 
        INLINE/INPERL templates: Description and reference 
 WebTools has unique capability to manage templates with build-in 
        functions (INLINE/INPERL), also it has "xreader" module that 
        can be used directly in your WebTools scripts. With out any doubts, "templates" 
        are realy important part of WebTools, so this doucument intend to be comprehensive 
        source to learn how to work with it!
 
 Generally INLINE/INPERL templates have exactly same 
        functions as normal xreader has! But INLINE/INPERL templates are more 
        comfortable and easer to use.
 
 NOTE 1: I want to make one stipulation: INLINE and INPERL terms mean and 
        do absolutly same things, but INPERL is used in Perl code and INLINE is 
        used only in HTML code! From now on I will use term INLINE instead of 
        INLINE/INPERL.
 
 NOTE 2: There is small difference between INLINE and INPERL. Result of 
        INLINE template will be pushed directly into HTML code, where template 
        itself exist! From another hand INPERL return it's result into default 
        variable $_ Please keep this in your mind!
 
 INLINE syntax:
 
 
 <!--©INLINE©> 
        inline functions </©INLINE©-->
 
 OR
 
 <!--©INPERL©> 
        inline functions </©INPERL©-->
 
 
 <!--©INLINE©></©INLINE©--> is used 
        to excape HTML (and repectively PERL code), so code between these "tags" 
        will be parsed from WebTools engine.
 
 Supported inline functions are:
 
 <§TEMPLATE:number_of_templates_variable:$variable:§>
 
 <XREADER:number_of_template_in_file:template_file.jhtml:$first_param,$second_param,...>
 
 <S©L:number_of_SQL_query:"SQL 
        query;":used_query:row_number:col_number:should_be_printed?:S©L>
 
 <S©LVAR:number_of_template_variable:S©L>
 
 <MENUSELECT:$html_source:"SQL 
        query":$ref_DB:$ref_TEMPLATE:$ref_HTML:$dbh:>
 
 If prefer you can use 
        alternative syntax for all templates!
 
 Supported inline functions with alternative syntax (in any 
        other aspect they are same):
 
 %%TEMPLATE:number_of_templates_variable:$variable:%%
 
 %%XREADER:number_of_template_in_file:template_file.jhtml:$first_param,$second_param,...%%
 
 %%SQL:number_of_SQL_query:"SQL 
        query;":used_query:row_number:col_number:should_be_printed?:SQL%%
 
 %%SQLVAR:number_of_template_variable%%
 
 %%MENUSELECT:$html_source:"SQL 
        query":$ref_DB:$ref_TEMPLATE:$ref_HTML:$dbh:%%
 
 I don't like to make analogy between "normal" templates described 
        in previuos page because thay practicaly is absolutely equal. I just think 
        to show you an example that will help you to understand difference.
 
 At last I forgot to introduce new feature that will be useful. This "function" 
        include file in your perl/html file independ of it's contain (it can be 
        perl code or html... no matter!)
 INCLUDE syntax:
 
 <!--©INCLUDE©file.ext©-->
 
 or alternative syntax:
 
 <!--%INCLUDE%file.ext%-->
 
 Note that you should not use INLINE/INPERL tag for that function!!! (For 
        more info see example below)
 
 To see full description of INLINE/INPERL syntax and comparison 
        between them and "normal" templates click HERE.
 
 4. 
        INLINE/INPERL templates: How to use it?
 
 All INLINE and INPERL templates are located in our pretty perl/html (as 
        we use to refer to them: WebTools perl code) without care whether 
        database is connected or not! WebTools will care about evry insignificant 
        detail in this form of templates. Just watch out!
 
 ----- 
        Please save this file as: jhtml/inline.jhtml but remove this line -----
 Any information here is comment till begining separator
 <©N®1®1®®©>
 <BR>Are you male? <input type="radio" name="Male" 
        value="Y" <§TEMPLATE:1§>>Yes
 <input type="radio" name="Male" value="N" 
        <§TEMPLATE:2§>>No
 <input type="radio" name="Male" value="-" 
        <§TEMPLATE:3§>>Unknown :-)
 <©>
 ----- 
        This is end of file. Please remove this line -----
 
 ----- 
        Please save this file as: htmls/include.whtml but remove this line -----
 $color 
        = 'red';
 ----- This is end of file. Please remove this line -----
 
 ----- 
        Please save this file as: htmls/inline.whtml but remove this line -----
 <!-- 
        PERL: Hide Perl`s script
 <?perl
 Header(type=>'content',val=>'text/html; charset=Windows-1251');
 <!--©INCLUDE©include.whtml©--> # That will include 
        file with color definitions!
 ?>
 //-->
 <HTML>
 <HEAD>
 <TITLE>INLINE Example</TITLE>
 </HEAD>
 <BODY TEXT="white" BGCOLOR="black" LINK="red"
 VLINK="<!--©INLINE©><§TEMPLATE:7:$color:§></©INLINE©-->">
 <FONT FACE="Verdana" SIZE=2><B>
 <?perl
 print "Example begin!<BR>\n";
 <!--©INPERL©><XREADER:1:inline.jhtml:></©INPERL©-->
 $source = $_; # Result is in $_ !!!
 @DB_VALUES = ("Y","N","-"); 
        #Possible values that SQL can return!
 @TEMPLATE_NUMBERS = (1,2,3); #Number of templates in 
        HTML
 @HTML_VALUES = ("checked",""); #Possible 
        states of "check box" tag!
 $ref1=\@DB_VALUES; #We need references to these arrays!
 $ref2=\@TEMPLATE_NUMBERS;
 $ref3=\@HTML_VALUES;
 # $sqlq = "SELECT menuState FROM menu_table WHERE 
        menu= 'gender';";
 $sqlq = "!Y"; # That should be SQL query but 
        we put "!" in the begining
 # so we simulate query that select "Y" state!
 $dbh = undef; #If DB handler is invalid, WebTools will 
        connect DB for you!
 ?>
 </B>Also see state of check box:<BR>
 <!--©INLINE©><MENUSELECT:$source:$sqlq:$ref1:$ref2:$ref3:$dbh:></©INLINE©-->
 <BR> My work possition is:
 <!--©INLINE©><S©L:1:"select 
        USER from webtools_users where id=0;":1:1:1:1:S©L></©INLINE©-->
 </FONT>
 </BODY>
 </HTML>
 ----- 
        This is end of file. Please remove this line -----
 
 To run this script please save and upload these files in your webtools 
        directory (in jhtml and htmls), open one browser and write there follow 
        url:
 
 http://your_server/cgi-bin/your_webtools/process.cgi?file=inline.whtml
 
 where: your_server is host where you 
        keep WebTools and where you can run CGI scripts,
 your_webtools 
        is directory where you keep WebTools files.
  I 
hope everything works fine, but please learn evry line of this code and try to 
explain for you how it works :-)
 Best regards!
 
 www.proscriptum.com
 
 Author: Julian Lishev (julian@proscriptum.com)
 
 |