Mar 28, 2008 -
Time for a weekend bugfix preview release, there’s only one more task in our roadmap, that’s the P4A_DB_Navigator drag&grop, but we’ve to wait for jQuery UI 1.5 to be released before completing it…
Changelog for this release:
- some minor changes were done after strict validation checks
- products_catalogue sample now has a “date” field to play with
- a bug with empty values in P4A_Tables (passed to formatters) was solved
- P4A_I18N::format() and normalize() methods now returns an empty string if
no value is passed
- P4A_Validate_NotEmpty::isValid() method now correctly handles the “0″ string
(which is a Zend Framework bug but we create a workaround for it)
- P4A_I18N::translate() methods returns an empty string if nothing is passed
- minor documentation updates were done on P4A_DB_Source
- Zend Framework was updated to 1.5.1
- P4A_Field::getAsMulticheckbox() and getAsRadio() methods now use
P4A_Generate_Widget_Layout_Table() global function to render labels and inputs
- P4A_Field::getAsDate()’s input is now “readonly”
- a bug with P4A_I18N::format() method managing dates was solved
(forcing format to YYYY-MM-dd)
Next week the new translations will be imported and released, now go ahead and Download P4A 2.99.8, please help us with translations (for the next preview I’ll sync all translations) and report us all the bugs you find! Thank you so much!
PS: remember to keep your eyes on the P4A TV!
PPS: spread the word :-)
Filed in: CreaLabs, P4A, PHP, Things I do
Mar 25, 2008 -
P4A 3 is coming, we’ve only 2 tasks to complete in our roadmap!
For 2.99.7, out 8th preview release, I worked most of all on translation support to build multilanguage applications and now our products_catalogue sample has multilanguage features you should explore.
The raw changelog:
- a bug with disabled P4A_Field::getAsCheckbox() was solved
- P4A_Field::getAsRadio()’s CSS was modified a bit
- P4A_Fieldset’s legend is now auto translated on getAsString()
- P4A_Menu’s items are now auto translated on getAsString()
- P4A_Mask’s title is now auto translated on getAsString()
- P4A_Table’s headers names are now auto translated on getAsString()
- P4A_Mask’s title is now automatically generated using ucfirst() function instead of ucwords()
- P4A_I18N::mergeTranslation() method was added
- products catalogue sample application was changed for simplicity (SQL structure also)
- products catalogue sample application multilanguage support was added
- P4A:I18N::format() and normalize() methods now have a new parameter that allows coder to control
if the method should throw an exception or now (default is true)
- P4A_Fields now turns off the exception throwing parameter when calling P4A:I18N::format() or
P4A:I18N::normalize(), to avoid application break due to a wrong input
Now you can Download P4A 2.99.7, please help us with translations (for the next preview I’ll sync all translations) and report us all the bugs you find! Thank you so much!
PS: remember to keep your eyes on the P4A TV!
PPS: spread the word :-)
Filed in: CreaLabs, P4A, PHP, Things I do
Mar 22, 2008 -
Filed in: CreaLabs, P4A, PHP, Things I do
Mar 21, 2008 -
I’m proud to announce that the P4A screencasts channel opens today, turn on your TV or you’ll be late for the show!

The first screencast I’m publishing is about creating an hello world application, using a P4A_Button and some new system messages:

If you want to be a part of the P4A star system create your screencast and contact me, I’ll publish it on the TV :-)
Filed in: CreaLabs, P4A, PHP, Things I do
Mar 18, 2008 -
We’re doing steps ahead, the P4A 3 feature set is almost complete!
In this release you’ll find that P4A is now based on Zend Framework 1.5 (released today) and a bunch of bugfixes and small modifications.
We’re releasing more and more P4A 3 based projects for our customers and we’re getting a lot of positive feedback, most of all for the speed of the full AJAX stack (as I like to call the new AJAX-only mode).
Another great news: we finally had time to work on P4A planet, which has been opened today, we already have 3 languages (english, italian and spanish) and we hope we’ll have more in the future. If you have a blog and you write about P4A just contact me! I’ll be happy to add your blog to the planet! We’re now working on the new wiki, just give us a few days to complete the work.
Going back to the release, here you have the complete changelog:
- a bug with P4A_Navigation_Bar was solved
- P4A_Fieldset’s CSS was changed a bit so it should have the exact width set by setWidth
- “disabled” property was removed from P4A_Button’s HTML ’cause it caused a rendering bug with floats
- some minor CSS modifications were done
- a bug on Internet Explorer 6 and sidebars was solved
- jQuery::iFixPNG was updated to 2.0
- “folder” and “folder_open” icons were also added in the GIF format (due the ie bug and our usage in list-style-image)
- P4A_DB_Navigator’s CSS was reworked for browser compatibility
- a bug with PostgreSQL and automatic sequence name creation was fixed
- P4A_Thumbnail_Generator::isMimeTypeSupported() method was added
- P4A_Field::getAsFile() method now calls P4A_Thumbnail_Generator::isMimeTypeSupported() before rendering the image preview
- P4A_Field::getAsFile() method now always render the “preview” button, but it will be disabled if no preview is available
- P4A_DB, P4A_Tab_Pane, P4A_Table, P4A_Data_Source and P4A_Widget
were ported to the trigger_error() function for programming errors
- P4A_Error() global function was removed because unused
- P4A now throws an exception when uploading forbidden files
- P4A_EXTENDED_ERRORS was implemented for PHP errors
- P4A_EXTENDED_ERRORS was implemented for exceptions
- Zend Framework was updated to 1.5
- P4A_I18N::setFirstDayOfTheWeek() method was ported to ZF 1.5’s Zend_Locale_Data::getList()
Now you can Download P4A 2.99.6, please help us with translations and report us all the bugs you find! Thank you so much!
Filed in: CreaLabs, P4A, PHP, Things I do
Mar 18, 2008 -
ExtJs is a great javascript development library, some time ago I did some tests to port P4A to ExtJs and I wrote a post with my considerations about it and other javascript libraries.
In that post I wrote:
ExtJs as really a killer graphic layout, and it’s released under LGPL3 (developers wrote some licensing notes that I can’t really understand… actually I think that those notes could conflict with LGPL3 itself)
Today I found a post by Matt Asay called “ExtJs: When open source is not open at all“.
A quote from that post:
It’s a bit like saying, “You can use this as open source so long as you use the software how we’d like you to use it. If you have any money, forget open source: pay us instead.”
So how is this open source? This is a wholesale rejection of the Open Source Definition (#6).
That’s a confirmation of my doubts about ExtJs licensing and a confirmation that we took the right choice not to use it for P4A at the moment.
Now, I always try to be constructive also when writing critics about a project so here there are some suggestions for the ExtJs team:
- clarify your licensing model, choose LGPL3 (or AGPL3 or whatever) definitively and remove your own notes (this will make ExtJs grow both within the final users market and the server-side market)
- open your SVN, it’s ugly for FLOSS developers not to be able to follow the development
- listen to user requests, when I wrote in the forums that there was no way to get a field’s label displayed if the field is not inside a form panel, the only answer I got (not from the team which didn’t answer at all, but from a premium member) was “buy a license and ask for that feature” [...]
- think general purpose because not all the users want to build all the application from javascript, ExtJs could do fireworks if it could be better combined with server-side frameworks
Filed in: Javascript
Tags: Extjs, Javascript, LGPL3, licenses, P4A
Mar 14, 2008 -
Yesterday Russ Nelson wrote in the OSI licence-review mailing list that finally the AGPL 3 was approved!
You can already see it in the OSI approved licenses page.
I think AGPL3 is really important for web applications and I’m really happy that OSI made AGPL official. Now I hope that more FLOSS projects will use it.
PS: This post is a sort of answer to post about Magento’s license where Roy Rubin (CEO of Varien) told me that AGPL wasn’t OSI approved (it was true in that moment, but now it isn’t anymore). Hey I don’t want to reopen the licenses war of that post, this note is just to join the arguments :-)
UPDATE: Matt Asay says that AGPL is a cure for the cancer within open source. I agree.
Filed in: Various
Tags: AGPL, licenses, OSI
Mar 13, 2008 -
Another bugfix release for P4A 3, with a minor new features: the submenu indicator:


can you notice the small gray arrow on the right of the “categories” menu? This arrow will tell users that a submenu is available for that item.
Let’s go to the changelog:
- a bug with invisible P4A_Table was solved
- P4A_Quote_Javascript_String() global function was added
- P4A_Widget::requireConfirmation() method now uses P4A_Quote_Javascript_String()
- screen.css was renamed screen.css.php
- some of the images used for P4A_Table and P4A_Field were moved in a better directory organization
- P4A_Menu has a submenu indicator (a small arrow that make users aware that a submenu is present)
- jQuery::UI::datepicker was updated to 3.4
- a bug with FCKEditor’s filemanager was solved
- P4A_Button now render the “disabled=’disabled’” property if disabled
- P4A_Button now addes ‘p4a_button_disabled’ or ‘p4a_button_image_disabled’ class if disabled
- a bug with P4A_Field autocomplete was solved
- P4A_DB_Source was completely ported to the new error handlers
- multicheckbox CSS was fixed
- P4A_Field::getAsMultiselect() method now added a “size” property if none was specified
- index.php file was reworked and the new logo was added
- index.php file was renamed index.html
Now you can Download P4A 2.99.5, please help us with translations and report us all the bugs you find! Thank you so much!
Filed in: CreaLabs, P4A, PHP, Things I do
Mar 6, 2008 -
P4A 2.99.4 is available for download, this is nothing more than a bugfix release, mainly due to the first production rollout for a pretty big project of one of our customers.
Here’s the changelog:
- a bug with quoted strings in P4A_Field::getAsSelect was solved
- a bug with P4A::getFocusedObjectId() method was solved
- P4A_Object::__call() method now uses trigger_error() instead of p4a_error() when a method is not found
- P4A_Object::_loadHelper() method now direcly call P4A_Error_Handler() instead of trigger_error,
so we can pass the error file/line and have a readable resulting error message
- a few modifications were done on P4A_DB_Source so now you can add joins without selecting
any column from the joined table
- P4A_DB::getDBType() method was added
- P4A_DB_Source::getRowPosition() mystical bug with MySQL (same query called 2 times returns 2 different results)
was found again and patched again
- a bug with P4A_ERROR_Handler() was solved
- P4A_Field was ported to trigger_error() instead of p4a_error
- P4A::raiseXMLresponse() method is now public
- P4A_Error_Handler was rewritten to be used in ajax calls too
- check_configuration library now also checks for PHP version
- P4A::executeExternalCommands() method was added
- all tasks dealing with external systems where moved from P4A::main() to P4A::executeExternalCommands()
- P4A::executeExternalCommands() is executed just after the session_start(), in the P4A::singleton() method
- P4A_Object::destroy() now checks if every object to destroy is a P4A_Object before calling destroy() recursively on it
Now you can Download P4A 2.99.4, please help us with translations and report us all the bugs you find! Thank you so much!
Filed in: CreaLabs, P4A, PHP, Things I do
Mar 2, 2008 -
It’s time to release a new P4A 3 preview package! This mainly is a bugfix release, but we’ve a few interesting things out there, I started coding the new exception based error management and started porting some P4A components to it (or to “trigger_error” depending on the specific case). Zend Framework was updated to 1.0.4 and this raised a few issues I fixed (hope I found them all). Due to high demand I also worked on P4A_Sheet, supporting anchoring for text strings and re-creating the setFree method.
Here you have the full changelog:
- P4A_Toolbars code was refactored using P4A chainability
- a bug with P4A_Full_Toolbar and P4A_Simple_Toolbar about delete was solved
- a bug with P4A_DB_Source::deleteRow was solved
- P4A_Widget::requireConfirmation() now trigger an error if addAction wasn’t called before
- P4A_Exception class was added
- P4A_Exception_Handler now replaces PHP’s default exception handler
- a part of P4A_DB_Source error management was ported to the new error handlers
- Zend Framework was updated to 1.0.4
- P4A_DB_Source::load() now returns $this thus is chainable now
- P4A_DB_Source::_composeSelectCountQuery() now always encapsulate the complete select query (without order clause) in a second count query
- translations were synched with launchpad
- P4A_DB::query() method was added
- P4A_Mask error management was ported to exceptions
- p4a/libraries/standard.php was renamed p4a/functions.php
- P4A_DB_Select class was removed ’cause unused
- code reference was organized in packages
- P4A_Sheet was ported to the new error handling
- P4A_Mask::setFocus() method now checks if the passed object is an instance of P4A_Object, otherwise does nothing
- P4A::getFocusedObjectId() method now checks if the “active_mask” object exists, otherwise returns null
- P4A_Sheet::anchor() method now supports text strings and not only widgets
- P4A_Sheet::setFree() method was added
Now you can Download P4A 2.99.3, please help us with translations and report us all the bugs you find! Thank you so much!
Forum considerations:
You know P4A has a new fantastic spanish community, they created a new forum on google groups. I has a discussion with some users saying that sourceforge forums are ineffective because of the answers orders and few other things. We’ve to consider that, with P4A 3, 99% of the forum posts will become outdated, so the question is should we move P4A forums to google code or another service?
We always used SF forums because it’s one of the best ways to make the project activity rate raise and let P4A be one of the most active project all over SF. Moving the forum elsewhere will drop this positive effect. We also have to keep this is mind.
Please let me know your considerations!
Filed in: CreaLabs, P4A, PHP, Things I do