/QIBM/ProdData/HTTP/Public/HTTPSVR/Sample_search.n

BoTTom |
%{****************************************************************************
<!--****************************************************************************-->
<!--                                                                            -->
<!-- Source File Name: sample_search.ndm                                        -->
<!--                                                                            -->
<!-- Source File Description:                                                   -->
<!--                                                                            -->
<!--  This source file contains code for a sample net.data macro to use for     -->
<!--  IBM WebServer Search engine                                               -->
<!--                                                                            -->
<!--                                                                            -->
<!--****************************************************************************-->
<!-- IBM HTTP Server for AS/400                                                 -->
<!-- Version 4 Release 4                                                        -->
<!--                                                                            -->
<!-- 5769-DG1   (C) COPYRIGHT International Business Machines Corp., 1998.      -->
<!-- All Rights Reserved                                                        -->
<!-- Licensed Materials - Property of IBM                                       -->
<!--                                                                            -->
<!-- US Government Users Restricted Rights - Use, duplication or                -->
<!-- disclosure restricted by GSA ADP Schedule Contract with IBM Corp.          -->
<!--****************************************************************************-->
<!--                       LICENSE AND DISCLAIMER                               -->
<!--                   This material contains html source code.                 -->
<!--     IBM grants you a nonexclusive license to use, execute, display,        -->
<!--  reproduce, distribute and prepare derivative works of this sample code.   -->
<!--   The sample code has not been thoroughly tested under all conditions.     -->
<!--       IBM, therefore, does not warrant or guarantee its reliability,       -->
<!--  serviceablity, or function. All sample code contained herein is provided  -->
<!--  to you "AS IS." ALL IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO THE  -->
<!--    IMPLIED WARRANTIES OF MERCHANTABILLITY AND FITNESS FOR A PARTICULAR     -->
<!--                  PURPOSE, ARE EXPRESSLY DISCLAIMED.                        -->
  ****************************************************************************%}
%{ CHANGE - Added DTW_PAD_PGM_PARMS="NO" to override INI file                 %}
%{ CHANGE - Added field support of search                                     %}
%{ CHANGE - Add previous button                                               %}
%{ CHANGE - Add search within search results                                  %}
%{ CHANGE - Add sort search results on ranking (default), title, date.        %}
%{ Note: This macro has defaults set appropriately for the sample Recipes index.
   The Recipes index must be built by the webserver administrator from the recipe
   directory using the Webserver Search Administration forms. Information for building
   the Recipes index is as follows:
   Index Name: Recipes
   Index Directory: /QIBM/UserData/HTTPSVR/index


|
   Directory containing recipes (html): /QIBM/ProdData/HTTP/Public/HTTPSVR
   Mapping rules file name (optional):  /QIBM/UserData/HTTPSVR/index/Recipes.MAP_FILE
 
   The mapping rules file should be built based on the webserver instance that
   will be used to run this macro. If used, the mapping rules file name should be entered
   in Step 1 below.
 
   To use this macro, copy it to your own directory (e.g. /mydir/macros/mysearch.ndm) and
   modify it using the directions supplied in Steps 1, 2, and 3 below. Your webserver
   instance must be configured to run Net.Data. To execute the macro you would enter a
   URL such as the following:
      http://myserver.com/cgi-bin/db2www/mydir/macros/mysearch.ndm/simple
%}
 
%{****************************************************************************
  ***************************** Define Section *******************************
  ****************************************************************************%}
%{The following include file contains definitions of all Webserver Search return code
  messages. Do not remove this statement. You can change the MRI29xx for your language feature. %}
%include "/QIBM/ProdData/HTTPSVR/MRI2924/Macro/qzhasrch.nds"
 
%DEFINE {
%{Pass parameters as null-terminated - do not change this%}
DTW_PAD_PGM_PARMS ="NO"
 
%{ ---- STEP 1 -----%}
%{ The following 3 statements must be set appropriately for the index being searched %}
idxIndexName = "Recipes"
idxDir = "/QIBM/UserData/HTTPSVR/index"
mapFile=""
%{ ---- End of Step 1 ----%}
 
idxRC = ""
frmCaseSensitive="NO"
frmStemming = "NO"
frmFieldName="BODY"
LastDoc="0"
PGM_Name = "/QSYS.LIB/QHTTPSVR.LIB/QZHASRCH.PGM"
ListTable = %TABLE
ResultsTable=%TABLE
FieldsTable=%TABLE
%{ Columns in ResultsTable %}
resDocNum = "1"
resDocURL = "2"


|
resDocOccur = "3"
resDocRating = "4"
resDocTitle = "5"
resDocText = "6"
resDocSize = "7"
resDocModified = "8"
frmSearchType = ""
frmSortOrder=""
frmAscDesc=""
NewString=""
String2 = ""
BackupString2=""
FromSearchForm = "FALSE"
%}
 
%{****************************************************************************
  *********************** Function Definition Section ************************
  ****************************************************************************%}
 
%{ ************************************************************
    Function: search_index     Language Environment: DIRECTCALL
    Description:  Search an index
    Parameters to program:
                IN
                           Request_Type  Search
                           Query_Type - simple or query
                           Index_name - name of the index
                           Index_dir - directory to store index files
                           SearchString - String containing search terms
                           StartNumber - Return documents starting at...
                           MaxCount - Maximum # occurrences/hits
                           Case_Sensitive -'yes' or 'no'
                           Precision - Level of matching desired '1' - '100' percent
                           Stemming - Stemming desired ('yes', 'no')
                           Logical - Logical operator between search terms ('AND', 'OR', 'BLOCK')
                           SearchPreference - 'wildcard' or 'fuzzy'
                           Map_File - Full path name of file containing mapping rules
                OUT        DocumentHits  - Number of document hits
                           Occurrences - Number of occurrences matching search string
                           DocumentsReturned - Number of documents returned
                           Results - Table to contain results
                           Return_Code
               IN          Field - The field to search on. The default is to search all of the docum
                           Order - Sort ascending or descending


|
 
    Returns: N/A
   ************************************************************ %}
%FUNCTION(DTW_DIRECTCALL)
     search_index(IN CHAR(6)      Request_Type,             %{ 'Search'              %}
                     CHAR(8)      Query_Type,               %{ 'simple' or 'query'   %}
                     CHAR(10)      Index_Name,              %{ Name of the index     %}
                     CHAR(256)   Index_Dir,                 %{ Directory of the index files %}
                     CHAR(256)   SearchString,              %{ String containing search terms %}
                     CHAR(6)      StartNumber,              %{ Return documents starting at...   %}
                     CHAR(6)      MaxCount,                 %{ Maximum # occurrences/hits %}
                     CHAR(4)      Case_Sensitive,           %{ 'yes' or 'no'             %}
                     CHAR(3)      Precision,                %{ Level of matching desired '1' - '100'
                     CHAR(4)      Stemming,                 %{ Stemming desired ('yes', 'no') %}
                     CHAR(6)      Logical,                  %{ Logical operator between search terms
                     CHAR(8)      SearchPreference,         %{ 'wildcard' or 'fuzzy' %}
                     CHAR(256)   Map_File,                  %{ Full path name of file containing map
                OUT  CHAR(6)      DocumentHits,             %{ Number of document hits %}
                     CHAR(6)      Occurrences,              %{ Number of occurrences matching search
                     CHAR(6)      DocumentsReturned,        %{ Number of documents returned %}
                     DTWTABLE     Results,                  %{ Table to contain results %}
                     CHAR(8)      Return_Code,              %{ Return code %}
                IN   CHAR(30)    Field,                     %{ Field selected %}
                     CHAR(30)    SortBy,                    %{ Sort by rank, title, date %} %{ Ascen
                     CHAR(30)    Order ){
 %EXEC{ $(PGM_Name)
 %}
 %report{%}
%}
 
%{ Retrieve fields enabled for this index %}
 
%FUNCTION(DTW_DIRECTCALL)
     get_fields   (IN    CHAR(12)    Request_Type,            %{ 'Fields               %}
                         CHAR(10)    Index_Name,              %{ Name of the index     %}
                         CHAR(256)   Index_Dir,               %{ Directory of the index files %}
                     OUT DTWTABLE    FieldsList,              %{ Table to hold fields %}
                         CHAR(8)     Return_Code){
     %EXEC{ $(PGM_Name)
   %}
 %REPORT {%}
%}
 
%{ ************************************************************


|
    DEFINE block: defsrchtop
    Description:  Reuseable form for top section
   ************************************************************ %}
%DEFINE defsrchtop = {
<html>
<head>
<title>Search for documents</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
   <tr>
      <td><h2>Search for documents</h2></td>
 
   </tr>
</table>
%}
 
%DEFINE defsrchtop2={
<html>
<head>
<title>Webserver Search Results</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
   <tr>
      <td><h2>Webserver Search Results</h2></td>
 
   </tr>
</table>
%}
 
%{ ************************************************************
    HTML block: simple
    Description:  Display simple search form
   ************************************************************ %}
 
%HTML (simple) {
 
$(defsrchtop)
<script language="JavaScript">
function validateGtrsrch(form) {
 
  if (form.frmSearchString.value=="") {
         alert("$(GEN5131)")


|
         form.frmSearchString.focus()
         return false
      }
 
 
 return true
}
</script>
 
<FORM NAME="search" ACTION="output" METHOD="post" onSubmit="return validateGtrsrch(this)">
<INPUT TYPE="hidden" NAME="frmQueryType" VALUE="SIMPLE">
<INPUT TYPE="hidden" NAME="frmIndexName" VALUE="$(idxIndexName)">
<INPUT TYPE="hidden" NAME="frmDir" VALUE="$(idxDir)">
<INPUT TYPE="hidden" NAME="frmMapFile" VALUE="$(mapFile)">
<INPUT TYPE="hidden" NAME="frmStartNum" VALUE="1">
<INPUT TYPE="hidden" NAME="frmPreference" VALUE="wildcard">
%{ Add additional hidden fields here for any input fields removed below %}
 
 
@DTW_ASSIGN(frmDir,idxDir)
@DTW_ASSIGN(frmIndexName,idxIndexName)
 
%{Retrieve the fields enabled for this index%}
@DTW_ASSIGN(frmRequest,"FIELDS")
@get_fields(frmRequest,frmIndexName, frmDir, FieldsTable,idxRC)
 
<ul>
<li>Phrases with embedded blanks must be surrounded by double quotes.
<li>Terms with embedded double quotes should include an additional pair of imbedded double quotes.
<li>Wildcard characters are * for zero or more characters or ? for a single character.
</ul>
 
<table>
<tr><td><b>Enter search terms :</b></td>
 
%{ Remove the following line if advanced search should not be made available to user %}
<td><a href="advanced?frmIndexName=$(frmIndexName)&frmDir=$(frmDir)">Advanced search</a></td>
</tr>
<tr><td><INPUT TYPE="text" SIZE=50 NAME="frmSearchString" VALUE=""></td>
<td><INPUT TYPE="submit" NAME="Submit" VALUE="Search" ></td></tr>
</table>
 
%{ ---- Step 2 ---- %}
%{ All or portions of the following fields and text can be changed or removed.


|
   Decide which of the following fields to display on the form and remove
   the ones that you do not want the user to modify. For each field removed,
   a hidden field with the same name must be defined above with the
   appropriate default VALUE set. The field names are: frmCaseSensitive,
   frmStemming, frmLogical, frmPrecision, frmMaxCount,and frmFieldName (new) %}
 
 
<p><INPUT TYPE="checkbox" NAME="frmCaseSensitive" VALUE="yes">Case sensitive search
<br><INPUT TYPE="checkbox" NAME="frmStemming" VALUE="yes">English stemming
<br>
<br>
%{ Show dropdown of sort order %}
<b>Sort results by:</b>
<table>
<tr>
   <td>
     <select NAME="frmSortOrder">
       <option VALUE="SORT_BY_RANK" SELECTED>Ranking
       <option VALUE="SORT_BY_TITLE" >Title
       <option VALUE="SORT_BY_DATE" >Date
     </select>
   </td>
   <td>
     <select NAME="frmAscDesc">
      <option VALUE="DESCENDING" SELECTED>Descending order
      <option VALUE="ASCENDING" >Ascending order
     </select>
   </td>
</tr>
</table>
<br>
%{Show dropdown of fields if any are enabled - new %}
<b>Select the scope of the search:</b>
           <select NAME="frmFieldName">
            @DTW_ASSIGN(optValue,"BODY")
            <option VALUE="$(optValue)" SELECTED>Search all of the document
            @dtw_assign(loopStop, @DTW_TB_rROWS(FieldsTable))
            @dtw_assign(loopCounter, "1")
            %WHILE (loopCounter <= $(loopStop)) {
              @DTW_ASSIGN(optValue, @DTW_TB_rGETV(FieldsTable, $(loopCounter), "1"))
 
              %IF(optValue=="TITLE_TAG")
                <option VALUE="$(optValue)">Search on Title
              %ENDIF


|
              %IF(optValue=="META_ALL_TAGS")
                <option VALUE="$(optValue)">Search on all strings in META tags
              %ENDIF
              %IF(optValue=="META_ABSTRACT_TAG")
                <option VALUE="$(optValue)">Search on META tag NAME = Abstract
              %ENDIF
              %IF(optValue=="META_AUTHOR_TAG")
                <option VALUE="$(optValue)">Search on META tag NAME = Author
              %ENDIF
              %IF(optValue=="META_DESCRIPTION_TAG")
                <option VALUE="$(optValue)">Search on META tag NAME = Descripton
              %ENDIF
              %IF(optValue=="META_KEYWORD_TAG")
                <option VALUE="$(optValue)">Search on META tag NAME = Keywords
              %ENDIF
              @dtw_Add(loopCounter, "1", loopCounter)
            %}
          </select>
<p><b>Select the operator to define the relationship between terms in the search string</b>:
<br>   <table><tr><td>
      <INPUT TYPE="radio" NAME="frmLogical" VALUE="AND" CHECKED><b>AND: </b>Find documents containin
      <br><INPUT TYPE="radio" NAME="frmLogical" VALUE="OR"><b>OR: </b>Find documents containing at l
      <br><INPUT TYPE="radio" NAME="frmLogical" VALUE="BLOCK"><b>SAME SENTENCE: </b>Find documents w
      </td></tr></table>
<p><b>Precision of search terms</b>
<table>
  <tr><td colspan=2><INPUT TYPE="radio" NAME="frmPrecision" VALUE="100" CHECKED>Find the exact match
  <br><INPUT TYPE="radio" NAME="frmPrecision" VALUE="60">Find a fuzzy or close match</td></tr>
</table>
 <table>
<tr><td>
<b>Number of search results to return :</b></td><td> <INPUT Type="text" NAME="frmMaxCount" SIZE="2"
</tr>
</table>
%{ ---- End of Step 2 ---- %}
 
</FORM>
</BODY>
</HTML>
%}
 
%{ ************************************************************
    HTML block: advanced
    Description:  Display advanced boolean search form


|
   ************************************************************ %}
 
%HTML (advanced) {
 
$(defsrchtop)
<script language="JavaScript">
function validateGtrsrch(form) {
 
 if (form.frmSearchString.value=="") {
         alert("$(GEN5131)")
         form.frmSearchString.focus()
         return false
      }
 
 
 return true
}
</script>
%{Retrieve the fields enabled for this index%}
@DTW_ASSIGN(frmRequest,"FIELDS")
@get_fields(frmRequest,frmIndexName, frmDir, FieldsTable,idxRC)
 
 
<FORM NAME="search" ACTION="output" METHOD="post" onSubmit="return validateGtrsrch(this)">
<INPUT TYPE="hidden" NAME="frmQueryType" VALUE="QUERY">
<INPUT TYPE="hidden" NAME="frmIndexName" VALUE="$(idxIndexName)">
<INPUT TYPE="hidden" NAME="frmDir" VALUE="$(idxDir)">
<INPUT TYPE="hidden" NAME="frmMapFile" VALUE="$(mapFile)">
<INPUT TYPE="hidden" NAME="frmStartNum" VALUE="1">
<INPUT TYPE="hidden" NAME="frmPreference" VALUE="wildcard">
<INPUT TYPE="hidden" NAME="frmLogical" VALUE="AND">
<INPUT TYPE="hidden" NAME="frmPrecision" VALUE="100">
<INPUT TYPE="hidden" NAME="frmCaseSensitive" VALUE="yes">
<INPUT TYPE="hidden" NAME="frmStemming" VALUE="no">
<INPUT TYPE="hidden" NAME="frmFieldName" VALUE="$(frmFieldName)">
 
<ul>
<li>Terms must be separated by a boolean operator (<b>AND</b> or <b>*</b>,<b>OR</b> or <b>+</b>,<b>
<li>Parentheses may be used to group operations, for example,(<i>disk</i><b> OR</b> <i>DASD</i>) <b>
<li>Phrases with embedded blanks must be surrounded by double quotes.
<li>Terms with embedded double quotes should include an additional pair of imbedded double quotes.
<li>Wildcard characters are <b>*</b> for zero or more characters or <b>?</b> for a single character.
<li>Attributes are <b>word[precision or matching level (%nn) ][scope of search or field (@Fn)][case_
the Title of the document.


|
 
<li>Fields enabled for this index:
 @dtw_assign(loopStop, @DTW_TB_rROWS(FieldsTable))
 
<ul>
%IF(loopStop=="0")
   <li>None
</ul>
%ELSE
<ul>
 
 
            @dtw_assign(loopCounter, "1")
 
            %WHILE (loopCounter <= $(loopStop)) {
              @DTW_ASSIGN(optValue, @DTW_TB_rGETV(FieldsTable, $(loopCounter), "1"))
 
              %IF(optValue=="TITLE_TAG")
                <li>@F1 -  Search on Title
              %ENDIF
              %IF(optValue=="META_ALL_TAGS")
                <li>@F2 -  Search on all strings in META tags
              %ENDIF
              %IF(optValue=="META_ABSTRACT_TAG")
                <li>@F3 -  Search on META tag NAME = Abstract
              %ENDIF
              %IF(optValue=="META_AUTHOR_TAG")
                <li>@F4 -  Search on META tag NAME = Author
              %ENDIF
              %IF(optValue=="META_DESCRIPTION_TAG")
                <li>@F5 -  Search on META tag NAME = Description
              %ENDIF
              %IF(optValue=="META_KEYWORD_TAG")
                <li>@F6 -  Search on META tag NAME = Keywords
              %ENDIF
              @dtw_Add(loopCounter, "1", loopCounter)
            %}
</ul>
%ENDIF
</ul>
 
<table>
<tr><td><b>Enter search terms :</b></td>
<td><a href="simple?frmIndexName=$(frmIndexName)&frmDir=$(frmDir)">Simple search</a></td></tr>


|
<tr><td><INPUT TYPE="text" SIZE=50 NAME="frmSearchString" VALUE=""></td>
<td><INPUT TYPE="submit" NAME="Submit" VALUE="Search" ></td></tr>
</table>
%{ Show dropdown of sort order %}
<b>Sort results by:</b>
<table>
<tr>
   <td>
     <select NAME="frmSortOrder">
       <option VALUE="SORT_BY_RANK" SELECTED>Ranking
       <option VALUE="SORT_BY_TITLE" >Title
       <option VALUE="SORT_BY_DATE" >Date
     </select>
   </td>
   <td>
     <select NAME="frmAscDesc">
      <option VALUE="DESCENDING" SELECTED>Descending order
      <option VALUE="ASCENDING" >Ascending order
     </select>
   </td>
</tr>
</table>
<br>
 
</table>
 
 
 
<p>Number of search results to return : <INPUT Type="text" NAME="frmMaxCount" SIZE="2" MAXLENGTH="2"
 
 
</FORM>
</BODY>
</HTML>
%}
 
%{ ************************************************************
    HTML block: output
    Description:  Display results of search
   ************************************************************ %}
 
%HTML (output) {
<script language="JavaScript">
function validateGtrsrch(form) {


|
 
 if (form.frmSearchString.value=="") {
         alert("$(GEN5131)")
         form.frmSearchString.focus()
         return false
      }
 
 
 return true
}
</script>
 
%{ Set up for search in results %}
 
%IF(frmSearchType=="NEW_SEARCH"||frmSearchType=="")
  @DTW_ASSIGN(String2,frmSearchString)
  @DTW_ASSIGN(BackupString2,"")
%ELSE
  %IF (FromSearchForm == "TRUE")
   %{ save the previous query to restore in case of error %}
   @DTW_ASSIGN(BackupString2,String2)
   %{ check if advanced search %}
   %IF(frmQueryType=="QUERY")
      %{ Add ( ) to new string %}
     @DTW_ASSIGN(NewString,frmSearchString)
     @DTW_CONCAT("(",NewString,NewString)
     @DTW_CONCAT(NewString,")",NewString)
     %{ Add ( ) to old string %}
     @DTW_CONCAT("(",String2,String2)
     @DTW_CONCAT(String2," ) AND $(NewString)",String2)
     %{ Add ( ) to new string %}
   %ELSE
     %{ simple search - just add term since AND, OR, etc. is set on first form %}
     @DTW_CONCAT(String2," $(frmSearchString)",String2)
   %ENDIF
  %ENDIF
 
%ENDIF
 
%{ NOTE - frmSearchString parameter changed to String2. This call moved outside of form. %}
@search_index("Search", frmQueryType, frmIndexName, frmDir, String2, frmStartNum, frmMaxCount, frmCa
 
%{ ---- Step 3 ---- %}
%{ Modify the following section to display the search results as you see fit.


|
   The following Net.Data variables can be used anywhere on the page or left off completely:
    Variables for the page:
      $(Hits) = Number of documents containing search terms
      $(Occurrences) = Number of occurrences of the search terms in all documents
      $(DocsReturned) = Number of documents returned on this page
    Variables in ResultsTable for each document:
      resDocNum = Ordinal number of the document returned
      resDocURL = URL used to display the document
      resDocOccur = Number of occurrences of the search words in the document
      resDocRating = The document's rating
      resDocTitle = The document's title
      resDocText = The first 150 characters in the document
      resDocSize = The size of the document in bytes
      resDocModified = The date the document was last modified
%}
 
%{ check for syntax errors on the search string and return to previous string on error %}
 
%IF (idxRC!="TSE0"&& idxRC!="TSE73")
   %{ There is a syntax error or some other error%}
   @DTW_ASSIGN(String2,BackupString2)
%ENDIF
 
<FORM NAME="searchAgain" ACTION="output" METHOD="post" onSubmit="return validateGtrsrch(this)">
 
%IF(frmQueryType=="QUERY")
 <b>$(tAdvanced)</b>
%ELSE
 <b>$(tSimple)</b>
%ENDIF
<p>
<table border="2" bgcolor="#EBF2FF">
<tr>
<td colspan="2"><b>Enter search terms:</b></td>
 
</tr>
<tr>
<td><INPUT TYPE="text" SIZE=40 NAME="frmSearchString" VALUE="@DTW_rHTMLENCODE(frmSearchString)"></td
<td><INPUT TYPE="submit" NAME="Submit" VALUE="Search"></td>
</tr>
</table>
 
<table border="1" bgcolor="#C9DBFF">
<tr>


|
%IF(frmSearchType==""|| frmSearchType=="NEW_SEARCH")
 
 
 <td><INPUT TYPE="radio" NAME="frmSearchType" VALUE="NEW_SEARCH" CHECKED>New search</td>
 <td><INPUT TYPE="radio" NAME="frmSearchType" VALUE="SEARCH_IN_RESULTS">Search in results</td>
%ELSE
 <td><INPUT TYPE="radio" NAME="frmSearchType" VALUE="NEW_SEARCH" >New search</td>
 <td><INPUT TYPE="radio" NAME="frmSearchType" VALUE="SEARCH_IN_RESULTS" CHECKED>Search in results</t
%ENDIF
</tr>
</table>
 
<INPUT TYPE="hidden" NAME="frmRequest" VALUE="$(frmRequest)">
<INPUT TYPE="hidden" NAME="frmQueryType" VALUE="$(frmQueryType)">
<INPUT TYPE="hidden" NAME="frmIndexName" VALUE="$(frmIndexName)">
<INPUT TYPE="hidden" NAME="frmDir" VALUE="$(frmDir)">
<INPUT TYPE="hidden" NAME="frmMapFile" VALUE="$(frmMapFile)">
<INPUT TYPE="hidden" NAME="frmStartNum" VALUE="1">
<INPUT TYPE="hidden" NAME="frmStemming" VALUE="$(frmStemming)">
<INPUT TYPE="hidden" NAME="frmPreference" VALUE="$(frmPreference)">
<INPUT TYPE="hidden" NAME="frmLogical" VALUE="$(frmLogical)">
<INPUT TYPE="hidden" NAME="frmPrecision" VALUE="$(frmPrecision)">
<INPUT TYPE="hidden" NAME="frmCaseSensitive" VALUE="$(frmCaseSensitive)">
<INPUT TYPE="hidden" NAME="frmMaxCount" VALUE="$(frmMaxCount)">
<INPUT TYPE="hidden" NAME="frmFieldName" VALUE="$(frmFieldName)">
<INPUT TYPE="hidden" NAME="FromSearchForm" VALUE="TRUE">
<INPUT TYPE="hidden" NAME="NewString" VALUE="@DTW_rHTMLENCODE(NewString)">
<INPUT TYPE="hidden" NAME="String2" VALUE="@DTW_rHTMLENCODE(String2)">
<INPUT TYPE="hidden" NAME="frmSortOrder" VALUE="$(frmSortOrder)">
<INPUT TYPE="hidden" NAME="frmAscDesc" VALUE="$(frmAscDesc)">
</FORM>
 
<p><small>Search for: $(String2)</small>
%IF (idxRC == "TSE0")
 
   <p><small>Number of documents containing search terms: $(Hits)</small>
    <br><small>Number of occurrences of the search terms: $(Occurrences)</small>
   @dtw_assign(loopStop, @DTW_TB_rROWS(ResultsTable))
   @dtw_assign(loopCounter, "1")
 
   %WHILE (loopCounter <= $(loopStop)) {
      <dl><dt><b>@DTW_TB_rGETV(ResultsTable, loopCounter, resDocNum).
      </b><a href="@DTW_TB_rGETV(ResultsTable, loopCounter, resDocURL)"><b>@DTW_TB_rGETV(ResultsTabl
       <dd>@DTW_TB_rGETV(ResultsTable, loopCounter, resDocText)


|
      <br><b>URL:</b> <font color=green>@DTW_TB_rGETV(ResultsTable, loopCounter, resDocURL)<br>
      Rating: @DTW_TB_rGETV(ResultsTable, loopCounter, resDocRating)%; Last Modified: @DTW_TB_rGETV(
       @dtw_Assign(LastDoc, @DTW_TB_rGETV(ResultsTable, loopCounter, resDocNum))
       @dtw_Add(loopCounter, "1", loopCounter)
   %}
 
   <br><small>Number of documents returned: $(DocsReturned) </small>
 
%{ ---- End of Step 3 ---- %}
 
   %{ Set up for Next and Previous buttons %}
<table>
<tr><td>
   %IF ($(LastDoc) > $(DocsReturned))
      <FORM NAME="next" ACTION="output" METHOD="post">
      <p><INPUT TYPE="submit" NAME="Submit" VALUE="Previous">
      <INPUT TYPE="hidden" NAME="frmStartNum" VALUE="@dtw_rSubtract(frmStartNum,frmMaxCount)">
      <INPUT TYPE="hidden" NAME="frmSearchString" VALUE="@DTW_rHTMLENCODE(frmSearchString)">
      <INPUT TYPE="hidden" NAME="frmQueryType" VALUE="$(frmQueryType)">
      <INPUT TYPE="hidden" NAME="frmIndexName" VALUE="$(frmIndexName)">
      <INPUT TYPE="hidden" NAME="frmDir" VALUE="$(frmDir)">
      <INPUT TYPE="hidden" NAME="frmMapFile" VALUE="$(mapFile)">
      <INPUT TYPE="hidden" NAME="frmStemming" VALUE="$(frmStemming)">
      <INPUT TYPE="hidden" NAME="frmPreference" VALUE="$(frmPreference)">
      <INPUT TYPE="hidden" NAME="frmLogical" VALUE="$(frmLogical)">
      <INPUT TYPE="hidden" NAME="frmPrecision" VALUE="$(frmPrecision)">
      <INPUT TYPE="hidden" NAME="frmCaseSensitive" VALUE="$(frmCaseSensitive)">
      <INPUT TYPE="hidden" NAME="frmMaxCount" VALUE="$(frmMaxCount)">
      <INPUT TYPE="hidden" NAME="frmFieldName" VALUE="$(frmFieldName)">
      <INPUT TYPE="hidden" NAME="frmSearchType" VALUE="$(frmSearchType)">
      <INPUT TYPE="hidden" NAME="NewString" VALUE="@DTW_rHTMLENCODE(NewString)">
      <INPUT TYPE="hidden" NAME="String2" VALUE="@DTW_rHTMLENCODE(String2)">
      <INPUT TYPE="hidden" NAME="frmSortOrder" VALUE="$(frmSortOrder)">
      <INPUT TYPE="hidden" NAME="frmAscDesc" VALUE="$(frmAscDesc)">
      </FORM>
   %ENDIF
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td>
   %IF ($(LastDoc) < $(Hits))
      <FORM NAME="next" ACTION="output" METHOD="post">
      <p><INPUT TYPE="submit" NAME="Submit" VALUE="Next">
      <INPUT TYPE="hidden" NAME="frmStartNum" VALUE="@dtw_rAdd(LastDoc, "1")">
      <INPUT TYPE="hidden" NAME="frmSearchString" VALUE="@DTW_rHTMLENCODE(frmSearchString)">
      <INPUT TYPE="hidden" NAME="frmQueryType" VALUE="$(frmQueryType)">


|
      <INPUT TYPE="hidden" NAME="frmIndexName" VALUE="$(frmIndexName)">
      <INPUT TYPE="hidden" NAME="frmDir" VALUE="$(frmDir)">
      <INPUT TYPE="hidden" NAME="frmMapFile" VALUE="$(mapFile)">
      <INPUT TYPE="hidden" NAME="frmStemming" VALUE="$(frmStemming)">
      <INPUT TYPE="hidden" NAME="frmPreference" VALUE="$(frmPreference)">
      <INPUT TYPE="hidden" NAME="frmLogical" VALUE="$(frmLogical)">
      <INPUT TYPE="hidden" NAME="frmPrecision" VALUE="$(frmPrecision)">
      <INPUT TYPE="hidden" NAME="frmCaseSensitive" VALUE="$(frmCaseSensitive)">
      <INPUT TYPE="hidden" NAME="frmMaxCount" VALUE="$(frmMaxCount)">
      <INPUT TYPE="hidden" NAME="frmFieldName" VALUE="$(frmFieldName)">
      <INPUT TYPE="hidden" NAME="frmSearchType" VALUE="$(frmSearchType)">
      <INPUT TYPE="hidden" NAME="NewString" VALUE="@DTW_rHTMLENCODE(NewString)">
      <INPUT TYPE="hidden" NAME="String2" VALUE="@DTW_rHTMLENCODE(String2)">
      <INPUT TYPE="hidden" NAME="frmSortOrder" VALUE="$(frmSortOrder)">
      <INPUT TYPE="hidden" NAME="frmAscDesc" VALUE="$(frmAscDesc)">
      </FORM>
   %ENDIF
 </tr></td>
</table>
%ENDIF
 
%IF (idxRC != "TSE0")
  <p><b>$($(idxRC))
%ENDIF
</BODY>
</HTML>
%}
 




©AF400