
$Id: TODO,v 1.7 1999/06/22 17:08:35 kk Exp $

Open issues:

- Sascha proposed a generic BLOB storage mechanism. Review his diff
  and implement something for MySQL.

- Documentation for

    graph.inc (and clean it up!)
    of_*.inc, oohforms.inc (and clean it up!)
    tree.inc  (and clean it up!)

  Cleanup also for

    sqlquery.inc

-------


Some ideas for new classes, taken from the Cold Fusion Tag Gallery at
http://www.allaire.com/developer/taggallery/

<CF_calendar
  PrivateGroups="ip address(es)"
  Background="hex color"
  BackgroundImage="url of image"
  BorderColor="hex color"
  BorderSize="integer"
  DayBack="hex color"
  MonthBack="hex color"
  CurrentDayColor="hex color"
  WeekBack="hex color"
  Legend="hex color"
  LegendColsPerRow="number of columns in legend"
  MaxEvents="maximum number events to display"
  MinEvents="minimum number of event slots"
  Form="display build calendar form yes/no"
  MonthsBehind="number of months to go back"
  MonthsAhead="number of months to go ahead"
  SubmitText="text on build calendar button"
  BuildForm="form to build calendar on"
  DetailTarget="template to show days events on"
  DaysClickable="days link to detail form yes/no"
  EventsClickable="yes/no"
  Target="frame to send template to"
  WeekFont="font for days of the week"
  DayCounterFont="font for event length counter"
  MonthFont="font for month header"
  MonthAlign="alignment of month header"
  DayWidth="width for day columns"
  MonthWidth="width of calendar"
  Month="sets month to show"
  Year="sets year to show"
  Marquee="display events in animated marquees"
  MarqueeBehavior="type of marquee animation"
  MarqueeScrollAmount="pixels to scroll marquee"
  MarqueeScrollDelay="ms delay between refreshes"
  MarqueeLoop="number of times to loop marquees"
  MarqueeDirection="direction of the marquee">

Creates an HTML based events calendar from a database. Features
a large documentation, flexibility, and a nice visual interface.
Also includes all the tools (including an Access database) to
add to and update the calendar. Registering is required for
support, and removal of "Un-registered copy" text.

<cf_menu
  menuname="cf_menuTestPage"
  menu="Search Engines, Companies"
  submenu="Excite, Yahoo, Webcrawler~
  Allaire, IGotYour.com, WWD"
                                                              
  links="http://www.excite.com,
    http://www.yahoo.com,
    http://www.webcrawler.com~            
    http://www.allaire.com,
    http://www.igotyour.com,
    http://www.wwd.net"

  Direction="down"
  Mouseover="YES">

With cf_menu, you simply pass the menus, sub-menus, and links.
Cf_menu then builds a nice menu system for your page based on
the data you pass.

(Not like this. Do it how Kai did it. And create a real
structure with arbitary nesting levels...).
                 
<CF_AdBanner
    NAME = "string"
    CATEGORY = "string"
    DEFAULT = "string"
    TARGET = "string"
    BORDER = "number"
    HEIGHT = "number"
    WIDTH = "number"
    DATASOURCE = "string"
    TRACKER = "string"
    OUTVAR = "string"> 

    All parameters are optional.

                         
    CF_AdBanner places random, individual, or group-targeted ads
    on a page, and provides load and clickthru tracking services
    through web-based administration tools. An update of the
    original tag, with several new features and Studio support. 
    CF_AdBanner tracks the loads and placements of each banner
    ad and breaks it down by page location on the site, as well
    as by ad and by category.


<CF_Alert 
  VAL="Thank you for your support.">

Alert is a simple tag that allows you to quickly create a
JavaScript pop-up alert box. It will escape the string you wish
to alert in case it contains quotes or newlines. This tag is
great for error checking and debugging of Cold Fusion files.


<CF_ArrayDump				(done, see Table)
  ARRAY="MyArray"
  SHOWLABELS="Yes">

Outputs the contents of any one-dimensional or two-dimensional
array, in a simple table format. Similar to the CFX_QueryDump
and CFX_ShowQuery tags, but for arrays. Useful for debugging.


<CF_BUBBASAID
  DATASOURCE="budwiser"
  DATATABLE="Quotes"
  QUOTEIDFIELD="QuoteID"
  QUOTEFIELD="Quote">

<CF_BUBBASAID
  EXTERNALSOURCE = "http://www.good-things.org/cookies.cgi/0?">

Generate random quotes using source from either an internal
database or an external server or website (i.e cgi's).


<CF_Calculator>

This tag allows you to display a working calculator in any page
you wish. This was written in VBScript, so it doesn't work much
in Netscape. However, it's a good example of Cold Fusion
wrapping up asp. This tag has been tested to work in IE 3.02 and
higher.

<cf_date
  DN="Day_1"
  MN="Month_1"
  YN="year_1"
  FROM_Y="1997"
  TO_Y="2000"
  DEFAULT_NOW="n"
  ADD_SELECT ="Y"
  req_year="0"
  Mon_Na_or_Nu="y"
  req_month="1"
  req_day="1"
  req_year="1998">

Creates 3 DropDown Boxes in a form for Date.


<CFFORM NAME="myform" Action="/../myfile.cfm" METHOD="post">
<CF_DirectoryExplorer
  Path="c:\..\..\"
  Root="My Directory"
  Height="400"
  Width="300"
  HScroll="yes"
  VScroll="yes"
  HSpace="0"
  VSpace="0"
  Align="middle"
  Border="yes"
  ShowFiles="no">
  <INPUT TYPE="submit" NAME="submit" Value="Submit">
</CFFORM>

CF_DirectoryExplorer is a custom CFML tag that allows a user to
display directories from their server using a "Windows Explorer"
metaphor via the CFTREE Java applet. The tag is capable of using
any directory as the starting point. In addition, files
contained in listed directories have the option of being shown.

(Boris, didn't you write a File Requester in JavaScript already?)
(Actually, a File Repository Manager would be in order.)

<CF_DirectoryList_Enhanced
  DIRECTORY="c:\Dell,c:\Test"
  NAME="MyQuery"
  FILTER="*.cfm,*.dbm"
  SORT="Name"
  RECURSE="Yes"> 

Retrieves a list of files from the server's drive--almost
exactly like using CFDIRECTORY tag with ACTION="LIST" in Cold
Fusion 3.1 and up-- with these five differences:

  Recursive directory lists can be obtained (subfolders) 
  More than one directory can be specified 
  More than one filter "mask" can be specified 
  Additional "Directory" and "Extension" columns are provided in the resulting query 
  Directories are not included in the query (only files) 

IMPORTANT NOTES: This tag requires Cold Fusion 3.1 or higher.
Also, it can be considerably slower than using the "native"
CFDIRECTORY tag, so use this tag only when you need its added
functionality.

<CF_FileBrowser>

http://www.myserver.con/tools/File_Browser/Filebrowser.cfm

Allows you to browse your servers file system & read files on
it. IF the files a cfm or html, this app will display the file
using syntax highlighting, allowing you to print cfm files with
all the colours of CF-Studio.

<CF_Form
  RECEIVER="listofpeopletomailto"
  SubmitText="textforsubmitbutton"
  ResetText="textforresetbutton"
  ThankYou_Str="texttogivetouser"
  Subject_Str="subjectforemailmesg"
  DisplayMarkup="htmltowrapdisplay"
  FormMarkup="htmltowrapformfields"
  MiscMarkup="mischtmlwrapup"
  TableWidth="widthoftable"
  ThankYou_URL="urltogotoongoodsubmission"
  Snoop="Yes"

  FormFieldX="name"
  FormFieldX_Display="howtodisplayname"
  FormFieldX_Type="typeofformfield"
  FormFieldX_Length="lengthoffield"
  FormFieldX_MaxLength="maxlengthforformfield"
  FormFieldX_Value="initialvalue"
  FormFieldX_Required="requiredboolean"
  FormFieldX_RequiredType="typeofrequirement"
  FormFieldX_Dim="dimsiftypeistextarea"

  FormFieldX+1...>

Form is a one step form creator and handler. This easily
customized tag will not only create the form for you, it will
also take care of error checking, mailing the form, and thanking
the user.


<CF_Help>

<!---Displays an Alert Box-->
<CF_HELP 
  DATASOURCE="My_DSN" 
  HELPID="121" 
  ICON="http://www.Some_Server/Some_Image.gif">
                          
<!---Displays a Dynamicaly populated Window--->
<CF_HELP 
  DATASOURCE="My_DSN" 
  HELPID="121" 
  ICON="http://www.Some_Server/Some_Image.gif"
  URL="http://www.Some_Server/ShowHelp.cfm"
  HEIGHT=400>

This Custom Tag generates an Icon that, when clicked, creates a
Javascript Alert Box OR (and this is the main difference form
the previous CF_HELP) a Javascript opened window, displaying
dynamically created help content. It's useful to display context
sensitive help, instead of long and detailed articles.

(Ulf already has code for this.)


<CF_ImageRollover>

<!--- Simple rollover image --->
<CF_ImageRollover
  SRC1="hello1.gif"
  SRC2="hello2.gif">
                           
<!--- A clickable image --->
  <CF_ImageRollover
  SRC1="hello1.gif"
  SRC2="hello2.gif"
  URL="/index.cfm"
  TARGET="detail">

Cold Fusion custom tag to create DHTML code to display a
"rollover image", one that changes when the mouse moves over it.

(We should also have a timeout delay, as in our
http://www.hobby-caravan.de rollovers).

<CF_LastMod
  DateFormat="mmmm dd, yyyy"
  TimeFormat="HH:mm:ss">

Provides the last modified date and time of the file. Date &
time a formattable using any standard CF format codes. Includes
built in error-checking and help systems

(We should have a pageinfo-class that can also count hits,
maintain a clicked-redirection log as for www.wahl.de and the like).

<CF_LayoutPassword>

<CF_LayoutPassword
  Layout="[cCNS]">

CF_LayoutPassword is a custom CFML tag that allows a user to
generate random passwords exactly the way they would like it to
be. So if your company normally uses the format Character,
Number, Cahracter, Symbol (e.g. "s5s!"), it is now possible to
have CF generate these passwords for you. The creation of the
passwords is fully customizable. Passwords can be of any length.
It can contain numbers, symbols, uppercase, and lowercase
letters in any combination.

(Utterly useless?)


<CF_Log>

<CF_Log TEXT="Before CFQUERY tag">
<CF_Log FORMAT="FIELD" TEXT="#last_name#">
<CF_Log FILE="C:\CFUSION\LOG\USER.LOG" TEXT="text goes here">

Custom Tag to create and update a log file. Logs date, time, IP
address, browser, template name, and user specified log text.
Supports multiple formatting options.

(Always log to databases)
(see also: CF_LastMod and the annotation there)


<CF_HREF
  String="Text String with links..."
  StripTagsFromTitle="YES|NO">

CF_HREF is a tag that will take a string, such as an entire web page, and
strip out the URL and Link Titles, returning all of them in a semi-colon and
pipe delimited list.

(HTML parsing should be done inside the PHP interpreter)


<CF_SafeSubmit buttonText1="Submit" buttonText2="Wait!">

This tag replaces your standard "Submit" Button. When the CF_SafeSubmit
button is clicked, it turns into a "Wait" button and disallows further
clicks. Implemented with JavaScript.


<CF_IsEmail
  EMAIL="user@server.com">

CF_IsEmail will attempt to validate that a given e-mail address is a valid
e-mail address. If the address is a .com, .org, .net, or .edu, the tag will
do a lookup from Internic to determine the Company Name and age (in months)
of the domain.

<CF_ENTER 
  Action="main.cfm" 
  Banner="Homepage Login" 
  Username_label="User ID" 
  Password_label="Password" 
  Username_field="myid" 
  Password_field="mypassword" 
  Username_validation="You must enter a username." 
  Password_validation="You must enter a password." 
  Tablecolor="silver"> 

The purpose of this tag is to enable a user to press enter on their
keyboard, rather than clicking when logging in with a Netscape browser. It
also clears the history of the input fields. Tag has been tested in Netscape
4.0 and 3.0, plus IE 4.0

<CF_CoolLink
  linkname="Allaire Home"
  linkhref="http://www.allaire.com"
  oncolor="aqua"
  offcolor="Navy">

This tag allows you to generate links that change color when you mouse-over
them, and then also change color when you click the link. Additionally, you
can specify a custom message to appear in the browser status bar. The color
changing of links works in IE4, and everything else should work in all
browsers. Also, all of the attributes for this tag have defaults, which you
could in theory change to make your development even easier.

<CF_CoolImage 
  SRC="products.gif" 
  OVERSRC="support.gif"
  HEIGHT="19" WIDTH="112" 
  IMGNAME="CoolImage"
  HREF="http://www.allaire.com"
  ALT="MyProducts" Border="0" >

This tag is used to create a 'swapable image' -- ie. an image which swaps
another image in its place when a user puts their mouse over the image. This
tag can be used like any standard HTML IMG tag, except that it includes
additional elements such as HREF, which will hyperlink the graphic.

<CF_CoolImage2
  UpSrc="image1.gif"
  DownSrc="image2.gif"
  FlatSrc="image3.gif"
  href="http://www.allaire.com"
  alt="Alternate text"
  width="62"
  height="20"
  align="left">

CF_CoolImage2 goes a step further than the original CF_CoolImage by taking
advantage of JavaScript 1.2's new onMouseUp and onMouseDown events, but
remains useful for older browsers.
