forked from fballiano/p4a
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
executable file
·1902 lines (1755 loc) · 100 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
3.8.5
- According to the new CKEditor skin, changes the field width to show correctly the status bars
- CKEditor was updated to 4.3.1
- require.js was updated to 2.1.9
- P4A_Grid now supports "action cols"
- products_catalogue's MySQL db dump now is compatible with MySQL 5.5 (#3420403)
- P4A_Field::addRichTextareaTemplate(), removeRichTextareaTemplate and
getRichTextareaTemplates() methods were added
- a bug with P4A_DB_Source::getPkRow() and table alias was solved
- a bug with multiple output buffers and raiseXMLresponse() was solved (thanks to eddiejr)
- Zend Framework was updated to 1.12.3
- A new status bar is added to the masks
- A multivalue bug with saveRow and data refresh is solved
- a missing property in "multicheckbox" field type was added
- some js refactoring because of requirejs upgrade
3.8.4
- "meta viewport" tag was added to mask's HTML for a better mobile rendering
- P4A::getMetaViewport() and setMetaViewport() methods were added
- p4a_center_elements() javascript funcion now removes marginLeft/paddingLeft
from the first visible column of the first P4A_Frame widget
- a bug with P4A_Frame and multiple CSS classes was solved
- P4A_Table's arrow symbols were because the past ones weren't shown on mobile
devices
- an ob_clean() call was added to P4A_Thumbnail_Generator::outputThumbnail()
method
- Zend Framework was updated to 1.11.10
- P4A_Table's image cols do not throw exception anymore if the image
does not exist
- P4A_Field_loadSelectByArray helper now supports a second parameter to specify
the array's primary key field name
- a bug with P4A_DB_Source strings primary keys escaping was solved
3.8.3
- P4A_DB_Navigator now supports query defined sources
- a bug with P4A_Data_Source::saveUploads() was solved
- a bug with P4A_Table's image cols (without GD installed) was solved
- P4A_DB_Navigator now triggers a beforeclick event
- all p4a_load_js calls were migrated to require.js
- a bug with P4A_DB_Source::deleteRow() called when in newRow state was solved
- p4a_ajax_enable javascript function was added
- a bug with P4A_GD constant default definition was solved
- P4A_Mask::restart() method was added
- Zend Framework was updated to 1.11.7
- translations were updated
- P4A_DB_Source::load() method now checks for duplicate calls and throws an error
3.8.2
- Zend Framework was updated to 1.11.6
- CKEditor was updated to 3.6.0
- jQuery UI was updated to 1.8.11
- requirejs was added
- P4A_Dir_Source automatically sorts files
- P4A_Dir_Source::setPageLimit() calling was disabled
- P4A_Dir_Source's page limit is now set to 0 (disabled)
- autocomplete values are now sorted and unique
- P4A_Field::getSource() method was added
- p4a_load_js now uses requirejs
- P4A_Field and P4A_Data_Fields now support the "datetime" type
- P4A_Field and P4A_Data_Fields now support the "time" type
- P4A_Object::dropImplement() now turns the action to lowercase
- deprecated method P4A_Object::dropMethod() was removed
- a javascript bug with P4A_DB_Navigator's drag&drop functionalities was solved
- P4A_DB_Navigator now correctly supports source with non-default DSN
3.8.1
- jQuery was updated to 1.4.4
- a bug with multiple p4a_load_js calls (with the same url and within the
same loading cycle) was solved
- a bug with MSSQL and query limits was fixed (thanks to Diego Fattori)
- CKEditor was updated to 3.5
- P4A_DB_Source::getRowPosition() now returns 1 if the query throws an error
- P4A_DB_Source::addHaving(), setHaving() and getHaving() methods were added
- Zend Framework was updated to 1.11.2
- a bug with P4A::restart() method was fixed (thanks to Daniel Carrero)
- a bug with P4A_Data_Source::saveUploads() and custom file paths was solved
- a new technique to unload CKEditor was implemented
3.8.0
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 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
3.6.2
- 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)
3.6.1
- 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
3.6.0
- 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
3.4.4
- 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
3.4.3
- 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
3.4.2
- 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
3.4.1
- 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
3.4.0
- 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
3.2.2
- 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
3.2.1
- 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
3.2.0
- 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
3.0.3
- 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
3.0.2
- a small change was done on P4A_Array_Source to enable the usage of empty
array_sources without warnings
- tooltips are now automatically translated at rendering time
- P4A_DB_Source::saveRow() now reads pk values back from
Zend_DB_Table::insert() gaining better functionality with
auto increment primary keys
- jQuery UI was updated to 1.5.2
- a small bug with P4A_I18N::_normalize() method was solved
- p4a_focus_set() javascript function was reworked to avoid a
javascript warning in firebug
- loading a P4A_Array_Source with a simple array of data now
does not create the "0" field anymore, it's been renamed to "f0"
to avoid problems with some PHP configurations with numerical
object properties
- P4A_DATEPICKER_START_YEAR and P4A_DATEPICKER_END_YEAR constants
were added to automatically configure all datepickers in your
application with a single constant definition
3.0.1
- a bug about session name was solved
- FCKEditor was updated to 2.6.2
- a bug with shadows CSS was solved (unused shadow.png file is not linked
by screen.css anymore so we've no "file not found" in web server's logs)
- P4A_Error_Handler() global function now uses the P4A::messageWarning()
wrapper for P4A::message() solving a bug with the warning icon name
that was changed in 3.0.0-rc5
- jQuery UI was updated to 1.5.1
3.0.0
- P4A_DB_Source::addJoin*() methods now support the schema name as the last
param
- FCKEditor was updated to 2.6.1
- P4A_EXCEPTION_HANDLER and P4A_ERROR_HANDLER constants were added so now
you can set your own error/exception handlers
- a few comments where added to P4A_DB_Source
- a small change was done in P4A_Redirect_To_File() global function
(index.php link was forced)
- a small bug with file download button (within file P4A_Field) on
windows server was solved (generated file name is now correct)
- README file was updated with IIS compatibility
- P4A_DB_Navigator::allowMovement(false) is now supported
- P4A_Message default icon was ported to the new icons structure
- a bug on P4A_DB_Navigator drag&drop javascript was solved
- a bug (download file name) with P4A_Output_File() global
function was solved
- a bug with P4A_Output_File() global function automatic file delete
on Windows servers was solved
- translations were synchronized
3.0.0-rc5
- P4A_Table's CSS was beautified a bit
- _disabled icons were removed, opacity: 0.2 filter is added to buttons
to simulate the disabled effect
- P4A_Message's CSS was changed due to the variation of its usage,
now it's not black/bold anymore
- P4A_Table's order/row indicators were replaced with HTML entities
removing the need for icons
- default fonts in CSS were changed because of the lack of some UTF-8
characters in IE6
- P4A_Menu' submenu indicator icon was replaced with an HTML entity
which is applied by a javascript function because the indicator
has no reason to be in the HTML
- spacer.png image was removed 'cause unused
- loading.gif was moved from icons directory to theme directory
- some new constants were added to customize theme colors
- a bug with PNG uploads under IE was fixed
- separator.png icon was removed
- P4A_Toolbar' separators are now rendered as empty divs instead of
an image
- P4A_Toolbar' were switched from P4A_Image to P4A_Box
- P4A_Toolbar::setSize() method now checks if buttons have the setSize
method to propagate it, otherwise tries the setHeight method, otherwise
throws a warning
- P4A_Message default size was changed to 32
- 48 pixels icons were removed
- a gradient was added to some elements in the default theme
- P4A::messageInfo(), messageWarning() and messageError() methods
were added wrapping P4A::message() method
- P4A icons now implements the freedesktop icon naming specifications:
http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html
- P4A_Mask's default icon size was changed from 48 to 32
- P4A_Table_Navigation_Bar's current page indicator was switched from a
P4A_Label to a P4A_Box because the P4A_Label has to be bundled with a
P4A_Field
- a nice shadow effect was added to system messages and tooltips if
not on handheld or internet explorer browsers
- jQuery::UI was updated to 1.5
- P4A_DB_Navigator's HTML was reworked to work on ie6 without GIF images
and removign inline CSSes
3.0.0-rc4
- a default submit button was added to P4A default HTML form
(hidden and without events) to solve the
enter key bug (propagating event to the first button)
- mouseover on system messages pause the fadeOut timer giving
more time to read the messages
- P4A_Table_Col::setHeader() method was marked deprecated
- P4A_Table_Rows and P4A_Table_Col now trigger the onclick event
(in addition to beforeclick and afterclick) useful if you don't
want the table to move your linked P4A_Data_Source
- P4A_Table::showTitleBar() method was removed because obsolete
- P4A_Table_Rows::disable() won't disable table's "action cols"
- A P4A_Table's caption small rendering bug with safari was solved
- P4A_Table's CSS was modified for a better readability
- jQuery was updated to 1.2.6
- P4A_Redirect_To_Url() global method was added, useful if you want to
redirect the user outside P4A
3.0.0-rc3
- file upload check and error reporting was enhanced
- a bug with file download within a non-ajax environment was solved
- Zend Framework was updated to 1.5.2
- P4A_Redirect_To_File() global function now checks if the file really
exists within P4A_UPLOADS_DIR, otherwise throws a P4A_Exception
- P4A_Tab_Pane's pages' labels are now auto translated on getAsString()
- P4A_Field::getAsDate() does not set the field "readonly" anymore thus
now dates can you written by hand too
- jQuery was updated to 1.2.5
- jQuery::UI::datepicker javascript file was replaced with the packed one
which is only 20kb instead of 60kb
- folder_home icon was changed with a new one that degrades to GIF in a
better way
- jQuery::UI::core, draggable and droppable 1.5b4 were added
- P4A_DB_Navigator's drag&drop movements were implemented
- P4A_DB_Table::_setupPrimaryKey() method was added, it just calls
the parent::_setupPrimaryKey() avoiding exceptions (used when the
table has no primary keys)
- P4A_DB_Source now supports database views within the setTable() method
- P4A_DB_Source::load() now does not set pk if P4A_DB_Table does not
return one or more pk(s)
- jQuery::dimensions plugin was removed because it has been bundled to
the jQuery core
- P4A_Mask's default template now includes CSS first and then JS, solving
some jQuery related issues (on safari/opera)
- fix_date option was added to P4A_I18N::_normalize() method
- jQuery::form plugin was updated to 2.10
3.0.0-rc2
- a bug with P4A_Field::getAsCheckbox() method was solved
- when a P4A_Field's value is coming from a POST,
P4A::main() now checks if the field is enabled
- translations were synched
3.0.0-rc1
- saveUploads() method was moved from P4A_Mask to P4A_Data_Source
- P4A_DB::quote() method's 2nd param "autoquote" is now false by default,
solving some problems with P4A_Data_Field::getSQLValue() and getSQLNewValue()
- when P4A_DB_Source needs a quoted value now it uses P4A_DB->quote() with
autoquote turned on
- P4A_DB::quote() method, if autoquote param is on, always encloses the value
within single quotes
- jQuery::form was updated to 2.0.8
- jQuery::iFixPNG was updated to 2.1
- P4A_Menu's CSS were changed a bit solving a bug with IE6 (too fast hide)
- P4A_DB_Navigator movements were disabled (due to the unavailable jQuery UI release)
thus now all allowMovements methods trigger errors
2.99.9
- a bug with P4A_Field::getAsRadio() was solved (labels can be clicked now)
- P4A_Rmdir_Recursive() global function was added
- P4A_Data_Field::setSequence() method does not add the "_seq" postfix anymore
- P4A_DB::nextSequenceId() method adds the "_seq" postfix depending on the db you're using
- SQL dump for PostgreSQL was added to products_catalogue sample
- products_catalogue' SQL dump for MySQL was renamed to db_dump_mysql.sql
- P4A_Quote_SQL_Value() global function was removed
- P4A_DB::quote() method was added (it's a wrapper for Zend_DB quote method)
- P4A_DB::get*(), fetch*(), query*() methods now support the binding params array
- P4A_ROOT_PATH autodetection rules were changed a bit for Windows server compatibility
- P4A_Strip_Double_Backslashes() global function was added
- P4A_UPLOADS_DIR autodetection rules were changed a bit for Windows server compatibility
- P4A_Fieldset's label's CSS was changed for Safari 3.1 compatibility
- P4A_Label's CSS was changes a bit for cross-browser compatibility
- P4A_Field::getasText()'s CSS now has a default width (150px)
- a bug with P4A_I18N::mergeTranslation() method was solved
- FCKEditor was updated to 2.6
- jQuery::UI::datepicker was updated to 3.4.3
- javascript/css lazy loading was implemented, all widget depending js/css area loaded
only when loosing a lot of KB on first run
- print CSS was removed
- translations were synched
- "Loading..." message can now be translated
2.99.8
- 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)
2.99.7
- 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
2.99.6
- 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()
2.99.5
- 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
2.99.4
- 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
2.99.3
- 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
2.99.2
- P4A_Mask::main() method is now called also within an AJAX call, if a full redesign is required
- a bug with search function within products_catalogue sample was fixed
- more chainability was added to the P4A main class
- a bug with P4A_DB_Source::createDataField() method was solved
- P4A_DB_Source::addJoin*() methods now supports null 3rd parameter (fields list)
- a bug with P4A_DB_Source::setFields() and aliases was solved
- README updated because P4A can't handle db tables with numeric column names
- P4A_Validate class was added, it subclasses Zend_Validate and we need it to remove validators from a validator chain (ZF does not support that feature)
- P4A_Field::removeValidator() method was added
- P4A_Mask::unsetRequiredField() method was added
- P4A_Widget::removeCSSClass() method was added
2.99.1
- a bug with "preview" button within P4A_Field file upload was solved
- a bug with file download was fixed
- P4A::inAjaxCall() method was rewritten
- P4A_Redirect_To_File() global function was added
- a bug with images preview on ie/opera was solved
- README was updated
- P4A_Output_File() global function was added, it has to be used when you want to creare a file at run-time and make users download it
- Chainability support was added for P4A_Simple_Toolbar, P4A_Navigation_Toolbar, P4A_Full_Toolbar and P4A_Actions_Toolbar
- P4A_Tab_Pane padding was changed a bit
- P4A_Sheet was re-created
2.99.0
- Zend Framework 1.0.3 was added
- Database connection now relies on Zend_DB PDO adapters
- check_configuration.php was ported to Zend_DB to check the database connection
- P4A_DB_Source was ported to Zend_DB (only PDO drivers are used)
- P4A_DB_Source::setFields() syntax was changed, now you must provide only fields from the main table and not from joines ones
- P4A_DB_Source::addJoin() syntax was changed, join type param was dropped and now you have a third param to pass the columns you want to extract from the joined table (default extracts all columns)
- P4A_DB_Source now has many methods to add joins: addJoinCross(), addJoinFull(), addJoinInner(), addJoinLeft(), addJoinNatural(), addJoinRight()
- P4A_I18N does not manage charset anymore, only UTF-8 will be supported from now on
- P4A_I18N numbers format/normalization now relies on Zend_Locale
- P4A_I18N dates format/normalization now relies on Zend_Date and Zend_Locale
- P4A_I18N time format/normalization now relies on Zend_Date and Zend_Locale
- P4A_I18N::getCountry() was renamed to getRegion()
- P4A_I18N::autoFormat() was renamed to format()
- P4A_I18N::autoUnFormat() was renamed to normalize()
- P4A_Number format/normalization class was removed
- P4A_Date format/normalization class was removed
- all P4A i18n format definition files were removed
- translation messages files were reorganized and renamed
- days and months translations were removed from translation messages files (now they're provided by Zend_Locale)
- yes/no translations were removed from translation messages files (now they're provided by Zend_Locale)
- boolean normalization works much better now (eg for italian language: it detects "sì" or "si" or "s" without case difference and the same engine works for every language)
- POT file for the new translation system was prepared and committed to p4a/i18n/templates/p4a.pot
- P4A_Generate_Default_Label() global function was added, it takes a string such as "this_is_field" and returns "This is a field", useful to generate labels from field names and other things
- P4A_Button and P4A_Widget were ported to P4A_Generate_Default_Label() to generate default labels
- default labels are now generated with ucfirst function instead of ucwords
- P4A toolbars and P4A_Table were ported to the new translation system
- translations are now applied at rendering time, not at build time
- P4A_Highlight_AccessKey() global function was added
- P4A_Widget::setLabel() does not automatically create accesskey now, it would cause problems with translations
- P4A_Object::intercept() and P4A_Object::actionHandler() now turn action name to lower before processing
- P4A_Menu now uses P4A_Highlight_AccessKey()
- P4A_Widget::setValue() and getValue() methods were removed because they've not all widgets have a value
- P4A_Button::setValue() and getValue() methods were removed, use setLabel() and getLabel() which are logically correct
- README file was updated, dropping some old browsers support and removing PHP4
- P4A_Button are now rendered as HTML buttons
- P4A_Button::setVisible() method now has a second parameter "visible", check the reference
- all constructors were converted to PHP5 naming (public function __construct)
- P4A_Button::setIcon() now supports a path to an image instead of the icon name
- "currency" format/normalize was removed, it was never used and should not be handled in an application contest (you won't print € only because your application is running with an european locale)
- P4A_Href widget was removed
- P4A_DB::limitQuery(), selectLimit() getError(), getNativeError(), query() and close() methods were removed because they can't work with Zend_DB
- P4A_DB::rollback() and select() methods were added
- P4A_DB::fetchOne(), fetchCol(), fetchRow() and fetchAll() methods were added for Zend_Db naming convention compatibility
- P4A_Fieldset now uses getLabel() instead of getTitle() to render its legend, setTitle() and getTile() are now deprecated
- P4A_DB::get*() and query*() methods are now deprecated
- P4A_Image was removed
- P4A_Icon was renamed to P4A_Image
- P4A_Button::composeStringProperties() method was removed
- P4A_Image::setIcon() now supports a path to an image instead of the icon name
- P4A_Toolbar::enable() and disable() methods params were removed
- P4A_Toolbar::addLabel() method was renamed to addBox()
- P4A_Toolbar::setOrientation() method was removed because it was not implemented
- jQuery::dimensions plugin was updated to 1.2
- DHTMLCalendar by dynarch was dropped and replaced by jQuery::UI::datepicker 3.2
- P4A_Field::getAsDate() now it's fully working with the jQuery::UI::datepicker with an additional ajax call to reformat the date
- P4A_DB::getLikeOperator() and setLikeOperator() methods were added, like operator (LIKE/ILIKE) is autodetected and it's useful when you're generating a query
- P4A_Field's autocomplete was ported to P4A_DB::getLikeOperator() thus now it should work better with different databases (eg: postgreSQL)
- P4A_Widget::raise() method was removed
- P4A_I18N::getLocaleEngine() method was added to retrieve a copy of the Zend_Locale object
- standard.php library file was cleaned removing PHP4 functions
- P4A::getP4AJavascript() method was added, it will return a bunch of javascript code needed for P4A initialization
- jQuery::UI::datepicker was localized using Zend Framework data, no need to sync with datepicked localization files
- P4A_DB::setSelect() was removed
- P4A_DB_Source and P4A_Data_Source were php5ized
- P4A_DB_Source::__sleep() was turned into __wakeup()
- P4A_Data_Field::setSchema() and getSchema() methods were added
- P4A_DB_Source::getFieldName() now returns "schema.table.field" and can accept "schema.table.field" as a param
- P4A_DB::getLikeOperator() and setLikeOperator() methods were dropped, they were not flexible enough to handle all DB insensitive "like" syntax
- P4A_DB::getCaseInsensitiveLikeSQL() method was added
- P4A_Field::setFormat(), unsetFormat(), cleanNewValue() methods were removed
- P4A_Object::actionHandler() methods now supports unlimited params instead of only one
- P4A_Field now triggers onFormat and onNormalize events you can intercept to do custom format/normalize (your method must return the formatted/normalized value)
- P4A_Field::unformat() method was renamed to normalize()
- P4A_Field::getUnformattedNewValue() was renamed to getNormalizedNewValue()
- P4A_Data_Field::setNumOfDecimals() and getNumOfDecimals() methods were added
- P4A_Field::createDataField() methods now automatically calls P4A_Data_Field::setNumOfDecimals() setting the number of decimals detected from the DB structure
- P4A_I18N::format() method now has a third param "num_of_decimals", used only if type is float or decimal
- P4A_Field::format() method now uses the P4A_Data_Field->getNumOfDecimals() to automatically format numbers the most coherent way
- P4A::message() method was added, you can use it to print out messages to users without having to instance any P4A_Message
- P4A::getMessages() method was added to read and clean the messages queue
- P4A::getMessages() method is now used to print out messages to users in a nice way
- P4A_Field::setFormatted() and unsetFormatted() methods were removed, now you can use only isFormatted(true/false)
- P4A_Field::getStringValue() method was removed
- P4A_Standard_Toolbar strange behaviour that automatically disables some buttons one certain conditions was removed
- P4A_Standard_Toolbar was renamed to P4A_Full_Toolbar
- P4A_AUTO_MAXLENGTH constant was removed because its feauture was troubleful
- P4A_Field::getAutoMaxLength() method was removed
- include.php file content was moved to p4a.php and include.php file was removed
- config.php file was renamed to constants.php, config makes users think they can change it but it should never be modified
- P4A_DB_Source::setQuery() was rewritten and now it's works again
- jQuery was updated to 1.2.2
- javascript code for P4A system messages was rewritten from scratch
- P4A_Message and P4A_Tab_Pane were php5ized
- P4A_Tab_Pane::setActivePage() method now returns the active page
- P4A_Tab_Pane::nextPage() method now returns the active page
- P4A_Message::setIcon() now supports a path to an image instead of the icon name
- P4A_Message and p4a->message HTML/CSS was unified
- jQuery UI datepicker CSS was reworked
- P4A_Generate_Widget_Layout_Table() global function was added to P4A's standard library, this creates an HTML table (1row, 2cols) useful when you've to output an image on a col and a text on the other col
- HTML output for P4A_Message, P4A system messages and P4A_Button was rewritten using HTML tables because we need users to have the same browsing experience on all browsers
- P4A's javascript PNG fix routine was dropped
- jQuery::iFixPng 1.7 was introduced
- P4A_THEMES_PATH and P4A_THEMES_DIR constants were dropped
- P4A_Field::noAllowNull() method was removed
- P4A_Field::allowNull() method now supports passing the "false" value to disable the feature
- P4A_Field::unsetUploadSubpath() method was removed, use setUploadSubpath(null) to disable the feature
- P4A_Field::unsetMaxThumbnailSize() method was removed, use setMaxThumbnailSize(null) to disable the feature
- P4A_Field::setRichTextareaToolbar(), getRichTextareaToolbar() and getRichTextareaToolbars() were removed because unsupported by fckeditor
- P4A::init() method was removed
- helpers, P4A_Box, P4A_Object, P4A_Button, P4A_Collection, P4A_Field, P4A_Array_Source, P4A_DB_Source, P4A_Widget, P4A_Mask, P4A, P4A_Frame, P4A_Fieldset, P4A_Label, P4A_Line, P4A_Link, P4A_Menu, P4A_Menu_Item and P4A_Canvas were php5ized
- P4A_Widget::composeStringClassStyle() was rewritten and renamed to composeStringClass()
- P4A_Toolbar default size is now 32
- P4A_Button now inherits height from toolbar (just done via CSS)
- P4A_Mask::setIcon() now supports a path to an image instead of the icon name
- P4A_Fieldset::setTitle() and getTitle() methods were removed cause deprecated, use setLabel() and getLabel() instead
- P4A::getPopupMask() and getPopupMaskName() methods were added
- P4A_Mask::getFocusedObjectId() method was added
- P4A_Link::setLabel() method was removed 'cause inherited from P4A_Widget
- P4A_Menu_Item::setAccessKey() and getAccessKey() methods were removed 'cause inherited from P4A_Widget
- P4A_Table::addToolbar() and newToolbar() methods were removed 'cause not implemented
- P4A_Table::addNavigationBar() method was removed
- P4A_Menu_Item::setIcon() now supports a path to an image instead of the icon name
- P4A_Sheet was removed 'cause had too many performance issues and it should be rewritten
- FCKEditor was updated to 2.5.1
- "oracle" was renamed to "oci" within P4A_DB to reflect PDO naming
- P4A_DB_Source::setSchema() and getSchema() methods were added
- some minor bugfixes to P4A_DB_Source were applied in order to make oracle work
- P4A_Generate_Default_Label() global function now turns the original label lowercase before applying the default rules, this is due for databases which returns uppercase field names
- a new version of P4A_Base_Mask was added to the core
- "products catalogue" sample app was ported to P4A_Base_Mask
- sample_en, sample_it and sample_i18n applications were removed
- some minor enhancements were made to products_catalogue sample
- P4A_Widget::intercept() and implementMethod() methods now automatically call the addAction() method when the event is recognized as a browser event
- P4A_Data_Field::getSQLValue() and getSQLNewValue() now returns data quoted with "double single quote" instead using addslashes (which is deprecated and not working for oracle)
- P4A_Object::dropIntercept() method was removed
- P4A_Object::dropMethod() method was added
- P4A_Object::destroy() method now does not unset the variable from parent but sets it to null
- a bug with P4A_Object::destroy() was solved, it happened when destroying an object directly stored in the $p4a object
- PEAR::Net_Useragent_Detect was updated to 2.4.0
- P4A_Object, P4A_Widget and P4A_Data_Source are now declared as abstract
- the "eval" call within P4A_Object::actionHandler() method was changed to a call_user_func_array which seems to be faster
- all "function &function_name" declarations were changed to "function function_name", removing the & symbol
- many '&' symbols were removed cause of the new PHP5 reference management
- P4A_Table and P4A_DB_Navigator were php5ized
- P4A_Table_Col::setFormatted() and unsetFormatted() methods were removed, use isFormatted(null/true/false) instead
- P4A_Table_Col::setFormat() and unsetFormat() methods were removed
- P4A_Table_Col now has the "onformat" event that can be triggered to do custom format operations (same as P4A_Field)
- P4A_DB_Source::getFieldName() method was removed
- P4A_Data_Field::getSchemaTableField() method was added, it will return "schema.table.field"
- P4A_Data_Field::setReadOnly() method was removed, use isReadOnly(null/true/false)
- P4A_Quote_SQL_Value() global function was added
- a bug with P4A_DB was fixed to allow sqlite to work the right way with sequences
- PEAR repository was removed
- PEAR::validate module was renamed to pear_validate.php and moved to p4a/libraries/ directory
- PEAR::Net_Useragent_Detect module was renamed to pear_net_useragent_detect.php and moved to p4a/libraries/ directory
- P4A_Mkdir_Recursive() global function was added to P4A standard library
- All System::mkdir calls were changed to use the new P4A_Mkdir_Recursive() function
- a bunch of unuseful referenced were removed from core helpers
- GetId3 library was updated to 2.0.0b4 (which is php5 only), helper apps for windows servers were removed, they've to be installed in the system path thus we cannot ship them with p4a package 'cause they would be unuseful
- P4A_Field::setType('image') now causes a fatal error, image is not a recognized type anymore, always use file, it will render images/video/audio preview if it's possible
- P4A_DEFAULT_ERROR_REPORTING, P4A_EXTENDED_ERROR_REPORTING, P4A_MINIMAL_ERROR_REPORTING constants were added
- P4A now sets error_reporting to P4A_MINIMAL_ERROR_REPORTING before using getid3() and then restore the error_reporting to the previous value
- P4A_Validate and PEAR::Validate classes were removed
- P4A_Field::addValidator() method was added, you can pass it Zend_Validate_* obejects
- P4A_Field::isValid() method was added to check if the validators chain is respected or not
- P4A_Base_Mask::setRequiredField() method now relies on Zend_Validator_NotEmpty
- P4A_Base_Mask::checkRequiredFields() method was renamed to validateFields() and now checks all validators chains for all fields and not only required fields
- all javascripts were refactored
- javascript/css popup management was reworked
- P4A_Base_Mask::setRequiredField(), validateFields(), warning(), error() and info() methods were moved to P4A_Mask
- P4A_Validate_Alnum, P4A_Validate_Alpha, P4A_Validate_Between, P4A_Validate_Ccnum, P4A_Validate_Date, P4A_Validate_Digits, P4A_Validate_EmailAddress, P4A_Validate_Float, P4A_Validate_GreaterThan, P4A_Validate_Hex,
P4A_Validate_Hostname, P4A_Validate_InArray, P4A_Validate_Int, P4A_Validate_Ip, P4A_Validate_LessThan, P4A_Validate_NotEmpty, P4A_Validate_Regex and P4A_Validate_StringLength classes were added.
These classes rely on Zend_Validate_* classes but we need them to allow translation of error messages
- P4A::isPopupOpened() and getFocusedObjectId() methods are now marked as deprecated
- popup system was completely rewritten
- when generating image thumbnails now we pass by the application's index file instead of directly linking phpthumb
- phpThumb was updated to 1.7.8
- jQuery::form was updated to 2.0.3
- ajax upload was enabled again
- a bug with getID3 was solved, now we catch the exception triggered when file is not recognized and simply go on
- YAHOO YUI CSS reset was added
- P4A_Mask::validateFields() method is now automatically called by P4A_Mask::saveRow()
- P4A_Table::setTitle() and getTitle() methods were removed, use setLabel() and getLabel() instead
- P4A_Field::setError() methods now fires a redesign event for the field
- jQuery::UI::datepicker was updated to 3.3
- jQuery::interface was removed
- jQuery::jqModal was removed
- a simple javascript trick was implemented to avoid concurrent clicks on the interface
- jQuery::bgiframe plugin was added and implemented (only for ie6) for tooltips and system messages
- P4A is now released under AFFERO GPL 3
- P4A_Label::setType(), getType(), setValue() and getValue() methods were removed 'cause unused
- P4A_Widget::addCSSClass() and getCSSClasses() methods were added
- tooltip HTML/javascript was rewritten to be simpler
- P4A_Box::setHTML() and getHTML() methods were added
- P4A_Box::setValue() and getValue() methods were marked as deprecated
- all widgets now use the composeStringClass() method, which now use the getCSSClasses() method
- CSS hacks for internet explorer were removed cause not needed anymore
- jQuery was updated to 1.2.3
- P4A_Table has no more container div thus can be styled much more efficently
- P4A_Field::setDefaultVisualizationProperties() method was removed
- P4A_Field::getVisualizedDataType() method was added and called during getAsString(), used to generate the data_type CSS class
- masks and widgets templates were renamed to ".php"
- P4A::isAjaxEnabled() method was removed
- P4A::isGecko(), isOpera, isSafari() and getBrowser() methods were added
- masks templates now add a class to the body (p4a_browser_ie, p4a_browser_gecko, p4a_browser_opera, p4a_browser_safari, p4a_browser_handheld) depending on brower
- P4A_Navigation_Bar buttons names were changed to be a bit better
- handheld CSS/Javascript management was changed, now we outputs all CSS/Javascript plus a basic handheld CSS
- P4A_Table's action cols CSS now handles images much better
- thumbnails cache was enabled (stored in P4A_UPLOADS_TMP_DIR with "cache_" prefix)
- P4A_APPLICATION_SOURCE_DOWNLOAD_URL constant was added, you've to set it for every project, it must point to somewhere users can download the source code of the application
- default template now has a "download source code" link in the footer
- if P4A_APPLICATION_SOURCE_DOWNLOAD_URL is not set, the "download source" link on the default template will take user to an error page showing the right to receive the source code
- P4A_DB_Source::load() method now autodetect schema name
- P4A_DB::nextSequenceId now automatically creates sequences on oracle too
- jQuery color picker was removed
- getId3 was dropped, we went back to getimagesize() PHP function to extract images information but we can't retrieve video files information anymore
- phpThumb was removed
- P4A_Thumbnail_Generator was added
- P4A_DB::nextSequenceId now automatically creates sequences on postgreSQL too
- P4A_DB_Source compose count query was changed a bit to support PostgreSQL syntax
- P4A_Field does not preview images if GD are not installed
- P4A_Login_Mask was added, it should be used if your application needs a login system, it does not display the "download application source" link in the footer zone
- products_catalogue sample now uses the P4A_Login_Mask to show how to use this new feature
- P4A_Object::implementMethod() method was renamed to implement()
- P4A::getBrowserOS() method was added
- default and popup templates now add to #p4a_body a new CSS class containing the browser platform (windows, linux etc...)
- P4A_Error was removed because outdated, it will be replaced by exception objects
- README was updated
- P4A_Tab_Pane::getActivePageName() method was refactored, if empty returns the first page name
- P4A_Tab_Pane::getAsString() method now calls getActivePageName() to avoid the possibility to render a tab pane without any active page
- P4A_Mask_Preview was renamed to P4A_Preview_Mask
- P4A_Mask_Error was renamed to P4A_Error_Mask
- P4A_Canvas now is rendered inside a container div to have id/class/properties/actions
- all P4A objects now support chainability
- P4A_Image::setSource() and getSource() methods were removed
- P4A_Mask::addTempCss(), dropTempCss(), clearTempCss(), addJavascript(), dropJavascript(), addTempJavascript(), dropTempJavascript(), clearTempJavascript(), addCSS(), dropCSS() were removed
- default and popup mask templates were broken in 3 files, now header and footer and manager by P4A and templates have only the body part
- P4A::getPopupMaskName() and getPopupMask() methods were removed
- P4A_Mask::getP4AJavascript() method was moved to P4A::getJavascriptInitializations()
- ajax manager was completely reworked and now, if you have ajax enabled, you won't see no refreshes at all, every action will be managed by ajax call with automatic redesign
2.2.4
- rules to generate P4A_THEME_DIR and P4A_ICONS_DIR were changed
- P4A_IN_DOCUMENT_ROOT was removed because it was never used