PPWIZARD is a free preprocessor for HTML, REXX, Visual Basic or any text files.
[Bottom][Contents][Search][Prev]: The Header File - WISEINST.WIH[Next]: Importing fields into 3 HTML documents

Creating HTML pages from Windows URL Shortcuts or OS/2 URL Objects

Example - WPS URL Objects to HTML

I keep all my WPS URL objects off a main URL folder, I then create HTML pages from this so I can effectively access my URL objects from anywhere via the internet (pages at http://www.labyrinth.net.au/~dbareis/bookmark.htm). Different categories can have their own look and feel!

This code highly customises how the header "FTPLIKE.IH" works. At the moment I am still working on separating the code to a generic header file and my specific configuration of this. Ffor this reason there will be things in "bookmark.ih" which should not be and vise versa.


BOOKMARK.IT

This is the code I use for my specific customisations (as at 17 Jan 02, 6:27pm):

    ;----------------------------------------------------------------------------
    ;--------------------------------[ BOOKMARK.IT ]-----------------------------
    ;----------------------------------------------------------------------------
    ;
    ; *************************************************************************
    ; WORK IN PROGRESS, I AM GRADUALLY SEPARATING BOOKMARK.IT/.IH so that there
    ; is a generic component anyone can use and my separate customisations
    ; (in "BOOKMARK.IT").
    ; *************************************************************************
    ;
    ; This file contains specific customisations to bookmarks for Dennis
    ; Bareis' site.
    ;
    ;----------------------------------------------------------------------------
    
    ;--- Include my common header -----------------------------------------------
    #define   HITCOUNT_NAME           bookmark_pages
    ;#define  PAGE_TRANSITION_ENTER   Duration=1,Transition=3
    #define  PAGE_TRANSITION_EXIT     Duration=1,Transition=2
    #define  Title             "Dennis' Personal Bookmarks"
    #define  AddToDescription  Dennis' Personal Bookmarks, straight from OS/2 WPS URL Objects
    #define  COLOR_PAGE_TITLE   #003366      ;;Original Dark Blue
    ;;#define  COMPUTER_NO_DESC_KEYWORD_META
    #define CSSSTYLE_EXTRA                                     \
            .LinkErr A:hover                                   \
            {                                                 -\
              color: yellow;                                  -\
              text-decoration:underline                       -\
            }
    
    #include "computer.ih"
    
    ;--- Add counter to this page -----------------------------------------------
    #define  COUNTER_ID        685720
    #define  COUNTER_ROOT      c1
    #include "counter.ih"
    
    ;--- Title ------------------------------------------------------------------
    <$BackgroundMainWindows>
    <$PageTitle TITLE="Dennis' Personal Bookmarks">
    
    
    
    ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    ;%%%[ Definitions for use in my "DIRATTR.$$$" files ]%%%%%%%%%%%%%%%%%%%%%%%%
    ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    #evaluate "Eol"         "d2c(10)"
    #define   LookAndFeelForOs2                     \
              BgImage = graphics/os2warp.jpg<$Eol> -\
              BgColor = #E0E0E0
    #define   LookAndFeelForPpwizard                \
              BgImage = ppwizard/ppw_bg.jpg<$Eol>  -\
              BgColor = WHITE
    #define   LookAndFeelForFlowers                 \
              BgImage = graphics/flowers.jpg<$Eol> -\
              BgColor = #F7FFCE
    #define   LookAndFeelForLinux                    \
              BgImage = graphics/linux_bg.gif<$Eol> -\
              BgColor = #FFFFC6
    #define   LookAndFeelForWindows                 \
              BgImage = graphics/bg_win.jpg<$Eol>  -\
              BgColor = #E0E0E0<$Eol>              -\
              DirIcon    = <IMG SRC="graphics/win16x12.gif" VALIGN="MIDDLE" WIDTH=16 HEIGHT=12 BORDER=0><$Eol> -\
              DotDotIcon = <IMG SRC="graphics/win16x12.gif" VALIGN="MIDDLE" WIDTH=16 HEIGHT=12 BORDER=0>
    
    
    ;--- At end of file listing... ----------------------------------------------
    #define? ALL_URL_TOOLTIP                                            \
             This page contains all URLS along with any comments        \
             and all categories the URL is contained in.                \
             You can use your browser's search facility                 \
             (CTRL+F in Internet Explorer) to locate URLS you           \
             might be interested in.                                    \
             Click on the category to view similar URLs.
    #define FTPLIKE_END_PAGE_ABOVE_FOOTER                            \
            #ifdef ALL_URL_NAME                                     -\
                   <CENTER>                                         -\
                   <P>A <A HREF="<$ALL_URL_NAME>" TITLE="<$ALL_URL_TOOLTIP>"> -\
                      complete listing of all URLS</A>               \
                      is available if you are having trouble         \
                      locating a URL.                               -\
                   </CENTER>                                        -\
            #endif                                                  -\
            <$ImgBarbedWire>                                        -\
            <CENTER>                                                -\
               <H2>Creating These Book Mark Pages</H2>              -\
            </CENTER>                                               -\
                                                                    -\
            <P>This page was automatically created from Windows      \
            Internet Explorer URL objects created with IE 5 or       \
            converted from my OS/2 Netscape WPS URLs (which are      \
            also supported).                                         \
                                                                     \
            The free tool used was                                   \
            <A HREF="ppwizard.htm">PPWIZARD</A>                      \
            (for Windows, Unix &amp; OS/2) using                     \
            <A HREF="ppwizard/bookmarks.htm">                       -\
               this source code                                      \
            </A>.                                                   -\
                                                                    -\
            <P>All URLs are checked periodically using the           \
            <A HREF="checkurl.htm">my free URL validation tool</A>   \
            (for Windows and OS/2).                                  \
            This ensures that very few if any links point to moved   \
            pages or return 404 errors etc.
    
    
    ;--- Look and feel of Good and bad links ------------------------------------
    #DefineRexx BOOKMARK_URL_OK_INFO
       if  eUrl_LASTUPD = '' then
           UtTT = '"OK when tested at ' || eUrl_DATE || '"'
       else
           UtTT = ' "OK when tested at ' || eUrl_DATE || ' (HTML page dated ' || eUrl_LASTUPD || ')"'
       UtTT_A   = ' title=' || UtTT;
       UtTT_IMG = ' title=' || UtTT || ' alt=' || UtTT
       OkTick = '<img src="graphics/cb_tick.gif" hspace="2" vspace="2" align="top" border="0"' || UtTT_IMG || '>'
    #DefineRexx
    #DefineRexx BOOKMARK_URL_NOT_YET_CHECKED
       OkTick   = ''
       UtTT     = '"This link has not been tested yet"'
       UtTT_A   = ' title=' || UtTT;
       UtTT_IMG = ' title=' || UtTT || ' alt=' || UtTT
    #DefineRexx
    
    
    ;--- Include common support code --------------------------------------------
    #define BOOKMARK_DIRECTORY          C:\DBAREIS\Bookmarks
    ;#define+ BOOKMARK_DIRECTORY        C:\DBAREIS\Bookmarks\My Computer
    ;#define+ BOOKMARK_DIRECTORY        C:\DBAREIS\Bookmarks\Donate (FOR FREE)
    ;#define+ BOOKMARK_DIRECTORY         C:\DBAREIS\Bookmarks\Computer\OpSys\Windows\WIN NT or 2000
    ;#define+ BOOKMARK_DIRECTORY         C:\DBAREIS\Bookmarks\Computer\Hardware
    ;#define BOOKMARK_OPEN_LINK_IN      _BareisSame    ;;Creates one new window which is reused by all links
    #define  CHECKURL_MEMFILE           C:\DBAREIS\Projects\HOMEPAGE\html\out\REMOTE.URL\checkurl.mem
    #include "BOOKMARK.IH"
    

BOOKMARK.IH

This is the (becoming) generic header code I use (as at 13 Jan 02, 8:32am):

    ;----------------------------------------------------------------------------
    ;--------------------------------[ BOOKMARK.IH ]-----------------------------
    ;----------------------------------------------------------------------------
    ;
    ; *************************************************************************
    ; WORK IN PROGRESS, I AM GRADUALLY SEPARATING BOOKMARK.IT/.IH so that there
    ; is a generic component anyone can use and my separate customisations
    ; (in "BOOKMARK.IT").
    ; *************************************************************************
    ;
    ; This header file expands on the basic functionality provided by the
    ; "FTPLIKE" header to allow you to organise Netscape or Internet Explorer
    ; URL objects in categories and then generate HTML pages for these.
    ;
    ; You can see my bookmarks at:
    ;
    ;      http://www.labyrinth.net.au/~dbareis/bookmark.htm
    ;
    ; Some of the features:
    ;
    ;    * You can nest categories to any level.
    ;
    ;    * Categories (tree) can appear in more than one place
    ;      WITHOUT duplicating the URLS.
    ;
    ;    * Url's can be commented, giving you the ability to use normal
    ;      browser URL (shortcut) creation and add comments to your
    ;      generated pages.
    ;
    ;
    ; Some details:
    ;
    ;    * The main (top level) URLS are incorporated into the page that
    ;      includes this one, all others are generated from start to finish.
    ;
    ;
    ;
    ; Improvements I need to make
    ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ; * Make user customisable "BOOKMARK.IT" header, removing any of my
    ;   stuff into a new private header.
    ;
    ; * Use Java (or JavaScript) Tree Navigation
    ;
    ; * As well as ALL URLS listed what about being able to indicate
    ;   categories example "all windows".
    ;
    ; * What about index similar to all url list.  Probably supply list of
    ;   words (but maybe exceptions) so as to exclude "the" etc.
    ;
    ;
    ; * BUG in ">DIRTEXT" etc, only takes first line?
    ;
    ; * Files/Dirs starting with '$$' invisible and don't appear
    ;   in generated pages. #define will allow disable or selection
    ;   of different prefix.
    ;
    ; * Have dir attributes, need easy way to assign "file"
    ;   attribs (priority , alias etc). Maybe use "[*BOOKMARK*]" to
    ;   mark off section of file, probablt then go to 1st '['?
    ;
    ; * Allow option define of collon URLS ALIAS defined in UTL name:
    ;
    ;         URL TITLE$$$URL ALIAS
    ;
    ; * Once mechanism for giving a URL an alias need new DIR command
    ;   (IncludeUrls) to include common file/url Aliases.
    ;
    ; * Too much to write down
    ;----------------------------------------------------------------------------
    
    
    ;--- Initialization ---------------------------------------------------------
    #define OpSys   <?OpSys>
    #if     left('<$OpSys>', 3) = 'WIN'
            #define+ OpSys   WINDOWS
    #endif
    #if    '<$OpSys>' <> 'WINDOWS' & '<$OpSys>' <> 'OS/2'
           #error  "Sorry but you will need to modify this file to work on operating systems other than Windows & OS/2! These changes are expected to be relatively minor."
    #endif
    #if    ['<$OpSys>' = 'OS/2']
           ;--- In OS/2 can get "real name" of file from EA's -------------------
           #evaluate   ""  "call RxFuncAdd  'SysGetEA', 'RexxUtil', 'SysGetEA'"
    #endif
    #RexxVar    AllUrlCount = 0
    #define     ALL_URL_NAME  bookmark_all_urls.htm
    
    ;--- Need sorting support for URLS ------------------------------------------
    #include "PpwSort.h"
    
    
    
    ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    ;%%%[ Override FTPLIKE Header Defaults ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    
    ;--- Used as separator ------------------------------------------------------
    #define SPACE <IMG SRC="graphics/clear1x1.gif" ALIGN=middle ALT=" " BORDER=0 WIDTH={$HSIZE=^1^} HEIGHT={$VSIZE=^1^}>
    
    ;--- Define the "window" that a bookmark URL opens in -----------------------
    #ifndef    BOOKMARK_OPEN_LINK_IN
               ;--- Each link opens its own window ------------------------------
               #define BOOKMARK_OPEN_LINK_IN  _blank
    #endif
    
    ;--- Save values of this pages info (they get modified below!) --------------
    ;;#ifndef VERSION_PUSHPOPM_H
    ;;        #include "PushPopM.H"
    ;;#endif
    #push Macro 'ShortNameHtml'
    #push Macro 'ShortNameHtmlLowerCase'
    
    ;--- Don't just want filename! We want Title + URL --------------------------
    #DefineRexx REXX_PREPARE_LEFT_SIDE
       ;--- Get the URL, we know a filename -------------------------------------
       CloseRc = stream(FtpFile, 'c', 'close');
       #if ['<$OpSys>' = 'OS/2']
           ;--- First line of OS/2 WPS URL file contains the URL ----------------
           eUrl = linein(FtpFile);
       #endif
       #if ['<$OpSys>' = 'WINDOWS']
           ;--- In WINDOWS Look for "URL=" in column 1 --------------------------
           eUrl = '';
           do  while lines(FtpFile) <> 0
               ;--- Look for URL line -------------------------------------------
               ThisLine = linein(FtpFile);
               if  left(ThisLine, 4) = "URL=" then
               do
                   ;--- Found it! -----------------------------------------------
                   eUrl = substr(ThisLine, 5);     ;;Rest of line is URL
                   leave;                          ;;Look no further!
               end;
           end;
    
           ;--- Found the URL within the file? ----------------------------------
           if  eUrl = '' then
           do
               ;--- Did not find it! --------------------------------------------
               eUrl = 'URL not found in "' || FtpFile || '"';
               call Warning 'URL_NF', eUrl;
               eUrl = 'Error: ' || eUrl;
           end;
       #endif
       CloseRc = stream(FtpFile, 'c', 'close');
    
       ;--- Under windows TITLE will end with ".url" ----------------------------
       ThinTitle = '{$TITLE}';
       #if ['<$OpSys>' = 'WINDOWS']
           if translate(right(ThinTitle, 4)) = '.URL' then
              ThinTitle = left(ThinTitle, length(ThinTitle)-4);
       #endif
    
       ;--- Make sure title not too "wide" --------------------------------------
       ThinTitle = ReplaceString(ThinTitle, '<BR>', ' ');   ;;Not sure why this is here...
       ThinTitle = BreakAt(30, ThinTitle, ' -', '<br>');
       ThinTitle = ReplaceString(ThinTitle, ' <br>', '<br>');
       ThinTitle = ReplaceString(ThinTitle, '<br> ', '<br>');
    
       ;--- Fix quote char on some titles ---------------------------------------
       ThinTitle = ReplaceString(ThinTitle, '`',   "'");
       ThinTitle = ReplaceString(ThinTitle, 'EF'x, "'");
    
       ;--- Make sure URL not too "wide" ----------------------------------------
       ThinUrl   = BreakAt(25, eURL);
    
       ;--- Was the URL OK? -----------------------------------------------------
       OkTick   = '';
       UtTT     = '';
       UtTT_A   = '';
       UtTT_IMG = '';
       <$SetUpOkCheckUrlInfo>
    #DefineRexx
    #define FTPLIKE_FILE_LEFT_SIDE_DISPLAY                     \
            #evaluate  ''  ^<$REXX_PREPARE_LEFT_SIDE TITLE='<??FtpShortD $$SQx2>'>;^ -\
            <TR>                 ;;Start New File row         %\
            <TD ALIGN=CENTER>    ;;Start filename cell        %\
                <A HREF="<??eURL>" TARGET=<$BOOKMARK_OPEN_LINK_IN><??UtTT_A>> -\
                   <??ThinTitle>                              -\
                </A>                                          %\
            </TD>                ;;End cell                    \
            <TD ALIGN=CENTER>    ;;Start filename cell        %\
                <A HREF="<??eURL>" TARGET=<$BOOKMARK_OPEN_LINK_IN><??UtTT_A>> -\
                   <??ThinUrl>                                -\
                   <??OkTick>                                 -\
                </A>                                          -\
            </TD>                ;;End cell
    
    ;--- How to handle external links in the comment (use VALRURL.H") -----------
    #define     FTPLIKE_WEBLINK_TEMPLATE_HTTP  \
                '<' || '$ExtHttp VISIBLE=^{URL}^ HTTPURL=^{URL-}^ target="<$BOOKMARK_OPEN_LINK_IN>">' || d2c(10)
    #define     FTPLIKE_WEBLINK_TEMPLATE_FTP   \
                '<' || '$ExtFtp VISIBLE=^{URL}^  FTPURL=^{URL-}^ target="<$BOOKMARK_OPEN_LINK_IN>">' || d2c(10)
    #DefineRexx+ ValidateUrlR_REXX_Location
       UrlSourceLocation = 'URL COMMENT - ' || FtpFile;
    #DefineRexx
    
    ;--- Right side display (comment) + capture URL -----------------------------
    #DefineRexx FTPLIKE_GET_FILE_COMMENT    ;;Note comment's are not allowed to contain <ENTER> (don't know how to handle)!
                ;--- Find comment for URL, we know a filename -------------------
                #if ['<$OpSys>' = 'OS/2']
                    ;--- In OS/2 comments are stored in OS/2 Extended Attributes -
                    if SysGetEA(FtpFile, ".COMMENTS", "FtpComment") <> 0 then
                       FtpComment = '';
                    else
                       FtpComment = substr(FtpComment, 11); ;;Drop EA Type info
                    FtpComment = space(ReplaceString(FtpComment, '0D0A'x, '<BR>'));
                #endif
                #if ['<$OpSys>' = 'WINDOWS']
                    ;--- Look for bookmark comment section (freeform text) ------
                    CommentSection = "[BMCOMMENTS]";
                    CommentNl      = d2c(10);
                    FoundComment   = 'N';
                    FtpComment     = '';
                    CloseRc = stream(FtpFile, 'c', 'close');
                    do  while lines(FtpFile) <> 0
                        ;--- Get next line (ignore leading/trailing spaces) -----
                        ThisLine = strip(linein(FtpFile));
                        if  left(ThisLine, 1) = '[' then
                        do
                           ;--- Found start of Section --------------------------
                           if  FoundComment = 'Y' then
                               leave;                    ;;Found end of comment!
                           ThisLine = translate(ThisLine);
                           if ThisLine = CommentSection then
                               FoundComment = 'Y';
                        end;
                        else
                        do
                           ;--- Just a normal line ------------------------------
                           if  FoundComment = 'Y' then
                           do
                               if  FtpComment == '' then
                                   FtpComment = space(ThisLine);
                               else
                                   FtpComment = FtpComment || CommentNl || space(ThisLine);
                           end;
                        end;
                    end;
                    CloseRc = stream(FtpFile, 'c', 'close');
    
                    ;--- Add "<P>" for paragraphs -------------------------------
                    FtpComment = ReplaceString(FtpComment, CommentNl || CommentNl, '<P>');
    
                    ;--- Sort out line wrapping issues --------------------------
                    FtpComment = ReplaceString(FtpComment, CommentNl, ' ');
                #endif
    
                ;--- Now see if any high ASCII ----------------------------------
                HighPos = verify(FtpComment, xrange('80'x, 'FF'x), 'M');
                if HighPos <> 0 then
                do
                   HighChar = substr(FtpComment, HighPos, 1);
                   call Warning 'BM_HAC', 'High ASCII found for "' || FtpFile || '" ("' || HighChar || '" - ASCII ' || c2d(HighChar) || ')';
                   FtpComment = strip(left(FtpComment, HighPos-1)) || '<HR><FONT COLOR="RED"><BLINK>Truncated here.</BLINK></FONT>' || " <B>Please don't use ENTER to separate paragraphs!</B>";
                end;
    
                <$AddCheckUrlErrorInfoToComment>
    
                ;--- Autocreate http/ftp links in comments ----------------------
                <$FTPLIKE_ADJUST_FILE_COMMENT>
    
    
                ;****************************************************************
                ;***[ Now keep information about this URL (for all URLs page) ***
                ;****************************************************************
    
                ;--- Now compact the title --------------------------------------
                Title = ReplaceString(FtpShortD, '<BR>', ' ');
                Title = space(Title);
    
                ;--- Under Windows title will end with ".url" -------------------
                #if ['<$OpSys>' = 'WINDOWS']
                    if translate(right(Title, 4)) = '.URL' then
                       Title = left(Title, length(Title)-4);
                #endif
    
                ;--- Increase count and save info in array ----------------------
                AllUrlCount = AllUrlCount + 1;
                AllUrl.AllUrlCount.!SortKey = translate(Title);
                AllUrl.AllUrlCount.!Url     = eURL;
                AllUrl.AllUrlCount.!Title   = Title;
                AllUrl.AllUrlCount.!Comment = FtpComment;
                AllUrl.AllUrlCount.!Category= '<$FTPLIKE_DISPLAY_DIR_TITLETAG $$SQx2>';
                AllUrl.AllUrlCount.!Html    = ToLowerCase(_filespec('name', '<?OutputFile>'));
    #DefineRexx
    #DefineRexx 'Rexx2AmPm'
                TimeAmPmFmt = GetAmPmTimeFromHhMmSs('{$TIME}');
    #DefineRexx
    #define FTPLIKE_SHOW_FILE_TIME                                                      \
            #evaluate ^^ ^<$Rexx2AmPm TIME="<??FtpHour>:<??FtpMinute>:<??FtpSecond>">^ -\
            <??FtpDay> <??FtpMon> <??FtpYear>                                           \
            <??TimeAmPmFmt>
    
    #define FTPLIKE_ADD_FILE_SIZE_AFTER_TIME  ;;Don't want file size!
    
    ;--- Other stuff ------------------------------------------------------------
    #define FTPLIKE_NO_HEADER_FOOTER_ON_1ST_PAGE
    #define FTPLIKE_FOLLOW_SUBDIRECTORIES
    #define FTPLIKE_USE_LONG_FILENAMES    100
    #define FTPLIKE_BODY_BG_IMG           graphics/bground.jpg
    #define FTPLIKE_BODY_BG_COLOR         #CCFFFF
    #define FTPLIKE_BODY_LINK_COLOR       #3333FF
    #define FTPLIKE_BODY_VLINK_COLOR      green
    #define FTPLIKE_BODY_ATTR_OTHER       LEFTMARGIN=5 TOPMARGIN=5 MARGINWIDTH=5 MARGINHEIGHT=5
    #define FTPLIKE_DIRECTORY             <$BOOKMARK_DIRECTORY>
    #define FTPLIKE_DIRECTORY_WEB
    #define FTPLIKE_NEWHTML_PREFIX        bookmark_
    #define FTPLIKE_HEADER                <$PageTitle TITLE="{$Title}">
    #define FTPLIKE_FOOTER                                                             \
            #evaluate+ ShortNameHtml            "_filespec('name', '<?OutputFile>')"  -\
            #evaluate+ ShortNameHtmlLowerCase   "ToLowerCase('<$ShortNameHtml>')"     -\
            <$EndHtmlWithStandardFooter>
    #define FTPLIKE_TEXT_FILE              url
    #define FTPLIKE_TEXT_FILES             urls
    #define FTPLIKE_TEXT_DIR               category
    #define FTPLIKE_TEXT_DIRS              categories
    #define FTPLIKE_MINI_DIR_IMG_TAG       <IMG SRC="graphics/fldrcls.gif" ALIGN="MIDDLE" ALT="*" TITLE="" BORDER=0 WIDTH=14 HEIGHT=11 VSPACE=3>
    #define FTPLIKE_DONT_USE_C2X           ;;Have longish dirs/names
    #define FTPLIKE_HEAD_STYLE_TAGS        <$CssStyle>
    #define FTPLIKE_EXTRA_HEAD_TAGS        \
            <$FULL_PICS_RATING>           %\
            <$ENGLISH_CHARSET><?NewLine>
    
    
    ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    ;%%%[ Handle CHECKURL ".MEM" file - Initialization ]%%%%%%%%%%%%%%%%%%%%%%%%%
    ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    #ifdef CHECKURL_MEMFILE
           ;--- Load CHECKURL support -------------------------------------------
           #include "CheckUrl.IH"          ;;Interface to my free URL checker
    
           ;--- User may not want "OK" indicators -------------------------------
           #ifdef BOOKMARK_NO_CHECKURL_OK_INDICATORS
               #DefineRexx 'SetUpOkCheckUrlInfo'
                   ;--- Get CheckUrl Info (need for error status) ---------------
                   <$CHECKURL_CHECK_URL URLVAR="eUrl" BaseVar="eUrl">
               #DefineRexx
           #else
               #DefineRexx 'SetUpOkCheckUrlInfo'
               do
                   ;--- Get CheckUrl Info ---------------------------------------
                   <$CHECKURL_CHECK_URL URLVAR="eUrl" BaseVar="eUrl">
    
                   ;--- Set up Info ---------------------------------------------
                   OkTick = '';
                   if   eURL_STATUS = <$CHECKURL_STATUS_OK> then
                   do
                       ;--- URL is OK -------------------------------------------
                       <$BOOKMARK_URL_OK_INFO>;
                   end;
                   else
                   do
                       if  eURL_STATUS = <$CHECKURL_STATUS_NO_INFO> then
                       do
                           ;--- URL is OK -------------------------------------------
                           <$BOOKMARK_URL_NOT_YET_CHECKED>;
                       end;
                   end;
               end
               #DefineRexx
           #end if
    
           ;--- Add ERROR indicators --------------------------------------------
           #DefineRexx 'AddCheckUrlErrorInfoToComment'
               if   eURL_STATUS = <$CHECKURL_STATUS_ERROR> then
               do
    
                   ;--- Don't want to URL check any URLS in error message! ------
                   CmtErrorText = ReplaceString(eUrl_ERROR, ":", '&#58;');  ;;Hide "http:"
    
                   ;--- Format error info ---------------------------------------
                   MemBit = '<' || '?NewLine>'
                   if  FtpComment <> '' then
                       MemBit = MemBit || '<br>'
                   MemBit = MemBit || '<div class="LinkErr" title="Oops, my free URL Checker picked up a problem. I will fix ASAP although sometimes I give them a bit of time to come good again!">'
                   MemBit = MemBit || '<center><table border=4 bordercolor="black" BGCOLOR="#ff6342"><tr><td>'
                   MemBit = MemBit || '<font size="-1" color="white"><center>[CHECKURL Validation ' || eUrl_DATE || ']<br>' || CmtErrorText || '<center></font>'
                   MemBit = MemBit || '</td></tr></table></center>'
                   MemBit = MemBit || '</div>'
                   FtpComment = FtpComment || MemBit
               end;
           #DefineRexx
    #elseif
           #define SetUpOkCheckUrlInfo
           #define AddCheckUrlErrorInfoToComment
    #endif
    
    
    ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    ;%%%[ Include FTPLIKE Header ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    #include  "FTPLIKE.IH"
    
    
    
    ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    ;%%%[ Add Footer to "ROOT" Page ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    #pop Macro 'ShortNameHtmlLowerCase'
    #pop Macro 'ShortNameHtml'
    <$EndHtmlWithStandardFooter>
    
    
    
    ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    ;%%%[ Produce ALL URLS List Page ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    #ifdef ALL_URL_NAME
           #output "<$ALL_URL_NAME>"
    
           ;--- Output Header stuff ---------------------------------------------
           #define+ FTPLIKE_DISPLAY_DIR_TITLETAG     ALL <??AllUrlCount> LINKS
           #define+ FTPLIKE_DISPLAY_DIR_CATEGORY_LT  <$FTPLIKE_DISPLAY_DIR_TITLETAG>
           <$FTPLIKE_START_HTML_PAGE>
    
           ;--- Generate BODY ---------------------------------------------------
           <?NewLine>
           #if [AllUrlCount = 0]
               <P>No URLs at all!
           #elseif
               ;--- Generate body -----------------------------------------------
               #DefineRexx ""
                           ;--- Sort the array by Title -------------------------
                           <$GenRexx2Sort                                                                \
                                COUNT=^AllUrlCount^                                                      \
                              GREATER=^SrtGreater = AllUrl.SrtIndex1.!SortKey > AllUrl.SrtIndex2.!SortKey^   \
                                 SWAP=^                                                                  \
                                        SrtTemp = AllUrl.SrtIndex1.!SortKey;                               \
                                        AllUrl.SrtIndex1.!SortKey = AllUrl.SrtIndex2.!SortKey;               \
                                        AllUrl.SrtIndex2.!SortKey = SrtTemp;                               \
                                        SrtTemp = AllUrl.SrtIndex1.!Title;                               \
                                        AllUrl.SrtIndex1.!Title = AllUrl.SrtIndex2.!Title;               \
                                        AllUrl.SrtIndex2.!Title = SrtTemp;                               \
                                        SrtTemp = AllUrl.SrtIndex1.!Url;                                 \
                                        AllUrl.SrtIndex1.!Url = AllUrl.SrtIndex2.!Url;                   \
                                        AllUrl.SrtIndex2.!Url = SrtTemp;                                 \
                                        SrtTemp = AllUrl.SrtIndex1.!Comment;                             \
                                        AllUrl.SrtIndex1.!Comment = AllUrl.SrtIndex2.!Comment;           \
                                        AllUrl.SrtIndex2.!Comment = SrtTemp;                             \
                                        SrtTemp = AllUrl.SrtIndex1.!Category;                            \
                                        AllUrl.SrtIndex1.!Category = AllUrl.SrtIndex2.!Category;         \
                                        AllUrl.SrtIndex2.!Category = SrtTemp;                            \
                                        SrtTemp = AllUrl.SrtIndex1.!Html;                                \
                                        AllUrl.SrtIndex1.!Html = AllUrl.SrtIndex2.!Html;                 \
                                        AllUrl.SrtIndex2.!Html = SrtTemp;                                \
                                      ^                                                                  \
                           >
    
                           ;--- Display Each item -------------------------------
                           AllOutput = '';
                           Index = 1;
                           do while Index <= AllUrlCount
                               ;--- Get main information ------------------------
                               StartName    = AllUrl.Index.!Title;
                               StartUrl     = AllUrl.Index.!Url;
                               StartComment = AllUrl.Index.!Comment;
    
                               ;--- Output Name & URL ---------------------------
                               UrlLink   = '<A HREF="' || StartUrl || '" TARGET=<$BOOKMARK_OPEN_LINK_IN>>'  || StartUrl || '</A>';
                               AllOutput = AllOutput || '<P>';
                               AllOutput = AllOutput || '<TABLE BORDER=0 WIDTH="100%" CELLPADDING=1 cellspacing=0>';
                               AllOutput = AllOutput || '<TR><TD BGCOLOR=SILVER>'    || StartName || '</TD></TR>';
                               AllOutput = AllOutput || '<TR><TD BGCOLOR="#FFFF9C">' || UrlLink   || '</TD></TR>';
    
                               ;--- Add category information to comments --------
                               Comment = StartComment;
                               do  Index = Index to AllUrlCount
                                   ;--- Only category differs? ------------------
                                   if  StartName <> AllUrl.Index.!Title | StartUrl <> AllUrl.Index.!Url | StartComment <> AllUrl.Index.!Comment then
                                       leave;
    
                                   ;--- Add category ----------------------------
                                   MoreLikeThis = '<A HREF="' || AllUrl.Index.!Html || '"><SMALL>Category: ' || AllUrl.Index.!Category || '</SMALL></A>';
                                   if  Comment = '' then
                                       Comment = MoreLikeThis;
                                   else
                                       Comment = Comment || '<BR>' || MoreLikeThis;
                               end;
    
                               ;--- Output comments and category information ----
                               AllOutput = AllOutput || '<TR><TD BGCOLOR=WHITE>';
                               AllOutput = AllOutput || Comment;
                               AllOutput = AllOutput || '</TD></TR>';
    
                               ;--- End the entries table etc -------------------
                               AllOutput = AllOutput || '</TABLE>';
    
                               ;--- How many items did we just handle? ----------
                           end;
               #DefineRexx
               <??AllOutput>
           #endif
    
       ;--- Thats All for this file ---------------------------------------------
       <$FTPLIKE_FOOTER>
       #output
    #endif
    


[Top][Contents][Search][Prev]: The Header File - WISEINST.WIH[Next]: Importing fields into 3 HTML documents

PPWIZARD Manual
My whole website and this manual itself was developed using PPWIZARD (free preprocessor written by Dennis Bareis)
Thursday January 17 2002 at 6:27pm