Category: PHP

P4A 3.8.0 is out!

It took me a couple of month to work on this release, we’ve a pretty long changelog you’ve to be sure to check out because we’ve a lot of important changes that may impact your upgrades.

One of the most important things is that now P4A supports MS SQL, it was quite easy but surely we need a stronger user base to test out every possible scenario. The next big thing is that MySQL connections are now UTF-8 safe, it could hurt your existing applications so please check out the notes in the changelog before upgrating.

- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- P4A_DB’s connection charset is now set to UTF 8
This could lead to possible data corruption, if you’re upgrading from a
previous release and you’re using MySQL or PostgreSQL (Oracle and SQLite
should not be involved in this change) you’ve to be sure to convert the DB
charset to UTF-8 before editing data in your P4A applications.

ALWAYS DO BACKUPS BEFORE ANYTHING ELSE!!!

For MySQL we used this procedure to migrate our DBs:
mysqldump –default-character-set=latin1 DBNAME > dump.sql
open dump.sql and replace this line
/*!40101 SET NAMES latin1 */;
with
/*!40101 SET NAMES utf8 */;
mysql NEWDBNAME < dump.sql
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- Support For MS SQL was added, check out the README file
- AJAX STACK REVERTED TO XML (instead of JSON) due to the bugs with jQuery::form
- README file was updated
- CKEditor was updated to 3.4.1
- a new strategy to avoid CKEDITOR loading problems was implemented
- P4A_Data_Fields::getSchemaTableField now correctly handles calculated fields
- a bug with P4A_I18N::format and time fields was fixed
- P4A::__construct() now has a "cache" param, simply pass a Zend_Cache object
to override all Zend_Cache configurations inside P4A
- P4A::getCache() method was added
- P4A_I18N now uses P4A::getCache() to pass an overridden Zend_Cache object to
Zend_Locale_Data
- a bug with "onreturnpress" and IE was fixed
- a bug with multicple CKEditor instances (loaded via AJAX call) and IE
was solved
- CKEditor's forcePasteAsPlainText option was enabled again
- jQuery::form was updated to 2.49
- jQuery was updated to 1.4.3
- file upload percentage and speed is shown while uploading
(if PECL uploadprogress is available, APC not implemented beacuse it does
not work with PHP CGI)
- a bug with autocomplete and HTML tags (in the value) was fixed
- a bug with autocomplete loading was fixed (thank to Lorenzo Valori)
- a bug with CKEDITOR and AJAX was fixed

Download P4A 3.8.0

Share/bookmark:
Digg StumbleUpon Facebook Reddit Mixx del.icio.us Google Live NewsVine

P4A 3.6.2 available now!

Another 3.6 serie release, let’s take a look at the changelog

- P4A_Field::setSource() now correctly handles null param
- CKEditor was updated to 3.4
- P4A_DB_Source::getRowPosition() now correctly handles multivalue fields
(bug #3057839)
- forcing IE to use his latest rendering engine
- some javascript fixes were applied to make IE ajax system work
- Zend Framework was updated to 1.10.8
- P4A_I18N now correcly handles 3 chars languages (like “fil”)
- translations were updated
- Filipino translation was added (thanks to Elin Eon)

Download P4A 3.6.2

Share/bookmark:
Digg StumbleUpon Facebook Reddit Mixx del.icio.us Google Live NewsVine

P4A 3.6.1 available now!

The first bugfix spin after the 3.6 rollout, let’s take a look at the changelog

- P4A_DB_Source::load() now returns an object also when setQuery() is used
- P4A_DB_Source::load()’s autosequence creation now checks that the field
exists before calling the setSequence()
- a bug with P4A_Redirect_To_Url and P4A_Redirect_To_File was solved
(bug #3039449)
- better focus management for P4A_Grid
- a bug with AJAX javascript returning and html entities was solved

Download P4A 3.6.1

Share/bookmark:
Digg StumbleUpon Facebook Reddit Mixx del.icio.us Google Live NewsVine

P4A 3.6.0 is finally out!

It’s time for a big P4A release before the summer vacation :)

The changelog is really long as usual but there are no explosive changes or new features, the main focus was porting from the old FCKEditor to the new CKEditor 3.3 (that now has come to a complete and stable feature set).

I also worked on updating all various softwares we embed (Zend Framework and jQuery plugins), fixing some bugs and reworking the AJAX stack.

After CreaLabs (the company I previously own) closure don’t worry, I’ll still continue to work and support P4A, I’ll keep using it for all my jobs and I also have some big plan for the future releases :)

So here you’ve the full changelog:

- Zend Framework was updated to 1.10.3
- FCKEditor was dropped and CKEditor 3.3 was added
- all AJAX stack was rewritten to use JSON instead of XML
- in full AJAX environment external javascripts are loaded only if
they were not loaded before
- in full AJAX environment widgets can now execute javascript code before
or after the HTML substitution
- focus internal management was rewritten
- P4A_Mask::setLeftSidebarWidth(), setRightSidebarWidth(),
getLeftSidebarWidth() and getRightSidebarWidth() methods were added
- jQuery::form was updated to 2.43
- jQuery was updated to 1.4.2
- jQuery UI was updated to 1.8.1
- jQuery::autocomplete plugin was replaced by jQuery UI autocomplete
- mask’s right sidebar is now shown correctly
- P4A_Data_Source::exportToCSV() deprecated method was removed
- P4A::isPopupOpened() deprecated method was removed
- P4A_Mask::unsetFocus() deprecated method was removed
- P4A_Mask::displayText() deprecated method was removed
- P4A_Table::setHeader() deprecated method was removed
- P4A_Box::setValue() and getValue() deprecated methods ware removed
- P4A_DB::getAll(), queryAll(), getRow(), queryRow(), getCol(), queryCol(),
getOne() and queryOne() deprecated methods ware removed
- P4A_Output_File now supports the “new window” param
- P4A_DB_Source::rowByPk() method now returns the retrieved row
- pt_BR translation was added to products_catalogue sample application
(thanks to Cassiano Faria)
- es_MX translation was added to products_catalogue sample application
(thanks to Edgar Joel)
- Yahoo CSS reset was updated to 3.1.0
- P4A_I18N::normalize() $num_of_decimals params now has a default value
- P4A_Table_Rows’ onformat event now passes a 5th parameter to the interceptor
method, this param is the complete row
- P4A_DB_Navigator::setRootLabel() and getRootLabel() methods were added
- P4A_DB_Navigator::allowMovementToRoot() method now supports a 2nd param
(root element label)
- P4A_DB_Source::getRowPosition() now adds “GROUP BY” clause
- default CSS font is now “Verdana,Arial,sans-serif” to match
jQuery::UI settings

Download P4A 3.6.0
Have fun!

Share/bookmark:
Digg StumbleUpon Facebook Reddit Mixx del.icio.us Google Live NewsVine

P4A 3.4.4 is out!

Changelog:

- Zend Framework was updated to 1.10.1
- P4A_Data_Source::exportToCSV() method was marked as deprecated
- P4A_Data_Source::exportAsCSV() now can be called directly from an event handler
- translations were updated

Download P4A 3.4.4

Share/bookmark:
Digg StumbleUpon Facebook Reddit Mixx del.icio.us Google Live NewsVine

P4A 3.4.3 is out!

Changelog:

- Zend Framework was updated to 1.9.5
- jQuery::form was updated to 2.36
- tooltip javascript was enhanced to make it location aware (bug #1908495)
- setTooltip() methods were moved to P4A_Widget
- tooltip support was added to P4A_Tab_Pane
- PEAR::Net_Useragent_Detect was updated to 2.5.1
- tooltips hiding methods now have a timeout to allow clicking links inside the
tooltip itself
- new_window parameter was added to P4A_Redirect_To_File() and P4A_Redirect_To_Url()
global functions
- P4A_DB_Source::_composePkString() was fixed handling multiple primary keys
(bug #2833159)
- onautocomplete event was added, it can be used to create a custom search for
fields instead of using P4A’s default one
- P4A_DB_Source::setTable() now supports a second parameter “alias”
- P4A_DB_Source::setTableAlias() and getTableAlias() methods were added
- P4A_DB_Source::addJoin*() methods now support alias on table (see code reference)
- P4A_Table elements/page user selector was added (disabled by default)
- P4A_Table::showElementsOnPageBar() and P4A_Table::hideElementsOnPageBar() were added

Download P4A 3.4.3

Share/bookmark:
Digg StumbleUpon Facebook Reddit Mixx del.icio.us Google Live NewsVine

P4A 3.4.2 is out!

Changelog:

- a bug with backslashes stripping was solved (bug #2853694)
- a typo was fixed in P4A_DB (profiler activation)
- P4A_Tab_Pane now correctly handles disabled pages
- a bug with P4A_Table’s ordering with P4A_DB_Source having a group clause was solved
- Zend Framework was updated to 1.9.4
- P4A_Thumbnail_Generator won’t generate a thumb bigger than the original image
- P4A_Data_Source::exportAsCSV() was reworked allowing field ordering and field descriptions

Download P4A 3.4.2

Share/bookmark:
Digg StumbleUpon Facebook Reddit Mixx del.icio.us Google Live NewsVine

How to install PHP PDO_OCI on Ubuntu Jaunty

This is a revamped guide, previously wrote for gutsy, enjoy!

1) prerequisites

First of all we’ll install the php5-dev package which contains some utilities we’ll need for the build process:

sudo apt-get install php5-dev

then you’ve to find out your ORACLE_HOME environment variable, try executing:

env | grep ORACLE_HOME=

If this command outputs something like:

ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server

then you can jump to section “2) Getting and compiling PDO_OCI” otherwise go on thru this section.

If this guide we’ll just see how to find out which is your ORACLE_HOME directory if you’ve installed the oracle-xe server package. If you’ve installed instantclient or anything else please refer to the product documentation. So you’ve an installed and configured oracle-xe instance on your machine, now type:

cat /etc/init.d/oracle-xe |grep ORACLE_HOME=

the command should print something like:

ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server

now we’ve to export this variable to the current terminal session, we’ll do that with this command:

export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server

and the environment variable will be configured.

2) Getting and compiling PDO_OCI

Just cut and paste these simple commands to download PDO_OCI from the web and prepare it for the build phase:

cd /tmp
pecl download pdo_oci
tar xvfz PDO_OCI-1.0.tgz
cd PDO_OCI-1.0
phpize
mkdir include
ln -s /usr/include/php5/ include/php
./configure

now everything should be setup and we can build the driver and install it with:

make && make install

If everything is fine you can continue

3) Configuring PHP and Apache

if everything is fine you can go on editing your php.ini file and adding this line:

extension=pdo_oci.so

now create a phpinfo.php file under your apache’s document root, containing this line:

<?php phpinfo();

point your browser to:

http://localhost/phpinfo.php

and search for the “environment” section, it should look like the one in the next screenshot:
environment variables
if you see the ORACLE_HOME line everything it’s ok, jump to the “4) Closure” section otherwise edit /etc/apache2/envvars file and add the ORACLE_HOME configuration, it will be something like this (on a single line):

export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server

4) Closure

Restart your apache and you’re done:

sudo /etc/init.d/apache2 restart

Share/bookmark:
Digg StumbleUpon Facebook Reddit Mixx del.icio.us Google Live NewsVine

P4A 3.4.1 is out

Hello everybody, the new release of our beloved PHP Framework is ready to be downloaded, this is a maintenance release but we’re adding a frequently requested feature, DB logging and profiling! Just take a look at the “products_catalogue”‘s index.php and check the new P4A_DB_PROFILE constant, enable it and run the application to find our how easy is to take care about your DBs :-)

Full changelog:

- strong/em are now supported by P4A tooltips
- DSN charset support was added to set DB connection charset
- Zend Framework was updated to 1.9.2
- jquery::maskedInput plugin was updated to 1.2.2
- P4A_Object::__call() method was changed from private to public for PHP 5.3 compliance
- P4A_Tab_Pane’s CSS padding was changed a bit to fix a rendering bug on firefox/chrome
- P4A_DB_PROFILE constant was added, it will output every query executed on every DB

Download P4A 3.4.1

Share/bookmark:
Digg StumbleUpon Facebook Reddit Mixx del.icio.us Google Live NewsVine

Vote for P4A on PHPmagazine

Yudi Setiawan suggested to phpmagazine to include our beloved P4A in the frameworks list.

If you’ve a moment, vote for P4A:
http://trends.phpmagazine.net/frameworks/

Share/bookmark:
Digg StumbleUpon Facebook Reddit Mixx del.icio.us Google Live NewsVine