You can subscribe to this list here.
| 2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(447) |
Nov
(163) |
Dec
(57) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2005 |
Jan
(172) |
Feb
|
Mar
(123) |
Apr
(64) |
May
(1) |
Jun
(278) |
Jul
(89) |
Aug
(97) |
Sep
(62) |
Oct
(53) |
Nov
(119) |
Dec
(60) |
| 2006 |
Jan
(76) |
Feb
(1094) |
Mar
(363) |
Apr
(163) |
May
(57) |
Jun
(43) |
Jul
(39) |
Aug
(15) |
Sep
(33) |
Oct
(62) |
Nov
(8) |
Dec
|
| 2007 |
Jan
(9) |
Feb
(34) |
Mar
(2) |
Apr
(14) |
May
(8) |
Jun
(40) |
Jul
(21) |
Aug
(1) |
Sep
(20) |
Oct
(15) |
Nov
(26) |
Dec
|
| 2008 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
(1) |
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(32) |
Jun
|
Jul
|
Aug
(3) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
| 2010 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(7) |
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/extensions/regex/data/syntaxOptions/syntaxBits In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15788/data/syntaxOptions/syntaxBits Removed Files: KCuvMNOr63pI2jnxekyg RE5FBK5FPLUS5FQM RE5FCHAR5FCLASSES RE5FCONTEXT5FINDEP5FANCHORS RE5FCONTEXT5FINDEP5FOPS RE5FCONTEXT5FINVALID5FOPS RE5FDOT5FNEWLINE RE5FDOT5FNOT5FNULL RE5FHAT5FLISTS5FNOT5FNEWLINE RE5FINTERVALS RE5FLIMITED5FOPS RE5FNEWLINE5FALT RE5FNO5FBK5FBRACES RE5FNO5FBK5FPARENS RE5FNO5FBK5FREFS RE5FNO5FBK5FVBAR RE5FNO5FEMPTY5FRANGES ajo2IjR2LWl5dxl89MfA Log Message: removed, re is the current way to do regular expressions, regex can be dist. as an extra if needed by someone --- RE5FNEWLINE5FALT DELETED --- --- RE5FDOT5FNEWLINE DELETED --- --- KCuvMNOr63pI2jnxekyg DELETED --- --- RE5FHAT5FLISTS5FNOT5FNEWLINE DELETED --- --- RE5FCONTEXT5FINVALID5FOPS DELETED --- --- RE5FCONTEXT5FINDEP5FANCHORS DELETED --- --- RE5FBK5FPLUS5FQM DELETED --- --- RE5FLIMITED5FOPS DELETED --- --- RE5FDOT5FNOT5FNULL DELETED --- --- RE5FNO5FBK5FBRACES DELETED --- --- RE5FCHAR5FCLASSES DELETED --- --- RE5FNO5FEMPTY5FRANGES DELETED --- --- ajo2IjR2LWl5dxl89MfA DELETED --- --- RE5FCONTEXT5FINDEP5FOPS DELETED --- --- RE5FNO5FBK5FPARENS DELETED --- --- RE5FNO5FBK5FREFS DELETED --- --- RE5FINTERVALS DELETED --- --- RE5FNO5FBK5FVBAR DELETED --- |
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/extensions/regex/data/syntaxOptions In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15788/data/syntaxOptions Removed Files: CSWyJLJN9R2nmAjKfcWw RE5FSYNTAX5FAWK RE5FSYNTAX5FDMG RE5FSYNTAX5FED RE5FSYNTAX5FEGREP RE5FSYNTAX5FEMACS RE5FSYNTAX5FGREP RE5FSYNTAX5FPOSIX5FAWK RE5FSYNTAX5FPOSIX5FBASIC RE5FSYNTAX5FPOSIX5FEGREP RE5FSYNTAX5FPOSIX5FEXTENDED RE5FSYNTAX5FSED bqMgnVisTieNSFhReTdx1Q buildTable Log Message: removed, re is the current way to do regular expressions, regex can be dist. as an extra if needed by someone --- RE5FSYNTAX5FDMG DELETED --- --- RE5FSYNTAX5FEMACS DELETED --- --- buildTable DELETED --- --- RE5FSYNTAX5FGREP DELETED --- --- RE5FSYNTAX5FPOSIX5FEGREP DELETED --- --- CSWyJLJN9R2nmAjKfcWw DELETED --- --- RE5FSYNTAX5FSED DELETED --- --- RE5FSYNTAX5FPOSIX5FEXTENDED DELETED --- --- RE5FSYNTAX5FPOSIX5FBASIC DELETED --- --- RE5FSYNTAX5FAWK DELETED --- --- RE5FSYNTAX5FED DELETED --- --- bqMgnVisTieNSFhReTdx1Q DELETED --- --- RE5FSYNTAX5FEGREP DELETED --- --- RE5FSYNTAX5FPOSIX5FAWK DELETED --- |
|
From: creedon <icr...@us...> - 2005-08-07 03:14:25
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/extensions/regex/data/dll/macPPC In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15788/data/dll/macPPC Removed Files: dFork rFork Log Message: removed, re is the current way to do regular expressions, regex can be dist. as an extra if needed by someone --- rFork DELETED --- --- dFork DELETED --- |
|
From: creedon <icr...@us...> - 2005-08-07 03:14:24
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/extensions/regex/data/dll/macCarbon In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15788/data/dll/macCarbon Removed Files: dFork rFork Log Message: removed, re is the current way to do regular expressions, regex can be dist. as an extra if needed by someone --- rFork DELETED --- --- dFork DELETED --- |
|
From: creedon <icr...@us...> - 2005-08-07 03:14:24
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/extensions/regex/data/dll In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15788/data/dll Removed Files: windows Log Message: removed, re is the current way to do regular expressions, regex can be dist. as an extra if needed by someone --- windows DELETED --- |
|
From: creedon <icr...@us...> - 2005-08-07 03:14:23
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/extensions/regex In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15788 Removed Files: LICENSE README compile easyMatch easySearch extract free grep init join match quoteRE search split subst version visit Log Message: removed, re is the current way to do regular expressions, regex can be dist. as an extra if needed by someone --- quoteRE DELETED --- --- search DELETED --- --- join DELETED --- --- LICENSE DELETED --- --- easySearch DELETED --- --- easyMatch DELETED --- --- visit DELETED --- --- subst DELETED --- --- free DELETED --- --- compile DELETED --- --- init DELETED --- --- version DELETED --- --- split DELETED --- --- README DELETED --- --- grep DELETED --- --- extract DELETED --- --- match DELETED --- |
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/extensions/regex/data In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15788/data Removed Files: README adrSyntaxOptions dllpath getPath installDLL introCaseSensitive Log Message: removed, re is the current way to do regular expressions, regex can be dist. as an extra if needed by someone --- adrSyntaxOptions DELETED --- --- dllpath DELETED --- --- README DELETED --- --- introCaseSensitive DELETED --- --- installDLL DELETED --- --- getPath DELETED --- |
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/re/testing/data/entities2ascii In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13917 Added Files: 266561637574653B 264961637574653B 2623383232313B 2679756D6C3B 264167726176653B 266567726176653B 26233136383B 26233931363B 264172696E673B 266E74696C64653B 266F636972633B 26233138363B 26233430323B 266161637574653B 2663636564696C3B 26233139313B 266961637574653B 2623383231383B 26233136333B 26233333393B 26233733323B 266167726176653B 266967726176653B 266174696C64653B 2665756D6C3B 26233137363B Log Message: examples.data from old regex, updated for re --- NEW FILE: 264961637574653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233931363B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 266E74696C64653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233138363B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2679756D6C3B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233333393B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 264167726176653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233136383B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 266567726176653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2665756D6C3B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233430323B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 266174696C64653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233136333B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 266167726176653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383231383B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2663636564696C3B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 266F636972633B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233139313B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 266161637574653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 266967726176653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 266561637574653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233137363B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 266961637574653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383232313B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 264172696E673B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233733323B --- (This appears to be a binary file; contents omitted.) |
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/re/testing/data/entities2ascii In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13898 Added Files: 266F61637574653B 2623383231373B 26233137323B 2649756D6C3B 267561637574653B 2661656C69673B 26233731313B 2675636972633B 26233932383B 266F67726176653B 2655756D6C3B 267567726176653B 266E6273703B 264967726176653B 264174696C64653B 26233136323B 266F756D6C3B 2623383232353B 2623383235303B 262336343235383B 26233733313B 2623383733303B 2623383234303B 2623383234393B 264F736C6173683B 262336343235373B 26233137353B 26233138303B 264561637574653B 2641636972633B 2623383830303B 2623383734373B 26636F70793B 264F756D6C3B 264567726176653B 2649636972633B 26233732393B 26233136353B 2E2E2E 2623383830343B 267265673B 26233137303B 264E74696C64653B 266F736C6173683B 2623393637343B 2665636972633B 26233138333B 26233933313B 264161637574653B 2643636564696C3B Log Message: examples.data from old regex, updated for re --- NEW FILE: 262336343235373B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2661656C69673B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2649636972633B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 267567726176653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2641636972633B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 267265673B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233136323B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383830303B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 264561637574653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 266F61637574653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 264F756D6C3B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623393637343B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233733313B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233137323B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 264967726176653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233137353B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 266E6273703B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233932383B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233137303B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2649756D6C3B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383232353B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 262336343235383B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 264567726176653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 266F67726176653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 264161637574653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26636F70793B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233732393B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233731313B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 264174696C64653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233138303B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383234393B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383734373B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2655756D6C3B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233933313B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2E2E2E --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 266F736C6173683B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383234303B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383235303B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2675636972633B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 264E74696C64653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 267561637574653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 266F756D6C3B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233136353B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383231373B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 264F736C6173683B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383733303B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2643636564696C3B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383830343B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233138333B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2665636972633B --- (This appears to be a binary file; contents omitted.) |
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/re/testing/data/entities2ascii In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13878 Added Files: 26233138313B 2623383232363B 2623383231363B 2655636972633B 26233933373B 2641456C69673B 262336333734333B 2645756D6C3B 26233137313B 26737A6C69673B 26233731303B 264F67726176653B 264F74696C64653B 2623383232343B 26233138343B 264F636972633B 2623383830353B 2669636972633B 2623383438323B 26233136313B 26233733303B 266575726F3B 2623383232323B 26233234373B 2623383231323B 266F74696C64653B 26233138373B 26233333383B 2645636972633B 266172696E673B 2661756D6C3B 26233732383B 26233934383B 264F61637574653B 26233733333B 2623383733343B 2623383232303B 265561637574653B 2669756D6C3B 26233137373B 2661636972633B 26233936303B 26233138323B 265567726176653B 2675756D6C3B 2641756D6C3B 26233330353B 26233337363B 2623383737363B 26233136373B Log Message: examples.data from old regex, updated for re --- NEW FILE: 264F61637574653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 266575726F3B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233138323B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2645756D6C3B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2655636972633B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2645636972633B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 262336333734333B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233731303B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2641456C69673B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 264F67726176653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233138373B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383438323B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233136313B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233330353B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383232323B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233732383B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233138343B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233333383B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 266172696E673B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2661636972633B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 264F74696C64653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26737A6C69673B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2669636972633B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233733303B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 266F74696C64653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383232343B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233138313B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233733333B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233934383B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383231323B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233936303B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2661756D6C3B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233337363B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233933373B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2675756D6C3B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233137313B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 265561637574653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383733343B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 264F636972633B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383232363B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2641756D6C3B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383231363B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383232303B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233137373B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2669756D6C3B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233136373B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 265567726176653B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383830353B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 26233234373B --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 2623383737363B --- (This appears to be a binary file; contents omitted.) |
|
From: creedon <icr...@us...> - 2005-08-07 02:59:30
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/re/testing/data In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13862 Added Files: buildEntitiesTable bookmarks html Log Message: examples.data from old regex, updated for re --- NEW FILE: bookmarks --- FrontierVcsFile:1:wptx:system.verbs.builtins.re.testing.data.bookmarks <!DOCTYPE NETSCAPE-Bookmark-file-1> <!-- This is an automatically generated file. It will be read and overwritten. Do Not Edit! --> <TITLE>Danis Georgiadis's Bookmarks</TITLE> <H1>Danis Georgiadis's Bookmarks</H1> <DL><p> <DT><H3 FOLDED ADD_DATE="844443701">OpenDoc, Cyberdog</H3> <DD> <DL><p> <DT><A HREF="http://www.microserve.net/%7Edhughes/" ADD_DATE="840452494" LAST_VISIT="844024394" LAST_MODIFIED="840452353">The Cyberdog Pound</A> <DT><A HREF="http://www.acl.lanl.gov/sunrise/DistComp/OpenDoc/" ADD_DATE="841687523" LAST_VISIT="841687151" LAST_MODIFIED="841687151">OpenDoc Resource Links</A> <DT><A HREF="http://www.cc.gatech.edu/people/home/mpinkert/opendoc/OpenDoc.html" ADD_DATE="844024820" LAST_VISIT="844024623" LAST_MODIFIED="844024623">The OpenDoc Revolution</A> <DT><A HREF="http://www.resnova.com/cyberdog/js983jdifghehfiekjd/downloads.html" ADD_DATE="844277467" LAST_VISIT="844277361" LAST_MODIFIED="844277361">CyberDog Demonstration Page</A> <DT><A HREF="http://ugly.resnova.com/cyberdog/downloadform.html" ADD_DATE="844277970" LAST_VISIT="844277808" LAST_MODIFIED="844277808">Cyberdog Demonstration Page</A> </DL><p> <DT><H3 FOLDED ADD_DATE="834261822">4D</H3> <DL><p> <DT><A HREF="http://members.aol.com/fourdzine/index.html" ADD_DATE="841669193" LAST_VISIT="844094394" LAST_MODIFIED="841669188">4D Zine Home Page</A> <DT><A HREF="http://www.aci.fr/Pages/DevNet/Contents_En.Html" ADD_DATE="841681478" LAST_VISIT="841681429" LAST_MODIFIED="841681429">Pages:DevNet:Contents.html</A> <DT><A HREF="http://www.scott.net/~sribe/" ADD_DATE="831733515" LAST_VISIT="842740560" LAST_MODIFIED="831733394">Scott Ribe & KillerBytes Home Page</A> <DT><A HREF="http://members.aol.com/fourdzine/" ADD_DATE="823537222" LAST_VISIT="844094387" LAST_MODIFIED="823537066">4D Zine Home Page</A> <DT><A HREF="http://www.ktts.kharkov.ua/web.doc/en/4d/partnerware-info.html" ADD_DATE="823285287" LAST_VISIT="823390334" LAST_MODIFIED="823285264">PartnerWare</A> <DT><A HREF="http://www.ACI-4D.com" ADD_DATE="823176096" LAST_VISIT="0" LAST_MODIFIED="0">ACI</A> </DL><p> <DT><H3 FOLDED ADD_DATE="821126620">Misc</H3> <DL><p> <DT><A HREF="http://http2.brunel.ac.uk:8080/~acsrajc/mbikes.html" ADD_DATE="831496475" LAST_VISIT="842298704" LAST_MODIFIED="831496445">The UK Motorcycling Information Page</A> <DT><A HREF="http://www.kultur98.stockholm.se/home.html" ADD_DATE="824311377" LAST_VISIT="824501103" LAST_MODIFIED="824311356">Stockholm '98</A> <DT><A HREF="http://www.teledanmark.dk/copenhagen96/" ADD_DATE="824312340" LAST_VISIT="824312338" LAST_MODIFIED="824312338">COPENHAGEN 96 WWW HOMEPAGE</A> <DT><A HREF="http://www.earthlink.net/~hotelanywhere/europe/gree/blank.html" ADD_DATE="820157836" LAST_VISIT="815403729" LAST_MODIFIED="815403729">Hotel Anywhere!/Europe/Greece</A> <DT><A HREF="http://206.31.72.211/cycle/index.htm" ADD_DATE="820157836" LAST_VISIT="842301734" LAST_MODIFIED="818694688">Motorcycle Web Sites</A> <DT><A HREF="http://www.oeh.uni-linz.ac.at:8001/img/HATE.map?27,18" ADD_DATE="820157836" LAST_VISIT="831502557" LAST_MODIFIED="818804095">The MircoSoft Hate Page</A> <DT><A HREF="http://www.bikenet.co.uk/" ADD_DATE="820157836" LAST_VISIT="842299905" LAST_MODIFIED="819805614">BikeNet - two wheeled internetting</A> <DT><A HREF="http://www.motorcycle.com/motorcycle.html" ADD_DATE="820157836" LAST_VISIT="819809185" LAST_MODIFIED="819808870">MOTORCYCLE ONLINE</A> </DL><p> <DT><H3 FOLDED ADD_DATE="821126571">Docs</H3> <DL><p> <DT><A HREF="http://serv2.fwi.com/~gziegler/jargon/" ADD_DATE="844344610" LAST_VISIT="844344505" LAST_MODIFIED="844344505">Jargon File 3.0.0 - The Ultimate Index</A> <DT><A HREF="http://thehamptons.com/anders/netatalk/" ADD_DATE="840451153" LAST_VISIT="840451107" LAST_MODIFIED="840451107">Anders: Netatalk: Linux Netatalk-HOWTO</A> <DT><A HREF="http://www.cs.utah.edu/csinfo/texinfo/texinfo.html" ADD_DATE="823023217" LAST_VISIT="829848804" LAST_MODIFIED="823023143">The Gnu Info Tree</A> <DT><A HREF="http://152.1.24.177/teaching/manuscript/" ADD_DATE="820157836" LAST_VISIT="816100627" LAST_MODIFIED="816100627">Teaching a New Dog Old Tricks</A> <DT><A HREF="http://www.phlab.missouri.edu/perl/perlcourse.html" ADD_DATE="820157836" LAST_VISIT="817901727" LAST_MODIFIED="817901727">Introduction to Perl</A> <DT><A HREF="http://www.marketspace.com.au/~adam/" ADD_DATE="820157836" LAST_VISIT="818322134" LAST_MODIFIED="818322134">Adam's Perl Page</A> <DT><A HREF="http://www.nashville.net/~carl/htmlguide/" ADD_DATE="820165914" LAST_VISIT="823530976" LAST_MODIFIED="820165900">How do they do that with HTML?</A> <DT><A HREF="http://www.v-one.com/pubs/fw-faq/faq.htm" ADD_DATE="821120758" LAST_VISIT="821120354" LAST_MODIFIED="821120354">Internet Firewalls Frequently Asked Questions</A> </DL><p> <DT><H3 FOLDED ADD_DATE="821126706">Mac</H3> <DL><p> <DT><A HREF="http://nucleus.ibg.uu.se/mklinux/" ADD_DATE="836244893" LAST_VISIT="836244886" LAST_MODIFIED="836244886">MkArchive</A> <DT><A HREF="http://www.slaphappy.com/" ADD_DATE="838663093" LAST_VISIT="840889790" LAST_MODIFIED="838663017">Welcome to WebCenter!</A> <DT><A HREF="http://www.resnova.com/webforone/wfo100b.hqx" ADD_DATE="838672382" LAST_VISIT="0" LAST_MODIFIED="0">wfo100b.hqx</A> <DT><A HREF="http://www.redshift.com/~surfvh/X/MacGraphicsFAQ.html" ADD_DATE="828790655" LAST_VISIT="828790589" LAST_MODIFIED="828790589">Mac Graphics FAQ</A> <DT><A HREF="http://the-tech.mit.edu/Macmade/" ADD_DATE="829320254" LAST_VISIT="800134627" LAST_MODIFIED="829320175">Made with Macintosh</A> <DT><A HREF="http://www.smli.com:80/~rjohnson/mactcl-project.html" ADD_DATE="830971079" LAST_VISIT="841235741" LAST_MODIFIED="830971032">Macintosh Tcl/Tk Project</A> <DT><A HREF="http://www.ncl.ac.uk/~namm4/" ADD_DATE="834091284" LAST_VISIT="835024541" LAST_MODIFIED="834091240">Macintosh Related Mailing Lists</A> <DT><A HREF="http://www.scriptweb.com/scriptweb/osaxen/default.html" ADD_DATE="821455918" LAST_VISIT="824555157" LAST_MODIFIED="821455911">Scripting Additions</A> <DT><A HREF="http://www.cc.gatech.edu/people/home/mpinkert/opendoc/OpenDoc.html" ADD_DATE="823125154" LAST_VISIT="844024622" LAST_MODIFIED="823167146">OpenDoc - CyberDog</A> <DT><A HREF="http://www.AmbrosiaSW.com/alt.sources.mac/" ADD_DATE="823518375" LAST_VISIT="839013351" LAST_MODIFIED="823518227">Alt.Sources.Mac Home Page</A> <DT><A HREF="http://www.cpsc.ucalgary.ca:80/~roseman/mactcl/" ADD_DATE="823992609" LAST_VISIT="841265960" LAST_MODIFIED="823992389">Macintosh Tcl Projects</A> <DT><A HREF="http://www.ncl.ac.uk/macinfo/" ADD_DATE="824463770" LAST_VISIT="824560950" LAST_MODIFIED="824463721">Macintosh Articles</A> <DT><A HREF="http://www.mklinux.apple.com/" ADD_DATE="824558939" LAST_VISIT="833148862" LAST_MODIFIED="824558924">Linux for Power Macintosh</A> <DT><A HREF="http://www.apple.com/documents/otherappleservers.html" ADD_DATE="825012643" LAST_VISIT="826624750" LAST_MODIFIED="825012454">Apple Internet Sites</A> <DT><A HREF="http://runtime.sat.net/escape/escape.html" ADD_DATE="827437646" LAST_VISIT="827437627" LAST_MODIFIED="827437627">Internet Escape!!!</A> <DT><A HREF="http://w3.one.net/~beef/Unix.html" ADD_DATE="821973198" LAST_VISIT="821973178" LAST_MODIFIED="821973178">Macintosh Unix Solutions</A> <DT><A HREF="http://bambam.cchem.berkeley.edu/~schrier/mhz.html" ADD_DATE="820157836" LAST_VISIT="817206773" LAST_MODIFIED="817206773">Clock Chipping</A> <DT><A HREF="http://www.austin.apple.com/macos/macosmain.html" ADD_DATE="820157836" LAST_VISIT="800134748" LAST_MODIFIED="817251915">Mac OS & Apple System Software Technologies</A> <DT><A HREF="http://www.cs.washington.edu/homes/fred/macshell.html" ADD_DATE="820157836" LAST_VISIT="825681621" LAST_MODIFIED="815211411">MacShell</A> </DL><p> <DT><H3 FOLDED ADD_DATE="821126462">Web Tools</H3> <DL><p> <DT><A HREF="http://bau2.uibk.ac.at:81/archieplex-info/archieplexform.html" ADD_DATE="821122238" LAST_VISIT="834496455" LAST_MODIFIED="821122195">ArchiePlexForm</A> <DT><A HREF="http://www2.claris.com/forms/homepagedownload.html" ADD_DATE="835999488" LAST_VISIT="836051854" LAST_MODIFIED="835999365">Claris Home Page Beta</A> <DT><A HREF="http://www.sunpack.com/RTF/" ADD_DATE="835984214" LAST_VISIT="837187709" LAST_MODIFIED="835984209">rtftohtml A Filter to Translate RTF to HTML - Title</A> <DT><A HREF="http://www.hotwired.com/surf/special/toolkit/toolkit.html" ADD_DATE="828051966" LAST_VISIT="828203533" LAST_MODIFIED="828051829">HotWired: Webomatic</A> <DT><A HREF="http://bio.bu.edu/WebEvent/README.html" ADD_DATE="831496380" LAST_VISIT="831496376" LAST_MODIFIED="831496376">WebEvent: Installation Guide</A> <DT><A HREF="http://www.tools.gnn.com/server/index.html" ADD_DATE="829657576" LAST_VISIT="829842546" LAST_MODIFIED="829657560">GNN Web Tools -- GNNServer</A> <DT><A HREF="http://www.tools.gnn.com/download.html" ADD_DATE="829843205" LAST_VISIT="829909223" LAST_MODIFIED="829843070">GNN Web Tools -- Download Our Software -- It's All Free!</A> <DT><A HREF="http://webreference.com/" ADD_DATE="825360482" LAST_VISIT="825360352" LAST_MODIFIED="825360352">Webmaster Reference Library (TM)</A> <DT><A HREF="http://www.eff.org/~erict/Scripts/" ADD_DATE="825360845" LAST_VISIT="825360631" LAST_MODIFIED="825360631">Selena Sol's Public Domain CGI Script Archive and Resource Library</A> <DT><A HREF="http://freenet.msp.mn.us/people/drwool/webconf.html" ADD_DATE="824846138" LAST_VISIT="824846125" LAST_MODIFIED="824846125">Conferencing on the Web (Discussion Forums)</A> <DT><A HREF="http://www.aiclex.com/webmaster/perl/HyperCal.html" ADD_DATE="825002988" LAST_VISIT="825002986" LAST_MODIFIED="825002986">HyperCal - A Calendar for the Web</A> <DT><A HREF="http://www.eff.org/~erict/Scripts/" ADD_DATE="820157836" LAST_VISIT="825360631" LAST_MODIFIED="820148307">Selena's CGI Scripts (Testing Area)</A> <DT><A HREF="http://www.vv.com/~stanley/cos.html" ADD_DATE="820157836" LAST_VISIT="819989702" LAST_MODIFIED="819989702">Catalog Ordering System</A> <DT><A HREF="http://info.webcrawler.com/mak/projects/robots/norobots.html" ADD_DATE="820157836" LAST_VISIT="819909742" LAST_MODIFIED="819909742">A Standard for Robot Exclusion</A> <DT><A HREF="http://www.ilar.com/folkweb.htm" ADD_DATE="820157836" LAST_VISIT="818962186" LAST_MODIFIED="818962186">ILAR FolkWeb Software</A> <DT><A HREF="http://www.missouri.edu/~c588349/tablemaker.html" ADD_DATE="820157836" LAST_VISIT="818960880" LAST_MODIFIED="818960880">TableMaker</A> <DT><A HREF="http://www.kosone.com/people/nelsonl/nl.htm" ADD_DATE="820157836" LAST_VISIT="818960714" LAST_MODIFIED="818960714">THE WEB DESIGNER</A> <DT><A HREF="http://www.best.com/~wooldri/HTMP/htmp.html" ADD_DATE="820157836" LAST_VISIT="816962053" LAST_MODIFIED="816962053">HTMP - Hyper Text Markup Preprocessing (language)</A> <DT><A HREF="http://www.io.org/~rasmus/" ADD_DATE="820157836" LAST_VISIT="818239288" LAST_MODIFIED="818239288">Rasmus' Home Page</A> <DT><A HREF="http://scendtek.com/zv/" ADD_DATE="820157836" LAST_VISIT="818958872" LAST_MODIFIED="818958872">ScendTek's ZyView WWW Database System (V2.0)</A> <DT><A HREF="http://www.io.org/~rasmus/php.cgi/~rasmus/php2/intro.html?EMA...@hy..." ADD_DATE="820157836" LAST_VISIT="818244435" LAST_MODIFIED="818244435">PHP Version 2.0 - Personal Home Page Construction Kit</A> <DT><A HREF="http://fxfx.com:8080/" ADD_DATE="820157836" LAST_VISIT="823194960" LAST_MODIFIED="818959020">WWWBase</A> <DT><A HREF="http://isx.com/cgi-bin/libHTML" ADD_DATE="820157836" LAST_VISIT="818603276" LAST_MODIFIED="818603276">libHTML Home Page</A> </DL><p> <DT><H3 FOLDED ADD_DATE="822575082">Netscape Stuff</H3> <DL><p> <DT><A HREF="http://developer.netscape.com/library/ifc/index.html" ADD_DATE="843570605" LAST_VISIT="843864976" LAST_MODIFIED="843570560">Netscape DevEdge - IFC</A> <DT><H3 FOLDED ADD_DATE="827515095">Javascript Stuff</H3> <DL><p> <DT><A HREF="http://www.scripting.com/playingwithjavascript.html" ADD_DATE="820157836" LAST_VISIT="820327127" LAST_MODIFIED="820147223">Playing with JavaScript</A> <DT><A HREF="http://home.netscape.com/eng/mozilla/2.0/handbook/javascript/index.html" ADD_DATE="822863882" LAST_VISIT="822863800" LAST_MODIFIED="822863800">JavaScript Authoring Guide</A> <DT><A HREF="http://www.c2.org/~andreww/javascript/lib/" ADD_DATE="823529439" LAST_VISIT="823529355" LAST_MODIFIED="823529355">JavaScript Library</A> <DT><A HREF="http://www.c2.org/~andreww/javascript/" ADD_DATE="823529544" LAST_VISIT="823529521" LAST_MODIFIED="823529521">JavaScript Index</A> <DT><A HREF="http://www.gamelan.com/Gamelan.javascript.html" ADD_DATE="821966614" LAST_VISIT="823526346" LAST_MODIFIED="821966132">JavaScript</A> <DT><A HREF="http://www.dannyg.com/javascript/" ADD_DATE="821963038" LAST_VISIT="823087191" LAST_MODIFIED="821965371">//www.dannyg.com/javascript/</A> </DL><p> <DT><A HREF="http://www.yikes.com/fun/netscape/" ADD_DATE="820857140" LAST_VISIT="823530745" LAST_MODIFIED="820787342">Netscape Tricks</A> <DT><A HREF="http://www.webcom.com/taketwo/samstynf.htm" ADD_DATE="823085602" LAST_VISIT="835140481" LAST_MODIFIED="823085552">Teach Yourself Netscape Web Publishing in a Week</A> <DT><A HREF="http://cgi.netscape.com/assist/support/server/tn/windows-nt/20215.html" ADD_DATE="831252514" LAST_VISIT="834518670" LAST_MODIFIED="831252062">Netscape Technical Note 20215</A> <DT><A HREF="http://www.netscapeworld.com/" ADD_DATE="836850483" LAST_VISIT="836850459" LAST_MODIFIED="836850459">NetscapeWorld - July 1996</A> <DT><A HREF="http://www.browserwatch.com/" ADD_DATE="820700506" LAST_VISIT="843681956" LAST_MODIFIED="820700450">BrowserWatch</A> <DT><A HREF="http://developer.netscape.com/private/index.html" ADD_DATE="820157836" LAST_VISIT="838898918" LAST_MODIFIED="819647558">Netscape Developer Private Site</A> <DT><A HREF="http://developer.netscape.com/private/newsgroups/index.html" ADD_DATE="822342329" LAST_VISIT="829781542" LAST_MODIFIED="822342313">Secure Newsgroups</A> <DT><A HREF="http://developer.netscape.com/private/viewsource/index.html" ADD_DATE="822863388" LAST_VISIT="837002978" LAST_MODIFIED="822863366">Welcome to View Source</A> <DT><A HREF="http://www.netscape.com/comprod/mirror/mac/beta_mac.html" ADD_DATE="820157836" LAST_VISIT="820147287" LAST_MODIFIED="817721144">Netscape Now</A> <DT><A HREF="http://home.netscape.com/assist/support/server/" ADD_DATE="821701615" LAST_VISIT="831250736" LAST_MODIFIED="821701608">Netscape Server Support</A> <DT><H3 FOLDED ADD_DATE="821700888">Cookies</H3> <DL><p> <DT><A HREF="http://home.netscape.com/newsref/std/cookie_spec.html" ADD_DATE="821701093" LAST_VISIT="821701076" LAST_MODIFIED="821701076">Client Side State - HTTP Cookies</A> <DT><A HREF="http://home.netscape.com/assist/support/server/tn/cross-platform/20019.html" ADD_DATE="821700877" LAST_VISIT="821701032" LAST_MODIFIED="821700725">Netscape Technical Note 20019</A> </DL><p> </DL><p> <DT><H3 FOLDED ADD_DATE="821126071">Frontier and friends</H3> <DL><p> <DT><A HREF="http://home.pi.net/~jstorms/root/root.html" ADD_DATE="843528123" LAST_VISIT="843528120" LAST_MODIFIED="843528120">Welcome to a local Low Tech Object DBS</A> <DT><A HREF="http://www.scripting.com/goodies/odbserver.html" ADD_DATE="838923573" LAST_VISIT="838923496" LAST_MODIFIED="838923496">Serving directly from the Object DB with WebSTAR</A> <DT><A HREF="http://siolibrary.ucsd.edu/Preston/scripting/NetFrontier/" ADD_DATE="838983805" LAST_VISIT="840969590" LAST_MODIFIED="838983564">NetFrontier</A> <DT><A HREF="http://MarvelGirl.dmc.com/acornsw.com/root/suites/sysop.html" ADD_DATE="838919476" LAST_VISIT="838919712" LAST_MODIFIED="838918681">LTODBS for: suites.sysop</A> <DT><A HREF="http://www2.nothingness.org/dt/scripting/root/suites/htmlMenu.html" ADD_DATE="835736721" LAST_VISIT="835736669" LAST_MODIFIED="835736669">suites.htmlMenu</A> <DT><A HREF="http://www.acornsw.com/acornsw.com/root.html" ADD_DATE="836593042" LAST_VISIT="838919479" LAST_MODIFIED="836592985">Welcome to the Low Tech Object DBS Root</A> <DT><A HREF="http://www.cat.uc.edu/dave/Frontier/kitchen.html" ADD_DATE="836345700" LAST_VISIT="836344897" LAST_MODIFIED="836344897">The Outpost Kitchen</A> <DT><A HREF="http://bioinformatics.weizmann.ac.il/software/frontier/apps/" ADD_DATE="832620755" LAST_VISIT="832619469" LAST_MODIFIED="832619469">Index of /software/frontier/apps/</A> <DT><A HREF="http://www.starnews.com/okyeron/frontier/logos.html" ADD_DATE="830641882" LAST_VISIT="830644514" LAST_MODIFIED="830641798">Jeux avec Frontieres logos</A> <DT><A HREF="http://www.scripting.com/frontier/" ADD_DATE="829064606" LAST_VISIT="844384760" LAST_MODIFIED="829064543">Frontier Community Center</A> <DT><A HREF="http://www.cat.uc.edu/dave/frontier/" ADD_DATE="824118134" LAST_VISIT="827603526" LAST_MODIFIED="824118048">The Outpost</A> <DT><A HREF="http://www.circumtech.com/WWW/guide/guide.html" ADD_DATE="822059294" LAST_VISIT="824077897" LAST_MODIFIED="823516787">AppleGuide for Frontier</A> <DT><A HREF="http://ape.com/Diana/Learning/Learning.html" ADD_DATE="820157836" LAST_VISIT="821116482" LAST_MODIFIED="819489106">Informal Frontier Tutorial</A> <DT><A HREF="http://www.rhrz.uni-bonn.de/~uzr51b/faq/clay.html" ADD_DATE="821093852" LAST_VISIT="800133980" LAST_MODIFIED="821093838">Clay Basket FAQ</A> <DT><A HREF="http://www.blueworld.com/lists.frontier-talk.search.fcgi" ADD_DATE="821123101" LAST_VISIT="835025836" LAST_MODIFIED="821123091">Search - Frontier-Talk</A> <DT><A HREF="http://www.netaxis.com/~vsi/clay/" ADD_DATE="820157836" LAST_VISIT="824407938" LAST_MODIFIED="819223895">Macro Build Site</A> <DT><A HREF="http://www.bogo.co.uk/doug/outpost/pick/pick.html" ADD_DATE="820157836" LAST_VISIT="819114306" LAST_MODIFIED="819114306">Aretha ColorPicker</A> <DT><A HREF="http://www.webedge.com/" ADD_DATE="820157836" LAST_VISIT="830979957" LAST_MODIFIED="818718500">The WebEdge Home Page</A> </DL><p> <DT><H3 FOLDED ADD_DATE="827515180">Java</H3> <DD> <DL><p> <DT><A HREF="http://www.mbmdesigns.com/macjava/" ADD_DATE="838644221" LAST_VISIT="843772815" LAST_MODIFIED="838644161">Apple Flavored Java</A> <DT><A HREF="http://www.bulletproof.com/JDesignerPro/" ADD_DATE="834262179" LAST_VISIT="834322009" LAST_MODIFIED="834262174">JDesignerPro by BulletProof.com</A> <DT><A HREF="http://www.io.org/~mentor/J___Notes.html" ADD_DATE="834181153" LAST_VISIT="837173325" LAST_MODIFIED="834181140">Digital Espresso</A> <DT><A HREF="http://www.yahoo.com/Computers_and_Internet/Programming_Languages/Java/" ADD_DATE="834182921" LAST_VISIT="834257516" LAST_MODIFIED="834182915">Yahoo! - Computers and Internet:Programming Languages:Java</A> <DT><A HREF="http://users.aol.com/thingtone/workshop/index.htm" ADD_DATE="834259712" LAST_VISIT="834259621" LAST_MODIFIED="834259621">Thingtone's Java Workshop</A> <DT><A HREF="http://www.halcyon.com/kuntay/java/" ADD_DATE="829921164" LAST_VISIT="829921047" LAST_MODIFIED="829921047">Java Graphical Class Hierarchy</A> <DT><A HREF="http://ugweb.cs.ualberta.ca/~nelson/java/JavaGuides.html" ADD_DATE="834168294" LAST_VISIT="834257603" LAST_MODIFIED="834168119">Perpetually Unfinished guides</A> <DT><A HREF="http://www.javasoft.com/JDK-1.0/Mac-Beta1/index.html" ADD_DATE="824897724" LAST_VISIT="824900090" LAST_MODIFIED="824897705">Java(tm) Developers Kit Installation</A> <DT><A HREF="http://summary.net/~breck/java-opendoc.html" ADD_DATE="825714349" LAST_VISIT="826829056" LAST_MODIFIED="825714333">Wake up OpenDoc with Java!</A> <DT><A HREF="http://splash.javasoft.com/jdbc/" ADD_DATE="827325518" LAST_VISIT="832006684" LAST_MODIFIED="827325489">The JDBC(tm) database access API.</A> </DL><p> <DT><H3 FOLDED ADD_DATE="844443800">tcl</H3> <DD> <DL><p> <DT><A HREF="http://www.NeoSoft.com/tcl/contributed-software/" ADD_DATE="841015691" LAST_VISIT="841068212" LAST_MODIFIED="841015686">Tcl Contributed Software Archive</A> <DT><A HREF="http://www.smli.com/research/tcl/lists/mactcl-list.html" ADD_DATE="841063529" LAST_VISIT="841264567" LAST_MODIFIED="841063519">The Macintosh Tcl Mailing List</A> <DT><A HREF="http://www.sunlabs.com/~rjohnson/mactcl-list.html" ADD_DATE="841266419" LAST_VISIT="841266922" LAST_MODIFIED="841266410">The Macintosh Tcl Mailing List</A> <DT><A HREF="http://www.sun.com/960710/cover/" ADD_DATE="837862441" LAST_VISIT="837862398" LAST_MODIFIED="837862398">Tcl - An Internet Scripting Language</A> <DT><A HREF="http://www.sunlabs.com/research/tcl/plugin/" ADD_DATE="837862864" LAST_VISIT="837865924" LAST_MODIFIED="837865459">//www.sunlabs.com/research/tcl/</A> </DL><p> <DT><H3 FOLDED ADD_DATE="827515396">MicroSloth - NT</H3> <DD> <DL><p> <DT><A HREF="http://nz.com/NZ/Commerce/creative-cgi/special/qbik/wingate.htm" ADD_DATE="821351974" LAST_VISIT="821351959" LAST_MODIFIED="821351959">WinGate for Windows NT and Windows 95</A> <DT><A HREF="http://info.hip.com/ntperl/PerlFaq.htm" ADD_DATE="821445287" LAST_VISIT="821446332" LAST_MODIFIED="821445155">Perl for Win32 FAQ</A> <DT><A HREF="HTTP://info.hip.com/ntperl/" ADD_DATE="821445781" LAST_VISIT="821702405" LAST_MODIFIED="821445775">Perl for Win32</A> <DT><A HREF="http://emwac.ed.ac.uk/" ADD_DATE="821450753" LAST_VISIT="821450748" LAST_MODIFIED="821450748">EMWAC Home Page</A> <DT><A HREF="http://www.microsoft.com/BackOffice/Reading/rr00000.htm" ADD_DATE="821451555" LAST_VISIT="821451220" LAST_MODIFIED="821451220">Microsoft BackOffice Reading Room</A> <DT><A HREF="http://www.microsoft.com/windows/ie/mac/macdl.htm" ADD_DATE="822338997" LAST_VISIT="823531142" LAST_MODIFIED="822338257">Microsoft Internet Explorer for the Macintosh v 2.0 - Unlocks the Potential of the Internet for Macintosh Users</A> <DT><A HREF="http://www.mts.se/martin/nt.uk.html" ADD_DATE="824844885" LAST_VISIT="824844948" LAST_MODIFIED="824844809">NT Workstation Resources</A> </DL><p> <DT><H3 FOLDED ADD_DATE="834261954">Win</H3> <DL><p> <DT><A HREF="http://www.celsoft.com/osetup/" ADD_DATE="831507498" LAST_VISIT="834497663" LAST_MODIFIED="831507493">Celtech Software: O'Setup95 Home Page</A> <DT><A HREF="http://www.netnet.net/users/freeman/" ADD_DATE="834145648" LAST_VISIT="834146697" LAST_MODIFIED="834145641">Freeman Installer v2.2</A> <DT><A HREF="http://www.dnh.mv.net/ipusers/harrisoft/" ADD_DATE="831507504" LAST_VISIT="834497544" LAST_MODIFIED="831507501">HS-Install Installation System for Windows</A> </DL><p> <DT><H3 FOLDED ADD_DATE="838829087">New Web Techs</H3> <DD> <DL><p> <DT><A HREF="http://vektor.echo.lu/other/winter/" ADD_DATE="820157836" LAST_VISIT="818683390" LAST_MODIFIED="818683390">WInterIndex</A> <DT><A HREF="http://www.atg.apple.com/go/projectx/default.html" ADD_DATE="836320837" LAST_VISIT="836320915" LAST_MODIFIED="836320796">Project X</A> <DT><A HREF="http://www.macromedia.com/software/powerapplets/" ADD_DATE="837863397" LAST_VISIT="837863592" LAST_MODIFIED="837863277">Macromedia - PowerApplets</A> <DT><A HREF="http://www.medianews.com/" ADD_DATE="837863672" LAST_VISIT="838643890" LAST_MODIFIED="837863596">MediaNews</A> </DL><p> <DT><H3 FOLDED ADD_DATE="838829411">Places</H3> <DL><p> <DT><A HREF="http://www.hol.gr/business/motomag/" ADD_DATE="842609460" LAST_VISIT="842609083" LAST_MODIFIED="842609083">Moto Magazine Home Page</A> <DT><A HREF="http://www.macintouch.com/" ADD_DATE="840450042" LAST_VISIT="844279912" LAST_MODIFIED="840449877">MacInTouch Home Page</A> <DT><A HREF="http://iw.cts.com/~jonpugh/Default.html" ADD_DATE="820157836" LAST_VISIT="821270803" LAST_MODIFIED="818804266">Jon Pugh's Home Page</A> <DT><A HREF="http://194.219.29.70/sae1/e_forum.html" ADD_DATE="832280836" LAST_VISIT="832327693" LAST_MODIFIED="832280737">E-Forum</A> <DT><A HREF="http://www.compulink.gr/login/ftp-pointers/index.html" ADD_DATE="825016973" LAST_VISIT="825019689" LAST_MODIFIED="825016954">CompuLink's FTP Archive</A> <DT><A HREF="http://www.hiway.gr/gi/" ADD_DATE="822861378" LAST_VISIT="824077797" LAST_MODIFIED="822861354">HIWAY - Greek Indexer</A> <DT><A HREF="http://sunsite.mff.cuni.cz/ftp/" ADD_DATE="834254370" LAST_VISIT="835993660" LAST_MODIFIED="834254292">/ on SunSITE Czech Republic</A> <DT><A HREF="http://www.psl-online.com/" ADD_DATE="834404064" LAST_VISIT="834580527" LAST_MODIFIED="834403527">PsL Online BBS</A> </DL><p> <DT><H3 FOLDED ADD_DATE="844443836">regex</H3> <DD> <DL><p> <DT><A HREF="http://www.ciser.cornell.edu/info/regex_NG.html" ADD_DATE="844338862" LAST_VISIT="844338807" LAST_MODIFIED="844338807">Regular Expressions Primer</A> <DT><A HREF="http://www.webcom.com/webcom/glossary/regexp.html" ADD_DATE="844340675" LAST_VISIT="844340607" LAST_MODIFIED="844340607">WebCom Glossary - Regular Expressions</A> <DT><A HREF="http://www.cs.uah.edu/unix_tutorial/concepts_regexp.html" ADD_DATE="844340859" LAST_VISIT="844340772" LAST_MODIFIED="844340772">Regular expressions</A> <DT><A HREF="http://stax.uchicago.edu/keith/tcl-course/topics/regexp.html" ADD_DATE="844341516" LAST_VISIT="844341350" LAST_MODIFIED="844341350">Intro to Tcl: Regular Expressions</A> <DT><A HREF="http://inswww.cwru.edu/misc/regexp.html" ADD_DATE="844341641" LAST_VISIT="844341581" LAST_MODIFIED="844341581">Regular Expressions</A> <DT><A HREF="http://www.unimelb.edu.au:801/manuals/unixhelp/utilities2_grep3.1.html" ADD_DATE="844342402" LAST_VISIT="844367506" LAST_MODIFIED="844342279">Examples of using regular expressions</A> <DT><A HREF="http://www.apexsc.com/vb/regex2.html" ADD_DATE="844342646" LAST_VISIT="844367526" LAST_MODIFIED="844342518">Perl Regular Expression Tutorial</A> <DT><A HREF="http://www.mds.mdh.se/~elt93epn/cgi/conv.cgi/usr/man,5,regex" ADD_DATE="844344202" LAST_VISIT="844367664" LAST_MODIFIED="844343886">man,5,regex</A> </DL><p> <HR> <DT><A HREF="http://www.lochnet.com/client/smart/intranet.htm" ADD_DATE="831495859" LAST_VISIT="838829420" LAST_MODIFIED="831495816">The Complete Intranet Resouce</A> <HR> <DT><A HREF="http://www.wrldpwr.com/scriptweb.outl?65535" ADD_DATE="841396647" LAST_VISIT="841396933" LAST_MODIFIED="841396507">ScriptWeb</A> <DT><A HREF="http://lostworld.pair.com/powerwatch/" ADD_DATE="844279246" LAST_VISIT="844279153" LAST_MODIFIED="844279153">Welcome to PowerWatch!</A> </DL><p> --- NEW FILE: html --- (This appears to be a binary file; contents omitted.) --- NEW FILE: buildEntitiesTable --- FrontierVcsFile:1:scpt:system.verbs.builtins.re.testing.data.buildEntitiesTable local (i, ch, entity, hexKey); local (adrTable); case sys.os () { "Win95"; "WinNT" { adrTable = @html.data.iso8859.win}; "MacOS" { adrTable = @html.data.iso8859.mac}}; on hexEncode(s) { local (r = "", i); for i = 1 to sizeof (s) { r = r + string.mid (string.hex (s [i]), 5, 2)}; return (r)}; new (tableType, @re.testing.data.entities2ascii); for (i = 0 to 255) { ch = string (char(i)); entity = string.iso8859encode (ch, adrTable); if (sizeof (entity) > 1) { re.testing.data.entities2ascii.[hexEncode (string (entity))] = ch}} |
|
From: creedon <icr...@us...> - 2005-08-07 02:50:59
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/re/testing/data/entities2ascii In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12961/entities2ascii Log Message: Directory /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/re/testing/data/entities2ascii added to the repository |
|
From: creedon <icr...@us...> - 2005-08-07 02:49:59
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/re/testing/data In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12845/data Log Message: Directory /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/re/testing/data added to the repository |
|
From: creedon <icr...@us...> - 2005-08-07 02:47:16
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/re/testing In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12540 Added Files: bookmarksToGlossary parseSgml enableLinks iso8859Decode sgmlToText extractBookmarks extractRefs stripSgmlComments Log Message: examples from old regex, updated for re --- NEW FILE: bookmarksToGlossary --- (This appears to be a binary file; contents omitted.) --- NEW FILE: extractRefs --- (This appears to be a binary file; contents omitted.) --- NEW FILE: stripSgmlComments --- (This appears to be a binary file; contents omitted.) --- NEW FILE: parseSgml --- (This appears to be a binary file; contents omitted.) --- NEW FILE: iso8859Decode --- (This appears to be a binary file; contents omitted.) --- NEW FILE: enableLinks --- (This appears to be a binary file; contents omitted.) --- NEW FILE: sgmlToText --- (This appears to be a binary file; contents omitted.) --- NEW FILE: extractBookmarks --- (This appears to be a binary file; contents omitted.) |
|
From: creedon <icr...@us...> - 2005-08-07 02:43:39
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/re/testing In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12142 Removed Files: replaceWithCallback Log Message: replaced with iso8859Decode script, handler inside of this script was named iso8859Decode and matched what used to be in regex --- replaceWithCallback DELETED --- |
|
From: creedon <icr...@us...> - 2005-07-28 06:59:41
|
Update of /cvsroot/frontierkernel/odbs/prefsRoot/prefsSuite In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9570 Modified Files: browser Log Message: reworked 4/18/04; 7:58:37 PM code for upload a picture or any kind of file PNG support, store height and width of pictures we recognize upload any kind of file, need to add interface to link to file display picture, code looks for displayPicture attribute; if false don't display; default is true, contructs url that points into pta^.responderAttributes.urls^.prefsHome + "picture"; expects script to be there to deal with picture request Index: browser =================================================================== RCS file: /cvsroot/frontierkernel/odbs/prefsRoot/prefsSuite/browser,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** browser 2 Apr 2005 23:09:51 -0000 1.1.1.1 --- browser 28 Jul 2005 06:59:33 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:prefsSuite.browser ! on browser (flSignupForm=false, flIncludeTitle=true, adrSignupCallback=nil, inputPanel=nil, action=nil, adrError=nil, flHandleRequiredFields=true, pta=nil, flRequiresRedo=false, flSetTitle=true, separatorColor=nil, separatorTextColor=nil) { ÇChanges: Ç7/14/03; 5:24:12 PM by JES ÇAdded support for includeItem callback. Called with the value of the adr attribute of a prefs item, if the callback returns false, the item is skipped. Ç2002: Ç1/25/02; 6:11:51 PM by PBS ÇPerformance enhancements in the local "add" routine -- add a trailing semicolon; use parentheses to get the expression in x = x + y form (which is optimized by the kernel). Ç1/21/02; 9:00:32 PM by PBS ÇBug fix -- if a title is empty, the item is supposed to span both columns. This feature had been broken. Ç2000: Ç11/25/00; 8:23:57 PM by PBS ÇIf the title of an item is "", don't add a colon. This way we don't get colons before edit-in-Pike buttons. Ç03/31/00; 5:08:00 PM by PBS ÇWhen a sign-up form includes a picture, sometimes the browser would send empty data which got interpreted as a Frontier table. Then when building the form an implicit attempt was made to coerce the table to a string, which failed. Ç1999: Ç11/16/1999; 10:09:08 AM by AR ÇPurged all instances of xml.getAddressList in favor of our own looping code so that this script will work with arbitrarily deeply nested table structures. Ç10/30/99; 12:10:59 PM by PBS ÇImplemented workaround for 302 FOUND browser bug when redirecting to the same page you just posted to. Now the redirect happens to a different URL. If you were on a $panelName URL, you're redirected to a $panelNum URL, and vice versa. Ç10/30/99; 12:02:48 AM by PBS ÇManila sites need to be able to specify the color of separators and the text inside. If colors are not specified, the default is black for the separator and pta^.bgcolor for the text inside. Ç9/22/99; 8:39:27 PM by DW ÇWe used to always generate a form with an enctype="multipart/form-data" in its header. Now we only do so if the form contains a picture, or if there is a panel attribute named multiPart with a value of true. So in most circumstances we will not have a multipart form, in the past we would *always* have a multipart form. Ç9/16/99; 9:47:26 AM by DW ÇAdded link attribute on items, if present, the whole item links to the URL provided in the attribute. Search for "linkattribute" for implementation. Ç9/13/99; 12:37:43 PM by PBS ÇSign-ups and changed passwords weren't getting propagated. Now they are. Ç9/8/99; 12:40:57 AM by PBS ÇIf this is a sign up form, check that the two passwords match before creating the membership record. There was a bug -- the passwords might not match, but a membership record that didn't include a password would be created. Then the person signing up has no password -- but they can't sign up again because they're now a member. Ç8/19/99; 2:23:47 PM by PBS ÇNew optional parameter flSetTitle. If false, prefsSuite.browser does not set pta^.title, so the calling page can use a different title than the title of the panel. This was needed for the store -- which uses one panel for all order forms, but the titles are different depending on whether you're at the standard page or the Academic page. ÇDefault is standard behavior -- prefsSuite.browser sets pta^.title automatically. Ç8/18/99; 7:59:48 PM by PBS ÇIf you place a | character in a title, it will be replaced by a <br> tag so the title will wrap to the next line. Ç8/17/99; 11:24:53 AM by PBS ÇThe sendRpcMessages routine was moved to the top level of prefsSuite. The routine in this script now calls prefsSuite.sendRpcMessages. ÇThis was done so prefs broadcasting could happen outside of the context of this script or the page rendering process, so other scripts could broadcast prefs at will. Ç8/15/99; 3:59:30 PM by PBS ÇflRequiresRedo is no an optional parameter: if true, then the values will be taked from the post args. Ç8/14/99; 9:12:40 PM by PBS ÇMake sure content-type is defined before checking its value. This was causing errors with some browser on the main prefs page. Ç8/13/99; 3:53:13 PM by PBS ÇNew optional parameter pta. (Useful when debugging, also a small optimization.) Ç8/10/99; 10:24:06 PM by PBS ÇIf the person signing up uses an email address of an existing member, the error is reported in red text, and the user has a chance to re-fill out the form or go to the sign up page. ÇCheck that config.prefsServer.prefsDistributorFolder exists, so machines that aren't prefs distributors can run this script without generating errors. Ç8/10/99; 6:27:53 PM by PBS ÇNew parameter, flHandleRequiredFields, allows one to disable the automatic handling of required fields. Ç7/28/99; 9:05:00 by RAB Çadded action parameter Çadded adrError parameter Ç7/27/99; 17:35:00 by RAB ÇIf you specify a null title, then the field spans 2 columns. ÇAdded new pref alignNonRequired which keeps the titles better aligned Ç7/12/99; 2:59:44 by PBS ÇSupport for default values. An item can have a default attribute. If the item is not already in the user's member record, or it's a sign up form, then the item will get this default value. ÇAs in: <item title="Formatted in HTML?" type="boolean" adr="bulletins.inHtml" default="true"> Ç7/8/99; 10:03:09 AM by DW ÇImplement the XML-RPC-based prefs distribution system. Ç7/6/99; 8:41:39 AM by DW ÇAllow the pathargs to be a non-numeric string, it can contain the name of the panel, we'll transition to this form of pointing because it allows us to move things around. Ç6/27/99; 7:05:00 PM by RAB ÇSupport for static fields. ÇSupport for hidden fields. ÇSupport for checkbox fields. ÇOptional parameter for inputPanel number (rather then pathArgs) Ç6/12/99; 3:35:03 PM by PBS ÇSupport for required fields. ÇIf an item in the XML outline has a required="true" attribute, then it's a required field. ÇThe system will prompt you to enter any required fields you didn't enter. Ç6/5/99; 1:51:25 AM by PBS ÇadrSignupCallback is the address of a callback to be used when handling the POST request from a signup form. ÇThe callback is called after the POST args are processed, but before the form is built. ÇIf the callback returns anything but "", then the results of the callback are displayed in the page rather than the form. ÇThe callback thus has the chance to send email, for instance, when adding a member. And it has the chance to build a welcome page. Ç6/4/99; 4:15:27 PM by PBS ÇIf it's a signup form, and the member already exists, it's an error. ÇText in separators is now bold. Ç6/3/99; 12:37:55 PM by DW ÇAdded optional boolean parameter, flSignupForm, defaults false. If true, we don't require that pta^.adrmemberinfo be defined. ÇAdded optional boolean parameter, flIncludeTitle, defaults true. If false, we don't include the title, assume the page already has a title. Ç6/4/99; 10:38:22 AM by DW ÇAdd separator <item>s, that allow the author to separate items into groups. ÇAllow <item>s to be required, if the value has not been set, reject the submission. if pta == nil { pta = html.getPageTableAddress ()}; local (adrWizard = pta^.wizard); local (adrCallbacks = @adrwizard^.callbacks, flCallbacks = defined (adrCallbacks^)); local (pathArgs = pta^.pathArgs); local (pageName = nameOf (pta^.adrobject^)); Çlocal (flRequiresRedo = false) //it becomes true if required fields were missing local (emptyList = {}); local (flOneRequired = false); if adrError != nil { adrError^ = false}; local (rpcParamTable); new (tabletype, @rpcParamTable); on addPrefToRpcParamTable (partialaddress, adrval) { //7/8/99; 10:03:09 AM by DW if typeof (adrval^) == tabletype { local (i, adritem); for i = 1 to sizeof (adrval^) { adritem = @adrval^ [i]; if typeof (adritem^) == binarytype { adritem^ = base64.encode (adritem^, infinity)}}}; rpcParamTable.[partialaddress] = adrval^}; on sendRpcMessages () { if defined (pta^.adrMemberInfo) { //PBS 9/2/99: this person may not be a member prefsSuite.sendRpcMessages (@rpcParamTable, pta^.adrMemberInfo)}; //PBS 8/17/99: routine moved to top level of prefsSuite Çlocal (xmltext) Çbundle //build the XML representation Çon add (s) Çxmltext = xmltext + s + "\r" Çadd ("<?xml version=\"1.0\"?>") Çadd ("<prefsUpdate>") Çadd ("<group>" + "default" + "</group>") Çadd ("<memberKey>" + nameof (pta^.adrmemberinfo^) + "</memberKey>") Çadd ("<value>" + xml.coercions.frontierValueToTaggedText (@rpcParamTable, 0) + "</value>") Çadd ("</prefsUpdate>") Çbundle //write the file Çif defined (config.prefsServer.prefsDistributorFolder) //PBS 8/10/99: make sure this machine is a prefs distributor Çlocal (folder = config.prefsServer.prefsDistributorFolder) Çloop //get a unique name, write the file Çlocal (f = folder + clock.ticks () + ".xml") Çfile.surefilepath (f) Çif not file.exists (f) Çfile.writewholefile (f, xmltext) Çbreak ÇprefsSuite.init () Çlocal (i, ct = sizeof (config.prefsServer.subscribers), adrsubscriber) Çlocal (params = {"default", nameof (pta^.adrmemberinfo^), rpcParamTable}) Çfor i = 1 to ct Çadrsubscriber = @config.prefsServer.subscribers [i] Çbetty.rpc.client (nameof (adrsubscriber^), adrsubscriber^.port, adrsubscriber^.procedureName, @params, rpcpath:adrsubscriber^.rpcPath, flAsynch:true) Ç<panel title="Register"> Ç<description>This is an experimental feature. If you have a server that can do something interesting with preferences, and if your server can receive XML-RPC messages, you can hook into the preference system at UserLand.Com. We need three pieces of information: a domain name for your server (an IP address will also work), the port that server is running on, and the name of the XML-RPC procedure you want us to call. This routine will be called every time every user updates, so please don't register unless you're serious.</description> Ç<item title="Domain" type="string" adr="prefsRpcHandler.domain"/> Ç<item title="Port" type="string" adr="prefsRpcHandler.port"/> Ç<item title="Procedure name" type="string" adr="prefsRpcHandler.procedureName"/> Ç</panel> return (true)}; local (htmlText = "", indentLevel = 0); on add (s) { htmlText = htmlText + (string.filledString ("\t", indentLevel) + s + "\r");}; prefsSuite.compileIfDirty (); //compile the XML if needed local (panelNum, adrPanel); bundle { //get the number of the panel, the address of its descriptor in the XML structure, set flPrivate page attribute if inputPanel != nil { //caller supplied the panel num panelNum = number (inputPanel); local (i, ctpanels = 0, adritem, adrtable = @adrWizard^.structure [1]); for i = 1 to sizeOf (adrtable^) { adritem = @adrtable^[i]; if xml.convertToDisplayName (nameOf (adritem^)) == "panel" { ++ctpanels; if ctpanels == panelNum { //found it! adrPanel = adritem; break}}}; if ctpanels < panelNum { scripterror ("Can't display the panel because the wizard doesn't have a panel #" + panelNum + ".")}} else { panelNum = prefsSuite.pathArgsToPanelNum (pathargs, @adrpanel)}; local (flPrivate = false); try { flPrivate = boolean (xml.getAttribute (adrPanel, "private")^)}; pta^.flPrivate = flPrivate}; local (panelTitle, description); bundle { //get the title and description panelTitle = xml.getAttribute (adrPanel, "title")^; if flSetTitle { //PBS 8/19/99: if flSetTitle is false, then the calling page is responsible for setting pta^.title pta^.title = panelTitle}; description = xml.getValue (adrPanel, "description"); description = string.replaceAll (description, "\t", ""); description = string.replaceAll (description, "\r", "<p>")}; on getPrefAddress (partialAddress) { //takes a partial address, returns an address into user's member table local (nomad = pta^.adrMemberInfo, s); loop { if not (partialAddress contains ".") { nomad = @nomad^.[partialAddress]; break}; s = string.nthField (partialAddress, '.', 1); nomad = @nomad^.[s]; if not defined (nomad^) { new (tableType, nomad)}; partialAddress = string.delete (partialAddress, 1, sizeOf (s) + 1)}; return (nomad)}; if pta^.method == "POST" { //PBS 6/12/99: check that required fields are non-empty if flHandleRequiredFields { //PBS 8/10/99: required fields handling can be turned off local (i, adrOneItem, emptyFieldNames = {}); for i = 1 to sizeOf (adrPanel^) { //check whether there are required fields that have not been filled out adrOneItem = @adrPanel^ [i]; if xml.convertToDisplayName (nameOf (adrOneItem^)) == "item" { local (flRequired = false); try { flRequired = boolean (xml.getAttributeValue (adrOneItem, "required"))}; if flRequired { //make sure it exists and is non-empty local (adr = xml.getAttributeValue (adrOneItem, "adr"), flEmpty = false); if not defined (pta^.postArgs.[adr]) { flEmpty = true} else { if sizeOf (pta^.postArgs.[adr]) == 0 { flEmpty = true}}; if flEmpty { emptyFieldNames = emptyFieldNames + xml.getAttributeValue (adrOneItem, "title")}}}}; if emptyFieldNames != {} { //if the emptyFieldNames list contains items, then display errors local (errorMessage = "Please enter the required field"); local (i, ctEmpties); bundle { //build the top error message ctEmpties = sizeOf (emptyFieldNames); if sizeOf (emptyFieldNames) > 1 { errorMessage = errorMessage + "s"}; errorMessage = errorMessage + " "; for i = 1 to sizeOf (emptyFieldNames) { errorMessage = errorMessage + "<b>" + emptyFieldNames [i] + "</b>"; if i < ctEmpties { if ctEmpties > 2 { errorMessage = errorMessage + ", "} else { errorMessage = errorMessage + " "}; if ctEmpties == 2 or i == ctEmpties - 1 { errorMessage = errorMessage + "and "}}}; if ctEmpties < 2 { errorMessage = errorMessage + "."} //" is required." else { errorMessage = errorMessage + "."}; //" are required." add ("<font color=\"red\">" + errorMessage + "</font>")}; flRequiresRedo = true; if adrError != nil { //PBS 8/9/99 -- adrError is optional: make sure it's not nil before trying to deference it. adrError^ = true}}}}; if pta^.method == "POST" and not flRequiresRedo { //process the POSTed data Çscratchpad.postargs = pta^.postargs; edit (@scratchpad.postargs) ÇCreate a new membership table if needed. if not defined (pta^.adrMemberInfo) and flSignupForm { if defined (pta^.postArgs.["personalInfo.email"]) { local (memberKey = pta^.postArgs.["personalInfo.email"]); try { //validate the email address mainResponder.members.validMailAddress (memberKey)} else { scriptError ("Can't create a membership record because the email address is invalid.")}; local (adrMember = mainResponder.members.getMemberTable (pta^.defaultMembershipGroup, memberKey)); if not defined (adrMember^) { ÇFirst check the password. PBS 9/7/99 if defined (pta^.postArgs.["scratchpassword1"]) { if defined (pta^.postArgs.["scratchpassword2"]) { if pta^.postArgs.["scratchpassword1"] != pta^.postArgs.["scratchpassword2"] { add ("<p><font color=\"red\">Can't sign you up because the two passwords you entered do not match.</font>"); flRequiresRedo = true}}}; if not flRequiresRedo { new (tableType, adrMember); pta^.adrMemberInfo = adrMember; pta^.memberGroupName = pta^.defaultMembershipGroup}} else { //PBS 6/4/99: member already exists, it's an error flRequiresRedo = true; add ("<font color=\"red\">Can't sign up \"" + memberKey + "\" because \"" + memberKey + "\" is already a member.</font>"); if defined (pta^.urls^.memberLogon) { add ("<p><font color=\"red\">If you want to login, even if you forgot your password, go to the " + html.getLink ("Login", pta^.urls^.memberLogon) + " page.</font>")}}}}; if not flRequiresRedo { //PBS 8/10/99: it may have been set false, even though it was false when entering this block local (refreshAfterPost = false); if defined (pta^.postargs.refreshAfterPost) { refreshAfterPost = true; delete (@pta^.postargs.refreshAfterPost)}; local (adrtable = @pta^.postargs, ct = sizeof (adrtable^), i, adritem, val); for i = 1 to ct { adritem = @adrtable^ [i]; local (nomad); if defined (pta^.adrMemberInfo) { nomad = pta^.adrMemberInfo}; local (partialaddress = nameof (adritem^), s); if partialaddress beginswith "scratchpassword" { if partialaddress == "scratchpassword1" { local (otherpassword = adrtable^.["scratchpassword2"]); if adrtable^.["scratchpassword1"] != otherpassword { scriptError ("Can't set the password because the two passwords you entered are not equal.")}; if not (otherpassword == "") { pta^.adrmemberinfo^.password = otherpassword; addPrefToRpcParamTable ("password", @pta^.adrmemberinfo^.password ); //PBS 9/13/99: propagate passwords local (mailaddress = nameof (pta^.adrmemberinfo^)); mainresponder.members.setcookie (mailaddress, otherpassword)}}} else { on setValueCallback (adrval) { //5/22/99; 8:46:15 AM by DW if flcallbacks { local (adrcallback = @adrcallbacks^.setValue); if defined (adrcallback^) { adrcallback^ (partialaddress, adrval)}}; addPrefToRpcParamTable (partialaddress, adrval)}; //7/8/99; 10:03:09 AM by DW //PBS 9/13/99: promoted this line if defined (pta^.adrMemberInfo) { nomad = getPrefAddress (partialaddress); if typeof (adritem^) == tabletype { //it's a multi-part object local (datasize = sizeof (adritem^.data)); local (contenttype); if defined (adritem^.["Content-Type"]) { //PBS 8/14/99: make sure Content-Type is defined before checking its value contenttype = string.lower (adritem^.["Content-Type"])}; if datasize > 0 { //this is what you get if you don't specify an image if not contenttype beginswith "image" { scriptError ("Can't accept the file because it is not an image.")}; local (maxbytes = pta^.wizard^.prefs.maxPictureBytes); if datasize > maxbytes { scriptError ("Can't accept the file because it is too large. Maximum is " + string.kBytes (maxbytes) + ".")}; bundle { //set the type attribute of the data local (bt = nil); if contenttype == "image/gif" { bt = "GIFf"}; if contenttype == "image/jpeg" { bt = "JPEG"}; if bt != nil { adritem^.data = binary (adritem^.data); setBinaryType (@adritem^.data, bt)}}; nomad^ = adritem^; //copy the table into storage setValueCallback (adritem)}} else { val = adritem^; if (val == "true") or (val == "false") { val = boolean (val)}; nomad^ = val; setValueCallback (@val)}}}}; sendRpcMessages (); //7/8/99; 10:03:09 AM by DW if refreshAfterPost { ÇPBS 10/30/99: redirect to a different URL by choosing an alternate pathArgs form. ÇIf number, use title; if title, use number. ÇThis works around the 302 FOUND Netscape browser bug. local (panelIdentifier, newPathArgs); try { panelIdentifier = number (pta^.pathArgs); newPathArgs = string.innerCaseName (panelTitle)} else { newPathArgs = panelNum}; Çmainresponder.redirect (pta^.uri + "$" + pta^.pathargs) mainresponder.redirect (pta^.uri + "$" + newPathArgs)}; ÇCall the signup callback, if applicable. PBS 6/5/99 ÇThe signup callback can send email and do similar operations. ÇIf it returns an empty string, then build the form as normal. ÇIf it returns text, then return that text -- the signup callback can control what gets displayed on the page. if flSignupForm and adrSignupCallback != nil { htmlText = adrSignupCallback^ (); if htmlText != "" { return (htmlText)}}}}; bundle { //add the form with the items local (flRequiresMultiPart = false); try {flRequiresMultiPart = boolean (xml.getattribute (adrpanel, "multiPart"))^}; //multiPart attribute is optional if action == nil { action = pagename + "$" + panelnum}; add ("<form name=\"" + paneltitle + "\" action=\"" + action + "\" method=\"POST\"<<xxx>>>"); indentlevel++; bundle { //add hidden item if it has refreshAfterPost attribute try { local (refreshAfterPost = boolean (xml.getattribute (adrpanel, "refreshAfterPost")^)); if refreshAfterPost { add ("<input type=\"hidden\" name=\"refreshAfterPost\" value=\"1\">")}}}; if flIncludeTitle { add ("<h2>" + paneltitle + "</h2>")}; add (description + "<p>"); add ("<table cellpadding=\"7\" cellspacing=\"0\" border=\"0\">"); indentlevel++; local (flShowSubmitButton = false); local (i, adritem, adr, title, type, popuptext, linkattribute, defaultvalue, flspan, ixitem = 0); for i = 1 to sizeOf (adrPanel^) { adritem = @adrPanel^ [i]; adr = ""; if xml.convertToDisplayName (nameOf (adritem^)) == "item" { ixitem++; flShowSubmitButton = true; defaultValue = ""; //PBS 7/12/99: clear out previous default value bundle { //set title title = xml.getattribute (adritem, "title")^; local (flAddColon = true); if title endswith "?" { flAddColon = false}; if string.trimWhiteSpace (title) == "" { flAddColon = false}; if flAddColon { title = title + ":"}}; type = string.lower (xml.getattribute (adritem, "type")^); //types are unicase try {adr = xml.getattribute (adritem, "adr")^}; //adr attribute is optional, for example separators don't have adrs if adr != "" { //JES 7/14/: call callbacks if they exist -- determine if this item should be included if flCallbacks { if defined (adrCallbacks^.includeItem) { try { if not adrCallbacks^.includeItem (adr) { continue}}}}}; if type == "separator" { //very special case if separatorColor == nil { //PBS 10/30/99: Manila sites need to be able to specify separator and separator text color separatorColor = "black"}; if separatorTextColor == nil { separatorTextColor = pta^.bgcolor}; add ("<tr><td colspan=\"2\"><table cellpadding=\"2\" cellspacing=\"0\" width=\"100%\"><tr>"); indentlevel++; add ("<td bgcolor=\"" + separatorColor + "\"><font color=\"" + separatorTextColor + "\"><b>" + title + "</b></font></td>"); //PBS 6/4/99: text in separators is bold add ("</tr></table></td></tr>"); indentlevel--; continue}; bundle { //get popuptext if it's present try { popuptext = xml.getvalue (adritem, "popuptext")} else { popuptext = ""}}; bundle { //get link attribute if it's present try { linkattribute = xml.getattribute (adritem, "link")^} else { linkattribute = ""}}; add ("<tr>"); indentlevel++; ÇIf this is a re-do, and this is an empty required field, then ask the user to fill it in. Çif flRequiresRedo and emptyList contains adrItem Çlocal (fieldName = xml.getAttribute (adrItem, "title")^) Çadd ("<td colspan=\"2\"><font color=\"red\"><b>" + fieldName + "</b> is empty. Please fill it in.</font></td></tr>") Çadd ("<tr>") bundle { //set defaultvalue if flRequiresRedo { //PBS 6/12/99: get the value from the POST args if it's a redo defaultValue = pta^.postArgs.[adr]} else { ÇHandle default values. PBS 7/12/99 try { defaultValue = xml.getAttributeValue (adrItem, "default")}; //PBS 7/12/99: get default value from outline if not flSignupForm { if defined (pta^.adrMemberInfo) { with pta^.adrmemberinfo^ { Çdefaultvalue = "" try { local (adrobject = getPrefAddress (adr)); if typeof (adrobject^) == tabletype { //it's a multi-part object defaultvalue = adrobject^.filename} else { defaultvalue = adrobject^}}; bundle { //5/22/99; 7:31:16 AM by DW, call the callback if one is present if flcallbacks { local (adrcallback = @adrcallbacks^.getValue); if defined (adrcallback^) { defaultvalue = adrcallback^ (adr, defaultvalue)}}}}}}}}; //adr is the partial address, the callback should be a big case statement, based on which value is being asked for bundle { //add title local (s); if popuptext != "" { local (shortaddress = panelnum + "," + ixitem); local (href = "href=\"JavaScript: newWindow=openWin( '" + adrwizard^.prefs.popupPageName + "$" + shortaddress + "', 'prefsPopup', '" + string (adrwizard^.prefs.popupWindowAttributes) + "' );newWindow.focus()\""); s = "<a " + href + " title=\"" + string.firstsentence (popuptext) + "..\">" + title + "</a>"} else { Çif string.lower (type) == "picture" Çlocal (s = "<a href=\"" + adrwizard^.prefs.picturePageName + "$" + adr + "\">" + title + "</a>") Çadd ("<td valign=\"top\">" + s + "</td>") if linkattribute != "" { s = "<a href=\"" + linkattribute + "\">" + title + "</a>"} else { s = title}}; s = string.replaceAll (s, "|", "<br><font color=\"" + pta^.bgcolor + "\">*</font> "); //PBS 8/18/99: replace | with <br> local (flRequired = false); try { flRequired = boolean (xml.getAttributeValue (adrItem, "required"))}; if flRequired and not (flRequiresRedo and not (emptyList contains adrItem)) and flHandleRequiredFields { //PBS 8/10/99: required fields handling can be turned off s = "<b><font color=\"red\">*</font></b> " + s; flOneRequired = true} else { if defined (adrwizard^.prefs.alignNonRequired) and adrwizard^.prefs.alignNonRequired { s = "<b><font color=\"" + pta^.bgColor + "\">*</font></b> " + s}}; if title == "" { //PBS 01/21/02: no title wanted? (the bug was -- it was checking if title == ":") flspan = true} else { add ("<td valign=\"top\">" + s + "</td>"); flspan=false}}; if flspan { add ("<td colspan=\"2\">"); indentlevel++} else { add ("<td>"); indentlevel++}; case type { "string" { local (size = adrwizard^.prefs.stringDefaultSize, maxlength = adrwizard^.prefs.stringDefaultMaxLength); try {size = xml.getattribute (adritem, "size")^}; try {maxlength = xml.getattribute (adritem, "maxlength")^}; add ("<input type=\"text\" name=\"" + adr + "\" size=\"" + size + "\" maxlength=\"" + maxlength + "\" value=\"" + defaultvalue + "\">")}; "static" { ÇAdd the hidden field so the value is processed with the form, add just the defualt value as the static display. add (defaultvalue); add ("<input type=\"hidden\" name=\"" + adr + "\" value=\"" + defaultvalue + "\">")}; "hidden" { ÇAdd the hidden field so the value is processed with the form. add ("<input type=\"hidden\" name=\"" + adr + "\" value=\"" + defaultvalue + "\">")}; "popup" { Ç<SELECT name="state"> Ç<OPTION>Select a state Ç<OPTION VALUE="AL">Alabama Ç<OPTION VALUE="AK">Alaska Ç<OPTION VALUE="AZ">Arizona Ç<OPTION VALUE="AR">Arkansas Ç</SELECT> add ("<select name=\"" + adr + "\">"); indentlevel++; local (i, adroption, title, value, s); for i = 1 to sizeOf (adritem^) { adroption = @adritem^ [i]; if xml.convertToDisplayName (nameOf (adroption^)) == "option" { title = xml.getattribute (adroption, "title")^; value = xml.getattribute (adroption, "value")^; s = ""; if defaultvalue == value { s = " selected"}; add ("<option value=\"" + value + "\"" + s + ">" + title + "</option>")}}; add ("</select>"); indentlevel--}; "color" { //7/13/99; 11:34:37 PM by DW add ("<select name=\"" + adr + "\">"); indentlevel++; local (adrtable = @system.verbs.colors, i, ct = sizeof (adrtable^)); for i = 1 to ct { onecolor = nameof (adrtable^ [i]); s = ""; if defaultvalue == onecolor { s = " selected"}; add ("<option value=\"" + onecolor + "\"" + s + ">" + onecolor + "</option>")}; add ("</select>"); indentlevel--}; "password" { local (size = adrwizard^.prefs.passwordDefaultSize, maxlength = adrwizard^.prefs.passwordDefaultMaxLength); try {size = xml.getattribute (adritem, "size")^}; try {maxlength = xml.getattribute (adritem, "maxlength")^}; add ("<input type=\"password\" name=\"" + adr + "\" size=\"" + size + "\" maxlength=\"" + maxlength + "\" value=\"" + defaultvalue + "\">")}; "text" { local (rows = adrwizard^.prefs.textDefaultRows, cols = adrwizard^.prefs.textDefaultCols); try {rows = xml.getattribute (adritem, "rows")^}; try {cols = xml.getattribute (adritem, "cols")^}; add ("<textarea name=\"" + adr + "\" rows=\"" + rows + "\" cols=\"" + cols + "\" wrap=\"soft\">" + defaultvalue + "</textarea>")}; "boolean" { Çtemp.ddx2 = boolean (defaultvalue) Çtemp.ddxstring = defaultvalue on addradio (val, flchecked, linetext) { local (s = "<input type=\"radio\" name=\"" + adr + "\" value=" + val); if flchecked { s = s + " checked"}; add (s + ">" + linetext)}; addradio ("true", boolean (defaultvalue), "Yes"); addradio ("false", !boolean (defaultvalue), "No"); Çadd ("<input type=\"radio\" name=\"" + adr + "\" value=" + "1 checked" + ">" + "Yes") };Çadd ("<input type=\"radio\" name=\"" + adr + "\" value=\"" + "0" + "\">" + "No") "checkbox" { add ("<input type=\"checkbox\" name=\"" + adr + "\" value=\"" + defaultvalue + "\">")}; "picture" { flRequiresMultiPart = true; if typeOf (defaultValue) == tableType { //PBS 03/30/00: if defaultvalue is a table, set it to "", fixes an error message on sign-up table.assign (@defaultValue, "")}; add ("<input name=\"" + adr + "\" type=\"file\" size=\"40\" value=\"" + defaultvalue + "\">")}; "custom" { if flcallbacks { //allow application to do object rendering local (adrcallback = @adrcallbacks^.customRenderer); if defined (adrcallback^) { add (adrcallback^ (adr, defaultvalue, adritem))}} //send the partial address, the default value, and the address of the XML table of the object being rendered else { add (" ")}}} else { add (" ")}; add ("</td>"); indentlevel--; add ("</tr>"); indentlevel--}}; add ("<tr>"); indentlevel++; add ("<td> </td>"); bundle { //add Submit button local (s = " "); if flShowSubmitButton { //if all there is is text on the page, no need to put a submit item on the page s = "<input type=\"submit\" value=\" " + "Submit" + " \">"}; add ("<td align=\"right\">" + s + "</td>")}; add ("</tr>"); indentlevel--; add ("</table>"); indentlevel--; add ("</form>"); indentlevel--; if flOneRequired and not flRequiresRedo { //add note about required fields if flHandleRequiredFields { //PBS 8/10/99: required fields handling can be turned off Çadd ("Required fields are marked with <b><font color=\"red\">*</font></b>") htmlText = "Required fields are marked with <b><font color=\"red\">*</font></b>" + htmlText}}; bundle { //do the enctype substitution local (pattern = "<<xxx>>"); if flRequiresMultiPart { htmltext = string.replace (htmltext, pattern, "enctype=\"multipart/form-data\"")} else { htmltext = string.replace (htmltext, pattern, "")}}}; return (htmlText)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:prefsSuite.browser ! on browser (flSignupForm=false, flIncludeTitle=true, adrSignupCallback=nil, inputPanel=nil, action=nil, adrError=nil, flHandleRequiredFields=true, pta=nil, flRequiresRedo=false, flSetTitle=true, separatorColor=nil, separatorTextColor=nil) { ÇChanges Ç2005 Ç7/27/05; 7:03:00 PM by TAC Çreworked 4/18/04; 7:58:37 PM code for upload a picture or any kind of file ÇPNG support Çstore height and width of pictures we recognize Ç2004 Ç4/18/04; 7:58:37 PM by TAC Çupload any kind of file, need to add interface to link to file Ç2003 Ç7/14/03; 5:24:12 PM by JES ÇAdded support for includeItem callback. Called with the value of the adr attribute of a prefs item, if the callback returns false, the item is skipped. Ç7/10/03; 11:26:22 PM by TAC Çdisplay picture, code looks for displayPicture attribute; if false don't display; default is true, contructs url that points into pta^.responderAttributes.urls^.prefsHome + "picture"; expects script to be there to deal with picture request Ç2002 Ç1/25/02; 6:11:51 PM by PBS ÇPerformance enhancements in the local "add" routine -- add a trailing semicolon; use parentheses to get the expression in x = x + y form (which is optimized by the kernel). Ç1/21/02; 9:00:32 PM by PBS ÇBug fix -- if a title is empty, the item is supposed to span both columns. This feature had been broken. Ç2000 Ç11/25/00; 8:23:57 PM by PBS ÇIf the title of an item is "", don't add a colon. This way we don't get colons before edit-in-Pike buttons. Ç03/31/00; 5:08:00 PM by PBS ÇWhen a sign-up form includes a picture, sometimes the browser would send empty data which got interpreted as a Frontier table. Then when building the form an implicit attempt was made to coerce the table to a string, which failed. Ç1999 Ç11/16/1999; 10:09:08 AM by AR ÇPurged all instances of xml.getAddressList in favor of our own looping code so that this script will work with arbitrarily deeply nested table structures. Ç10/30/99; 12:10:59 PM by PBS ÇImplemented workaround for 302 FOUND browser bug when redirecting to the same page you just posted to. Now the redirect happens to a different URL. If you were on a $panelName URL, you're redirected to a $panelNum URL, and vice versa. Ç10/30/99; 12:02:48 AM by PBS ÇManila sites need to be able to specify the color of separators and the text inside. If colors are not specified, the default is black for the separator and pta^.bgcolor for the text inside. Ç9/22/99; 8:39:27 PM by DW ÇWe used to always generate a form with an enctype="multipart/form-data" in its header. Now we only do so if the form contains a picture, or if there is a panel attribute named multiPart with a value of true. So in most circumstances we will not have a multipart form, in the past we would *always* have a multipart form. Ç9/16/99; 9:47:26 AM by DW ÇAdded link attribute on items, if present, the whole item links to the URL provided in the attribute. Search for "linkattribute" for implementation. Ç9/13/99; 12:37:43 PM by PBS ÇSign-ups and changed passwords weren't getting propagated. Now they are. Ç9/8/99; 12:40:57 AM by PBS ÇIf this is a sign up form, check that the two passwords match before creating the membership record. There was a bug -- the passwords might not match, but a membership record that didn't include a password would be created. Then the person signing up has no password -- but they can't sign up again because they're now a member. Ç8/19/99; 2:23:47 PM by PBS ÇNew optional parameter flSetTitle. If false, prefsSuite.browser does not set pta^.title, so the calling page can use a different title than the title of the panel. This was needed for the store -- which uses one panel for all order forms, but the titles are different depending on whether you're at the standard page or the Academic page. ÇDefault is standard behavior -- prefsSuite.browser sets pta^.title automatically. Ç8/18/99; 7:59:48 PM by PBS ÇIf you place a | character in a title, it will be replaced by a <br> tag so the title will wrap to the next line. Ç8/17/99; 11:24:53 AM by PBS ÇThe sendRpcMessages routine was moved to the top level of prefsSuite. The routine in this script now calls prefsSuite.sendRpcMessages. ÇThis was done so prefs broadcasting could happen outside of the context of this script or the page rendering process, so other scripts could broadcast prefs at will. Ç8/15/99; 3:59:30 PM by PBS ÇflRequiresRedo is no an optional parameter: if true, then the values will be taked from the post args. Ç8/14/99; 9:12:40 PM by PBS ÇMake sure content-type is defined before checking its value. This was causing errors with some browser on the main prefs page. Ç8/13/99; 3:53:13 PM by PBS ÇNew optional parameter pta. (Useful when debugging, also a small optimization.) Ç8/10/99; 10:24:06 PM by PBS ÇIf the person signing up uses an email address of an existing member, the error is reported in red text, and the user has a chance to re-fill out the form or go to the sign up page. ÇCheck that config.prefsServer.prefsDistributorFolder exists, so machines that aren't prefs distributors can run this script without generating errors. Ç8/10/99; 6:27:53 PM by PBS ÇNew parameter, flHandleRequiredFields, allows one to disable the automatic handling of required fields. Ç7/28/99; 9:05:00 by RAB Çadded action parameter Çadded adrError parameter Ç7/27/99; 17:35:00 by RAB ÇIf you specify a null title, then the field spans 2 columns. ÇAdded new pref alignNonRequired which keeps the titles better aligned Ç7/12/99; 2:59:44 by PBS ÇSupport for default values. An item can have a default attribute. If the item is not already in the user's member record, or it's a sign up form, then the item will get this default value. ÇAs in: <item title="Formatted in HTML?" type="boolean" adr="bulletins.inHtml" default="true"> Ç7/8/99; 10:03:09 AM by DW ÇImplement the XML-RPC-based prefs distribution system. Ç7/6/99; 8:41:39 AM by DW ÇAllow the pathargs to be a non-numeric string, it can contain the name of the panel, we'll transition to this form of pointing because it allows us to move things around. Ç6/27/99; 7:05:00 PM by RAB ÇSupport for static fields. ÇSupport for hidden fields. ÇSupport for checkbox fields. ÇOptional parameter for inputPanel number (rather then pathArgs) Ç6/12/99; 3:35:03 PM by PBS ÇSupport for required fields. ÇIf an item in the XML outline has a required="true" attribute, then it's a required field. ÇThe system will prompt you to enter any required fields you didn't enter. Ç6/5/99; 1:51:25 AM by PBS ÇadrSignupCallback is the address of a callback to be used when handling the POST request from a signup form. ÇThe callback is called after the POST args are processed, but before the form is built. ÇIf the callback returns anything but "", then the results of the callback are displayed in the page rather than the form. ÇThe callback thus has the chance to send email, for instance, when adding a member. And it has the chance to build a welcome page. Ç6/4/99; 4:15:27 PM by PBS ÇIf it's a signup form, and the member already exists, it's an error. ÇText in separators is now bold. Ç6/3/99; 12:37:55 PM by DW ÇAdded optional boolean parameter, flSignupForm, defaults false. If true, we don't require that pta^.adrmemberinfo be defined. ÇAdded optional boolean parameter, flIncludeTitle, defaults true. If false, we don't include the title, assume the page already has a title. Ç6/4/99; 10:38:22 AM by DW ÇAdd separator <item>s, that allow the author to separate items into groups. ÇAllow <item>s to be required, if the value has not been set, reject the submission. if pta == nil { pta = html.getPageTableAddress ()}; local (adrWizard = pta^.wizard); local (adrCallbacks = @adrwizard^.callbacks, flCallbacks = defined (adrCallbacks^)); local (pathArgs = pta^.pathArgs); local (pageName = nameOf (pta^.adrobject^)); Çlocal (flRequiresRedo = false) //it becomes true if required fields were missing local (emptyList = {}); local (flOneRequired = false); if adrError != nil { adrError^ = false}; local (rpcParamTable); new (tabletype, @rpcParamTable); on addPrefToRpcParamTable (partialaddress, adrval) { //7/8/99; 10:03:09 AM by DW if typeof (adrval^) == tabletype { local (i, adrItem); for i = 1 to sizeof (adrval^) { adrItem = @adrval^ [i]; if typeof (adrItem^) == binarytype { adrItem^ = base64.encode (adrItem^, infinity)}}}; rpcParamTable.[partialaddress] = adrval^}; on sendRpcMessages () { if defined (pta^.adrMemberInfo) { //PBS 9/2/99: this person may not be a member prefsSuite.sendRpcMessages (@rpcParamTable, pta^.adrMemberInfo)}; //PBS 8/17/99: routine moved to top level of prefsSuite Çlocal (xmltext) Çbundle //build the XML representation Çon add (s) Çxmltext = xmltext + s + "\r" Çadd ("<?xml version=\"1.0\"?>") Çadd ("<prefsUpdate>") Çadd ("<group>" + "default" + "</group>") Çadd ("<memberKey>" + nameof (pta^.adrmemberinfo^) + "</memberKey>") Çadd ("<value>" + xml.coercions.frontierValueToTaggedText (@rpcParamTable, 0) + "</value>") Çadd ("</prefsUpdate>") Çbundle //write the file Çif defined (config.prefsServer.prefsDistributorFolder) //PBS 8/10/99: make sure this machine is a prefs distributor Çlocal (folder = config.prefsServer.prefsDistributorFolder) Çloop //get a unique name, write the file Çlocal (f = folder + clock.ticks () + ".xml") Çfile.surefilepath (f) Çif not file.exists (f) Çfile.writewholefile (f, xmltext) Çbreak ÇprefsSuite.init () Çlocal (i, ct = sizeof (config.prefsServer.subscribers), adrsubscriber) Çlocal (params = {"default", nameof (pta^.adrmemberinfo^), rpcParamTable}) Çfor i = 1 to ct Çadrsubscriber = @config.prefsServer.subscribers [i] Çbetty.rpc.client (nameof (adrsubscriber^), adrsubscriber^.port, adrsubscriber^.procedureName, @params, rpcpath:adrsubscriber^.rpcPath, flAsynch:true) Ç<panel title="Register"> Ç<description>This is an experimental feature. If you have a server that can do something interesting with preferences, and if your server can receive XML-RPC messages, you can hook into the preference system at UserLand.Com. We need three pieces of information: a domain name for your server (an IP address will also work), the port that server is running on, and the name of the XML-RPC procedure you want us to call. This routine will be called every time every user updates, so please don't register unless you're serious.</description> Ç<item title="Domain" type="string" adr="prefsRpcHandler.domain"/> Ç<item title="Port" type="string" adr="prefsRpcHandler.port"/> Ç<item title="Procedure name" type="string" adr="prefsRpcHandler.procedureName"/> Ç</panel> return (true)}; local (htmlText = "", indentLevel = 0); on add (s) { htmlText = htmlText + (string.filledString ("\t", indentLevel) + s + "\r");}; prefsSuite.compileIfDirty (); //compile the XML if needed local (panelNum, adrPanel); bundle { //get the number of the panel, the address of its descriptor in the XML structure, set flPrivate page attribute if inputPanel != nil { //caller supplied the panel num panelNum = number (inputPanel); local (i, ctpanels = 0, adrItem, adrtable = @adrWizard^.structure [1]); for i = 1 to sizeOf (adrtable^) { adrItem = @adrtable^[i]; if xml.convertToDisplayName (nameOf (adrItem^)) == "panel" { ++ctpanels; if ctpanels == panelNum { //found it! adrPanel = adrItem; break}}}; if ctpanels < panelNum { scripterror ("Can't display the panel because the wizard doesn't have a panel #" + panelNum + ".")}} else { panelNum = prefsSuite.pathArgsToPanelNum (pathargs, @adrpanel)}; local (flPrivate = false); try { flPrivate = boolean (xml.getAttribute (adrPanel, "private")^)}; pta^.flPrivate = flPrivate}; local (panelTitle, description); bundle { //get the title and description panelTitle = xml.getAttribute (adrPanel, "title")^; if flSetTitle { //PBS 8/19/99: if flSetTitle is false, then the calling page is responsible for setting pta^.title pta^.title = panelTitle}; description = xml.getValue (adrPanel, "description"); description = string.replaceAll (description, "\t", ""); description = string.replaceAll (description, "\r", "<p>")}; on getPrefAddress (partialAddress) { //takes a partial address, returns an address into user's member table local (nomad = pta^.adrMemberInfo, s); loop { if not (partialAddress contains ".") { nomad = @nomad^.[partialAddress]; break}; s = string.nthField (partialAddress, '.', 1); nomad = @nomad^.[s]; if not defined (nomad^) { new (tableType, nomad)}; partialAddress = string.delete (partialAddress, 1, sizeOf (s) + 1)}; return (nomad)}; if pta^.method == "POST" { //PBS 6/12/99: check that required fields are non-empty if flHandleRequiredFields { //PBS 8/10/99: required fields handling can be turned off local (i, adrOneItem, emptyFieldNames = {}); for i = 1 to sizeOf (adrPanel^) { //check whether there are required fields that have not been filled out adrOneItem = @adrPanel^ [i]; if xml.convertToDisplayName (nameOf (adrOneItem^)) == "item" { local (flRequired = false); try { flRequired = boolean (xml.getAttributeValue (adrOneItem, "required"))}; if flRequired { //make sure it exists and is non-empty local (adr = xml.getAttributeValue (adrOneItem, "adr"), flEmpty = false); if not defined (pta^.postArgs.[adr]) { flEmpty = true} else { if sizeOf (pta^.postArgs.[adr]) == 0 { flEmpty = true}}; if flEmpty { emptyFieldNames = emptyFieldNames + xml.getAttributeValue (adrOneItem, "title")}}}}; if emptyFieldNames != {} { //if the emptyFieldNames list contains items, then display errors local (errorMessage = "Please enter the required field"); local (i, ctEmpties); bundle { //build the top error message ctEmpties = sizeOf (emptyFieldNames); if sizeOf (emptyFieldNames) > 1 { errorMessage = errorMessage + "s"}; errorMessage = errorMessage + " "; for i = 1 to sizeOf (emptyFieldNames) { errorMessage = errorMessage + "<b>" + emptyFieldNames [i] + "</b>"; if i < ctEmpties { if ctEmpties > 2 { errorMessage = errorMessage + ", "} else { errorMessage = errorMessage + " "}; if ctEmpties == 2 or i == ctEmpties - 1 { errorMessage = errorMessage + "and "}}}; if ctEmpties < 2 { errorMessage = errorMessage + "."} //" is required." else { errorMessage = errorMessage + "."}; //" are required." add ("<font color=\"red\">" + errorMessage + "</font>")}; flRequiresRedo = true; if adrError != nil { //PBS 8/9/99 -- adrError is optional: make sure it's not nil before trying to deference it. adrError^ = true}}}}; if pta^.method == "POST" and not flRequiresRedo { //process the POSTed data scratchpad.postargs = pta^.postargs; edit (@scratchpad.postargs); ÇCreate a new membership table if needed. if not defined (pta^.adrMemberInfo) and flSignupForm { if defined (pta^.postArgs.["personalInfo.email"]) { local (memberKey = pta^.postArgs.["personalInfo.email"]); try { //validate the email address mainResponder.members.validMailAddress (memberKey)} else { scriptError ("Can't create a membership record because the email address is invalid.")}; local (adrMember = mainResponder.members.getMemberTable (pta^.defaultMembershipGroup, memberKey)); if not defined (adrMember^) { ÇFirst check the password. PBS 9/7/99 if defined (pta^.postArgs.["scratchpassword1"]) { if defined (pta^.postArgs.["scratchpassword2"]) { if pta^.postArgs.["scratchpassword1"] != pta^.postArgs.["scratchpassword2"] { add ("<p><font color=\"red\">Can't sign you up because the two passwords you entered do not match.</font>"); flRequiresRedo = true}}}; if not flRequiresRedo { new (tableType, adrMember); pta^.adrMemberInfo = adrMember; pta^.memberGroupName = pta^.defaultMembershipGroup}} else { //PBS 6/4/99: member already exists, it's an error flRequiresRedo = true; add ("<font color=\"red\">Can't sign up \"" + memberKey + "\" because \"" + memberKey + "\" is already a member.</font>"); if defined (pta^.urls^.memberLogon) { add ("<p><font color=\"red\">If you want to login, even if you forgot your password, go to the " + html.getLink ("Login", pta^.urls^.memberLogon) + " page.</font>")}}}}; if not flRequiresRedo { //PBS 8/10/99: it may have been set false, even though it was false when entering this block local (refreshAfterPost = false); if defined (pta^.postargs.refreshAfterPost) { refreshAfterPost = true; delete (@pta^.postargs.refreshAfterPost)}; local (adrtable = @pta^.postargs, ct = sizeof (adrtable^), i, adrItem, val); for i = 1 to ct { adrItem = @adrtable^ [i]; local (nomad); if defined (pta^.adrMemberInfo) { nomad = pta^.adrMemberInfo}; local (partialaddress = nameof (adrItem^), s); if partialaddress beginswith "scratchpassword" { if partialaddress == "scratchpassword1" { local (otherpassword = adrtable^.["scratchpassword2"]); if adrtable^.["scratchpassword1"] != otherpassword { scriptError ("Can't set the password because the two passwords you entered are not equal.")}; if not (otherpassword == "") { pta^.adrmemberinfo^.password = otherpassword; addPrefToRpcParamTable ("password", @pta^.adrmemberinfo^.password ); //PBS 9/13/99: propagate passwords local (mailaddress = nameof (pta^.adrmemberinfo^)); mainresponder.members.setcookie (mailaddress, otherpassword)}}} else { on setValueCallback (adrval) { //5/22/99; 8:46:15 AM by DW if flcallbacks { local (adrcallback = @adrcallbacks^.setValue); if defined (adrcallback^) { adrcallback^ (partialaddress, adrval)}}; addPrefToRpcParamTable (partialaddress, adrval)}; //7/8/99; 10:03:09 AM by DW //PBS 9/13/99: promoted this line if defined (pta^.adrMemberInfo) { nomad = getPrefAddress (partialaddress); if typeof (adrItem^) == tabletype { //it's a multi-part object local (datasize = sizeof (adrItem^.data)); local (contentType); if defined (adrItem^.["Content-Type"]) { //PBS 8/14/99: make sure Content-Type is defined before checking its value contentType = string.lower (adrItem^.["Content-Type"])}; if datasize > 0 { //this is what you get if you don't specify a file bundle { // 7/27/05; 7:01:15 PM by TAC - upload a picture or any kind of file; GIF, JPEG, and PNG pictures are recognized local (bt = "data"); // binary type, default if contentType beginswith "image" { local (maxbytes = pta^.wizard^.prefs.maxPictureBytes); if datasize > maxbytes { scriptError ("Can't accept the file because it is too large. Maximum is " + string.kBytes (maxbytes) + ".")}; bundle { // get and set height and width of the image local (hwList); if contentType == "image/gif" { hwList = html.getGifHeightWidth (@adrItem^.data)}; if contentType == "image/jpeg" { hwList = html.getJpegHeightWidth (@adrItem^.data)}; if contentType == "image/png" { hwList = html.getPngHeightWidth (@adrItem^.data)}; if hwList != nil { adrItem^.height = hwList [1]; adrItem^.width = hwList [2]}}} else { if defined (pta^.wizard^.prefs.maxFileBytes) { local { maxBytes = pta^.wizard^.prefs.maxFileBytes}; if dataSize > maxBytes { scriptError ("Can't accept the file because it is too large. Maximum is " + string.kBytes (maxBytes) + ".")}}}; adrItem^.data = binary (adrItem^.data); try { // set the binary type bt = user.webserver.prefs.MIME2Binary.[contentType]}; setBinaryType (@adrItem^.data, bt); nomad^ = adrItem^; //copy the table into storage setValueCallback (adrItem)}; Çbundle // old code Çif not contentType beginswith "image" ÇscriptError ("Can't accept the file because it is not an image.") Çlocal (maxbytes = pta^.wizard^.prefs.maxPictureBytes) Çif datasize > maxbytes ÇscriptError ("Can't accept the file because it is too large. Maximum is " + string.kBytes (maxbytes) + ".") Çbundle //set the type attribute of the data Çlocal (bt = nil) Çif contentType == "image/gif" Çbt = "GIFf" Çif contentType == "image/jpeg" Çbt = "JPEG" Çif bt != nil ÇadrItem^.data = binary (adrItem^.data) ÇsetBinaryType (@adrItem^.data, bt) Çnomad^ = adrItem^ //copy the table into storage ÇsetValueCallback (adrItem)}} else { val = adrItem^; if (val == "true") or (val == "false") { val = boolean (val)}; nomad^ = val; setValueCallback (@val)}}}}; sendRpcMessages (); //7/8/99; 10:03:09 AM by DW if refreshAfterPost { ÇPBS 10/30/99: redirect to a different URL by choosing an alternate pathArgs form. ÇIf number, use title; if title, use number. ÇThis works around the 302 FOUND Netscape browser bug. local (panelIdentifier, newPathArgs); try { panelIdentifier = number (pta^.pathArgs); newPathArgs = string.innerCaseName (panelTitle)} else { newPathArgs = panelNum}; Çmainresponder.redirect (pta^.uri + "$" + pta^.pathargs) mainresponder.redirect (pta^.uri + "$" + newPathArgs)}; ÇCall the signup callback, if applicable. PBS 6/5/99 ÇThe signup callback can send email and do similar operations. ÇIf it returns an empty string, then build the form as normal. ÇIf it returns text, then return that text -- the signup callback can control what gets displayed on the page. if flSignupForm and adrSignupCallback != nil { htmlText = adrSignupCallback^ (); if htmlText != "" { return (htmlText)}}}}; bundle { //add the form with the items local (flRequiresMultiPart = false); try {flRequiresMultiPart = boolean (xml.getattribute (adrpanel, "multiPart"))^}; //multiPart attribute is optional if action == nil { action = pagename + "$" + panelnum}; add ("<form name=\"" + paneltitle + "\" action=\"" + action + "\" method=\"POST\"<<xxx>>>"); indentlevel++; bundle { //add hidden item if it has refreshAfterPost attribute try { local (refreshAfterPost = boolean (xml.getattribute (adrpanel, "refreshAfterPost")^)); if refreshAfterPost { add ("<input type=\"hidden\" name=\"refreshAfterPost\" value=\"1\">")}}}; if flIncludeTitle { add ("<h2>" + paneltitle + "</h2>")}; add (description + "<p>"); add ("<table cellpadding=\"7\" cellspacing=\"0\" border=\"0\">"); indentlevel++; local (flShowSubmitButton = false); local (i, adrItem, adr, title, type, popuptext, linkattribute, defaultvalue, flspan, ixitem = 0); for i = 1 to sizeOf (adrPanel^) { adrItem = @adrPanel^ [i]; adr = ""; if xml.convertToDisplayName (nameOf (adrItem^)) == "item" { ixitem++; flShowSubmitButton = true; defaultValue = ""; //PBS 7/12/99: clear out previous default value bundle { //set title title = xml.getattribute (adrItem, "title")^; local (flAddColon = true); if title endswith "?" { flAddColon = false}; if string.trimWhiteSpace (title) == "" { flAddColon = false}; if flAddColon { title = title + ":"}}; type = string.lower (xml.getattribute (adrItem, "type")^); //types are unicase try {adr = xml.getattribute (adrItem, "adr")^}; //adr attribute is optional, for example separators don't have adrs if adr != "" { //JES 7/14/: call callbacks if they exist -- determine if this item should be included if flCallbacks { if defined (adrCallbacks^.includeItem) { try { if not adrCallbacks^.includeItem (adr) { continue}}}}}; if type == "separator" { //very special case if separatorColor == nil { //PBS 10/30/99: Manila sites need to be able to specify separator and separator text color separatorColor = "black"}; if separatorTextColor == nil { separatorTextColor = pta^.bgcolor}; add ("<tr><td colspan=\"2\"><table cellpadding=\"2\" cellspacing=\"0\" width=\"100%\"><tr>"); indentlevel++; add ("<td bgcolor=\"" + separatorColor + "\"><font color=\"" + separatorTextColor + "\"><b>" + title + "</b></font></td>"); //PBS 6/4/99: text in separators is bold add ("</tr></table></td></tr>"); indentlevel--; continue}; bundle { //get popuptext if it's present try { popuptext = xml.getvalue (adrItem, "popuptext")} else { popuptext = ""}}; bundle { //get link attribute if it's present try { linkattribute = xml.getattribute (adrItem, "link")^} else { linkattribute = ""}}; add ("<tr>"); indentlevel++; ÇIf this is a re-do, and this is an empty required field, then ask the user to fill it in. Çif flRequiresRedo and emptyList contains adrItem Çlocal (fieldName = xml.getAttribute (adrItem, "title")^) Çadd ("<td colspan=\"2\"><font color=\"red\"><b>" + fieldName + "</b> is empty. Please fill it in.</font></td></tr>") Çadd ("<tr>") bundle { //set defaultvalue if flRequiresRedo { //PBS 6/12/99: get the value from the POST args if it's a redo defaultValue = pta^.postArgs.[adr]} else { ÇHandle default values. PBS 7/12/99 try { defaultValue = xml.getAttributeValue (adrItem, "default")}; //PBS 7/12/99: get default value from outline if not flSignupForm { if defined (pta^.adrMemberInfo) { with pta^.adrmemberinfo^ { Çdefaultvalue = "" try { local (adrobject = getPrefAddress (adr)); if typeof (adrobject^) == tabletype { //it's a multi-part object defaultvalue = adrobject^.filename} else { defaultvalue = adrobject^}}; bundle { //5/22/99; 7:31:16 AM by DW, call the callback if one is present if flcallbacks { local (adrcallback = @adrcallbacks^.getValue); if defined (adrcallback^) { defaultvalue = adrcallback^ (adr, defaultvalue)}}}}}}}}; //adr is the partial address, the callback should be a big case statement, based on which value is being asked for bundle { //add title local (s); if popuptext != "" { local (shortaddress = panelnum + "," + ixitem); local (href = "href=\"JavaScript: newWindow=openWin( '" + adrwizard^.prefs.popupPageName + "$" + shortaddress + "', 'prefsPopup', '" + string (adrwizard^.prefs.popupWindowAttributes) + "' );newWindow.focus()\""); s = "<a " + href + " title=\"" + string.firstsentence (popuptext) + "..\">" + title + "</a>"} else { Çif string.lower (type) == "picture" Çlocal (s = "<a href=\"" + adrwizard^.prefs.picturePageName + "$" + adr + "\">" + title + "</a>") Çadd ("<td valign=\"top\">" + s + "</td>") if linkattribute != ""... [truncated message content] |
|
From: creedon <icr...@us...> - 2005-07-28 06:53:30
|
Update of /cvsroot/frontierkernel/odbs/prefsRoot/prefsSuite In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8667 Added Files: displayPicture Log Message: display a picture --- NEW FILE: displayPicture --- (This appears to be a binary file; contents omitted.) |
|
From: creedon <icr...@us...> - 2005-07-28 06:31:58
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/webserver In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4874 Modified Files: init Log Message: user.webserver.prefs.mimeTypes uses tableCopyNewContents user.webserver.responders was only copying new items when the table was first created, now copies each init added user.webserver.prefs.MIME2Binary Index: init =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/webserver/init,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** init 15 Jul 2005 01:27:19 -0000 1.3 --- init 28 Jul 2005 06:31:43 -0000 1.4 *************** *** 1,3 **** FrontierVcsFile:1:scpt:system.verbs.builtins.webserver.init ! ÇChanges Ç7/14/05; 12:29:45 AM by TAC Çuser.webserver.responders init now uses tableCopyNewContents Çadded tableCopyNewContents handler Çadded user.inetd.config.http3, edit Manila sites Çmoved port config for Mac OS X into user.inetd.config.http init so it is only done once. it was blowing over settings the user may have put in Ç6/15/05; 12:55:10 PM by TAC Çadded port settings for Mac OS X Ç9/19/02; 2:28:50 AM by JES ÇInitialize the port 5336 listener. Ç8/21/02; 9:33:34 PM by JES ÇInitialize the commonLog prefs sub-table. Ç11/5/99; 7:15:29 PM by AR ÇSet up user.webserver.postFilters.domainStats. ÇSet up user.webserver.prefs.flDomainStats. Ç10/1/98; 6:34:12 PM by DW Çno longer expects certain responders to be installed Çno longer creates the log file for the commonLog postfilter Çno longer creates user.webserver.utilities if it doesn't exist Ç12/16/98; 5:36:45 PM by DW Çroll-in of features from mainResponder project Çuser.webserver.stats and user.webserver.prefs.flStats Ç3/19/99; 2:11:09 PM by PBS ÇNew pref: user.webserver.prefs.flWaitDuringStartup. ÇDefault is true. If true, Frontier waits to handle incoming http requests while starting up. ÇIt waits by looping in webserver.server until Frontier has started up. ÇPeople running Frontier behind IIS should set this to false, or else Frontier may hang during startup. ÇEverybody else should set it to true. on tableCopyNewContents (sourceTableAddress, destinationTableAddress) { // 7/3/05; 9:21:16 AM by TAC local (adr); for adr in sourceTableAddress { if defined (destinationTableAddress^.[nameOf (adr^)]) { continue}; if not (table.copy (adr, destinationTableAddress)) { return (false)}}; return (true)}; bundle { //make sure inetd is set up inetd.init (); //this must be done before webserver will work. if not defined (user.inetd.config.http) { user.inetd.config.http = webserver.data.inetd.config.http; if system.environment.isCarbon { // 6/15/05; 12:54:55 PM by TAC user.inetd.config.http.port = 8080; user.inetd.config.http.apparentPort = 80}}; if not defined (user.inetd.config.http2) { user.inetd.config.http2 = webserver.data.inetd.config.http2}; if not defined (user.inetd.config.http3) { user.inetd.config.http3 = webserver.data.inetd.config.http3}}; bundle { //create top-level tables of user.webserver if not defined (user.webserver) { new (tableType, @user.webserver)}; if not defined (user.webserver.prefs) { new (tableType, @user.webserver.prefs)}; if not defined (user.webserver.callbacks) { new (tableType, @user.webserver.callbacks)}; if not defined (user.webserver.callbacks.filterRequest) { new (tableType, @user.webserver.callbacks.filterRequest)}; if not defined (user.webserver.callbacks.handleRequest) { new (tableType, @user.webserver.callbacks.handleRequest)}; if not defined (user.webserver.callbacks.filterPage) { new (tableType, @user.webserver.callbacks.filterPage)}; if not defined (user.webserver.cgis) { new (tableType, @user.webserver.cgis)}; Çif not defined (user.webserver.utilities) Çnew (tableType, @user.webserver.utilities) if not defined (user.webserver.actions) { user.webserver.actions= webserver.data.actions}; Çif not defined (user.webserver.cgis.samples) Çuser.webserver.cgis.samples = webserver.data.cgis.samples if not defined (user.webserver.preFilters) { user.webserver.preFilters = webserver.data.preFilters}; if not defined (user.webserver.postFilters) { user.webserver.postFilters = webserver.data.postFilters}}; bundle { //copy prefs from webserver table if not defined (user.webserver.prefs.fileNotFoundPage) { user.webserver.prefs.fileNotFoundPage = webserver.data.prefs.fileNotFoundPage}; if not defined (user.webserver.prefs.errorPage) { user.webserver.prefs.errorPage = webserver.data.prefs.errorPage}; if not defined (user.webserver.prefs.mimeTypes) { user.webserver.prefs.mimeTypes = webserver.data.prefs.mimeTypes}; if not defined (user.webserver.prefs.ext2MIME) { user.webserver.prefs.ext2MIME = webserver.data.prefs.ext2MIME}; if not defined (user.webserver.prefs.type2MIME) { user.webserver.prefs.type2MIME = webserver.data.prefs.type2MIME}; if not defined (user.webserver.prefs.MIME2icon) { user.webserver.prefs.MIME2icon = webserver.data.prefs.MIME2icon}; if not defined (user.webserver.prefs.MIME2name) { user.webserver.prefs.MIME2name = webserver.data.prefs.MIME2name}}; bundle { //set the prefs values if not defined (user.webserver.prefs.chunkSize) { user.webserver.prefs.chunkSize = 24}; if not defined (user.webserver.prefs.fldebug) { user.webserver.prefs.fldebug = false}; if not defined (user.webserver.prefs.hostName) { user.webserver.prefs.hostName = ""}; if not defined (user.webserver.prefs.serverAppID) { user.webserver.prefs.serverAppID = ""}; if not defined (user.webserver.prefs.websiteFolderPath) { user.webserver.prefs.websiteFolderPath = ""}; if not defined (user.webserver.prefs.fluseDNS) { user.webserver.prefs.fluseDNS = false}; if not defined (user.webserver.prefs.flWaitDuringStartup) { //PBS 3/19/99 user.webserver.prefs.flWaitDuringStartup = true}; if not defined (user.webserver.prefs.defaultResponder) { user.webserver.prefs.defaultResponder = "default"}; if not defined (user.webserver.prefs.flStats) { //6.0 user.webserver.prefs.flStats = true}; if not defined (user.webserver.prefs.flDomainStats) { //AR 11/05/1999 user.webserver.prefs.flDomainStats = true}; //PBS 11/23/99: now true if not defined (user.webserver.prefs.commonLog) { new (tableType, @user.webserver.prefs.commonLog)}; if not defined (user.webserver.prefs.commonLog.flIncludeReferers) { user.webserver.prefs.commonLog.flIncludeReferers = false}; if not defined (user.webserver.prefs.commonLog.flIncludeUserAgents) { user.webserver.prefs.commonLog.flIncludeUserAgents = false}; if not defined (user.webserver.prefs.commonLog.flIncludeVirtualHosts) { user.webserver.prefs.commonLog.flIncludeVirtualHosts = false}; if not defined (user.webserver.prefs.commonLog.flUseCommonLogDateFormat) { user.webserver.prefs.commonLog.flUseCommonLogDateFormat = false}}; bundle { // user.webserver.responders if not defined (user.webserver.responders) { new (tableType, @user.webserver.responders); tableCopyNewContents (@webserver.data.responders , @user.webserver.responders)}}; bundle { //6.0, initialize stats if not defined (user.webserver.stats) { new (tabletype, @user.webserver.stats)}; user.webserver.stats.maxConnections = 0; user.webserver.stats.maxMemAvail = 0; user.webserver.stats.minMemAvail = infinity; user.webserver.stats.hits = 0; user.webserver.stats.upSince = clock.now ()}; Çbundle // set up log for commonLog postFilter Çif (not defined (user.webserver.prefs.logFile)) or (not file.exists (user.webserver.prefs.logFile)) Çuser.webserver.prefs.logFile = frontier.pathstring + "Logs" + file.getPathChar () + "Web Server Log.txt" Çfile.sureFilePath (user.webserver.prefs.logFile) Çif not file.exists (user.webserver.prefs.logFile) Çfile.new (user.webserver.prefs.logFile) Çif (sys.os () == osMacOS) Çfile.setType (user.webserver.prefs.logFile, 'TEXT') Çfile.setCreator (user.webserver.prefs.logFile, 'R*ch') bundle { //AR 11/5/99: set up domainStats postFilter if not defined (user.webserver.postfilters.domainStats) { script.newScriptObject ("on domainStats (pta)" + cr + tab + "return (webserver.postFilters.domainStats (pta))", @user.webserver.postFilters.domainStats)}}; return (true) \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:system.verbs.builtins.webserver.init ! ÇChanges Ç7/27/05; 6:07:04 PM by TAC Çuser.webserver.prefs.mimeTypes uses tableCopyNewContents Çuser.webserver.responders was only copying new items when the table was first created, now copies each init Çadded user.webserver.prefs.MIME2Binary Ç7/14/05; 12:29:45 AM by TAC Çuser.webserver.responders init now uses tableCopyNewContents Çadded tableCopyNewContents handler Çadded user.inetd.config.http3, edit Manila sites Çmoved port config for Mac OS X into user.inetd.config.http init so it is only done once. it was blowing over settings the user may have put in Ç6/15/05; 12:55:10 PM by TAC Çadded port settings for Mac OS X Ç9/19/02; 2:28:50 AM by JES ÇInitialize the port 5336 listener. Ç8/21/02; 9:33:34 PM by JES ÇInitialize the commonLog prefs sub-table. Ç11/5/99; 7:15:29 PM by AR ÇSet up user.webserver.postFilters.domainStats. ÇSet up user.webserver.prefs.flDomainStats. Ç10/1/98; 6:34:12 PM by DW Çno longer expects certain responders to be installed Çno longer creates the log file for the commonLog postfilter Çno longer creates user.webserver.utilities if it doesn't exist Ç12/16/98; 5:36:45 PM by DW Çroll-in of features from mainResponder project Çuser.webserver.stats and user.webserver.prefs.flStats Ç3/19/99; 2:11:09 PM by PBS ÇNew pref: user.webserver.prefs.flWaitDuringStartup. ÇDefault is true. If true, Frontier waits to handle incoming http requests while starting up. ÇIt waits by looping in webserver.server until Frontier has started up. ÇPeople running Frontier behind IIS should set this to false, or else Frontier may hang during startup. ÇEverybody else should set it to true. on tableCopyNewContents (sourceTableAddress, destinationTableAddress) { // 7/3/05; 9:21:16 AM by TAC local (adr); for adr in sourceTableAddress { if defined (destinationTableAddress^.[nameOf (adr^)]) { continue}; if not (table.copy (adr, destinationTableAddress)) { return (false)}}; return (true)}; bundle { //make sure inetd is set up inetd.init (); //this must be done before webserver will work. if not defined (user.inetd.config.http) { user.inetd.config.http = webserver.data.inetd.config.http; if system.environment.isCarbon { // 6/15/05; 12:54:55 PM by TAC user.inetd.config.http.port = 8080; user.inetd.config.http.apparentPort = 80}}; if not defined (user.inetd.config.http2) { user.inetd.config.http2 = webserver.data.inetd.config.http2}; if not defined (user.inetd.config.http3) { user.inetd.config.http3 = webserver.data.inetd.config.http3}}; bundle { //create top-level tables of user.webserver if not defined (user.webserver) { new (tableType, @user.webserver)}; if not defined (user.webserver.prefs) { new (tableType, @user.webserver.prefs)}; if not defined (user.webserver.callbacks) { new (tableType, @user.webserver.callbacks)}; if not defined (user.webserver.callbacks.filterRequest) { new (tableType, @user.webserver.callbacks.filterRequest)}; if not defined (user.webserver.callbacks.handleRequest) { new (tableType, @user.webserver.callbacks.handleRequest)}; if not defined (user.webserver.callbacks.filterPage) { new (tableType, @user.webserver.callbacks.filterPage)}; if not defined (user.webserver.cgis) { new (tableType, @user.webserver.cgis)}; Çif not defined (user.webserver.utilities) Çnew (tableType, @user.webserver.utilities) if not defined (user.webserver.actions) { user.webserver.actions= webserver.data.actions}; Çif not defined (user.webserver.cgis.samples) Çuser.webserver.cgis.samples = webserver.data.cgis.samples if not defined (user.webserver.preFilters) { user.webserver.preFilters = webserver.data.preFilters}; if not defined (user.webserver.postFilters) { user.webserver.postFilters = webserver.data.postFilters}}; bundle { //copy prefs from webserver table if not defined (user.webserver.prefs.fileNotFoundPage) { user.webserver.prefs.fileNotFoundPage = webserver.data.prefs.fileNotFoundPage}; if not defined (user.webserver.prefs.errorPage) { user.webserver.prefs.errorPage = webserver.data.prefs.errorPage}; bundle { // user.webserver.prefs.mimeTypes if not defined (user.webserver.prefs.mimeTypes) { new (tableType, @user.webserver.prefs.mimeTypes)}; tableCopyNewContents (@webserver.data.prefs.mimeTypes, @user.webserver.prefs.mimeTypes)}; if not defined (user.webserver.prefs.ext2MIME) { user.webserver.prefs.ext2MIME = webserver.data.prefs.ext2MIME}; if not defined (user.webserver.prefs.type2MIME) { user.webserver.prefs.type2MIME = webserver.data.prefs.type2MIME}; if not defined (user.webserver.prefs.MIME2icon) { user.webserver.prefs.MIME2icon = webserver.data.prefs.MIME2icon}; if not defined (user.webserver.prefs.MIME2name) { user.webserver.prefs.MIME2name = webserver.data.prefs.MIME2name}; bundle { // user.webserver.prefs.MIME2Binary if not defined (user.webserver.prefs.MIME2Binary) { new (tableType, @user.webserver.prefs.MIME2Binary)}; tableCopyNewContents (@webserver.data.prefs.MIME2Binary, @user.webserver.prefs.MIME2Binary)}}; bundle { //set the prefs values if not defined (user.webserver.prefs.chunkSize) { user.webserver.prefs.chunkSize = 24}; if not defined (user.webserver.prefs.fldebug) { user.webserver.prefs.fldebug = false}; if not defined (user.webserver.prefs.hostName) { user.webserver.prefs.hostName = ""}; if not defined (user.webserver.prefs.serverAppID) { user.webserver.prefs.serverAppID = ""}; if not defined (user.webserver.prefs.websiteFolderPath) { user.webserver.prefs.websiteFolderPath = ""}; if not defined (user.webserver.prefs.fluseDNS) { user.webserver.prefs.fluseDNS = false}; if not defined (user.webserver.prefs.flWaitDuringStartup) { //PBS 3/19/99 user.webserver.prefs.flWaitDuringStartup = true}; if not defined (user.webserver.prefs.defaultResponder) { user.webserver.prefs.defaultResponder = "default"}; if not defined (user.webserver.prefs.flStats) { //6.0 user.webserver.prefs.flStats = true}; if not defined (user.webserver.prefs.flDomainStats) { //AR 11/05/1999 user.webserver.prefs.flDomainStats = true}; //PBS 11/23/99: now true if not defined (user.webserver.prefs.commonLog) { new (tableType, @user.webserver.prefs.commonLog)}; if not defined (user.webserver.prefs.commonLog.flIncludeReferers) { user.webserver.prefs.commonLog.flIncludeReferers = false}; if not defined (user.webserver.prefs.commonLog.flIncludeUserAgents) { user.webserver.prefs.commonLog.flIncludeUserAgents = false}; if not defined (user.webserver.prefs.commonLog.flIncludeVirtualHosts) { user.webserver.prefs.commonLog.flIncludeVirtualHosts = false}; if not defined (user.webserver.prefs.commonLog.flUseCommonLogDateFormat) { user.webserver.prefs.commonLog.flUseCommonLogDateFormat = false}}; bundle { // user.webserver.responders if not defined (user.webserver.responders) { new (tableType, @user.webserver.responders)}; tableCopyNewContents (@webserver.data.responders , @user.webserver.responders)}; bundle { //6.0, initialize stats if not defined (user.webserver.stats) { new (tabletype, @user.webserver.stats)}; user.webserver.stats.maxConnections = 0; user.webserver.stats.maxMemAvail = 0; user.webserver.stats.minMemAvail = infinity; user.webserver.stats.hits = 0; user.webserver.stats.upSince = clock.now ()}; Çbundle // set up log for commonLog postFilter Çif (not defined (user.webserver.prefs.logFile)) or (not file.exists (user.webserver.prefs.logFile)) Çuser.webserver.prefs.logFile = frontier.pathstring + "Logs" + file.getPathChar () + "Web Server Log.txt" Çfile.sureFilePath (user.webserver.prefs.logFile) Çif not file.exists (user.webserver.prefs.logFile) Çfile.new (user.webserver.prefs.logFile) Çif (sys.os () == osMacOS) Çfile.setType (user.webserver.prefs.logFile, 'TEXT') Çfile.setCreator (user.webserver.prefs.logFile, 'R*ch') bundle { //AR 11/5/99: set up domainStats postFilter if not defined (user.webserver.postfilters.domainStats) { script.newScriptObject ("on domainStats (pta)" + cr + tab + "return (webserver.postFilters.domainStats (pta))", @user.webserver.postFilters.domainStats)}}; return (true) \ No newline at end of file |
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/webserver/data/prefs/MIME2Binary In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2869 Added Files: image2Fbmp image2Fpict image2Fgif application2Fx2Dexcel audio2Fx2Daiff text2Fhtml application2Fmsword image2Fjpeg video2Fmpeg text2Fplain application2Fzip application2Fpdf application2Frtf video2Fquicktime application2Fx2Dstuffit audio2Fx2Dwav image2Ftiff image2Fpng Log Message: mime to binary types --- NEW FILE: application2Fx2Dexcel --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["application/x-excel"] XLS --- NEW FILE: video2Fquicktime --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["video/quicktime"] MooV --- NEW FILE: text2Fplain --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["text/plain"] TEXT --- NEW FILE: application2Fmsword --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["application/msword"] WDBN --- NEW FILE: image2Fbmp --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["image/bmp"] BMPp --- NEW FILE: application2Fzip --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["application/zip"] ZIP --- NEW FILE: text2Fhtml --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["text/html"] TEXT --- NEW FILE: image2Fpng --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["image/png"] PNGf --- NEW FILE: image2Fgif --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["image/gif"] GIFf --- NEW FILE: audio2Fx2Dwav --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["audio/x-wav"] .WAV --- NEW FILE: image2Ftiff --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["image/tiff"] TIFF --- NEW FILE: application2Fpdf --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["application/pdf"] PDF --- NEW FILE: application2Frtf --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["application/rtf"] RTF --- NEW FILE: application2Fx2Dstuffit --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["application/x-stuffit"] SITD --- NEW FILE: audio2Fx2Daiff --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["audio/x-aiff"] AIFF --- NEW FILE: video2Fmpeg --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["video/mpeg"] MPEG --- NEW FILE: image2Fpict --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["image/pict"] PICT --- NEW FILE: image2Fjpeg --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.MIME2Binary.["image/jpeg"] JPEG |
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/webserver/data/prefs/mimeTypes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2654 Added Files: 2EWAV ZIP20 TIFF BMPp WDBN RTF20 PNGf XLS20 Log Message: additional mime types --- NEW FILE: ZIP20 --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.mimeTypes.["ZIP "] application/zip --- NEW FILE: RTF20 --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.mimeTypes.["RTF "] application/rtf --- NEW FILE: PNGf --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.mimeTypes.PNGf image/png --- NEW FILE: TIFF --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.mimeTypes.TIFF image/tiff --- NEW FILE: XLS20 --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.mimeTypes.["XLS "] application/x-excel --- NEW FILE: WDBN --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.mimeTypes.WDBN application/msword --- NEW FILE: BMPp --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.mimeTypes.BMPp image/bmp --- NEW FILE: 2EWAV --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.mimeTypes.[".WAV"] audio/x-wav |
|
From: creedon <icr...@us...> - 2005-07-28 01:19:56
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/webserver/data/prefs/MIME2Binary In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7056/MIME2Binary Log Message: Directory /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/webserver/data/prefs/MIME2Binary added to the repository |
|
From: creedon <icr...@us...> - 2005-07-25 21:59:35
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/localization/languages/english/strings/members In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14426 Modified Files: checkMembershipWrongPassword Log Message: changed args.mailaddress to mailAddress Index: checkMembershipWrongPassword =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/localization/languages/english/strings/members/checkMembershipWrongPassword,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** checkMembershipWrongPassword 26 Mar 2005 21:45:50 -0000 1.1.1.1 --- checkMembershipWrongPassword 25 Jul 2005 21:59:27 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:TEXT:mainResponder.localization.languages.english.strings.members.checkMembershipWrongPassword ! Can't send you the cookie for [[args.mailaddress]] because the password is incorrect. \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:TEXT:mainResponder.localization.languages.english.strings.members.checkMembershipWrongPassword ! Can't send you the cookie for [[mailAddress]] because the password is incorrect. \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-07-25 21:57:47
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/members In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13985 Modified Files: linkToMember Log Message: disabled getUsersMapKey handler, replaced with mainResponder.members.memberKeyToMappedKey Index: linkToMember =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/members/linkToMember,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** linkToMember 26 Mar 2005 21:46:01 -0000 1.1.1.1 --- linkToMember 25 Jul 2005 21:57:22 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.members.linkToMember ! on linkToMember (groupName, memberKey, hideEmail=false, adrMembers=nil, pta=nil, urlprefix="", useMap=false) { ÇChanges Ç4/18/03; 4:18:44 PM by JES ÇMember links are now numeric -- this prevents spammers from mining Manila sites for the email addresses of their members. ÇWe store a number associated with each member in the usersMap sub-table of the #membershipGroup table, and look up the member's email address using the number. Ç8/14/02; 8:25:54 PM by JES ÇNew optional parameter, urlPrefix. Ç9/26/01; 6:17:50 PM by PBS ÇNew optional parameter: adrMembers is the address of the membership group. Çpta is now an optional parameter for performance reasons. Ç10/08/00; 4:08:26 AM by JES ÇAdded optional parameter, hideEmail, which causes email addresses to be obscured with elipses. Ç11/14/99; 5:55:31 PM by PBS ÇadrMember^.personalInfo.name may exist yet be blank: if so, just return the member key (the email address). Ç3/4/99; 02:56:16 GMT by AR ÇRemoved reference to config.mainResponder.urls on getUsersMapKey (adrmember) { if not defined (adrMembers^.usersMap) { new (tableType, @adrMembers^.usersMap)}; if not defined (adrmember^.usersMapKey) { local (ix = sizeOf (adrMembers^.usersMap) + 1); adrmember^.usersMapKey = ix; adrMembers^.usersMap.[ix] = nameOf (adrmember^)}; return (adrmember^.usersMapKey)}; on obscureEmail (key, link=true) { if hideEmail { if key contains '@' { local (part1 = string.nthField (key, '@', 1)); local (part2 = string.nthField (key, '@', 2)); if link { return ("<a href=\"mailto:" + key + "\">" + part1 + "@" + part2[1] + "...</a>")} else { return (part1 + "@" + part2[1] + "...")}}}; return (key)}; try { if adrMembers == nil { adrMembers = mainResponder.members.getMembershipTable (groupName)}; local (adrmember = mainresponder.members.getmembertable (groupname, memberkey, adrMembers)); local (name = ""); if defined (adrmember^.personalInfo.name) { name = adrmember^.personalInfo.name}; if string.trimWhiteSpace (name) == "" { name = obscureEmail (memberKey)}; if pta == nil { pta = html.getpagetableaddress ()}; local (url = urlprefix); if url == "" { url = pta^.responderAttributes.urls^.profilesHome + "$"}; url = string.replace (url, "[[group]]", groupName); if useMap { local (usersMapKey = getUsersMapKey (adrmember)); return ("<a href=\"" + url + usersMapKey + "\">" + name + "</a>")} else { return ("<a href=\"" + url + memberKey + "\">" + name + "</a>")}} else { return (obscureEmail (memberKey))}}; Çbundle //test code Çlocal (adrsite = @jaketest2ManilaWebsite) Çlocal (adrmembers = jaketest2Members) Çlocal (groupName = "jaketest2Members") Çlocal (memberKey = "ja...@us...") Çdialog.notify (linkToMember (groupName, memberKey, adrmembers:adrmembers)) \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.members.linkToMember ! on linkToMember (groupName, memberKey, hideEmail=false, adrMembers=nil, pta=nil, urlprefix="", useMap=false) { ÇChanges Ç7/12/05; 12:37:41 PM by TAC Çdisabled getUsersMapKey handler, replaced with mainResponder.members.memberKeyToMappedKey Ç4/18/03; 4:18:44 PM by JES ÇMember links are now numeric -- this prevents spammers from mining Manila sites for the email addresses of their members. ÇWe store a number associated with each member in the usersMap sub-table of the #membershipGroup table, and look up the member's email address using the number. Ç8/14/02; 8:25:54 PM by JES ÇNew optional parameter, urlPrefix. Ç9/26/01; 6:17:50 PM by PBS ÇNew optional parameter: adrMembers is the address of the membership group. Çpta is now an optional parameter for performance reasons. Ç10/08/00; 4:08:26 AM by JES ÇAdded optional parameter, hideEmail, which causes email addresses to be obscured with elipses. Ç11/14/99; 5:55:31 PM by PBS ÇadrMember^.personalInfo.name may exist yet be blank: if so, just return the member key (the email address). Ç3/4/99; 02:56:16 GMT by AR ÇRemoved reference to config.mainResponder.urls Çon getUsersMapKey (adrmember) Çif not defined (adrMembers^.usersMap) Çnew (tableType, @adrMembers^.usersMap) Çif not defined (adrmember^.usersMapKey) Çlocal (ix = sizeOf (adrMembers^.usersMap) + 1) Çadrmember^.usersMapKey = ix ÇadrMembers^.usersMap.[ix] = nameOf (adrmember^) Çreturn (adrmember^.usersMapKey) on obscureEmail (key, link=true) { if hideEmail { if key contains '@' { local (part1 = string.nthField (key, '@', 1)); local (part2 = string.nthField (key, '@', 2)); if link { return ("<a href=\"mailto:" + key + "\">" + part1 + "@" + part2[1] + "...</a>")} else { return (part1 + "@" + part2[1] + "...")}}}; return (key)}; try { if adrMembers == nil { adrMembers = mainResponder.members.getMembershipTable (groupName)}; local (adrmember = mainresponder.members.getmembertable (groupname, memberkey, adrMembers)); local (name = ""); if defined (adrmember^.personalInfo.name) { name = adrmember^.personalInfo.name}; if string.trimWhiteSpace (name) == "" { name = obscureEmail (memberKey)}; if pta == nil { pta = html.getpagetableaddress ()}; local (url = urlprefix); if url == "" { url = pta^.responderAttributes.urls^.profilesHome + "$"}; url = string.replace (url, "[[group]]", groupName); if useMap { Çlocal (usersMapKey = getUsersMapKey (adrmember)) local (usersMapKey = mainResponder.members.memberKeyToMappedKey (memberKey, groupName)); return ("<a href=\"" + url + usersMapKey + "\">" + name + "</a>")} else { return ("<a href=\"" + url + memberKey + "\">" + name + "</a>")}} else { return (obscureEmail (memberKey))}}; Çbundle //test code Çlocal (adrsite = @jaketest2ManilaWebsite) Çlocal (adrmembers = jaketest2Members) Çlocal (groupName = "jaketest2Members") Çlocal (memberKey = "ja...@us...") Çdialog.notify (linkToMember (groupName, memberKey, adrmembers:adrmembers)) \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-07-25 21:56:48
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/discuss In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13771 Modified Files: listDay Log Message: added else to if (flCss) and (class != ""), sets class to "", otherwise we end up with funky html Index: listDay =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/discuss/listDay,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** listDay 26 Mar 2005 21:45:35 -0000 1.1.1.1 --- listDay 25 Jul 2005 21:56:38 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.discuss.listDay ! on listDay (d, bgColor="ivory", otherColor="beige", tableWidth=425, pta=nil, headerColor="black", headerTextColor=nil, cssPrefix="") { ÇList the discussion group messages for a single day. ÇChanges: ÇSat, 27 Feb 1999 23:16:13 GMT by AR ÇModified call to mainresponder.calendar.getdayaddress so it doesn't create the calendar entry ÇTweaked the html code to use valign=middle instead of valign=center ÇMon, 01 Mar 1999 15:01:02 GMT by AR ÇThe script's parameter must be a date type - otherwise a scripterror will be thrown. ÇTo convert other date representations to date type, take a look at mainResponder.calendar.getAddressDay and mainResponder.calendar.pathArgsToDate ÇSat, 06 Mar 1999 17:08:06 GMT by AR ÇCommented out code for caching table lines. ÇWed, 26 May 1999 01:10:41 GMT by AR ÇAdded new optional paramaters bgcolor, othercolor, and tablewidth to allow the calling script more influence over the layout of the table. ÇChanged value of membershipGroup from config.mainresponder.globals.defaultMembershipGroup to pta^.responderAttributes.defaultMembershipGroup. ÇTue, Aug 3, 1999 at 12:39:52 PM by PBS ÇAdded optional pta parameter. ÇSince member names are often repeated, added a local table to cache the names while building the page, to avoid unnecessary calls out. Ç10/30/99; 1:12:22 PM by PBS ÇheaderColor is a new optional parameter for specifying the color of the header at the top of a discussion group messages list. If not specified, the default is black, which is current behavior. ÇheaderTextColor is a new optional parameter for specifying the color of the text inside the header. If not specified, the default is the parameter in bgColor. ÇIn both cases, default behavior applies if you don't specify the parameter. Ç04/12/00; 1:01:38 PM by JES ÇLocalized column headers and table header using mainResponder.getString Ç05/30/00; 5:22:03 PM by PBS ÇcssPrefix is a new optional parameter. If supplied, then CSS classes are added to the tables, rows, cells, and font tags. Ç05/31/00; 3:50:03 PM by PBS ÇTypo fix: there was a colspan=6 when there are only 5 columns. Ç06/01/00; 9:04:38 PM by JES Çmerged CSS code with localization code if pta == nil { pta = html.getPageTableAddress ()}; local (adrData = mainResponder.discuss.openRoot (pta)); local (adrCal = @adrData^.calendar); local (adrMsgs = @adrData^.messages); local (htmlText = "", indentLevel = 0); local (adrDay, i, ct); local (membershipGroup = pta^.responderAttributes.defaultMembershipGroup); local (msgReaderUrl = pta^.responderAttributes.urls^.discussMsgReader); local (flCss = (cssPrefix != "")); //if true, emit CSS classes, otherwise don't local (nameTable); new (tableType, @nameTable); on add (s) { htmlText = htmlText + string.filledString ("\t", indentLevel) + s + "\r"}; Çon td (s, align="") Çadd ("<td nowrap " + align + " valign=\"middle\"><font size=\"-1\"> " + s + " </font></td>") on td (s, align="", class="", height="") { local (fontClass = ""); if (flCss) and (class != "") { class = cssPrefix + class; fontClass = " class=\"" + class + "Font\""; class = " class=\"" + class + "\""}; if height != "" { height = " height=\"" + height + "\""}; if align != "" { align = " " + align}; add ("<td nowrap" + align + " valign=\"middle\"" + class + height + "><font size=\"-1\"" + fontClass + "> " + s + " </font></td>")}; on shortenString (s, maxLen=35) { Çif sizeOf (s) <= maxLen Çreturn (s) return (string.mid (s, 1, maxLen - 3) + "...")}; try { //get the address of this day in the calendar structure for this discussion group. adrDay = mainResponder.calendar.getDayAddress (adrCal, d, flCreate:false); ct = sizeOf (adrDay^)} else { ct = 0}; //no messages yet, shortcut building of message listing Çadd ("<table cellpadding=\"0\" cellspacing=\"1\">"); indentLevel++ bundle { //start the table if flCss { add ("<table cellpadding=\"0\" cellspacing=\"1\" class=\"" + cssPrefix + "Table\">"); indentLevel++} else { add ("<table cellpadding=\"0\" cellspacing=\"1\">"); indentLevel++}}; Çbundle //add the date on a black background Çadd ("<tr><td height=\"10\"><td> </td></tr>") //blank spacer row Çadd ("<tr bgcolor=\"" + headerColor + "\">"); indentLevel++ //PBS 10/30/99: variable header color, black by default Çif headerTextColor == nil //PBS 10/30/99: the header text color may also be specified ÇheaderTextColor = bgColor Çadd ("<td height=\"24\" width=\"" + tableWidth + "\" colspan=\"6\"><font color=\"" + headerTextColor + "\" size=\"-0\"> <b> " + mainResponder.localization.longDateString (d, pta) + " </b></font></td>") // 4/13/00 JES: localized the date Çadd ("</tr>"); indentLevel-- bundle { //add the date on a black background if flCss { //header row add ("<tr bgcolor=\"" + headerColor + "\" class=\"" + cssPrefix + "SeparatorRow\">"); indentLevel++} //PBS 10/30/99: variable header color, black by default else { add ("<tr bgcolor=\"" + headerColor + "\">"); indentLevel++}; //PBS 10/30/99: variable header color, black by default if headerTextColor == nil { //PBS 10/30/99: the header text color may also be specified headerTextColor = bgColor}; if flCss { //header cell -- 06/01/00 JES: localized date string in new code add ("<td height=\"24\" width=\"" + tableWidth + "\" colspan=\"5\" class=\"" + cssPrefix + "SeparatorCell\"><font color=\"" + headerTextColor + "\" size=\"-0\" class=\"" + cssPrefix + "SeparatorFont\"> <b> " + mainResponder.localization.longDateString (d, pta) + " </b></font></td>")} //PBS 05/31/00: 5 columns, not 6 else { add ("<td height=\"24\" width=\"" + tableWidth + "\" colspan=\"5\"><font color=\"" + headerTextColor + "\" size=\"-0\"> <b> " + mainResponder.localization.longDateString (d, pta) + " </b></font></td>")}; //PBS 05/31/00: 5 columns, not 6 add ("</tr>"); indentLevel--}; bundle { //add column titles Çbundle // 06/01/00 JES: old code Çadd ("<tr bgcolor=\"" + otherColor + "\">"); indentLevel++ Çadd ("<td height=\"28\"></td>") //a dummy table cell to establish row height if flCss { //titles row add ("<tr bgcolor=\"" + otherColor + "\" class=\"" + cssPrefix + "TitleRow\">"); indentLevel++} else { add ("<tr bgcolor=\"" + otherColor + "\">"); indentLevel++}; Ç4/13/00; 3:53:31 PM by JES -- localized column headers td ("<b>" + mainResponder.getString ("listHeaders.shortNum") + "</b>", align:"align=\"center\"", class:"MessageLinkTitle", height:28); td ("<b>" + mainResponder.getString ("listHeaders.posted") + "</b>", align:"align=\"center\"", class:"PostedTitle"); td ("<b>" + mainResponder.getString ("listHeaders.ct") + "</b>", align:"align=\"center\"", class:"ReadsTitle"); td ("<b>" + mainResponder.getString ("listHeaders.author") + "</b>", class:"AuthorTitle"); td ("<b>" + mainResponder.getString ("listHeaders.subject") + "</b>", class:"SubjectTitle"); add ("</tr>"); indentLevel--}; for i = ct downTo 1 { //loop through messages in reverse-chronological order local (adrItem, memberName); adrItem = @adrMsgs^.[nameOf (adrDay^ [i])]; bundle { //was this message deleted? If so, skip it. if defined (adrItem^.flDeleted) { ÇThe flDeleted flag may not exist: it's necessary to test for existence before testing whether it's true or false. if adrItem^.flDeleted { continue}}}; bundle { //message row if flCss { add ("<tr bgcolor=\"" + otherColor + "\" class=\"" + cssPrefix + "MessageRow\">"); indentLevel++} else { add ("<tr bgcolor=\"" + otherColor + "\">"); indentLevel++}}; bundle { //add the message number, it's the link local (url = msgReaderUrl + adrItem^.msgNum); td ("<a href=\"" + url + "\">" + adrItem^.msgNum + "</a>", align:"align=\"center\"", class:"MessageLink", height:28)}; bundle { //add post time and read count. td (mainResponder.localization.shortTimeString (adrItem^.postTime), align:"align=\"center\"", class:"Posted"); // 4/13/00 by JES: localized postTime td (adrItem^.ctReads, align:"align=\"right\"", class:"CountReads")}; bundle { //get the name of the member who posted this message. if defined (nameTable.[adrItem^.member]) { //cache member names in a local table, since repetitions are likely memberName = nameTable.[adrItem^.member]} else { memberName = mainResponder.members.getMemberName (membershipGroup, adrItem^.member); nameTable.[adrItem^.member] = memberName}}; bundle { //add the name of the member who posted this message. if sizeOf (memberName) > 20 { td (shortenString (memberName, 20), class:"Author")} else { td (memberName, class:"Author")}}; bundle { //add the subject of the message. if sizeOf (adrItem^.subject) > 40 { td (shortenString (adrItem^.subject, 40), class:"Subject")} else { td (adrItem^.subject, class:"Subject")}}; add ("</tr>"); indentLevel--; Çbundle //code to implement caching (deactivated) Çif false //defined (adritem^.htmlcache) Çlocal (oldindentlevel = indentlevel) Çindentlevel = 0 Çadd (adritem^.htmlcache) Çindentlevel = oldindentlevel Çelse Çon shortenstring (s, maxlen=35) Çif sizeof (s) <= maxlen Çreturn (s) Çreturn (string.mid (s, 1, maxlen - 3) + "...") Çlocal (ixhtmltext = sizeof (htmltext)) Çadd ("<tr bgcolor=\"" + othercolor + "\">"); indentlevel++ Çadd ("<td height=\"28\"></td>") //a dummy table cell to establish row height Çbundle //add the message number, it's the link Çlocal (url = pta^.responderAttributes.urls^.discussMsgReader + adritem^.msgnum) Çtd ("<a href=\"" + url + "\">" + adritem^.msgnum + "</a>", align:"align=\"center\"") Çtd (date.timeString (adritem^.posttime, includeSeconds:false), align:"align=\"center\"") Çtd (adritem^.ctreads, align:"align=\"right\"") Çlocal (membername = mainResponder.members.getMemberName (membershipGroup, adritem^.member)) Çtd (shortenstring (membername, 20)) Çtd (shortenstring (adritem^.subject, 40)) Çadd ("</tr>"); indentlevel-- Ç Çadritem^.htmlcache = string.delete (htmltext, 1, ixhtmltext) Çadritem^.htmlcache = string.delete (adritem^.htmlcache, sizeof (adritem^.htmlcache), 1)}; add ("</table>"); indentLevel--; return (htmlText)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.discuss.listDay ! on listDay (d, bgColor="ivory", otherColor="beige", tableWidth=425, pta=nil, headerColor="black", headerTextColor=nil, cssPrefix="") { ÇList the discussion group messages for a single day. ÇChanges Ç7/14/05; 8:07:35 PM by TAC Çadded else to if (flCss) and (class != ""), sets class to "", otherwise we end up with funky html Ç06/01/00; 9:04:38 PM by JES Çmerged CSS code with localization code Ç05/31/00; 3:50:03 PM by PBS ÇTypo fix: there was a colspan=6 when there are only 5 columns. Ç05/30/00; 5:22:03 PM by PBS ÇcssPrefix is a new optional parameter. If supplied, then CSS classes are added to the tables, rows, cells, and font tags. Ç04/12/00; 1:01:38 PM by JES ÇLocalized column headers and table header using mainResponder.getString Ç10/30/99; 1:12:22 PM by PBS ÇheaderColor is a new optional parameter for specifying the color of the header at the top of a discussion group messages list. If not specified, the default is black, which is current behavior. ÇheaderTextColor is a new optional parameter for specifying the color of the text inside the header. If not specified, the default is the parameter in bgColor. ÇIn both cases, default behavior applies if you don't specify the parameter. ÇTue, Aug 3, 1999 at 12:39:52 PM by PBS ÇAdded optional pta parameter. ÇSince member names are often repeated, added a local table to cache the names while building the page, to avoid unnecessary calls out. ÇWed, 26 May 1999 01:10:41 GMT by AR ÇAdded new optional paramaters bgcolor, othercolor, and tablewidth to allow the calling script more influence over the layout of the table. ÇChanged value of membershipGroup from config.mainresponder.globals.defaultMembershipGroup to pta^.responderAttributes.defaultMembershipGroup. ÇSat, 06 Mar 1999 17:08:06 GMT by AR ÇCommented out code for caching table lines. ÇMon, 01 Mar 1999 15:01:02 GMT by AR ÇThe script's parameter must be a date type - otherwise a scripterror will be thrown. ÇTo convert other date representations to date type, take a look at mainResponder.calendar.getAddressDay and mainResponder.calendar.pathArgsToDate ÇSat, 27 Feb 1999 23:16:13 GMT by AR ÇModified call to mainresponder.calendar.getdayaddress so it doesn't create the calendar entry ÇTweaked the html code to use valign=middle instead of valign=center if pta == nil { pta = html.getPageTableAddress ()}; local (adrData = mainResponder.discuss.openRoot (pta)); local (adrCal = @adrData^.calendar); local (adrMsgs = @adrData^.messages); local (htmlText = "", indentLevel = 0); local (adrDay, i, ct); local (membershipGroup = pta^.responderAttributes.defaultMembershipGroup); local (msgReaderUrl = pta^.responderAttributes.urls^.discussMsgReader); local (flCss = (cssPrefix != "")); //if true, emit CSS classes, otherwise don't local (nameTable); new (tableType, @nameTable); on add (s) { htmlText = htmlText + string.filledString ("\t", indentLevel) + s + "\r"}; Çon td (s, align="") Çadd ("<td nowrap " + align + " valign=\"middle\"><font size=\"-1\"> " + s + " </font></td>") on td (s, align="", class="", height="") { local (fontClass = ""); if (flCss) and (class != "") { class = cssPrefix + class; fontClass = " class=\"" + class + "Font\""; class = " class=\"" + class + "\""} else { class = ""}; if height != "" { height = " height=\"" + height + "\""}; if align != "" { align = " " + align}; add ("<td nowrap" + align + " valign=\"middle\"" + class + height + "><font size=\"-1\"" + fontClass + "> " + s + " </font></td>")}; on shortenString (s, maxLen=35) { Çif sizeOf (s) <= maxLen Çreturn (s) return (string.mid (s, 1, maxLen - 3) + "...")}; try { //get the address of this day in the calendar structure for this discussion group. adrDay = mainResponder.calendar.getDayAddress (adrCal, d, flCreate:false); ct = sizeOf (adrDay^)} else { ct = 0}; //no messages yet, shortcut building of message listing Çadd ("<table cellpadding=\"0\" cellspacing=\"1\">"); indentLevel++ bundle { //start the table if flCss { add ("<table cellpadding=\"0\" cellspacing=\"1\" class=\"" + cssPrefix + "Table\">"); indentLevel++} else { add ("<table cellpadding=\"0\" cellspacing=\"1\">"); indentLevel++}}; Çbundle //add the date on a black background Çadd ("<tr><td height=\"10\"><td> </td></tr>") //blank spacer row Çadd ("<tr bgcolor=\"" + headerColor + "\">"); indentLevel++ //PBS 10/30/99: variable header color, black by default Çif headerTextColor == nil //PBS 10/30/99: the header text color may also be specified ÇheaderTextColor = bgColor Çadd ("<td height=\"24\" width=\"" + tableWidth + "\" colspan=\"6\"><font color=\"" + headerTextColor + "\" size=\"-0\"> <b> " + mainResponder.localization.longDateString (d, pta) + " </b></font></td>") // 4/13/00 JES: localized the date Çadd ("</tr>"); indentLevel-- bundle { //add the date on a black background if flCss { //header row add ("<tr bgcolor=\"" + headerColor + "\" class=\"" + cssPrefix + "SeparatorRow\">"); indentLevel++} //PBS 10/30/99: variable header color, black by default else { add ("<tr bgcolor=\"" + headerColor + "\">"); indentLevel++}; //PBS 10/30/99: variable header color, black by default if headerTextColor == nil { //PBS 10/30/99: the header text color may also be specified headerTextColor = bgColor}; if flCss { //header cell -- 06/01/00 JES: localized date string in new code add ("<td height=\"24\" width=\"" + tableWidth + "\" colspan=\"5\" class=\"" + cssPrefix + "SeparatorCell\"><font color=\"" + headerTextColor + "\" size=\"-0\" class=\"" + cssPrefix + "SeparatorFont\"> <b> " + mainResponder.localization.longDateString (d, pta) + " </b></font></td>")} //PBS 05/31/00: 5 columns, not 6 else { add ("<td height=\"24\" width=\"" + tableWidth + "\" colspan=\"5\"><font color=\"" + headerTextColor + "\" size=\"-0\"> <b> " + mainResponder.localization.longDateString (d, pta) + " </b></font></td>")}; //PBS 05/31/00: 5 columns, not 6 add ("</tr>"); indentLevel--}; bundle { //add column titles Çbundle // 06/01/00 JES: old code Çadd ("<tr bgcolor=\"" + otherColor + "\">"); indentLevel++ Çadd ("<td height=\"28\"></td>") //a dummy table cell to establish row height if flCss { //titles row add ("<tr bgcolor=\"" + otherColor + "\" class=\"" + cssPrefix + "TitleRow\">"); indentLevel++} else { add ("<tr bgcolor=\"" + otherColor + "\">"); indentLevel++}; Ç4/13/00; 3:53:31 PM by JES -- localized column headers td ("<b>" + mainResponder.getString ("listHeaders.shortNum") + "</b>", align:"align=\"center\"", class:"MessageLinkTitle", height:28); td ("<b>" + mainResponder.getString ("listHeaders.posted") + "</b>", align:"align=\"center\"", class:"PostedTitle"); td ("<b>" + mainResponder.getString ("listHeaders.ct") + "</b>", align:"align=\"center\"", class:"ReadsTitle"); td ("<b>" + mainResponder.getString ("listHeaders.author") + "</b>", class:"AuthorTitle"); td ("<b>" + mainResponder.getString ("listHeaders.subject") + "</b>", class:"SubjectTitle"); add ("</tr>"); indentLevel--}; for i = ct downTo 1 { //loop through messages in reverse-chronological order local (adrItem, memberName); adrItem = @adrMsgs^.[nameOf (adrDay^ [i])]; bundle { //was this message deleted? If so, skip it. if defined (adrItem^.flDeleted) { ÇThe flDeleted flag may not exist: it's necessary to test for existence before testing whether it's true or false. if adrItem^.flDeleted { continue}}}; bundle { //message row if flCss { add ("<tr bgcolor=\"" + otherColor + "\" class=\"" + cssPrefix + "MessageRow\">"); indentLevel++} else { add ("<tr bgcolor=\"" + otherColor + "\">"); indentLevel++}}; bundle { //add the message number, it's the link local (url = msgReaderUrl + adrItem^.msgNum); td ("<a href=\"" + url + "\">" + adrItem^.msgNum + "</a>", align:"align=\"center\"", class:"MessageLink", height:28)}; bundle { //add post time and read count. td (mainResponder.localization.shortTimeString (adrItem^.postTime), align:"align=\"center\"", class:"Posted"); // 4/13/00 by JES: localized postTime td (adrItem^.ctReads, align:"align=\"right\"", class:"CountReads")}; bundle { //get the name of the member who posted this message. if defined (nameTable.[adrItem^.member]) { //cache member names in a local table, since repetitions are likely memberName = nameTable.[adrItem^.member]} else { memberName = mainResponder.members.getMemberName (membershipGroup, adrItem^.member); nameTable.[adrItem^.member] = memberName}}; bundle { //add the name of the member who posted this message. if sizeOf (memberName) > 20 { td (shortenString (memberName, 20), class:"Author")} else { td (memberName, class:"Author")}}; bundle { //add the subject of the message. if sizeOf (adrItem^.subject) > 40 { td (shortenString (adrItem^.subject, 40), class:"Subject")} else { td (adrItem^.subject, class:"Subject")}}; add ("</tr>"); indentLevel--; Çbundle //code to implement caching (deactivated) Çif false //defined (adritem^.htmlcache) Çlocal (oldindentlevel = indentlevel) Çindentlevel = 0 Çadd (adritem^.htmlcache) Çindentlevel = oldindentlevel Çelse Çon shortenstring (s, maxlen=35) Çif sizeof (s) <= maxlen Çreturn (s) Çreturn (string.mid (s, 1, maxlen - 3) + "...") Çlocal (ixhtmltext = sizeof (htmltext)) Çadd ("<tr bgcolor=\"" + othercolor + "\">"); indentlevel++ Çadd ("<td height=\"28\"></td>") //a dummy table cell to establish row height Çbundle //add the message number, it's the link Çlocal (url = pta^.responderAttributes.urls^.discussMsgReader + adritem^.msgnum) Çtd ("<a href=\"" + url + "\">" + adritem^.msgnum + "</a>", align:"align=\"center\"") Çtd (date.timeString (adritem^.posttime, includeSeconds:false), align:"align=\"center\"") Çtd (adritem^.ctreads, align:"align=\"right\"") Çlocal (membername = mainResponder.members.getMemberName (membershipGroup, adritem^.member)) Çtd (shortenstring (membername, 20)) Çtd (shortenstring (adritem^.subject, 40)) Çadd ("</tr>"); indentlevel-- Ç Çadritem^.htmlcache = string.delete (htmltext, 1, ixhtmltext) Çadritem^.htmlcache = string.delete (adritem^.htmlcache, sizeof (adritem^.htmlcache), 1)};}; add ("</table>"); indentLevel--; return (htmlText)} \ No newline at end of file |
|
From: creedon <icr...@us...> - 2005-07-25 21:55:02
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/localization/languages/english/strings/members In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13244 Modified Files: mailAddressPrompt Log Message: changed Mail to Email Index: mailAddressPrompt =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/localization/languages/english/strings/members/mailAddressPrompt,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** mailAddressPrompt 26 Mar 2005 21:45:50 -0000 1.1.1.1 --- mailAddressPrompt 25 Jul 2005 21:54:53 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:TEXT:mainResponder.localization.languages.english.strings.members.mailAddressPrompt ! Mail address: \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:TEXT:mainResponder.localization.languages.english.strings.members.mailAddressPrompt ! Email address: \ No newline at end of file |