P4A Changelog

New in version 3.4.0

July 14th, 2009
  • Zend Framework was updated to 1.8.4
  • jQuery was updated to 1.3.2
  • jQuery UI was updated to 1.7.2
  • P4A_Tab_Pane was converted to jQuery UI
  • P4A_Fieldset and P4A_Tab_Pane now have rounder borders
  • a note about handling dates with Oracle was added to the README file
  • outline CSS property was removed
  • If magic_quotes_gpc are enebled P4A strips out all slashes from $_POST, $_GET, $_COOKIE and $_REQUEST
  • P4A_Dir_Navigator widget was added
  • P4A_Widget::composeStringActions() method now uses P4A_Quote_Javascript_String()
  • a bug with P4A_Dir_Source and hidden files was solved
  • P4A_Dir_Source::getNumRows() method was added
  • P4A_I18N::format() support for "filesize" data type was added
  • P4A_Dir_Source now supports file size and last modification time
  • P4A_Dir_Source's cache was removed due to refactoring
  • P4A_Simple_Edit_Mask now supports empty $source constructor param (default is the mask name)
  • P4A_Progress_Bar widget was added
  • P4A footer was moved to allow better centering when sidebars are visible
  • when uploading a file, it will have a temporary file until the corresponding record won't be saved a bug with P4A_Strip_Double_Backslashes global function was fixed (thanks to bobkoure)
  • a bug with Zend_Framework and Oracle was fixed (stripped zend_db_rownum column)
  • P4A_DB_Navigator now can work also without recursor (flat list is shown)
  • P4A_Mask::displayText() method was marked as deprecated, you can now use P4A_Mask::display() that now has no hardcoded object reference
  • P4A_Data_Source::isFirstRow() and isLastRow() methods were added
  • a bug with P4A_Message and IE7 was solved
  • Oracle's LOBs are now supported
  • P4A_Object's ID generation algorithm was changed (thanks to pbond81 and Mario Spada)
  • P4A_Table thumbnail generation speed was improved (bug #2220506) (thanks to pbond81)
  • P4A_Box's ul/ol is now rendered (bug #2634061) (thanks to bes_sf)
  • a note about aliases on P4A_DB_Source's PK was added to the README file
  • P4A_DB_Source now automatically detects Oracle's NUMBER data type
  • P4A_Tab_Pane's height honoring bug was fixed (bug #2815814)
  • P4A_Widget::composeStringActions() now handles parameters with backslashes inside
  • a bug with P4A_I18N::format() of boolean data was fixed
  • a bug with multicheckbox's CSS on some browsers was fixed
  • a bug with P4A_DB_Source::saveRow and multiple primary keys was solved

New in version 3.2.2 (March 31st, 2009)

  • P4A_Table's image cols are now centered horizontally
  • P4A_Button::setTooltip() and getTooltip() methods were added
  • afterupload event typo was fixed
  • P4A_Thumbnail_Generator::renderToFile() method was added
  • P4A_Mask::getSource() method was added
  • Zend Framework was updated to 1.7.7
  • a bug with P4A_Fieldset theme was fixed (thanks to Mario Spada)
  • P4A_DB::singleton() DB type verification is now case insensitive (bug #2643785) (thanks to BES)
  • a few modifications were done on screen.css file for a better theme result (thanks to pbond81)
  • The way we managed P4A_Validate translations was rewritten to fit the new rules by Zend Framework (we need your help translating the new messages now http://tinyurl.com/au5bvb)
  • a bug with P4A_DB_Source::setWhere() method was fixed
  • translations were synchronized
  • auto file inclusion system was updated to avoid reading Mac hidden files
  • a bug with P4A_DB_Source::addGroup() method was solved (internal syntax change due to a Zend Framework change)
  • p4a_load_js() javascript function was updated to avoid errors if no callback function is passed

New in version 3.2.1 (February 5th, 2009)

  • Zend Framework was updated to 1.7.4
  • PEAR::Net_Useragent_Detect was updated to 2.5.0
  • jQuery::form was updated to 2.19
  • P4A_DB_Source::setQuery() now strips out final semicolon from the passed SQL query (if present) (bug #2557215)
  • P4A_DB_Source::setWhere() now calls a firstRow() if the DB_Source isn't in the "new row" state (bug #2316271)
  • P4A_Filename2File() now uses the fileinfo module if no mime type is detected otherways (bug #2121565)
  • a bug with P4A_Field::getAsDate() and Internet Explorer was fixed (thanks to Mario Spada)
  • P4A_Thumbnail_Generator::setWidth() now resets the max_width to avoid conflicts
  • P4A_Thumbnail_Generator::setHeight() now resets the max_height to avoid conflicts
  • P4A_Thumbnail_Generator::setMaxWidth() now resets the width to avoid conflicts
  • P4A_Thumbnail_Generator::setMaxHeight() now resets the height to avoid conflicts
  • P4A_Thumbnail_Generator::processFile() height/width calculation was rewritten in order to fix bug #2270922

New in version 3.2.0 (December 16th, 2008)

  • P4A is now released under LGPL 3
  • P4A_APPLICATION_SOURCE_DOWNLOAD_URL constant was removed (along with the "download source" link in the footer)
  • P4A_Grid widget was added
  • P4A_Simple_Edit_Mask was added to quickly create a simple mask to edit a database table
  • P4A_Mask_constructSimpleEdit() helper was added to manage the initialization of the P4A_Simple_Edit_Mask and to allow you to use that shortcut also when not inheriting from P4A_Simple_Edit_Mask
  • P4A_Table::showRowIndicator() and hideRowIndicator() methods were added
  • P4A_DB_Source::delete() method now supports schemas
  • P4A_Sheet's error messages were beautified
  • P4A_Thumbnail_Generator now supports transparent GIF/PNG
  • P4A_Thumbnail_Generator now outputs a PNG cache file if a PNG original file was provided
  • P4A_Thumbnail_Generator now outputs a GIF cache file if a GIF original file was provided
  • P4A_Thumbnail_Generator now resamples JPG/PNG instead of just resizing them
  • a rendering bug with P4A_Field (when set as label) was fixed
  • translations were updated
  • white-space: nowrap was added to P4A_Field's CSS for a better webkit/safari/chrome rendering
  • P4A_Frame::getChildrenAsString() protected method was added to avoid code replication between P4A_Frame and all classes inheriting from it
  • P4A_Frame::anchorCenter() method' second parameter was removed because it was unused and unuseful
  • P4A_Frame::anchorCenter() was reworked with some javascript code and now correctly supports P4A_Field many other widgets
  • some XHTML validation errors were fixed
  • default mask/popup templates were changed a bit, fixing a typo on #p4a_sidebar_right div and adding #p4a_main div wrapping the main zone
  • FCKEditor was disabled on Opera because of a bug (user would get 2 editors instead of one)
  • P4A_Base_Mask::frame does not have a default width anymore
  • IE6 PNG Fix is not bound to window's onload event but in our DOMready function
  • a bug with IE6 and popup template's title was solved
  • a bug with WebKit/Safari/Chrome about javascript evaluation after an AJAX call was solved
  • P4A_Frame and P4A_Fieldset can now be anchored with "center" alignment
  • P4A_Frame and P4A_Fieldset do no need a default with anymore, width is calculated automatically using some javascript code
  • when displaying a P4A_Frame o P4A_Fieldset in the "main" region of the mask's template you'll get it automatically centered also if you did not set its width
  • P4A_Error_Mask and P4A_Login_Mask do not have default widths anymore
  • Zend Framework was updated to 1.6.2
  • P4A_I18N::normalize() now has a new parameter "num_of_decimals"
  • P4A_Field::normalize() support for num_of_decimals was added
  • a bug with P4A_DB_Source ordering on calculated fields with alias was solved
  • a bug with jQuery::UI::datepicker not throwing the onchange event was fixed
  • a popup mask can now open another popup mask without closing itself
  • P4A_Preview_Mask now generates width/height for images
  • P4A_I18N::format() method can now handle datetime
  • cache support was added to P4A_Thumbnail_Generator::outputThumbnail() method
  • a bug with image thumbnails cache was solved (thanks to pbond81)
  • schema support for multivalue fields was added
  • schema support for P4A_DB::nextSequenceId() was added
  • sequences are now created in the same schema where the table is stored
  • P4A_Thumbnail_Generator getThumbnailWidth(), getThumbnailHeight(), getOriginalWidth() and getOriginalHeight() methods were added
  • P4A_Thumbnail_Generator::setFileName() method now resets previously detected (or computed) widths and heights (thanks to pbond81)
  • a bug with setFocus and AJAX calls was fixed
  • a bug with P4A_DB_Navigator::setStyleProperty was fixed (Thanks to Mario Spada)
  • P4A_Navigator's default CSS now allowss scrolling (Thanks to Mario Spada)
  • case insensitive check was added when downloading an attachment with P4A installed on a windows server
  • P4A::getCssConstants() method was added, it's needed when you need some params to pass to a dyndamic PHP/CSS you're creating
  • Every kind of cache was hopefully completely disabled
  • jquery::maskedInput plugin was updated to 1.2
  • FCKEditor now has ForcePasteAsPlainText as default configuration

New in version 3.0.3 (September 2nd, 2008)

  • P4A_Thumbnail_Generator now supports ie's pjpeg extension
  • a bug with P4A_I18N::_format() method was solved (YYYY was changed to yyyy)
  • P4A_Field::setYearRange() method was added to be able to manage the year range in the datepicker
  • 10px top padding was added to P4A_Fieldset
  • jQuery::maskedinput 1.1.4 plugin was added
  • P4A_Field::setInputMask() and getInputMask() methods were added, check the code reference for usage
  • popup template support for "top" zone was added
  • P4A_Table's caption (label) is now automatically traslated at run time
  • P4A now triggers the "ontranslate" event, you can intercept it (getting string/translation/istranslated parameters) to track translations while developing your application
  • a bug with P4A_Table's label with IE6 was fixed
  • P4A_Table's navigation bar's "go to page" label's CSS was changed so now it will remain on a single line
  • a typo in P4A_DB_Source documentation was fixed
  • a PHP warning was fixed in P4A_DB_Navigator
  • more info were added in products_catalogue's index.php file
  • P4A_Mask::setRequiredField() and unsetRequiredField() methods now check if the field exists before calling the addValidator() otherwise show an error message