forked from yiisoft/yii
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
1991 lines (1925 loc) · 172 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
Yii Framework Change Log
========================
Version 1.1.31 under development
--------------------------------
- No changes yet
Version 1.1.30 October 14, 2024
--------------------------------
- Bug #4547: PHP 8 compatibility: Fix deprecation in CCaptcha when using Imagick extension (apphp)
- Bug #4541: PHP 8 compatibility: Fix deprecation in MarkdownParser (mdeweerd)
- Bug #4544: PHP 8 compatibility: Fix deprecation in CLocale (apphp)
- Bug #4566: PHP 8 compatibility: Fix passing null to string parameter parameter (apphp)
- Bug #4563: CVE-2021-20086. Prevent prototype pollution in jquert-bbq (kevin-foster-uk)
- Enh #4552: Added support for PHP 8.3 (sandippingle, ThePepster, marcovtwout)
- Enh #4559: Added support for Redis ACL authentication with username for Redis 6+ (arfeen)
- Enh #4568: Add missing hungarian translations (albertborsos)
Version 1.1.29 November 14, 2023
--------------------------------
- Bug #4516: PHP 8 compatibility: Allow union types and intersection types in action declarations (wtommyw)
- Bug #4523: Fixed translated in Greek class messages in framework requirements view, which they should not be translated (lourdas)
- Bug #4534: PHP 8.2 compatibility: Fix deprecated dynamic properties in gii/components/Pear/Text/Diff (mdeweerd, marcovtwout)
- Bug: CVE-2023-47130. Prevent RCE when deserializing untrusted user input (ma4ter222, marcovtwout)
- Enh #4529: Exceptions thrown while loading fixture file rows now contain more details (eduardor2k)
- Enh #4533: Various refactorings applied based on PHAN checks (marcovtwout)
Version 1.1.28 February 28, 2023
--------------------------------
- Bug #4484: Set Last-Modified after sending cache control headers (jannis701, wtommyw)
- Bug #4491: Fixed limit and Offset not working correctly with MSSQL version 11 (2012) and newer (shnoulle, wtommyw)
- Bug #4497: PHP 8.1 compatibility: Fix unserialize null in CRedisCache (kenguest, wtommyw)
- Bug #4499: PHP 8.1 compatibility: Fix deprecation warning in COciSchema (marcovtwout)
- Bug #4500: PHP 8.1 compatibility: Fix deprecation warnings in CMysql classes (csears123)
- Bug #4507: PHP 8.1 compatibility: Fix deprecation warning in CWebUser (marcovtwout, wtommyw)
- Enh #4490: Added support for PostgreSQL 15 (sternix, marcovtwout)
- Enh #4503: Update tests and code for PHP 8.1 compatibility, stop suppressing deprecation warnings in tests (wtommyw)
- Enh #4505: Added support for PHP 8.2 (wtommyw)
Version 1.1.27 November 21, 2022
--------------------------------
- Bug: PHP 8.1 compatibility: Fix CFileCache call of file_get_contents (Bregi)
- Bug: CVE-2022-41922. Prevent RCE when deserializing untrusted user input (fi3wey, marcovtwout)
Version 1.1.26 September 30, 2022
--------------------------------
- Bug #4453: Alpine Linux compatibility: Avoid using `GLOB_BRACE` in `CFileHelper::removeDirectory` (ivany4)
- Enh #4386: Added support for PHP 8.1 (marcovtwout, JonathanArgentao, ivany4, csears123)
- Enh #4386: Updated HTMLPurifier to version 4.15.0 for PHP 8.1 support (https://github.com/ezyang/htmlpurifier/blob/v4.15.0/NEWS) (marcovtwout)
- Enh #4392: Added support for SSL to CRedisCache (andres101)
Version 1.1.25 December 13, 2021
--------------------------------
- Bug #4226: Fix for Gii diff displaying "reset() expects parameter 1 to be array, integer given" (LeoZandvliet, marcovtwout)
- Bug #4369: PHP 8.0 compatibility: Fix warning "Only the first byte will be assigned to the string offset" when generating code with Gii (marcovtwout)
- Bug #4374: Fix for createUpdateCommand which did not accept just a table name when using MSSQL (c-schmitz)
- Bug #4380: Prevent fatal errors while validating CSRF token of malformed requests (rob006)
- Bug #4382: PHP 8.0 compatibility: Fix CFileLogRoute throwing TypeError when logfile cannot be opened (marcovtwout)
Version 1.1.24 June 7, 2021
--------------------------------
- Bug #4339: "There is no active transaction" when transaction is autocommitted (twisted1919)
- Bug #4343: Fix "driver does not support quoting" when using the driver pdo_odbc (xpohoc69)
- Bug #4355: Fix errorhandler missing backtrace entries (georaldc, marcovtwout)
- Enh #4349: Added CHtml option to omit type attribute from <script> tag (mohamedmalki, marcovtwout)
- Enh #4351: Added CHtml option to omit CDATA wrapper from <script> and <style> contents (marcovtwout)
- Enh #4354: Allow to set log file permissions for CFileLogRoute (jdayamx)
- Chg #4344: Upgraded jQuery to 1.12.4 (marcovtwout)
- Chg #4344: Upgraded jQuery UI to 1.12.1 (marcovtwout)
Version 1.1.23 December 2, 2020
-------------------------------
- Bug #4291: The scheme (protocol) is deleted when validateIDN is enabled after validation (Argevollen)
- Bug #4306: Add PHP 8 support (samdark)
- Bug #4310: Items on memcache won't expire due to memcache difference in internal clock (nikolasr200)
- Bug #4325: Add support for unicode strings beyond the BMP (like emojies) in `CJavaScript::encode()` (marcovtwout)
- Bug: Fix CFileHelper::findFiles() to use correct directory separator under Windows (samdark)
- Enh #4305: PHP 7.3 compatibility: Support giving cookies a SameSite=None attribute value (tomfotherby)
- Enh #4308: PHP 7.3 compatibility: Add `samesite` as a session cookie option (tomfotherby)
- Enh #4314: Exceptions thrown while loading fixtures now contain details about the error location (BBoom)
- Enh #4314: Missing fixture files now throw exceptions (BBoom)
- Enh #4315: Added change triggers to clickable checkbox rows in grid views, allowing other script to react to the changed checkbox states (BBoom)
- Enh #4317: Added special option 'encode' to `$htmlOptions` argument in `CHtml::errorSummary` and `CHtml::error` (shidenko97)
- Enh #4323: Add PostgreSQL 12 support (bio, d4rkstar, marcovtwout)
- Chg #4293: Updated HTMLPurifier to version 4.13.0 (https://github.com/ezyang/htmlpurifier/blob/v4.13.0/NEWS) (marcovtwout)
Version 1.1.22 January 16, 2020
-------------------------------
- Bug #4256: PHP 7 compatibility: PHP4 style constructor in Pear/Text/Diff3.php (kenguest)
- Bug #4256: PHP 7 compatibility: Fixed deprecated usage of create_function() in markdown.php (samdark)
- Bug #4261: PHP 7.2 compatibility: INTL_IDNA_VARIANT_2003 has been depreacated (machour)
- Bug #4261: Updated HTMLPurifier to version 4.10.0 (https://github.com/ezyang/htmlpurifier/blob/v4.10.0/NEWS) (machour)
- Bug #4279: PHP 7.4 compatibility: Drop use of accessing string offsets using curly braces (kenguest)
- Enh #4273: PHP 7.3 compatibility: Add "sameSite" support for cookies (thekonz)
Version 1.1.21 April 2, 2019
----------------------------
- Bug #4220: Fixed PHP 7.2 incompatibility caused by the use of `create_function` in CHttpRequest and CProfileLogRoute (martinpetrasch, freezy-sk)
- Bug #4227: Fixed PHPUnit 6 compatibility (gianniszach)
- Bug #4229: Remove deprecation errors from framework/web/js/source/jquery.yiiactiveform.js when using jQuery 3.1.1 (kenguest)
- Bug #4234: CVE-2018-14773. Drop support for HTTP_X_REWRITE_URL (kenguest)
- Bug #4238: Fixed intolerance to nulls in `CJavaScript::quote()` (stevoh6, ddziaduch)
- Chg #4236: Freeze session before changing ini settings to be compatible with PHP 7.2 (vxk7m)
Version 1.1.20 July 6, 2018
---------------------------
- Bug #4162: Adjusted Zend Escaper to be compatible with PHP <5.3 and fixed usage of non-existing Exceptions (cebe)
- Bug #4167: Fixed PHP 7.2 incompatibility of "count()" in `CActiveFinder` and CController::renderDynamic() (softark, ThePepster)
- Bug #4168: Fixed `CDbHttpSession` PHP 7.1 compatibility (csears123)
- Bug #4179: Fixed MariaDB 10.2 current_timestamp() (yaBliznyk)
- Bug #4182: CSecurityManager requires mcrypt extension to work, and for PHP 7.2 we need to install it from pecl (sergey-dryabzhinsky)
- Bug #4191: Fixed "Headers already sent." error in CHttpSession (daniel1302)
- Bug #4191: Fixed "CHtml::value() behaves differently for objects" for PHP 7.2 (daniel1302)
- Bug #4197: Fixed PHP 7.2 assert with string argument is deprecated warning using Gii (ThePepster)
- Bug #4198: Fixed PHP 7.2 SQLSRV lastInsertId (agusdrs)
- Bug #4203: Fixed `CHttpCacheFilter::sendCacheControlHeader` PHP 7.2 compatibility (b1rdex)
- Enh #4191: Added option for filter classes loaded by YiiBase autoloader (daniel1302)
- Chg #4160: Updated HTMLPurifier to version 4.9.3 (takobell)
Version 1.1.19 June 8, 2017
---------------------------
- Bug #4155: Ignore PHP 7.1 warnings about deprecated mcrypt (samdark)
- Bug #4156: Timeout in checkMxPorts of mail validator is now configurable (kenguest, samdark)
- Enh: Fixed PHPUnit 6 compatibility (samdark)
- Enh: Reworked model error escaping to escape on output rather than in validators directly (Zaffy, samdark)
Version 1.1.18 April 19, 2017
-----------------------------
- Bug #4004: Better fix for PostgreSQL Session storage (GuillaumeSmaha)
- Bug #4015: Fixed bug with missing "disabled" attribute in internally rendered hidden fields (rob006)
- Bug #4020: Fixed PHP 7 related bug in CCacheHttpSession when destroying not cached sessions (dirx)
- Bug #4034: Fixed `CHttpSession::getIsStarted()` PHP 7 compatibility (tomotomo)
- Bug #4043: Fixed `CJavaScript::quote()` to properly escape Unicode characters (samdark)
- Bug #4061: Fixed "Fatal Error: Nesting level too deep - recursive dependency" error in `CArrayDataProvider` (kf99916, andrewnester)
- Bug #4064: Fixed CHtml::beginForm which produced wrong HTML when using an anchor in the action URL of a GET form (Mytskine)
- Bug #4069: Fixed error with `eCRedisCache::executeCommand()` when the previous connection timeout exception was catched (taobig)
- Bug #4104: Fixed PHP 7 compatibiltiy in Text_Highlighter (samdark)
- Bug #4111: Fixed PHP 7.1 incompatibility with CFileCache when `$embedExpiry=false` (cebe)
- Bug #4130: Fixed PHP 7 added an interception of the ParseError exception for the eval() usage (devcommiter)
- Bug #4133: Fixed PHP 7 usage of the func_get_args() functions in YiiBase.php (devcommiter)
- Enh #2819: backported masking of CSRF tokens from Yii 2.0 (samdark)
- Enh #4049: Added '//' as a proper beginning of absolute URL in createAbsoluteUrl() method (ksowa)
- Enh #4075: Added CClientScript::hasPackage() (samdark)
- Chg #4033: Updated Pear/Text used by Gii so it's PHP 7 compatible (samdark)
- Chg #4103: Updated HTMLPurifier to version 4.9.2 (samdark)
- Chg: Updated Text_Highlighter to version 0.7.3 (samdark)
- Chg: Fixed PHP 7.1 incompatibility in Text_Highlighter (cebe)
Version 1.1.17 January 13, 2016
------------------------------
- Bug #1191: Fixed undefined index in CListIterator when data removed in parent CList (steven-hadfield)
- Bug #2881: CGridView was blocking refresh on filter field change event after previous filtering using ENTER key (sivir)
- Bug #2921: Fixed CStatePersister read/write concurrency issue causing state data corruption (matteosistisette, samdark)
- Bug #2993: Fixed MySQL datetime fields can have default CURRENT_TIMESTAMP (tomvdp)
- Bug #3144: Fixed regression introduced in 1.1.16, whitespace before and after attributes in validation rules where not ignored (cebe)
- Bug #3458: Fixed CGridView with enableHistory breaks queries containing '&' characters (nkovacs)
- Bug #3476: Database sessions with Postgres did not work properly (c-schmitz)
- Bug #3497: CErrorHandler messages for HTTP response codes were not matching RFCs (TeMPOraL)
- Bug #3637: Fixed not quoting primary key in count statements (applee)
- Bug #3696: Fixed broken case insensitiveness for Active Record count expressions introduced with fixed #268 (xt99)
- Bug #3700: Undefined variable `$acceptedLanguage` in `CHttpRequest::getPreferredLanguage()` (cebe, ddebin)
- Bug #3704: Fixed `CSecurityManager` to work properly is case `cryptAlgorithm` specified as array (samdark)
- Bug #3715: `CSecurityManager::legacyDecrypt` in version 1.1.16 was not compatible with 1.1.15 method (DanaLuther)
- Bug #3724: Fixed namespace prefix in WSDL generator for arrayType. (ametad)
- Bug #3757: Fixed regression in 1.1.16 `CPgsqlSchema::dropIndex()` (samdark)
- Bug #3764: Fixed regression in 1.1.16, `CEmailValidator::validateValue()` should not allow empty values to pass (cebe)
- Bug #3833: Fixed `CHttpRequest::sendFile()` range support in case `mbstring.internal_encoding=UTF-8` (MonkeyMaster)
- Bug #3869: jQuery Yii GridView now doesn't fail when refreshing grid via POST request (a-t)
- Bug #3879: Numeric labels in CBreadCrumbs reindex after using array_merge (AloneCoder)
- Bug #3890: Ensured forward compatibility of `CWebService::getMethodName()` (samdark)
- Bug #3947: Fix error with `array_diff` when one of CDbCriteria->select contains "false" (askobara, cebe)
- Bug #3974: Fixed warning when request parameter contains array (cmazx)
- Bug #3976: Fixed MSSQL command builderto comply with the DELETE command syntax (odalecne)
- Bug #3980: Fixed CRedisCache error when using `mbstring.func_overload` and UTF-8 as `mbstring.internal_encoding` (Lexx918)
- Enh #2399: It is now possible to use table names containing spaces by introducing alias (devivan)
- Enh #3457: CHttpRequest can now detect content type and decode JSON in REST method bodies. (Sibilino)
- Enh #3686: Wrapper div of hidden fields in CForm now have style `display:none` instead of `visibility:hidden` to not affect the layout (cebe, alaabadran)
- Enh #3738: It is now possible to override the value of 'required' html option in `CHtml::activeLabelEx()` (matteosistisette)
- Enh #3812: Added 'validateValue' method to 'CBooleanValidator' class (UA2004)
- Enh #3827: Added the $options parameter to be used in stream_socket_client in CRedisCache.
- Enh #3872: Added database-based StatePersister implementation (AloneCoder)
- Enh #3948: Enhanced CHttpRequest path info extraction for compatibility with PHP 7 (dmitrivereshchagin)
- Enh #3949: Added `$overwriteAll` argument to `CConsoleCommand::copyFiles()` which can be set to true in noninteractive commands (dmitrivereshchagin)
- Enh #3995: CAuthManager is now able to silence errors when using PHP 7 (samdark)
- Enh #3998: Improved PHP 7 compatibility for CTimestampBehavior and CChoiceFormat, and for Travis CI (softark)
- Enh: CApcCache is now able to handle PHP 7 APCu (samdark)
- Chg #3776: Autoloader now doesn't error in case of non-existing namespaced classes so other autoloaders have chance to handle these (alexandernst)
Version 1.1.16 December 21, 2014
--------------------------------
- Bug #264: Fixed wrong timestamp precision value in postgres schema (nineinchnick)
- Bug #268: Fixed Active Record count error when some field name starting from 'count' (nineinchnick)
- Bug #788: createIndex is not using the recommended way to create unique indexes on Postgres (nineinchnick)
- Bug #1257: CFileValidator is no longer unsafe by default to prevent setting arbitrary values. Instead, when no file is uploaded attribute is set to null (marcovtwout)
- Bug #1635: CDateFormatter::format() with 'ZZZZZ' pattern used to return timezone in RFC 822 format, now returns in ISO 8601 format as it stated in CLDR (resurtm)
- Bug #2235: CPgsqlColumnSchema can't parse default value for numeric field (cebe, pavimus)
- Bug #2376: CHttpSession::regenerateID() now checks if session is started before regenerating session ID (samdark)
- Bug #2378: CActiveRecord::tableName() in namespaced model returned fully qualified class name (velosipedist, cebe)
- Bug #2519: CGridView and CListView fixed to be able handling special characters if history is enabled (klimov-paul)
- Bug #2594: CLogRouter::processLogs() now ensures to clear the Logger messages so nothing is logged twice when method is called multiple times (cebe)
- Bug #2654: Allow CDbCommand to compose queries without 'from' clause (klimov-paul)
- Bug #2658: CBaseListView, CGridView, CListView: added note about $itemsCssClass and $pagerCssClass properties, they must not contain empty string, null or false values (resurtm)
- Bug #2969: CPgsqlSchema::addColumn() converts column type twice (cebe, klimov-paul)
- Bug #2741: Updated CHtml to add maxlength support to all HTML5 fields (ggirtsou)
- Bug #2753: Fixed CErrorHandler::errorAction ignored if error occurs while AJAX request (klimov-paul)
- Bug #2756: Fixed applying condition twice during Active Record relation lazy loading (klimov-paul)
- Bug #2770: Fixed CClientScript renders scripts with different HTML options inside same tag (klimov-paul)
- Bug #2778: Fixed throwing unnecessary exception in CFileValidator when validating MIME types for a file upload that failed (Rupert-RR)
- Bug #2785: Use table name with schema in composeMultipleInsertCommand (nineinchnick)
- Bug #2836: Fixed rendering when try-catching widget Exception while 'captureOutput' is set to true (darkheir)
- Bug #2845: Fixed 1.1.14 regression affecting non-strict comparison in `CRangeValidator` validator (samdark)
- Bug #2855: Fixed issue with Component::__call() and normal properties holding a Closure (cebe)
- Bug #2862: Fixed array_merge caused renumbering of $data indexes in CHtml::radioButtonList() (ligser)
- Bug #2864: Fixed CGridView ajax calls failing CSRF validation when ajaxType is set to POST (nineinchnick)
- Bug #2874: Fixed duplicate columns selection for HAS_MANY relation with composite primary key (borro)
- Bug #2876: Fixed single quotes in comments column causes syntax error in model code generated by Gii(klimov-paul)
- Bug #2884: Fixed problem with table alias in CActiveRecord that has been introduced in 1.1.14 (cebe)
- Bug #2887: Fixed CFormElement is missing __isset() (bijibox)
- Bug #2912: Add options parameter to CListView beforeAjaxUpdate (spikyjt)
- Bug #2917: Restored ability to overwrite module alias via application config which was broken in 1.1.14 (klimov-paul)
- Bug #2944: Fixed CDbCriteria fails to merge limit when it is 0 (softark)
- Bug #2945: Fixed CUrlRule escapes dot (.) symbol on parsing (qiangxue)
- Bug #2959: Fixed CFileValidator to encode file name, while composing error messages (klimov-paul)
- Bug #2963: CAssetManager::generatePath no longer uses basename for hasing (eirikhm)
- Bug #2970: Fixed Active Record may join same relation twice on eager loading. (klimov-paul)
- Bug #3010: Problem with callables given as values to CDetailView. CDetailView now only allows annonymous functions to be called, all other values will be taken as value (cebe)
- Bug #3064: Fixed problem with array to string converion in CDbMigration methods that accept array parameters (cebe)
- Bug #3055: CAction::runWithParams() now returns consistent result even if called without parameters (cebe)
- Bug #3087: Fixed crash on cookie validation when switching between enabling and disabling validation (cebe)
- Bug #3113: Fixed problems with realpath(false) which can occur in combination with Yii::getPathOfAlias() when alias does not exist (cebe)
- Bug #3134: Fixed the issue that query cache returns the same data for the same SQL but different query methods (qiangxue)
- Bug #3144: It wasn't possible to use attributes with spaces in validation rules (samdark)
- Bug #3179: Fixed a bug with CBreadcrumbs widget and homelink that did not use activeLinkTemplate property (mbdwey, cebe)
- Bug #3206: Quote table names in CDbMessageSource::loadMessagesFromDb (nkovacs)
- Bug #3233: Gii now allows base classes with absolute namespace as well, not only relative ones (etienneq)
- Bug #3242: Removed display:none on form hidden fields (mahadazad)
- Bug #3283: Fixed CEmailValidator to validate empty value (nukkumatti)
- Bug #3288: Check if PHPUnit_Runner_Version exists before requiring (hjellek)
- Bug #3302: CActiveForm::error() fixed to respect 'hideErrorMessage' option on regular render (klimov-paul)
- Bug #3305: COciSchema column comment reading from another schema (gureedo)
- Bug #3321: Clear stat cache after rotating log files so later file size check is not cached (cebe, jjdunn)
- Bug #3327: Gii did not generate empty directories properly (gureedo)
- Bug #3406: Fixed Object of class Imagick could not be converted to string (eXprojects)
- Bug #3410: Fixed wrong translation parameter name in CPhpAuthManager::addItemChild() (klimov-paul)
- Bug #3569: CConsoleCommand::copyFiles() did not replace DIRECTORY_SEPARATOR correctly (jmxhit)
- Bug #3582: make sure `build autoload` produces the same output on both Windows and Unix platforms (GerHobbelt)
- Bug: Fixed the bug that backslashes are not escaped by CDbCommandBuilder::buildSearchCondition() (qiangxue)
- Bug: Fixed URL parsing so it's now properly giving 404 for URLs like "http://example.com//////site/about/////" (samdark)
- Bug: Fixed an issue with CFilehelper and not accessable directories which resulted in endless loop (cebe)
- Bug: CSecurityManager encryption and string comparison were enhanced (sarciszewski, Jan Ewald, tom--, ircmaxell, qiangxue, samdark)
- Enh: Public method CFileHelper::createDirectory() has been added (klimov-paul)
- Enh: Added proper handling and support of the symlinked directories in CFileHelper::removeDirectory(), added $options parameter in CFileHelper::removeDirectory() (resurtm)
- Enh #89: Support for SOAP headers in WSDL generator (nineinchnick)
- Enh #94: Web services: Implement document/literal encoding for WDSL (nineinchnick)
- Enh #106: Added getters to CGridColumn to allow getting cell contents for extended use cases of CGridView (cebe)
- Enh #132: Added ODBC support in CDbConnection (nineinchnick, resurtm)
- Enh #182: CSort: allow arrays in asc/desc keys of virtual attributes (nineinchnick)
- Enh #640: Introduce bigpk and bigint column types in each class extending CDbSchema (nineinchnick)
- Enh #873: CStatRelation (CActiveRecord::STAT) now supports scopes (resurtm, klimov-paul)
- Enh #1372: CDbCommandBuilder::createMultipleInsertCommand() now throws exception if data array is empty (cebe)
- Enh #1515: Post-JOIN operations (use|force|ignore index()) support in relational queries (KonovalovMaxim, resurtm)
- Enh #1593: Allow access to exception currently processed by CErrorHandler (klimov-paul)
- Enh #1893: Added Schema and native connection support for the CUBRID DBMS (https://www.cubrid.org/) (kadishmal)
- Enh #2119: add `y` pattern to CDateTimeParser (mrpelle)
- Enh #2540: Enable CJSON to use JsonSerializable interface when serializing objects (sammousa)
- Enh #2630: CLinkPager $nextPageLabel, $prevPageLabel, $firstPageLabel and $lastPageLabel can now be false to disable the buttons (index0h)
- Enh #2640: Enable diff on gii generated SQL files (1allen)
- Enh #2664: Added support for HTTP PATCH requests to CHttpRequest (cebe)
- Enh #2683: Application views generated by webapp command are now using HTML5 by default (cebe)
- Enh #2688: CHtml::beginForm() now supports additional HTTP methods, via a hidden `_method` field. (phpnode)
- Enh #2722: CFileHelper::findFiles() accepts absolutePaths in $options and returns absolute paths if true or relative ones otherwise (defaults to true) (pavel-voronin)
- Enh #2734: Request::getPreferredLanguage() is now able to select a best matching between supported and requested languages (zvirusz)
- Enh #2737: CFileCache: added cachePathMode and cacheFileMode options to set modes used by chmod() for cache directory and files (ujovlado)
- Enh #2758: Updated phpdoc in blog demo to match current IDE supported syntax (samdark)
- Enh #2777: Allow Yii::import() and Yii::createComponent() to import classes that are loaded by other autoloaders e.g. composer (cebe)
- Enh #2791: requirements/index.php: added CRYPT_BLOWFISH check for CPasswordHelper (tom--)
- Enh #2799: Add HTML5 input support for color, datetime, datetime-local, week and search to CHtml and CActiveForm (phpnode)
- Enh #2817: Allow specifying $colums and $refColumns arguments as array in various CDbSchema methods (mynameiszanders, samdark)
- Enh #2850: Parameter 'id' added for 'ajaxUpdateError' js function at 'CListView' and 'CGridView' (klimov-paul)
- Enh #2851: Improved Mime-Type detection by using the `mime.types` file from apache http project to dected mime types by file extension (cebe, pavel-voronin, trejder)
- Enh #2852: Refactored ShellCommand to be easier to extend (samdark, mindplay-dk)
- Enh #2908: Add insertMultiple to Migrations (luislobo)
- Enh #3014: Allow changing the database used by ActiveRecord in beforeCount() like it is possible in beforeFind() already (cebe)
- Enh #3023: Added support for formatting DateTime instances to CFormatter (cebe, nitso)
- Enh #3027: Added custom encodeLabel attributes of the CMenu items (hugeval)
- Enh #3048: CApcCache is now compatible with APCu (iobotis, samdark)
- Enh #3049: 'cli' mode detection at CConsoleApplication improved (klimov-paul)
- Enh #3061: 'jquery.yiiGridView' and 'jquery.yiiListView' allows to handle all update options via history state data (klimov-paul)
- Enh #3068: Added CDbCommand::naturalLeftJoin() and CDbCommand::naturalRightJoin() (bunchachis)
- Enh #3115: Updated phpdoc for better code completion in modern IDEs (samdark)
- Enh #3147: Updated Request::getIsSecureConnection() to work with lower and uppercase config values (cebe)
- Enh #3156: It is now possible to override the models PK using primaryKey() method, even if the table defines one (drLev)
- Enh #3182: Added namespace support for controllers in subdirectories (Ekstazi, samdark)
- Enh #3202: Adding support for the `X-HTTP-Method-Override` header in CHttpRequest (pawzar)
- Enh #3211: Added support for PHPUnit 3.8+ in the bootstrap (JoelMarcey, samdark)
- Enh #3222: 'summaryTagName' and 'emptyCssClass' options added to CBaseListView (klimov-paul)
- Enh #3225: Added CForm::errorSummaryHeader and CForm::errorSummaryFooter, used like in CActiveForm::errorSummary() (rawtaz)
- Enh #3228: Added an ability to migrate to the certain time (gorcer, resurtm)
- Enh #3277: CHtml::checkBoxList and radioButtonList to take into account closeSingleTag for <br> (hwmaier)
- Enh #3307: Adding attribute localeClass to CApplication (pawzar)
- Enh #3314: Removed async from special attribute list enabling async=false for scripts (wilwade)
- Enh #3324: Added syslog log route (miramir, resurtm)
- Enh #3346: Added `fileHeader` option to MessageCommand (mbdwey)
- Enh #3349: Added errorCallback to CActiveForm::$clientOptions (rusalex)
- Enh #3351: Allow array attribute for CFileValidator even if `maxFiles` is not > 1 (cebe)
- Enh #3359: Added merge parameter to CModule::setModules (KJLJon)
- Enh #3391: Exception and log for not existed ClientScript package (rusalex)
- Enh #3500: Framework now responds with HTTP protocol version requested (samdark)
- Enh #3513: Added 'getExtensionByMimeType' method to CFileHelper class (UA2004)
- Enh #3533: Added Yii and YiiBase classes to composer autoloader (sammousa)
- Enh #3571: Extracted rendering of data cell in CGridView.renderTableRow() to separate method for extensibility (hijarian)
- Enh #3623: `itemscope` attribute is now rendered as HTML5 boolean (vercotux)
- Chg #2025: Upgraded jQuery to 1.11.1 (marcovtwout)
- Chg #3042: CPasswordHelper::generateSalt() now returns salt with $2y$ cost (samdark)
- Chg #3137: Upgraded HTMLPurifier to 4.6.0 (samdark)
- Chg #3298: ListView and GridView: Added check for the existence of a href attribute in link pager (dutchakdev)
- Chg #3464: Updated multifile plugin used by CMultiFileUpload to version 1.48 (samdark)
- Chg #3636: Upgraded jQuery UI to 1.11.2 (marcovtwout)
- Chg: Updated the i18n data bundled with the framework to CLDR23.1 <https://unicode.org/Public/cldr/23.1/> this adds new locales and has many fixes and additional data for existing ones (cebe, dralshehri)
- New #2955: Added official support for MariaDB (cebe, DaSourcerer)
Version 1.1.15 June 29, 2014
----------------------------
- Bug (CVE-2014-4672): CDetailView may be exploited to allow executing arbitrary PHP script on the server (cebe, qiangxue)
Version 1.1.14 August 11, 2013
------------------------------
- Bug: There was unnecessary echo in CRUD views generated by Gii (samdark)
- Bug: CJavaScript::encode was formatting floats in a wrong way during encoding (samdark)
- Bug: Fixed minLength and maxLength range check in CCaptchaAction::generateVerifyCode so values are now always stay in bounds (samdark)
- Bug #101: CActiveFinder::buildJoinTree() no longer uses 'false' for 'select' value (klimov-paul)
- Bug #135: Fixed wrong CActiveRecord rows count with having (klimov-paul)
- Bug #139: Fixed Active Record lazy load through relation with condition (klimov-paul)
- Bug #150: Fixed CWidget was not switching between view paths when using themes (antoncpu)
- Bug #159: CUploadedFile::getInstancesByName() has been fixed allowing correct fetching files, which name is a part of other file name (klimov-paul)
- Bug #196: CActiveForm: models list whose errors should be displayed in error summary is now customizable when using AJAX validation (resurtm)
- Bug #662: Fixed incorrect Active Record lazy loading of relation through BELONGS_TO relation (klimov-paul)
- Bug #1464: Fixed transparent background for ImageMagick in CCaptchaAction (manuel-84, cebe)
- Bug #1669: CNumberValidator used to add wrong error messages in case non-numeric values being validated (resurtm)
- Bug #1692: CWebUser::renewCookie() and CWebUser::restoreFromCookie() now make use of the identityCookie options (f10i)
- Bug #1693: Fixed log file will rotate twice when high performance (monque)
- Bug #1724: Allow CClientScript registering scripts and script files with the HTML options (klimov-paul)
- Bug #1732: CWebLogRoute and CProfileLogRoute with enabled $showInFireBug: fixed bug related to JS `console` object in MSIE 8 and 9 (resurtm)
- Bug #1763: CSqlDataProvider was appending another ORDER BY string to an existing ORDER BY statement when using fieldname with dot (szako)
- Bug #1827: Gii wasn't properly handling table name with the schema part for PostgreSQL (resurtm)
- Bug #1895: Fixed erroneous language attributes in french views (located at `framework\views\fr`) (Ragazzo)
- Bug #1909: CGridView::$filterSelector now prevents default action after event has completed by returning false result in event handler function (matih)
- Bug #1911: MigrateCommand does not rely on cached value about migration table existance anymore as this info could be outdated in testing enviroment (cebe)
- Bug #1915: CDataProviderIterator: fixed init in case of disabled pagination (antoncpu)
- Bug #1916: CMssqlSchema::findColumns() issues an "invalid object name" error (resurtm)
- Bug #1924: CLogFilter::$dumper added: this property can be used to get around circular reference issue when using standard `var_export` dumper by changing it to `print_r` (resurtm)
- Bug #1933: fixed using "multiple" parameter with a value of false in CHtml::activeDropDownList, CHtml::ListBox and CHtml::DropDownList (adminnu)
- Bug #1941: yiiactiveform.js form reset now uses CHtml::errorCss instead of a hardcoded value (mdomba)
- Bug #1942: CActiveForm client/ajax validation will now remove error class from server side validation (mdomba)
- Bug #1945: Reference to undefined variable $column in CDbMigration::dropPrimaryKey (paystey)
- Bug #1955: Some validators used to cause warnings or errors in case non-scalar array typed values being checked (resurtm)
- Bug #1957: Add primary key support for MySQL schema (paystey)
- Bug #1984: CDbMigration: fix of undeclared variable usage in debug information in dropPrimaryKey (papulovskiy)
- Bug #1990: CDateFormatter::formatWeekInMonth(): incorrect result for a week which was last in a previous year and first in a next year simultaneously (resurtm)
- Bug #1996: Using yiic help for commands with parameters with array as default value resulted in PHP error with latest PHP versions (dInGd0nG, samdark)
- Bug #1997: Cache key in CGettextMessageSource::loadMessages wasn't specific enough (odevyatkov)
- Bug #2023: CHttpRequest::stripSlashes() now modifies array keys as well (etienneq)
- Bug #2030: Fixed problem with MySQL 4.x: Undefined Index: Comment in CMysqlSchema (cebe)
- Bug #2048: AR now uses alias from CActiveRecord::getTableAlias instead of always using default "t" (s-larionov)
- Bug #2049: CStatElement relation with join option throw exception when key-field present on joined table (Yiivgeny)
- Bug #2078: Fixed problem with "undefined" parameter in query string when using CListView or CGridView with enableHistory (Parpaing)
- Bug #2086: Fixed .hgignore rule for assets folder (GeXu3, Koduc)
- Bug #2087: CLocale: getLocaleDisplayName() was only returning the language display name, not the full locale display name (brandonkelly)
- Bug #2112: Fixed broken yiic shell CRUD command (mbischof)
- Bug #2121: CMssqlSchema::resetSequence() incorrectly resets sequence (resurtm, joewoodhouse)
- Bug #2122: CActiveRecord, lazy load: 'params' from relations used in 'through' option were not applied to the final SQL statement (resurtm)
- Bug #2123: Fixed error in plural rules handling if locale has no plural rules defined (cebe, stepanselyuk)
- Bug #2146: CEmailValidator fix when fsockopen() can output uncatched error 'Connection refused (61)' (armab)
- Bug #2159: Fixed SQL syntax for delete command with join in MySQL (serebrov)
- Bug #2184: CDbHttpSession now supports MS SQL Server BLOB data type (cheuschober, resurtm)
- Bug #2201: Cannot use "having" with bound params in CActiveRecord::count() (ivokund)
- Bug #2216: CDbCommandBuilder::createInCondition() has been updated, allowing to pass array of values with mixed keys for the single type column (klimov-paul)
- Bug #2223: CActiveForm::error does not respect CHtml::$errorMessageCss (ivokund)
- Bug #2239: Fixed CHtml::refresh() method to use proper syntax (mdomba)
- Bug #2241: COciSchema::resetSequence() now works the same way as the same methods for the other RDMBSes. PHPDocs of the CMssqlSchema::resetSequence(), CMysqlSchema::resetSequence(), CPgsqlSchema::resetSequence(), COciSchema::resetSequence() and CSqliteSchema::resetSequence() methods have been adjusted to fit their real functionality (resurtm)
- Bug #2244: MessageCommand has been updated, allowing to merge string with value '0' correctly (klimov-paul)
- Bug #2258: CJuiSliderInput didn't support string typed 'range' option (bookin)
- Bug #2283: Gii Model Generator's tooltips are not working and always invisible (resurtm)
- Bug #2289: CDbCacheDependency with reuseDependentData did not invalidate cache when getting cache across different requests (marcovtwout)
- Bug #2299: CMssqlSchema: findTableNames(), getTables() and getTableNames() methods used to prepend schema prefix to the table names twice (resurtm)
- Bug #2311: Fixed SQlite default value for timestamp CURRENT_TIMESTAMP (zeeke)
- Bug #2321: CGettextPoFile is now able to parse multiline msgid and msgstr declarations (resurtm)
- Bug #2325: Fixed UTF-8 troubles in CDateTimeParser (error in parsing chinese and thai dates) (s-larionov)
- Bug #2336: PostgreSQL: CDbCommandBuilder used `NULL` instead of `DEFAULT` as default value for the primary keys of serial type (resurtm)
- Bug #2368: Reset error CSS for ':input', which includes SELECT elements (blueyed)
- Bug #2398: Fixed 'Undefined variable: results' E_NOTICE at CProfileLogRoute (klimov-paul)
- Bug #2402: Fixed clientValidation incorrectly rendered as HTML attribute, when used in CActiveForm::error() (mdomba)
- Bug #2406: CUrlManager::$urlRuleClass now supports path alias value (as it was described in its PHPDoc before this fix) (resurtm)
- Bug #2423: Fixed CHtml::button() enforces "value" attribute for the image buttons (klimov-paul)
- Bug #2426: CDbCriteria::__wakeup() used to issue an error in case SQL containing fields were arrays and criteria parameters were specified (resurtm)
- Bug #2438: CViewAction now checks if requested view is a string to not fail when array was given (cebe)
- Bug #2449: CSqlDataProvider causes an error when CDbCommand with enabled PDO::FETCH_OBJ mode used as SQL source (resurtm)
- Bug #2454: Fix CMysqlColumnSchema::extractLimit for ENUM values containing comma (blueyed)
- Bug #2491: Prevent SQL exception being thrown when inserting a row into the session table whilst regenerating the session ID (mynameiszanders)
- Bug #2502: Fix match controller in access rule, match uniqueId instead id (slavcodev)
- Bug #2508: Fix CHtml::activeLabel() to resolve attribute input name for tabular input with custom 'for' (klimov-paul)
- Bug #2516: Fixed the bug that some $.fn.yiiGridView methods were not working always if a custom CGridView::template was used (buakos)
- Bug #2524: Fixed incorrect HTTPS detection (resurtm)
- Bug #2551: CWebUser::loginRequired() AJAX response now properly sends 403 (creocoder)
- Bug #2554: Fixed CRangeValidator when allowEmpty is false (samdark, creocoder)
- Bug #2565: CCaptchaAction in ImageMagick mode used to issue an exception in case $backColor or $foreColor have had leading zeros (resurtm)
- Bug #2581: Fixed the bug with empty ajaxVar in jquery.yiilistview.js and jquery.yiigridview.js (seregagl)
- Bug #2602: CUrlValidator and CEmailValidator now works correctly with display_errors = on and validateIDN = true (creocoder)
- Bug #2662: CLocale::getTerritory() used to return null value even for proper input values, bug fix #1622 made in 1.1.13 has been reverted (resurtm)
- Bug #2632: Fixed inability import non-build aliases by config on some case (Yiivgeny)
- Bug #2651: CHttpSession was using hardcoded GC probability/divisor values (marcovtwout, cebe, samdark)
- Enh: Better CFileLogRoute performance (Qiang, samdark)
- Enh: Refactored CHttpRequest::getDelete and CHttpRequest::getPut not to use _restParams directly (samdark)
- Enh #100: CLogFilter::$logVars can now be array of arrays intended for designating particular items of the $GLOBALS (resurtm, tomtomsen)
- Enh #129: Proper support of namespaced models in forms (LastDragon-ru, Ekstazi, pgaultier)
- Enh #169: Allow to set AJAX request type for CListView and CGridView (klimov-paul)
- Enh #289: Gii module could be submodule of an another module (resurtm)
- Enh #315: COciSchema::checkIntegrity() method added: allows to toggle integrity check (resurtm)
- Enh #755: Allow to get currently running command from CConsoleApplication (klimov-paul)
- Enh #1065: CJuiSliderInput now supports ranged slider when using it without model (resurtm)
- Enh #1142: CSecurityManager::computeHMAC() has been made public (resurtm)
- Enh #1353: Added onBeforeCount event to CActiveRecord (jakob-stoeck)
- Enh #1391: CDetailView: callables (including anonymous functions for PHP 5.3+) could be used as value generators of the attributes (resurtm)
- Enh #1447: CSqliteSchema: added enabling/disabling integrity check for sqlite (gleb-sternharz, resurtm)
- Enh #1589: Added HTTP range responses support to CHttpRequest::sendFile (Ragazzo, samdark)
- Enh #1604: Added method CDbCommandBuilder::createMultipleInsertCommand() to support multiple insertion (klimov-paul)
- Enh #1725: Added CFileHelper::removeDirectory() static method (resurtm)
- Enh #1743: Added CActiveForm::searchField() and CHtml::activeSearchField() to create HTML input field of type SEARCH (njasm)
- Enh #1794: Added ability to change widget ID via $htmlOptions['id'] array item in: CTabView, CBaseListView, CListView, CGridView, CDetailView, CMenu, and CPortlet (umrs)
- Enh #1796: Separate count criteria has been added to the CActiveDataProvider, it's useful for the counting queries simplification (resurtm)
- Enh #1818: Created a CLocalizedFormatter application component that allows formatting values according to current locale (cebe)
- Enh #1842: Added support for MySQL BIT(M) data type default values (migelsabre, cebe)
- Enh #1847: Added COutputCache::varyByLanguage to generate separate cache for different languages (Obramko)
- Enh #1863: Added CActiveFinder::getModel, added CActiveRecord::getActiveFinder, CExistValidator::getModel, CUniqueValidator::getModel, CActiveDataProvider::getModel, CSort::getModel (denisarius, samdark)
- Enh #1928: Gii is now able to use table columns' comments as the attribute labels of a new generated model (resurtm, tlikai)
- Enh #1948: Tidy up and improve html5 input support in CHtml and CActiveForm (phpnode)
- Enh #1977: CFormatter::normalizeDateValue() now is protected instead of private to enable child classes to override it (etienneq)
- Enh #2003: Gii now allows namespaced base classes to be defined in generators (etienneq)
- Enh #2038: CFormatter::formatNtext() method can replace newlines with `<p></p>` not just with `<br />` as it was before (resurtm)
- Enh #2053: CPasswordHelper has been refactored, CSecurityManager has been enhanced and is now able to generate cryptographically strong random bytes and strings (resurtm, tom--, ekerazha, samdark)
- Enh #2062: CWsdlGenerator now supports soap indicators (sequence, choice), injecting of custom WSDL string block and generation of human-friendly documentation for complex types. Added unit test. (lubosdz)
- Enh #2090: Allow passing array of columns to CDbSchema::addPrimaryKey() (paystey)
- Enh #2096: CAPTCHA: non-free Duality.ttf font replaced by open/free SpicyRice.ttf (licensed under SIL OFL v1.1) (resurtm)
- Enh #2131: Added Accept header parsing to CHttpRequest to give an array of accepted types in order of preference (Rupert-RR)
- Enh #2135: MessageCommand can now handles Yii::t() messages with files in subfolders (firsyura)
- Enh #2205: CActiveForm::error() now depends on CHtml::$errorContainerTag (malyshev)
- Enh #2213: Added comment with hint on ajax validaton which may lead to duplicate entries in the database to gii form template (elmig, cebe)
- Enh #2217: Support of the empty option for CHtml::radioButtonList() has been introduced (resurtm)
- Enh #2254: CForm::$showErrors property has been added, it controls whether error elements of the form attributes should be rendered (resurtm)
- Enh #2275: Added primary log rotation by copy and truncate to CFileLogRoute (bdstevens)
- Enh #2415: Cancel current ajax request before create a new one in CGridView and CListView (gusnips)
- Enh #2416: Avoid instantiating HTMLPurifier on each CHtmlPurifier::purify() call. Allow to pass array as argument of CHtmlPurifier::purify() (twisted1919)
- Enh #2435: CFileCache entry expiration time could now be embedded into the cache file instead of changing file's modification time to be in future (resurtm)
- Enh #2459: Absolute session timeout in CWebUser (ivokund)
- Enh #2494: Allow to configure CBaseListView emptyText container tag name (ifdattic)
- Enh #2529: Silenced all chmod calls to prevent "chmod() operation not allowed" error on NTFS (samdark)
- Enh #2602: CEmailValidator and CUrlValidator now uses native PHP `idn` extension in case it is available (`idn_to_ascii` and `idn_ to_ utf8` functions) and Net_IDNA2 otherwise (resurtm, creocoder)
- Enh #2642: Support third party autoloaders when importing classes via Yii::import() (phpnode)
- Chg: Upgraded HTMLPurifier to v4.5.0 (samdark)
- Chg #645: CDbConnection now throws CDbException when failed to open DB connection instead of failing with a warning (kidol, eirikhm, samdark, cebe)
- Chg #895: Add second argument $params to client validation function (slavcodev)
- Chg #1891: Changed order of methods in models generated by Gii and yiic, added better description of search method (hijarian, samdark)
- Chg #2069: Upgraded jQuery BBQ Plugin to 1.4pre to fix jQuery compatibility problems (samdark)
- Chg #2183: Vendors: phlymail's Net_IDNA was replaced by PEAR Net_IDNA2 (resurtm, DaSourcerer)
- Chg #2187: Vendors: punycode.js updated from 1.1.1 (June 27, 2012) to 1.2.0 (October 10, 2012) (resurtm)
- Chg #2461: Upgraded jquery star rating to 4.11 (samdark)
- Chg #2531: Upgraded jquery masked input to 1.3.1 (samdark)
- New: Added CRedisCache which uses redis key value store as cache backend (cebe, maxlun86)
- New #575: Yii registering at Packagist, added composer info file (schmunk42)
- New #1785: Added CPasswordHelper (tom--)
- New #2178: Added Catalan Translation (ArnauAregall)
- New #2370: New template placeholders for CHtml::radioButtonList() and CHtml::checkBoxList() (creocoder)
- New #2530: Added 'through' option to CActiveRecord::BELONGS_TO relation (creocoder)
Version 1.1.13 December 30, 2012
--------------------------------
- Bug #93: Criteria modification in CActiveRecord::beforeFind() did not apply when record was loaded in relational context. See UPGRADE instructions for details on behavior change. (cebe)
- Bug #109: formatNumber() now uses number_format() instead of round(), because of round() error in IEEE754 accuracy limitations (SonkoDmitry)
- Bug #110: MSSQL: fixed empty $primaryKey value after saving CActiveRecord model (resurtm)
- Bug #112: MSSQL: database abstraction layer now uses native transaction support of the SQLSRV driver (resurtm)
- Bug #124: Added CMysqlCommandBuilder to handle JOIN directive on update commands correctly (cebe, DaSourcerer)
- Bug #126: Fixed CWebUser::getReturnUrl(), allowing to determine default URL correctly, if CUrlManager::showScriptName is set to false (klimov-paul)
- Bug #138: CMysqlSchema fixed to support MySQL ANSI mode (cebe)
- Bug #140: Fixed validation CJuiButton with type buttonset (adminnu)
- Bug #162: Eventhandler attached twice when behavior is set enabled after attaching it (cebe)
- Bug #218: Fixed problem when using 'union' and 'order/limit/offset' in CDbCommand::buildQuery (nsanden)
- Bug #276: Tweaked CGridView stylesheet to include a hover style for the selected row (acorncom)
- Bug #810: Gii now adds a number to the end of relation name if same named relation already exists instead of not generating relation (n30kill, samdark)
- Bug #835: CApplication::onEndRequest is now called at the script shutdown to make sure log is written on forceful script termination (samdark, cebe)
- Bug #837: Fixed method CDbCriteria::__wakeup(), allowing to keep custom names for params and update all string parts for automatic params (klimov-paul)
- Bug #959: Bug where non-lowercase keys cannot be found in CConsoleApplication::$commandMap fixed (resurtm)
- Bug #962: Fixed handling of negative timestamps in CDateFormatter::format() (johnmendonca)
- Bug #1094: CListView with enabled history used to clear page title in case sorting or paging performed (Opera and Firefox only) (mdomba, resurtm)
- Bug #1095: Added missing retry_interval parameter of addServer function call in CMemCache (Lisio)
- Bug #1181: Fixed can read but not save binary data e.g. BYTEA on PostgreSQL (karmakaze)
- Bug #1212: Added missing .gitignore files to the application generated by WebAppCommand (resurtm)
- Bug #1249: CHttpRequest::sendFile() outputs malformed file content in some specific circumstances (andyhu)
- Bug #1279: CHttpRequest::sendFile() now always sends valid content-header (Ragazzo)
- Bug #1330: SQLite column default value was incorrect for column of type string and DEFAULT NULL (cebe)
- Bug #1344: Fixed URL problem in CGridView and CListView when enableHistory was true and unicode chars where used (mdomba, Redjik)
- Bug #1347: CDbTestCase: table name in fixtures list enclosed into double curly brackets (e.g. 'tasks'=>':{{task}}') didn't worked properly (resurtm)
- Bug #1351: CClientScript::registerMetaTag() now allows to register multiple meta tags with the same set of attributes (klimov-paul)
- Bug #1364: Empty CHtml::$errorCss cause class attribute rendering errors (creocoder)
- Bug #1381: Ignore select given by criteria or scope on stat relation (cebe)
- Bug #1392: HostInfo was appended to CHttpRequest::redirect() location in case of using protocol relative URLs (dInGd0nG, samdark)
- Bug #1406: Fixed the issue that false value returned from CDbCommand could not be cached properly (mdomba)
- Bug #1407: CDbCommandBuilder::createCountCommand() used to bind parameters for unused ORDER clause and unused SELECT part (resurtm)
- Bug #1444: Fixed CGoogleApi::register call to registerScriptFile (mdomba)
- Bug #1478: Fixed CWsdlGenerator error when using namespaced classes (Diego-Rocha)
- Bug #1485: CSort does not quote table alias when using CDbCriteria (undsoft)
- Bug #1492: Fixed jQuery calls when noConflict feature was used and jQuery code was returned by ajax calls (l-nagash)
- Bug #1499: Fixed CVarDumper highlighting "\" (antoncpu)
- Bug #1549: Fixed CFormatter::sizeFormat() to use translations from 'yii' category and corrected english default translation, also improved number formatting (cebe)
- Bug #1552: Fixed potential vulnerability in CJavaScript::encode(): $safe parameter didn't used to be passed to the recursive method calls (resurtm)
- Bug #1575: MessageCommand::extractMessages fails to ignore invalid category definitions (softark)
- Bug #1584: Fixed CGridView and CListView urls when enableHistory was used with "path" urlFormat (mdomba)
- Bug #1621: Fixed CCompareValidator to support {compareAttribute} in $message also on client-side (cebe)
- Bug #1622: CLocale::getTerritory() used to return invalid territory name when locales (language tags) were specified without territory part (e.g. 'de', 'fr') (resurtm)
- Bug #1624: Requirements page now tries all other preferred languages when the most preferred one is missing (ArtVal)
- Bug #1625: CEmailLogRoute does not properly encode UTF8 characters contained in logs, CEmailLogRoute::$utf8 property added (mdomba, resurtm)
- Bug #1628: Active HTTP sessions overwrote the Cache-Control header set by CHttpCacheFilter (DaSourcerer)
- Bug #1646: CLocale::getTerritory() used to return invalid territory name when locales (language tags) were specified with script part (e.g. 'zh-Hans-CN', 'zh-Hant-HK') (resurtm)
- Bug #1652: Fixed incorrect syntax of CDbSchema::renameTable() for SQLite, added CSqliteSchema::renameTable() method (Sarke)
- Bug #1673: CHttpRequest::getPreferredLanguage now works according to RFC2616. Added CHttpRequest::getPreferredLanguages that returns all user accepted languages in order of preference (Rupert-RR, bwoester, cebe, samdark)
- Bug #1676: Fixed listData() grouping when no group was specified (mdomba)
- Bug #1716: Fixed CCodeModel::pluralize() and CConsoleCommand::pluralize() so it doesn't force lowercase the first letter in any words (nsanden)
- Bug #1726: Fixed the error Undefined variable: json in CJSON.php when json_decode function did not exist (heyhoo)
- Bug #1792: Fixed persistent access permissions when two identities were used in a single application run. (jhenriquemc, François Gannaz)
- Bug #1853: CAssetManager::publish() method will throw an exception if $forceCopy and $linkAssets are both true (resurtm, mdomba)
- Bug: Table schema is refreshed on Gii model generation when schemaCachingDuration is used (SonkoDmitry)
- Bug: CDbCommand::setFetchMode wasn't accepting additional arguments needed for PDO::FETCH_CLASS (samdark)
- Bug: CCaptchaAction::validate check wasn't working properly in some cases (samdark, Qiang)
- Enh #84: Log route categories are now accepted in form of array. Added CLogRoute::except and parameter to CLogRoute::getLogs that allows you to exclude specific categories (paystey)
- Enh #104: Added CWebLogRoute::$collapsedInFireBug property to control whether the log should be collapsed by default in Firebug (marcovtwout)
- Enh #117: Added CPhpMessageSource::$extensionPaths to allow extensions, that do not have a base class to use as category prefix, to register message source (rcoelho, cebe)
- Enh #144: baseID in CHtml::checkBoxList and CHtml::radioButtonList can now be customized via htmlOptions (cebe)
- Enh #217: Added CTypeValidator::validateValue() and CTypeValidator::$strict, better check for arrays (samdark)
- Enh #259: CHttpRequest::getRestParams is now public (samdark)
- Enh #291: CFormatter::formatDate and formatDateTime now also accept strings in strtotime() format (francis_tm, cebe)
- Enh #486: CHttpSession::$gCProbability and CDbHttpSession::$gCProbability are floats now. Minimal possible $gCProbability value has been changed to the ≈0.00000005% (1/2147483647), was integer 1% before, default value left unchanged (1%) (resurtm)
- Enh #545: Add CDataProviderIterator to allow iteration over large data sets (phpnode)
- Enh #556: CDbColumnSchema::$comment property has been added. It stores comment for the table column, comment retrieving is working for MySQL, PgSQL and Oracle (resurtm)
- Enh #724: Third argument of CHtml::listData() now receives anonymous function as calculator of the text field value, PHP 5.3+ only (resurtm)
- Enh #846: Added addPrimaryKey() / dropPrimaryKey() commands to CDbMigration (ridget)
- Enh #949: Added COciSchema::resetSequence (jazahn, samdark)
- Enh #990: Added CArrayDataProvider::$caseSensitiveSort property which allows to control whether sorting should be case sensitive (resurtm)
- Enh #999: Changed md5() to crypt() in docs/guide/topics.auth, docs/blog and demos/blog. Added Wiki 425 tutorial on use of crypt() (tom--)
- Enh #1084: CDateTimeParser: MMM pattern for parsing short month names is now locale aware (resurtm)
- Enh #1146: CFileHelper::copyDirectory recursive directory creation (senz)
- Enh #1183: CDbCommand: added andWhere()/orWhere() which appends condition to the WHERE part of the query, in contrary of CDbCommand::where() which replaces it (resurtm)
- Enh #1184: CEmailValidator now supports IDN (Internationalized Domain Names), added CEmailValidator::$validateIDN property (resurtm)
- Enh #1134: CAssetManager filepath creation now can be extended thru generatePath(). Path creation is now recursive in publish(). (senz)
- Enh #1201: CMenu now supports HTML attributes for the links' wrap element specified in $linkLabelWrapper (resurtm)
- Enh #1228: Added ability to MessageCommand to generate translation files for multiple functions (Arne-S, samdark)
- Enh #1238: CJuiDatePicker is now using the native altField option to handle the hidden input when type flat is used (mdomba, christiansalazar)
- Enh #1282: CDateTimeParser: added MMMM pattern for parsing standard month names such as 'January', 'Décembre' or 'März' (resurtm)
- Enh #1286: CUrlValidator now supports IDN (Internationalized Domain Names), added CUrlValidator::$validateIDN property (resurtm)
- Enh #1289: Added support for column comments for MSSQL (CDbColumnSchema::$comment property) (resurtm)
- Enh #1299: Added CSRF token validation for PUT and DELETE (miraage, samdark)
- Enh #1369: Added CCheckBoxColumn::disabled that accepts PHP expression or anonymous function determining if checkbox for the row should be disabled (sucotronic)
- Enh #1386: Second parameter of the CHtml::value() is now able to accept anonymous function which calculates value to be used (Qiang, resurtm)
- Enh #1396: Added 'text/csv' mime-type for the 'csv' file extension in utils/mimeTypes.php (effectively used by e.g. CHttpRequest::sendFile()) (rawtaz)
- Enh #1426: Behaviors are now affecting memory consumption significantly less (slavcodev, creocoder, Qiang, samdark)
- Enh #1443: Added CHttpRequest::getRawBody() that allows reading RAW HTTP request body multiple times (itamar82, resurtm, samdark)
- Enh #1464: CCaptchaAction now supports rendering through ImageMagick, CCaptcha::checkRequirements() changed (resurtm, SonkoDmitry)
- Enh #1500: CSqlDataProvider now supports CDbCommand in constructor (slavcodev)
- Enh #1507: Added support for minOccurs, maxOccurs, nillable to CWsdlGenerator. Changed most of the methods visibility to protected. Added unit tests (lubosdz)
- Enh #1518: Allow to configure CHtml::$closeSingleTags and CHtml::$renderSpecialAttributesValue. Useful for HTML5 code (creocoder)
- Enh #1527: Added $id argument to CClientScript::registerMetaTag that allows you to override existing tags (Alex-Code)
- Enh #1531: CArrayDataProvider is now able to sort cutted array, where sorting column is not available in every entry (Yiivgeny)
- Enh #1535: HTML5 special attributes added to CHtml::renderAttributes() (creocoder)
- Enh #1538: Added CListView::ajaxUpdateError for the possibility to use a custom ajax error handler (mdomba)
- Enh #1567: Added filterSelector property to CGridView (MonkeyMaster)
- Enh #1581: Added 'unselectValue' to CHtml::dropDownList() and CHtml::activeDropDownList() to define default post value if no option is selected in multiple mode (creocoder, mdomba)
- Enh #1596: Added CGridView::rowHtmlOptionsExpression to allow set HTML attributes for the row (Ryadnov)
- Enh #1657: CDbCommandBuilder::createUpdateCounterCommand now can be used with float values (samdark, hyzhakus)
- Enh #1658: CFormatter::formatHtml() is now more flexible and customizable through new CFormatter::$htmlPurifierOptions property (resurtm)
- Enh #2343: Added CRequiredValidator::$trim property which determines to trim attribute value or not (AnatolyRugalev)
- Enh: Fixed the check for ajaxUpdate false value in jquery.yiilistview.js as that never happens (mdomba)
- Enh: Requirements checker: added check for Oracle database (pdo_oci extension) and MSSQL (pdo_dblib, pdo_sqlsrv and pdo_mssql extensions) (resurtm)
- Enh: Added CChainedLogFilter class to allow adding multiple filters to a logroute (cebe)
- Enh: Allow CDataProvider to use custom pagination and sorter (creocoder)
- Enh: Value of the CHtml::activeTextArea() can now be set through $htmlOptions['value'] (resurtm)
- Enh: Allow to customize CHtml::error() container tag (creocoder)
- Enh: CModule::setComponents() now can reconfigure already loaded components (creocoder)
- Enh: CLocale::getWeekDayName() weekday-number argument is now more compatible with date() function, allowing 0 and 7 for sunday (Yiivgeny, cebe)
- Enh: Added minified jQuery BBQ (samdark)
- Chg #1193: Upgraded jQuery to 1.8.3 (samdark)
- Chg #1373: Upgraded jquery star rating to 3.14 (samdark)
- Chg #1548: Upgraded jQueryUI to 1.9.2 (samdark)
- Chg #1563: Updated CTestCase for PHPUnit 3.7.7+ (tanakahisateru, samdark)
- Chg #1746: CDbCriteria::mergeWith() is now more consistent with all other class methods (hyzhakus, samdark)
- Chg: MSSQL unit tests updated and actualized, added SQLSRV driver support (resurtm)
- Chg: Added Oracle unit tests (resurtm)
- Chg: Updated CHttpCacheFilter to use dates as specified by RFC 1123 (bramp)
- Chg: Added punycode.js v1.1.1 (https://mths.be/punycode) and IDNA Converter v0.8.0 (http://phlymail.com/en/downloads/idna-convert.html) to the vendors (third party libraries and utilities) (resurtm)
- New: Ported offline documentation viewer from yiidoc project. Mainly usable for translations but can be used for reading offline as well (samdark)
Version 1.1.12 August 19, 2012
------------------------------
- Bug #190: WSDL return tag was not generated by CWsdlGenerator when Macintosh line endings were used inside service describing docblock (resurtm)
- Bug #1066: CMemCache: expiration time higher than 60*60*24*30 (31536000) seconds led the value to expire right away after saving (resurtm)
- Bug #1072: Fixed the problem with getTableAlias() in defaultScope() (creocoder)
- Bug #1076: CJavaScript::encode() was not compatible with PHP 5.1 (samdark)
- Bug #1077: Fixed the problem with alias in CSort (creocoder)
- Bug #1083: CFileValidator is now unsafe by default. This will prevent setting attribute when no file was uploaded (samdark)
- Bug #1087: Reverted changes to CCookieCollection::add() introduced in 1.1.11 as they were triggering E_STRICT on some old PHP-versions (suralc)
- Bug #1088: Fixed usage of proper CActiveForm id property when it's supplied with htmlOptions (mdomba)
- Bug #1094: CGridView with enabled history used to clear page title in case sorting or paging performed (Opera and Firefox only) (resurtm)
- Bug #1109: Fixed "js:" encoding BC-break in CHtml::ajax() and related methods introduced in 1.1.11 (samdark)
- Bug #1120: Fixed duplicate events processing in CGridView when ENTER was pressed for filtering (mdomba)
- Bug #1192: CHttpCacheFilter failed to comply with RFC 2616, section 10.3.5 (DaSourcerer)
- Bug #1207: Fixed an issue in CHtml::resolveValue() which occurs when handling tabular data input (Qiang)
- Bug #1225: Fixed the bug that $.fn.yiiGridView.getChecked was not working always if a custom CGridView::template was used (mdomba)
- Bug #1243: Fixed the bug that when using CUrlManager::addRules with $append=false rules were added in reverse order (samdark)
- Enh #243: CWebService is now able to deal with the customized WSDL generator classes, was hardcoded to the CWsdlGenerator before, added CWebService::$generatorConfig property (resurtm)
- Enh #636: CManyManyRelation now parses foreign key for the junction table data internally, and provide public interface to access it (klimov-paul)
- Enh #1163: CGridview does not create empty class attributes anymore (cebe)
- Chg #1099: Changed connectionId dropdown to sticky text field in Gii model generator (mdomba)
- Chg #1167: Reverted back the change to CComponent::evaluateExpression() about global function support (Qiang)
Version 1.1.11 July 29, 2012
----------------------------
- Bug #098: No correct identity value being returned when using Active Record and mssql (c-schmitz)
- Bug #114: CUniqueValidator and CExistValidator now respect table alias while creating db query condition (klimov-paul)
- Bug #145: CGettextMoFile now can parse strings with no context (eagleoneraptor)
- Bug #148: Fixed the bug in the blog demo that was not deleting right comment when not on the first page (mdomba)
- Bug #161: CCookieCollection::remove() now accepts an array of cookie options as a second argument to facilitate correct cookie removal (maximcherny)
- Bug #164: CEmailValidator.checkPort now checks the port 25 of listed MX servers (DaSourcerer)
- Bug #178: webapp creation with relative paths like ../ was not working correctly (cebe)
- Bug #193: Changed datetime column type for postgresql from 'time' to 'timestamp' (cebe)
- Bug #238: Fixed the problem that empty row could be selected in CGridView when there was no data (mdomba)
- Bug #295: Sometimes CJSON::decode returns null because native json_encode has bugs and returns null. Workaround to continue decoding when result of json_decode is null (luislobo)
- Bug #381: Fixed the bug that Gii model name input could get misspelled when autocomplete is used (mdomba)
- Bug #417: CAttributeCollections::mergeWith() does not take into account the caseSensitive (dmtrs)
- Bug #433: Fixed the bug that Gii model name input autocomplete was not working sometimes (mdomba)
- Bug #449: CDbHttpSession and CDbLogRoute now use query builder instead of DAO for proper quoting (mdomba, redguy)
- Bug #454: Removed translation on CDbConnection exception as it was creating an endless loop if the application used CDbCache (mdomba)
- Bug #517: Rule parameter sub-patterns are not checked correctly (ranvis)
- Bug #539: Fixed CUrlRule::createUrl() to treat sub-patterns as Unicode as parseUrl() does (ranvis)
- Bug #553: Criteria of related AR finders was affected after performing find with relational scopes (marcovtwout)
- Bug #618: Fixed caching of CWebUser::checkAccess() when it is called first time with and second time without $params (cebe)
- Bug #660: Fixed error when calling CDbCache::getValues (zilles)
- Bug #697: Fixed WSDLGenerator now generating proper namespace for certain complexTypes (BBoom)
- Bug #749: CActiveRecord::refresh() did not work in afterSave() for new records, will now always refresh, when db entry exists (cebe)
- Bug #769: Fixed the bug that $.fn.yiiGridView.getSelection was not working always if a custom CGridView::template was used (mdomba)
- Bug #772: CHttpRequest::getIsSecureConnection() was failing on some conditions (bulletbee, samdark)
- Bug #773: CGridView filters now filter on enter key in Internet Explorer (BBoom)
- Bug #803: Arbitary non-sorting links in CDataColumn's header were not working proper way (resurtm)
- Bug #827: Fixed the problem that CJuiSliderInput was rendering a name attribute for div element (mdomba)
- Bug #842: Active Records insert fails in MSSQL if a column has a default value of (NULL) (c-schmitz)
- Bug #852: Fixed the problem that CActiveForm was not revalidating fields if ajax submit was used (mdomba)
- Bug #859: Fixed CSort::applyOrder() and CSort::getOrderBy() to use custom table aliases (troch, samdark)
- Bug #865: CLogRoute called processLogs() even if log array was empty and caused empty emails and log files (cebe)
- Bug #879: Fixed a possible PHP error caused by CWebUser::restoreFromCookie() in combination with CHttpRequest.enableCookieValidation (kidol)
- Bug #901: Fixed possible encoding problem on exception (mdomba, samdark, cebe)
- Bug #1000: Added params to profiling token in CDbCommand::execute() to be consitent with CDbCommand::queryInternal() (cebe)
- Bug #1045: Building a query with empty array as parameter will not result in a broken sql-string anymore(suralc)
- Bug: Fixed CMenu::isItemActive() to work properly when there is a hash in the item's url (SlKelevro)
- Bug: Added missing return statement to CAuthItem->revoke() (mdomba)
- Bug: CHtml::resolveValue() ignoring of array elements accessor at the beginning of the $attribute argument now works properly (resurtm)
- Enh #120: Added ability to set cookies in an object based style without specifying the cookie-name twice (suralc)
- Enh #136: Added ability to select database connection in Gii model generator (samdark)
- Enh #157: Added ability to use models with objects implementing ArrayAccess as properties in CHtml::resolveValue (samdark)
- Enh #165: Allow CCacheDependency to be reusable across multiple cache calls (phpnode)
- Enh #171: Added support for PUT and DELETE request tunneled through POST via parameter named _method in POST body (musterknabe)
- Enh #179: CLogger now supports filtering profile timings by multiple & wildcard categories (intel352)
- Enh #191: Added ability to customize HTML classes of CLinkPager via its public properties (mashingan)
- Enh #206: Added ability to pass CDbCriteria object as AR relation parameter (samdark)
- Enh #215: Added tokens to CGridView::updateSelectors to allow adding custom selectors instead replacing only (mdomba)
- Enh #220: The URL pointing to the Google API in CGoogleApi is now protocol relative (suralc)
- Enh #237: The tabs of CTabView now support the property 'visible' (DaSourcerer)
- Enh #255: Sort CArrayDataProvider when elements is CActiveDataProvider or other object (rusmaxim)
- Enh #266: Add support for HTML5 url, email, number, range and date fields to CHtml (gregmolnar)
- Enh #267: CDbHttpSession is now able to store binary payload such as the output of the igbinary serializer (DaSourcerer, samdark)
- Enh #282: Added CCheckBoxColumn::headerTemplate to allow custom headers (mdomba)
- Enh #286: Added wildcard token to CDateTimeParser (cebe)
- Enh #294: Added deniedCallback to CAccessControlFilter and CAccessRule to allow forwarding control to a method on denial (luislobo)
- Enh #342: Added ability to pass parameters for RBAC bizRules from CAccessControlFilter configuration (claudejanz, samdark)
- Enh #356: Improved extendability of CDetailView by adding method renderItem() (cebe)
- Enh #369: Added $hashKey to CCache (kidol)
- Enh #414: Added sort parameter to yiic message command that sorts messages by key when merging (ranvis)
- Enh #455: Added support for default value in CConsoleCommand::prompt (eagleoneraptor)
- Enh #551: Added $safe parameter to CJavaScript::encode. If set to true, 'js:' will not be allowed. If you need to pass JavaScript, wrap your code with CJavaScriptExpression instead (samdark)
- Enh #552: Added support for http-level caching via CHttpCacheFilter (DaSourcerer)
- Enh #568: CHtml::getIdByName() will now convert spaces to underscore to get proper ID for HTML elements (mdomba)
- Enh #578: Added extension checks to CMemCache (samdark)
- Enh #581: Added formatSize method in CFormatter to format file sizes into units of different order - KB, MB, etc (brilyuhns, samdark)
- Enh #584: Refactored WebAppCommand to be more customizable, added more PHPDoc (samdark)
- Enh #599: Added case sensitivity check when autoloading classes (qiangxue)
- Enh #601: added the method loginRequired() to the IWebUser interface (mdomba)
- Enh #616: CVarDumper is now correctly highligting integer array keys (vernes, samdark)
- Enh #641: Added support for customizing serialization methods for cache components (DaSourcerer, Qiang)
- Enh #648: Added filterHtmlOptions property to the CGridColumn component (juban)
- Enh #652: Added namespace to yiiGridView events, so they can be easily removed by .off() jQuery method (Bethrezen)
- Enh #673: Changed CClientScript::scripts to be public (mdomba)
- Enh #675: CDateFormat::format() now returns null if the parameter $time is null (mdomba)
- Enh #690: Added sender name and proper headers for UTF8 encoding when sending e-mail in SiteController->actionContact() (mdomba)
- Enh #766: Added 'userId' to $params in CDbAuthManager::checkAccess() and CPhpAuthManager::checkAccess() (cebe)
- Enh #666: Added property $except to CValidator, a list of scenarios that the validator should not be applied to (resurtm)
- Enh #839: CListView::renderItems now resolves view file only once (nizsheanez)
- Enh #938: CFileValidator::sizeToBytes() is now public and available for using in the whole application (resurtm)
- Enh #943: CDateTimeParser is now able to parse short textual representation of month, e.g. Jan, Jun, Aug (resurtm)
- Enh #967: Commands from YII_CONSOLE_COMMANDS environment variable are now always added to yiic console application (schmunk)
- Enh: CFileValidator could validate uploaded file by its MIME-type, added $mimeTypes and $wrongMimeType properties (resurtm)
- Enh: Fixed romanian translation to use the better-supported cedilla characters (tudorilisoi)
- Enh: Added default value to CConsoleCommand::confirm (musterknabe)
- Enh: Allowed returning integer values as application exit code in CConsoleCommand actions (cebe)
- Enh: Added third parameter to CHttpCookie to configure the cookie by array (suralc)
- Enh: Added getIsFlashRequest(), proper handling of Flash/Flex request when using CWebLogRoute with FireBug (resurtm)
- Enh: Added CBreadcrumbs::$activeLinkTemplate and CBreadcrumbs::$inactiveLinkTemplate properties which allows to change each item's template (resurtm)
- Enh: Added full-featured behaviors and events CConsoleCommand::onBeforeAction & CConsoleCommand::onAfterAction (Yiivgeny)
- Enh: Added HTML5 history support on ajax requests on CGridView and CListView using History.js v1.7.2-r2 (https://github.com/balupton/history.js) from Benjamin Arthur Lupton (lightglitch)
- Enh: Changed CldrCommand to use medium dateTimeFormat and updated 18n data using newest(6546) CLDR (tanakahisateru)
- Enh: Added CErrorHandler::getHttpHeader() to send correct HTTP error codes (pgaultier)
- Enh: CGridView, only rows in tbody should have hover effect (mdomba)
- Enh: CClientScript::$defaultScriptFilePosition and CClientScript::$defaultScriptPosition for controlling default $position argument for registerScriptFile and registerScript (resurtm)
- Enh: CHttpCookie now implements __toString (suralc)
- Enh: Ability to set namespace for module controllers using CWebModule::controllerNamespace, documentation about using namespaced controllers and modules (samdark)
- Enh: Added possibility to set the container for CHtml::radioButtonList and CHtml::checkBoxList() (pgaultier)
- Enh: Added zii romanian(ro) translation; edited core messages to include proper romanian characters with diacritic marks (tudorilisoi)
- Enh: Added ILogFilter interface as an alternative to using CLogFilter as base class for implementing log filters (cebe)
- Enh: CAssetManager, added $forceCopy property which globally forces publication of asset files and directories (resurtm)
- Enh: WebAppCommand has ability to generate fresh application with git or hg specific files (resurtm)
- Enh: Gii default templates: added additional metadata (PHPDoc) of the variables passed into views for better IDE autocompletion (resurtm)
- Enh: WebAppCommand generated application: added additional metadata (PHPDoc) of the variables passed into views for better IDE autocompletion (resurtm)
- Enh #1053: CComponent::evaluateExpression will allow using global functions as callbacks (Ekstazi)
- Chg #384: CWebUser::changeIdentity() will now delete old unused session data file (Qiang)
- Chg #440: Upgraded JQuery UI to 1.8.22 (samdark)
- Chg #497: Added log component and preloaded it in default console application config in order to properly log errors (samdark)
- Chg: Upgraded jQuery to 1.7.2 (samdark)
- Chg: More unit tests added for CHtml (resurtm)
- Chg: Upgraded bundled markdown parser to v1.2.5 (DaSourcerer)
- New: Added TranslationsCommand build command aimed to help translation teams (samdark)
Version 1.1.10 February 12, 2012
--------------------------------
- Bug Fixed the bug introduced in 1.1.9 CActiveForm required field was not validated if left empty (mdomba)
- Bug #1799: Better fix for bug #1799 old fix was breaking CJuiDatePicker tabular input (mdomba)
- Bug #2284: Fixed the CActiveForm clientvalidation for tabular input (mdomba)
- Bug #3062: Fixed the bug that using yiilite.php and CLocale will cause exception (Qiang)
- Bug #3070: Fixed the CActiveForm JS error if there is no field rendered (mdomba)
- Bug #3071: Fixed the bug that afterValidateAttribute was not called properly (mdomba)
- Bug #3096: Fixed the bug when reporting an error and CHtml is not loaded (mdomba)
- Bug #3103: Fixed the bug that CActiveForm->error() was not overloading htmlOptions (mdomba)
- Bug #3107: Fixed the wrong encoding issue of Italian messages (Qiang)
- Bug #3108: Fixed the bug introduced in CActiveFinder::applyLazyCondition (Qiang)
- Bug #3166: Fixed the bug that CDbColumnSchema typecasted to NULL even for NOT NULL columns (Sam Dark)
- Enh #3063: Gii, when generating models, tableNames will be checked against reserved PHP keywords when '*' is used (mdomba)
- Enh #3097: Added CHttpRequest::decodePathInfo() (Y!!)
- Enh #3101: The methods of CSecurityManager do now work correctly for the case that mbstring.func_overload is in effect (Y!!)
- Enh #3112: Fixed the exception error display on ajax calls when YII_DEBUG is true (mdomba)
- Enh #3121: Added more rules for proper pluralization to the pluralize() method in CCodeModel and CConsoleCommand (mdomba)
- Enh #3153: CClientScript::addPackage() now returns CClientScript instance to support method chaining (Sam Dark)
- Enh #3154: Removed file existance check to allow relative path and added additional headers option to xSendFile() (mdomba)
- Enh #3169: Added CSort::SORT_ASC and CSort::SORT_DESC (Sam Dark)
- Enh: Added CActiveForm::validateTabular() to simplify ajax validation for tabular input (mdomba)
- Chg: HTML-encoded input values for exist and unique validators (Qiang)
- Chg: Upgraded JQuery UI to 1.8.17 (mdomba)
- Chg: Upgraded HTMLPurifier to v4.4.0 (Sam Dark)
Version 1.1.9 January 1, 2012
-----------------------------
- Bug: Removed unnecessary COciCommandBuilder::createInsertCommand quotes (Sam Dark)
- Bug: CHttpRequest.sendFile() gives incorrect content length when output_handler is enabled through code or non output_handler directive (Sam Dark)
- Bug #1356: Fixed CActiveForm ajax validation when checkBoxList or radioButtonList are used (mdomba)
- Bug #1968: Fixed inconsistence in CActiveForm error highlighting when checkBoxList or radioButtonList are used (mdomba)
- Bug #2603: Fixed the bug that CDbHttpSession::regenerateID call when session isn't started results in SQL error (Sam Dark)
- Bug #2623: Fixed the bug that by setting multiple classes in CGridView itemsCssClass prevents rows being selected (mdomba)
- Bug #2635: MigrateCommand migration execution time is now measured correctly (Sam Dark)
- Bug #2636: CConsoleCommand::init() wasn't called in yiic shell mode (Sam Dark)
- Bug #2773: Fixed possible CUrlManager::createUrl parameters conflict when using custom URL rule classes (Sam Dark)
- Bug #2581: Fixed CJuiTabs - not replacing id slug in header tool tips (sebas)
- Bug #2643: Output buffer wasn't properly cleaned on displaying error screen (Sam Dark)
- Bug #2733: Fixed CDbCriteria parameter names collision on unserialize (mcheale, Sam Dark)
- Bug #2786: Fixed inheritance in CLDR months parsing (mcheale, Sam Dark)
- Bug #2822: Fixed warning when "Host:" isn't present or is empty in HTTP request headers (Sam Dark)
- Bug #2853: Fixed sending of the button name in CActiveForm with enableAjaxValidation enabled (mdomba)
- Bug #2861: Removed the nested container css class in the skeleton application views (Qiang)
- Bug #2915: Fixed client validation in CCompareValidator to compare numbers instead of strings (mdomba)
- Bug #2932: CAuthItem::getType() returns string while using CDbAuthManager (Sam Dark)
- Bug #2999: CSort::getDirections, error when array is passed via $_GET (Sam Dark)
- Bug #3018: Fixed CACtiveForm ajax validation when checkBox or radioButton are used (mdomba)
- Bug #3029: Fixed the bug that empty items were not hidden when CMenu::hideEmptyItems is true (mdomba)
- Bug #3033: Fixed proper array merging in CDirectoryCacheDependency->generateTimestamps (mdomba)
- Bug #3041: Fixed possible infinite loop while processing logs (Yiivgeny, Sam Dark)
- Bug #3042: Fixed the bug that CHttpSession::setCookieMode wasn't setting session.use_only_cookies when 'none' value was used (Sam Dark)
- Chg: Upgraded JQuery UI to 1.8.16 (Sam Dark)
- Chg: Upgraded jQuery to 1.7.1 (Sam Dark,mdomba)
- Chg: Upgraded CMaskedTextField jQuery plugin (Masked Input) to 1.3, added minified version (Sam Dark)
- Chg: Reverted back the changes made to fix issue 2284 (Qiang)
- Chg #2647: Fixed inconvenient way of defining through relation (creocoder, Sam Dark)
- Chg #2951: Removed CConfiguration::createObject, CController::paginate and CHtml::getActiveId deprecated since 1.0.x (Sam Dark)
- Chg #3054: CComponent::__isset properly checks for null values (mdomba)
- Enh #2029: Added scope support to Model::relations() (creocoder, Sam Dark)
- Enh #2129: Added Monospace font as a fallback for source code on the exception view page (mdomba)
- Enh #2231: Added CMenu::itemCssClass for the possibility to assign one CSS class to all menu items (mdomba)
- Enh #2334: CHttpRequest::getPathInfo() now properly decodes both UTF-8 and ISO-8859-1 encoded URIs (Sam Dark)
- Enh #2387: Numeric keys are now displayed in error/exception stacktrace call argument if array isn't 0..X indexed (Sam Dark)
- Enh #2602: Better error handling in CHttpSession::open() when using PHP <5.3.0 (Sam Dark)
- Enh #2604: CArrayDataProvider::keyField can now be set to false to use keys from $rawData array instead of a named keyField (creocoder, Sam Dark)
- Enh #2637: Related table alias set dynamically in relational query is now available in the scopes of related model (creocoder, Sam Dark)
- Enh #2646, #2706: Added ability to join on a specific keys (creocoder, Sam Dark)
- Enh #2654: Enhanced CUrlManager::addRules() by allowing new rules to be inserted in front of the existing rules (Qiang)
- Enh #2715: CMap::mergeArray now can accept multiple arrays to be merged (firejdl, Sam Dark)
- Enh #2717: Extracted MigrateCommand::createMigrationHistoryTable method from MigrateCommand::getMigrationHistory (Sam Dark)
- Enh #2751: Added removeOld parameter to yiic message command that allows not to add obsolete lines to translation file generated (luislobo, Sam Dark)
- Enh #2795: Added Yii::t() to YiiBase::powered() (Sam Dark)
- Enh #2808: Added ability to override core classes using YiiBase::classMap (Sam Dark)
- Enh #2811: Fully automated CLDR data update, updated data to 2.0.1. Added getLanguageID, getScriptID, getTerritoryID, getRegionID, getLocaleDisplayName, getLanguage, getScript, getTerritory methods to CLocale (kshaw, Sam Dark)
- Enh #2823: Added autocomplete for Gii "Table Name" field (Sam Dark)
- Enh #2855: CWebUser::login() returns the login status (mdomba)
- Enh #2872: Added CConsoleCommand::prompt() that asks for input and CConsoleCommand::confirm() that asks for confirmation (Sam Dark)
- Enh #2890: Added CInlineValidator::clientValidate to set custom client validation (mdomba)
- Enh #2914: Added CClientScript::addPackage (Sam Dark)
- Enh #2929: Added forceDownload to xSendFile options to choose between attachment and inline disposition. (mdomba)
- Enh #2981: Added CHtml::liveEvents to set the default global style for attaching jQuery event handlers. (mdomba, Sam Dark, Ekstazi)
- Enh #3020: Added HTTP_REFERER information to the exception log (mdomba)
- Enh #3024: Added CDbMigration::refreshTableSchema() that refreshes specified table schema cache (Sam Dark)
- Enh: Documented component accessors with @property for significantly better IDE autocomplete (Sam Dark, Detonator, Athari)
- Enh: Added CWebUser->loginRequiredAjaxResponse - value to be returned for ajax calls in case the user session has expired (mdomba)
- Enh: CFileCache::get() does now suppress a possible PHP error which might occur on concurrent requests (Y!!)
- Enh: jquery.yiiactiveform.js added check for form visibility to validate() to prevent JS error when using CActiveForm with jQuery dialog (mdomba)
- Enh: removed the check for ajax call in CErrorHandler::handleException() (mdomba)
- Enh: CAssetManager now generates different hash for files/directories with different mtime (Sam Dark)
- Enh: Yii error screen will now display proper message like error/warning/notice (mdomba)
- Enh: CHtml::clientchange() now uses the new jQuery on() method for event binding (mdomba)
Version 1.1.8 June 26, 2011
---------------------------
- Bug: Fixed a typo that may cause issue when setting custom script packages with baseUrl option for CClientScript (Qiang)
- Bug #2001: CGridView now renders the body after the footer in order to conform to the standard (Qiang)
- Bug #2236: CJuiTabs - added id to ajax tabs (sebas)
- Bug #2272: Fixed the bug of undefined index css in CTreeView (mdomba)
- Bug #2274: CDbCriteria can't merge "with" anymore if a scope applied another "with" condition (Sam Dark, Michael)
- Bug #2275: Fixed the bug that ajax error handler was not called in case of exception (mdomba)
- Bug #2284: Fixed the bug that CActiveForm clientValidation did not work with tabular input forms (Qiang)
- Bug #2292: Fixed the bug that CActiveDataProvider may ignore the specified criteria for the sorting configuration (Qiang)
- Bug #2294: Fixed the bug that duplicated PK columns may appear in the join SQL statement if custom select option is used (Qiang)
- Bug #2303: Fixed not logging anything on WSDL service failure (Sam Dark)
- Bug #2312: Fixed the bug that auto-incremental columns for MSSQL may return non-integers as last insert ID (Qiang)
- Bug #2328: Fixed the bug that table names was not quoted in CDbAuthManager (mdomba)
- Bug #2338: Fixed a typo in the client validation code for CNumberValidator (Qiang)
- Bug #2359: Fixed the bug that checkbox in Gii view template may be hidden automatically (Qiang)
- Bug #2377: Fixed the bug that jsonp was expected instead of JSON when using AJAX and CAutoComplete at the same page (Sam Dark)
- Bug #2382: Fixed the bug that yiic wasn't able to run if there is no commands dir in application (Sam Dark)
- Bug #2394: Fixed a typo in CDbCache that may cause mget() to fail (Qiang)
- Bug #2409: Fixed the bug that CCaptcha::buttonOptions is not respected (Qiang)
- Bug #2411: Fixed the bug that CCaptcha will fail when setting buttonType to be 'button' (Qiang)
- Bug #2422: Fixed the bug that calling CLogger::flush(true) multiple times may cause duplication of dumped messages (Qiang)
- Bug #2426: Fixed the bug in Gii about calling a non-static method in a static way (Qiang)
- Bug #2463: Fixed the bug that INSERT statement created by COciCommandBuilder may fail in some cases (Qiang)
- Bug #2475: Fixed the bug that CMssqlCommandBuilder and COciCommandBuilder don't respect parameters declared in CDbExpression when doing insertion and updating (Qiang)
- Bug #2485: Fixed the bug that CMssqlPdoAdapter is not used when the driver is sqlsrv (Qiang)
- Bug #2509: Fixed the bug that AR for MSSQL may fail if on different catalogues (Qiang)
- Bug #2516: CTimestamp::getDate() produced wrong output with the default timestamp (Y!!)
- Bug #2538: Fixed the bug that AR may join with incorrect columns (Qiang)
- Bug #2544: Fixed the bug that setting CJuiDatePicker.language to be 'en' will use wrong language (Qiang)
- Bug #2574: Fixed the bug that overriding CActiveRecord::primaryKey() does not set the isPrimaryKey flag for columns (Qiang)
- Bug: CMapIterator current key wasn't initialized properly (Sam Dark, Detonator)
- Bug: Controller generated with Gii CRUD wasn't able to handle non-integer primary key (Sam Dark)
- Bug: Query caching may give incorrect caching results when bindParam or bindValue is used (Qiang)
- Bug: Changing CActiveForm.errorMessageCssClass had no effect when ajax and client validation were disabled (Y!!)
- Bug: Error when using CUniqueValidator with models indexed by specific field (Sam Dark, Yiivgeny)
- Bug: Fixed the bug that CAssetManager doesn't set permission mode according to newDirMode and newFileModel properties when publishing a directory (Qiang)
- Enh #2319: Added support to call behavior scope through criteria 'with'=>array('scopes'=>'behaviorScope') (Sam Dark, creocoder)
- Enh #2262: Added warning log when a session fails to start by CHttpSession (Qiang)
- Enh #2264: Added an option to the model code generator such that the relation generation can be disabled (Qiang)
- Enh #2268: Added CClientScript::getPackageBaseUrl() (Qiang)
- Enh #2273: Used better merging algorithm to build query parameters that are of array type in CUrlManager (Qiang)
- Enh #2299: Added CAssetManager.newFileMode and newDirMode (Qiang)
- Enh #2325: Added $option parameter to CDbCommand::select() to support special SELECT syntax (Qiang)
- Enh #2341: More verbose log message for CModel::onUnsafeAttribute. Added model class (Sam Dark)
- Enh #2357: Documented CWebApplication accessors with @property for better IDE autocomplete (Sam Dark)
- Enh #2361: Added CDbConnection::pdoClass that allows to specify and use custom PDO wrapper class (Sam Dark)
- Enh #2365: Added support for creating more complex index by using createIndex() of query builder. (Qiang)
- Enh #2386: Added CController::renderClip() (Qinag)
- Enh #2389: MessageCommand now accepts overwrite option determining if merge result will overwrite existing file (Sam Dark)
- Enh #2410: Improved CHtml::error() so that it can take attribute names in tabular format (Qiang)
- Enh #2424: CDbConnection::beginTransaction() will now trigger a trace message for better debugging (Y!!)
- Enh #2436: Added support for allowing console applications to call createUrl() (Qiang)
- Enh #2450: Added Ctype extension check to Yii requirements checker (Sam Dark)
- Enh #2474: Enhanced CDbCommand::insert() and update() to support CDbExpression (Qiang)
- Enh #2483: Added CGridView::$ajaxUrl and CListView::$ajaxUrl (Qiang)
- Enh #2493: Added money column type to the query builder (Qiang)
- Enh #2500: Added possibility to use a custom click handler for CButtonColumn default delete button (mdomba)
- Enh #2524: CActiveRecord::exists() now respects the scopes applied (Qiang)
- Enh #2532: Improved Yii class autoloader to support Web servers that do not allow changing PHP include paths. (Qiang)
- Enh #2534: Added CHtml::decode() (Qiang)
- Enh #2535: Added YiiBase::setLogger() (Qiang)
- Enh #2555: Exposed CFileCache::gc() so that garbage collection can be explicitly invoked (Qiang)
- Enh #2556: Improved exception display in ajax mode (Qiang)
- Enh #2571: Improved the code for cleaning output buffers in CErrorHandler (Qiang)
- Enh: XHR is now passed to CButtonColumn error JavaScript callback as a first argument (Sam Dark)
- Enh: Added CHttpSession::regenerateID() and improved CWebUser::changeIdentity() by regenerating session ID (Qiang)
- Enh: Added CActiveRecord::saveCounters() (Qiang)
- Enh: Added Brazilian Portuguese translation (pt_br) of the core messages (bastardgoblin)
- Enh: CJSON::encode() can now encode non-UTF8 data (Qiang)
- Enh: Added CLogger::autoDump to allow writing log messages to destinations in "real time" (Qiang)
- Enh: Added support for using custom URL rule classes with CUrlManager (Qiang)
- Enh: Added input length check to email and url validators to improve security (Qiang)
- Enh: Added support to allow registering a class autoloader after Yii's default autoloader (Qiang)
- Enh: Unit tests for validators (Kevin Bradwick)
- Chg #2251: Changed the constructor of CUploadedFile to be public (Qiang)
- Chg #2258: Added support to invalidate cached content by setting COutputCache::duration to be 0 (Qiang)
- Chg #2261: Upgraded HTMLPurifier to v4.3.0 (Sam Dark)
- Chg #2309: Changed XML mimetype to application/xml for more interoperability (Sam Dark)
- Chg #2370: Upgraded JQuery UI to 1.8.13 (Sam Dark)
- Chg #2401: Upgraded jQuery to 1.6.1 (Sam Dark)
- Chg #2452: Upgraded Blueprint CSS to 1.0.1 (Sam Dark)
- Chg #2482: CWebService will not display source file name and error line number in production mode (Qiang)
- Chg #2496: Setting CDbConnection::$emulatePrepare to be false will now explicitly set PDO::ATTR_EMULATE_PREPARES to be false (Qiang)
- Chg: Changed CHtml::clientChange event binding to support custom event types and avoid conflicts when using AJAX (Sam Dark)
- Chg: Changed all js live() calls with on() as live() is deprecated (mdomba)
Version 1.1.7 March 27, 2011
----------------------------
- Bug #1080: Correct recursive merging for CDbCriteria::with (creocoder, Sam Dark)
- Bug #1624: Fixed the bug that Gii would generate only one relation for a parent that has a child with more FK linking to it (mdomba)
- Bug #1809: Fixed the bug that CPgsqlSchema did not detect sequence names correctly in some scenarios (Qiang)
- Bug #1984: Fixed firing event multiple times when using live()/delegate() on AJAXified pages (Ekstazi, Sam Dark)
- Bug #2026: Fixed the bug that migration command does not respect the connectionID property value (Qiang)
- Bug #2032: Fixed the bug that beginCache with renderDynamic was not working if used multiple times (mdomba)
- Bug #2037: Fixed CGridView js bug on selectionChanged "sboxname is undefined" (mdomba)
- Bug #2060: Fixed the bug that CWebUser::getFlashes() would return a counter array in the result (Qiang)
- Bug #2097: CHttpRequest::getUrl() should be the same as getRequestUri (Qiang)
- Bug #2099: Fixed CDbCriteria::mergeWith error (creocoder, Sam Dark)
- Bug #2107: Fixed the bug that calling CSqliteSchema::resetSequence() may throw exception when no autoincrement column (Qiang)
- Bug #2130: Fixed bug that Gii code/diff view was not starting from top (mdomba)
- Bug #2131: Fixed the bug that CGridView ajax calls would sometime display error alert when leaving the current page (mdomba,Qiang)
- Bug #2136: CGridView filter now uses jQuery serialize() instead of param() so that a checkbox can be used as a filter (mdomba)
- Bug #2140: Fixed the problem that CGridView even rows where not properly rendered in Firefox and Chrome (mdomba)
- Bug #2146: Fixed the bug in CFileHelper::getExtension, validatePath and getMimeTypeByExtension that was not finding the file extension correctly (mdomba)
- Bug #2169: Fixed the bug that some columns are not properly quoted in MigrateCommand (Qiang)
- Bug #2178: Fixed the bug that query builder did not recognize the AS keyword when using table alias (Qiang)
- Bug #2183: Fixed the bug that calling CActiveDataProvider::getTotalItemCount() explicitly would make the applied scopes disappear (Qiang)
- Bug #2188: 'join' in default scopes is now respected by STAT relations (creocoder, Sam Dark)
- Bug #2202: Fixed the bug that when setting CJuiDatePicker.flag=true, the date picker would not appear (Qiang)
- Bug #2214: Fixed the bug that renameColumn for MSSQL did not work correctly (Qiang)
- Bug: Fixed the bug that a PHP notice may occur in exception view if a method in the call stack has a very complex signature (Qiang)
- Bug: Fixed error that CGridview breaks when updating non-cgridview elements (mdomba)
- Bug: Fixed the bug in CCheckBoxColumn, "check all" checkbox was not being checked/unchecked when needed (mdomba)
- Bug: Fixed the bug in CGridView, selectionChanged was not called when "check all" was clicked (mdomba)
- Bug: Fixed resetting sequence in CDbCommand::truncateTable (Sam Dark)
- Bug: Fixed CMemCache incompatibility with some pecl-memcache and memcached versions (Sam Dark)
- Enh #558, #1755: Added parametrized named scopes, added scopes to criteria, implemented scope criteria merging (creocoder, Sam Dark)
- Enh #802: Added RESTful URL management (Qiang)
- Enh #923: Improved CUrlManager::parsePathInfo() to support multi-dimensional input arrays (Qiang)
- Enh #1117: Added support for "through" in Active Record relations allowing to handle association table data (creocoder, Sam Dark)
- Enh #1285: Added support for using custom script packages with CClientScript (Qiang)
- Enh #1741: Exposed CActiveForm::attributes and summaryID (Qiang)
- Enh #1770: Added CDbColumnSchema::autoIncrement property to allow checking whether a DB column is auto-incremental (Qiang)
- Enh #1782: Added updateSelector property to both CGridView and CListView (Qiang)
- Enh #1786: Enhanced CUrlValidator by adding 'validSchemes' and 'defaultScheme' property (Y!!)
- Enh #1784: Enhanced CWidget::getViewPath() to support returning themed view path (Qiang)
- Enh #1792: Enhanced CGridView: on ajax error a proper message is composed and displayed or optionally sent to the custom error handler (mdomba)
- Enh #1795: Added CFormInputElement::$enableAjaxValidation and $enableClientValidation to allow turning on/off AJAX validation for individual input fields (Qiang)
- Enh #1816: Added $dumpLogs parameter to CLogger::flush() so that log messages can be forced to be dumped at will (Qiang)
- Enh #1843: Added 'uncheckValue' option to CHtml::activeRadioButtonList and CHtml::activeCheckBoxList. It allows to avoid hidden field rendering (creocoder, Sam Dark)
- Enh #1847: Exposed CClientScript::$hasScripts (Qiang)
- Enh #1852: Added CWebUser::authTimeout to support separation between authentication timeout and session timeout (Qiang)
- Enh #1868: CDbConnection will now open a DB connection only when needed, unless autoConnection is set true (Qiang)
- Enh #1937: Added support to use custom input ID for input fields that need AJAX-based validation (Qiang)
- Enh #1993: Allow AR relations across separate db connections (Qiang)
- Enh #1996: Added support for using parameter binding with class-based actions (Qiang)
- Enh #1999: Added CCaptchaAction::offset property in order to decrease or increase the readability of the captcha (Y!!)
- Enh #2011: Added CDbCommand::setFetchMode to allow setting PDO result fetching mode (Sam Dark)
- Enh #2013: When creating model with Gii, database field names will be checked to conform with PHP variable naming rules (mdomba)
- Enh #2024: Added CHttpRequest::getPut() and getDelete() to fully support RESTful requests (Qiang)
- Enh #2059: Added support to respect the "target" attribute of an element generated by CHtml with "submit" HTML options (Qiang)
- Enh #2063: The CActiveForm JavaScript should now correctly trigger validaton for checkbox and radio type input fields (Y!!)
- Enh #2068: CTimestampBehavior::timestampExpression can now be a DB expression (Qiang)
- Enh #2093: CDataColumn will now always render a filter if the filter property is a string (Qiang)
- Enh #2094: Added SQL statement display in debug mode when an error occurs while executing a SQL (Qiang)
- Enh #2105: Added CButtonColumn::afterDelete so that a custom javascript function can be called after the delete function (mdomba)
- Enh #2108: Added CGridView::blankDisplay to allow customizing blank cell display (Qiang)
- Enh #2125: Added memcached check and hint to requirements checker (Sam Dark)
- Enh #2133: Set default focus to the password input for Gii login page (Qiang)
- Enh #2141: Allow the 'label' option of CMenu menu items to be optional and take an empty string value (Qiang)
- Enh #2142: Added CWebUser::autoUpdateFlash (Qiang)
- Enh #2143: Added htmlOptions to CTreeView::data so that additional options can be set for any tree view node (mdomba)
- Enh #2172: Added CDbMigration::execute() (Qiang)
- Enh #2179: Added CMultiFileUpload::options so that additional options can be passed to the constructor of the multifile object (mdomba)
- Enh #2185: Allow the column type to be optional when specifying columns for CGridView (Qiang)
- Enh #2197: Added $escape parameter to CDbCriteria::compare() (Qiang)
- Enh #2198: Improved CJuiTabs so that the tab content can be skipped (Qiang)