CHANGELOG

$Id: ric_CHANGELOG.html,v 1.14 2003/08/01 01:37:27 hemna Exp $

++ Major change or new feature.
+  fairly large change
-  minor change

Version 2.3.0 - July 31, 2003
  - pulled a small issue from FormProcessor.  $this->_message never used.
  - changed FormProcessor::set_render_form_after_succes() to accept a flag,
    instead of just setting it to TRUE always.
  - Added some tests in the FormContent element access methods, to help
    developing a form.  It traps for invalid FormElement labels.
  + Added FEFile FormElement from Dave Brondsema <dave@brondsema.net>
  + Started work on the FormWizard
  - cleanup of some warnings for the DataList widgets.
  - Fixed a problem with doing some queries in the PEARSQLDataListSource
  - added HTMLPageClass::set_language() as a request from 
    Davide "Design" Muzzarelli.
  - fixed DefaultGUIDataList alignment blowing up.
  - small change to the TABLEtag::add_row method to be cleaner in how
    we check for TR or TD objects
  + Added the ability to check the status of the FormProcessor state 
    after the constructor processes the form.  Now you can find out
    if the form was confirmed and action was processed successfully
    so you can do something besides show the form.
  - added the ability to find out what action was taken by the form
    engine with FormProcessor::get_action() 
  + Added the ability to automagically set a character limit in the
    FETextArea element
  + Added the ability to not automatically show the errors in the 
    FormProcessor.  This allows you to show the errors somewhere else
  + Added the ability to set the FormContent error table title and width
    to something besides the default.
  + Added FormContent::get_error_array() and FormProcessor::get_error_array()

 ++ Changed the parameter list to FETextArea().  the rows, cols attributes
    for a textarea tag are required.  
  - changed htmlentities call in HTMLTagClass to htmlspecialchars so we don't
    nuke unicode/multibyte chars.
 ++ Added FormContent::javascript() and FormElement::javascript() that
    automatically get called by the FormProcessor.  This allows you to include
    some raw javascript into a form or a form element, and it will automatically 
    get wraped in a script tag and added rendered with the form.
  - fixed a lame error in the exmaple7.php source.
  - fixed a few warnings in example8.php
  - define the HTML_RENDER_TYPE var in SVGDocumentClass so we don't get php warnings.
  + Added the ability to filter rows out of the DataListSource object.
    just define DataListSource::row_filter() and return TRUE to allow the row or FALSE
    to drop the row.
  + Added FEYesNoListBox, and added the ability to change the yes/no values
    for the FEYesNoRadioGroup
  - don't validate FormElements that are disabled.
  
  + added the ability in the FormContent and FormElement to have more then 1 error
  + added FEConfirmActionButton
  + added FENumber to validate an int
  + added FENumberInRage to validate an int in a range.
  + added FEHostnameWithPort to show a hostname and a Port
  + added FEIPAddressWithPort
  - fixed annoying problem with the form_active_checkbox,form_active_radio and
    FECheckBoxList links causing mozilla to jump to the top of the page when clicked.    
  - removed some of the newlines from the generated output for HTMLPageClass.
  + Added HTMLRedirectPage
  - cleaned up the use of a define for HTML_RENDER_TYPE.  It's now a global var,
    so it can be changed on the fly.
  - fixed some small warnings in the examples
    (thanks Pierre)
  - fixed some warnings in the DefaultGUIDataList object.  
  + Added a DataList::do_action() method that allows you to do whatever
    prior to get_data_source() being called.  You can pre-massage data in
    do_action().  By default, it does nothing.
  + Added ArrayDataListSource class that pulls data out of an array
  + Added XMLTagClass::set_cdata_flag() to toggle the CDATA wrapper flag
  + Added xml_ctag(), which is the same as xml_tag(), but sets the bit to 
    automatically wrap all tag content in the CDATA wrapper.
  
   
  
    

Version 2.2.4 - April 3, 2003
  - fixed a small documentation issue w/ the DataList::add_header_item()
    method.
  - pulled out missing development files in the form_elements/includes.inc
    D'oh.
  - fixed small warnings from HTMLTagClass

Version 2.2.3 - April 2, 2003
  - fixed a problem with the FormContent errors table width.
  - fixed an error in the form1 example.
  - fixed an error with Form Confirmation pages with the 
    FECheckBox Form Element.
  - fixed a minor problem with the TABLEtag object, and adding
    a BaseWidget child class.  It doesn't have a _tag member, so
    folks that have MAX errors on, got a warning.
  - Fixed a potential issue with XML attributes.  There was a chance
    that an XML tag's attribute could be empty, which would build
    an invalid XML tag.  DOCTYPE is now an HTMLTagClass child, because
    it needs attributes w/o values.
  - Changed FormProcessor to use "post" instead of "POST" so that we
    build valid XHTML
  - changed the FormElement rendering of onClick, onChange, etc. to use
    all lowercase, to build valid XHTML.
  - added HTMLPageClass::add_js_link() to replace push_js_link()
  - small fix in the DefuaultGUIDataList::_checkbox_javascript() to 
    be more flexible.  Thanks Nils Droge <ndroege@haba-ag.de>
  - made sure the DataList object's form name is set.
  - let the user set the DataList form method to post or POST.
  - Don't do indentation on a PREtag
  - Added FEDataList::set_list_data() method, to allow folks to set the
    list of items at any time.
  + Some cleanup of the FormProcessor attributes, and added some
    easy access methods for setting/getting them.
  - fixed the FormContent::add_image_action() method.  Can't use onclick
    with a input type="image".  bogus.
  + Added the ability to override the FormValidation and FormErrors classes
    used by the FormProcessor, so folks can get their errors and text from
    any method.  This helps folks create their own i18n FormErrors class.

Version 2.2.2 - March 10, 2003
  - Aris Basic <aris.basic@silencesoftware.com> added a new
    PGSQLDataListSource object, to allow folks to use the
    PHP built in PostgreSQL native functions for talking to 
    a DB.  This avoids the depenancy on PEAR or ADODB.  
  - Added the xhtml_strict_attributes array to the FORMtag 
    declaration.  the attributes 'name' and 'target' are not
    allowed while in XHTML STRICT mode
    (thanks to Philipp Morger <morger@dolphins.ch> )
  - fixed a minor issue in the DataList object that Richard Greene
    found.
  - cleaned up the old 'test' scripts in test.
  - made a small fix to the ADODBSQLDataListSource::count() method when
    handling a DB error.  Thanks to Nils Droge <ndroege@haba-ag.de>
  - fixed a problem of not being able to search fo '0' in the DataList
    Thanks to Nils Droge <ndroege@haba-ag.de>.
  - made a small change to the DefaultGUIDataList to make the search area
    text be localizable.  
  - Added support to change the encoding type for XHTML pages in the
    HTMLPageClass::set_encoding() method.
  - fixed a PHP NOTICE error output in the XMLTagClass.
  - fixed a problem with XML tags that have no content.  It now
    automatically drops the close tag.
  - fixed a problem with HTML tags with no content.  it no longer
    renders a newline after the open tag.
  - fixed a the DOCTYPE tag attributes for XHTML mode.  It now gives
    the full url path to the DTD's on the W3C site.
    (thanks to Philipp Morger <morger@dolphins.ch> )
  - fixed a small indenting problem with XMLTagClass::render_content()  
  - Moved the SVG, WML, XML widgets into their own dirs under widgets.
  
  + Added new SVG Graphing classes.  You can now graph a line graph 
    with SVGXYLineGraph

Version 2.2.1 - February 21, 2003
  - fixed problems with the simple search capability for the 
    DefaultGUIDataList object.
  - Fixed the count problem with the ADODBDataListSource object
  - fixed some api calls in the examples/widget8 for form_active_radio
    and form_active_checkbox
  * Thanks to Aris "PhanLord" Basic for the heads up on the bugs.
  

Version 2.2.0 - February 20, 2003
  - added attributes array as the last parameter to form_select.
    the attributes are for the select tag.  
  + Added the new RoundTitleTable widget.  It looks like the
    NavTable widget, but can contain anything.
  - fixed a minor issue with Container::reset_content()  It used to
    accept new content to automagically add.  This has been re-added.
    Thanks to Freddy from Germany. :)
  - fixed another duplicated method in SQLDataListSource.  arg.
  + Added the CSSContainer widget
  + changed all of the themed css building scripts to use the
    new CSSContainer widget.  This is handy for site wide 
    themeing.
  - Fixed a minor php notice in XMLTagClass::prepare_flags()
  - Added the ability to set the overall alignment for the
    DefaultGUIDataList object with set_align()
  - added some code to the ActiveTab to enable going to a 
    specific tab when coming from another page
  - Added the ability to preselect a specific tab in the ActiveTab
    widget by passing the selected tab's name in the constructor  
  - fixed the count issue with the ADODBSQLDataListSource
  - Made the urls in the DataList object W3C happy.  & -> &amp;
  - fixed potential content issues with InfoTable.  Now you can
    call add_row() with a TR or TD tag.
    
 ++ MAJOR cleanup of all class member variables in ContainerClass,
    XMLTagClass and HTMLTagClass.  I nuked ALL of the flag variables
    and made them all into 1 bitmask.  13 variables -> 1.  This should
    keep the memory footprint to a minimum.  There should be NO
    compatibility issues.
    
 ++ Added the new Form Processing classes, for easily building complex
    forms and automagic validation, as well as automagic confirmation.

Version 2.1.3 - November 25, 2002
  - fixed a duplicated method in ActiveTab.

Version 2.1.2 - November 23, 2002
  - fixed a problem with html_map(), it was returning a LEGENDtag.
  - added $width to ActiveTab::add_tab() so you can change the width
    of the tab for long titles.
  - Fixed my mistake with the add/push_reference() methods. 
    According to the php spec, you have to declare the parameter
    as a reference in the function declaration now, which is 
    counter-intuitive (for us C folks)
  - Fixed a problem with the XMLDocumentClass' add_reference() method.

Version 2.1.1 - November 12, 2002
  - Suren Fixed a bad bug in HTMLPageClass::add_head_content()
  

Version 2.1.0 - November 12, 2002
  - Added the ActiveTab widget
  - fixed a problem with the DefaultGUIDataList object comparing
    the old style tag name of TD.  all tags are now lowercase
  - changed the use of id to class to prevent W3C validation errors
    when using a widget multiple times on a page.
  - added form_active_radio() and form_active_checkbox()
  + Did some major code cleanup in the _render_tag_* functions
    between the XMLTagClass and the HTMLTagClass classes.  Just had
    some legacy code living in the HTMLTagClass methods that was
    now living in the XMLTagClass methods
  - changed DOCTYPEtag to an XMLTag child
  - cleaned up the constructor for the DOCTYPEtag and XMLtag  
  + Did some minor tweaks here and there in the base classes
    for performance improvements thanks to the adp profiler tool
    (http://pear.php.net/package-info.php?pacid=118)
  + Added xml_doctype() as a helper function for creating a
    DOCTYPE tag
  + added build_doctype() for the HTMLPageClass, so you can modify
    the DOCTYPE attributes for the document before render() is called.
    This is good for folks that want to tweak the link1 and link2 
    attributes to put mozilla/IE into standards compliant mode.
    SEE:
     http://mozilla.org/docs/web-developer/quirks/doctypes.html
     http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/objects/doctype.asp
  + Did a major reworking of the XMLDocumentClass.  Added a lot of features
    to make it easier to output a valid XML document.
  + Added the WMLTagClass (extends XMLTagClass) as the base class for all WML tags.
  + Added the WMLDocumentClass widget to build and render valid WML Documents.
  + Added the SVGDocumentClass widget to build and render valid SVG Documents.
  + Made the BaseWidget a child of the Container to eliminate redunancy in
    the push/add methods.
  - added XMLSTYLESHEETtag
  - updated HTMLPageClass::add_head_content() to allow n params of content
  + Added the ADODBSQLDataListSource object, to support ADODB DB objects.
  - updated examples/widget6.php to show the same list of data from the DB
    coming from 2 different sources.  One source is a PEAR DB object, the
    2nd source is from an ADODB DB Object.
  + Added a CSVFILEDataListSource object, to read data from a CSV formatted file.
  - Added the CDATAtag, which is used for escaping a tag's contents in XML, so
    the xml parser reading the xml doesn't parse the data.
  + added the full set of W3C's 1.0 recommendation of SVG (Scalable Vector
    Graphics) tags.
  + Added the svg_utils.inc which contains the helper functions for constructing
    commonly used SVG tags with some help from Charlie Killian.
    
  
  
Version 2.0.1 - October 18, 2002
  - Fixed a problem with html_small()
  - got the max_rows functionality working in the DataList widget


Version 2.0.0 - October 16, 2002
  - Added the title attribute to both html_img_href() and
    html_img()
  - created a css dir to hold the css files
  - Added some new features to XMLDocumentClass, and brought the API
    up to 2.x standards (add() instead of push() )
  - Added the new DataList object widget set.

Version 2.0.0-RC1 - October 2,2002
  MAJOR CHANGES/FEATURES
  - Completely rewrote the base HTMLTagClass.  It is now 
    based off of XMLTagClass which is a child of the
    Container class (formerly known as ContainerWidget )
    
  - Changed all push_reference() calls to require a reference to
    be passed in.  call time pass by reference is depricated, and 
    is going away soon, so this had to get changed.    
    
  - Removed 2nd and 3rd parameter declarations from the
    HTMLTagClass constructor.  It now accepts any number
    of arguments.  The first argument is always an array
    of the tag attributes.
    
  - Added a lot of missing html_* helper/wrapper functions.
    Some of which have special parameters for most commonly
    used features of the specific tag.
    
  - changed html_td() parameters.  It now accepts 
    function html_td($class="", $align="").  3rd param to
    n is content for the tag.

  - added class as the first param to the html_div() function.
    
  - Added add() and add_reference() calls.  These replace
    the old style push() and push_reference() calls.
    All push(), push_reference() and push_row() calls are
    depricated.    
  
  - Completely changed the css functionality in the widgets.
    The widgets now contain the css required for the widget

  - HTMLPageClass automatically imports javascript and css
    from a widget, if it is based off of the BaseWidget class

  - Added the ability to tell the PageWidget and HTMLPageClass
    the style of indenting of the html output you want.  
    Nice or left justified.
   
 
 MINOR CHANGES/FEATURES
  - changed all tag declarations to lower case.  HTML 4.01
    spec recommends using lower case tags.
  - Added set_class(), set_style() and set_id() for the HTMLTagClass.
  - Added 1st param to html_span() to be the class value.
  - added some new functionality to form_select() so it can
    handle multiple selection boxes.
  - Added a bunch of missing html/xhtml tags.
  - Added some new params to html_mailto() to support
    subject, body, cc
  - fixed newline problem with the META tag
  - added html_small() (Suren Markossian)
  - Added set_collapse() to let you collapse a tag and it's
    content on 1 line (no newlines or indenting)
  - Added html_* functions for all the supported Tag Classes.
  - removed the html_nobr(), since this really isn't a valid
    w3c tag. If you HAVE to use it...don't.  It's DEPRICATED.
  - removed SPACERtag.  its not a real tag.  
  - cleaned out almost all the comments in the ALLTAGS.inc file
    for a small speed up.
  - Added font_utils.inc which holds various span/div tag
    objects with css classes for fonts, which are defeined in
    css/fonts.css    
  - Added title parameter to the NavTable widget->add(), and made
    the target param last.
  - Moved the widget css files to /css
  
      
    

Version 1.1.0 - May 7, 2002
  - Removed <> symbols from the $_tag variables since it is not a part
    of an HTML tag. This should reduce the usage of str_replace() in
    render() functions and make things a little bit faster.
  - Added html_div_small(), which can be used instead of the
    spacer.gif trick.
  - Fixed a bug with form_radio().  Thanks (Tim Moloney)
  - Added container(), a ContainerWidget helper function.
  - Fixed a w3c validation bug with the <HR> tag.  Can't
    have a close tag for it.  Thanks (James Dingwall)
  - Fixed a problem with XHTML_STRICT no rendering the
    <!doctype> attributes correctly. Thanks (Ricardo Pardini)
  - Added HTMLPageClass::get_html_attributes() and
    HTMLPageClass::set_html_attributes(), which lets the user
    of the class get/set the specific attributes to use
    for the <html> tag.
    
    NOTE:
  - Moved all files from .php to .inc. make sure you change
    you includes to reflect this change.  


Version 1.0.3 - April 8, 2002
  - Fixed a potential formatting issue w/ tags that don't 
    automatically newline after the opentag.  thanks to the 
    Zend debugger.
  - Added misc_utils.php which holds new push_args() function.
  - set newline_after_opentag for OPTIONtag to FALSE by default.
  - Added target to NavTable::push();
  - Changed InfoTable's css to a php file, so we can dynamically
    change the colors.
  - Made the default cellspacing 0 for InfoTable.
  - Fixed a small problem with NavTable widget.  If there was no
    subtitle, it would render an empty table for the title,
    causing old Mozilla's to puke.
  - Changed the size of the TextNav text to 10pt instead of 8pt. 
  - Added FRAMEtag, FRAMESETtag, NOFRAMEStag classes.
  - Added support in HTMLPageClass widget for framesets.
  - Added some frame* utility functions.
  - Combined all of the tag_classes files into 1 file to avoid
    lots of repetetive includes.
  - Added the new ContainerWidget, which is nothing but a 
    wrapper object that contains tags/widgets, and knows how to
    render the content with the appropriate indentation level.
  - added the feature of automatically trying to collapse a 
    tag and its content to 1 line.  This happens if a tag
    only has 1 content entry and its a string w/o a \n in it.
  - Added new html_input() wrapper function which automatically
    will call htmlspecialchars() on the data for the value 
    attribute.  This helps prevent problems with 
    <input value="foo"">   -> <input value="foo&quot;">
  - Fixed a problem with the form_select() helper function. 
    The selected item wasn't working.
  - Added container(), which is a helper function to build
    a ContainerWidget and populate it.



Version 1.0.2 - November 30,2001
  - added 3rd parameter to the HTMLTagClass constructor.  It
    accepts the $newline_after_opentag setting.  This helps
    to keep the nice formatting on certain tags that you want
    to override the default behaviour.

  - fixed HTMLPageClass character encoding bug.  It wasn't
    outputing a proper meta tag.
  - changed doctype for 4.0 to 4.01
  - added target param for the html_a() helper function.
  - changed the default parameters to html_img_href, and
    html_img.  We were forcing the width and height of an image
    to 1x1 if nothing was passed in.  We now don't add them to 
    the tags if they aren't set, which is the desired result.

  - Changed the FooterNav class to add the ability to show a
    "webmaster" mailto link.  I also cleaned up the formatting
    of it a bit as well.

  - fixed source formatting issue with html_img_href()
  - changed html_a() to always force no newline after opentag
  - added $target to html_img_href()
  - added html_th() helper function.
  - Changed html_textarea.  Added a new parameter of Value
    so you can prepopulate the text area field with data.
  - Fixed a bug with InfoTable's render() method.  It wasn't
    properly handling the output_debug param.
  - Added TODO file.
  - Added a new feature to automatically htmlentities() for
    tag attribute values if we are rendering in XHTML_STRICT
    mode.  This prevents the w3c validator from complaining 
    about the & char.


Version 1.0.1 - August 25, 2001
  - added html_div(), and html_td()
  - added html_div(), and html_td()
  - fixed w3c validation bug for the TextNav class.  
    We can't put a background image in a td.  It Has
    to be in a css.
  - Fixed a <TD colspan> issue for a blank entry in the 
    NavTable class.     
  - reorganized html_utils.php so the functions are in
    alphabetical order.  Should be easier to find them
    as a reference.    
  - added usemap attribute support to html_img() and
    html_img_href()
  - updated the online API docs (javadoc output) in the
    doc directory.  
  

Documention generated on Thu, 31 Jul 2003 18:31:26 -0700 by phpDocumentor 1.2.0