Yii Changelog

What's new in Yii 1.1.17

Jun 16, 2016
  • PHP7 compatibility.
  • CHttpRequest can now automatically parse JSON with application/json content type.
  • There's now database-based StatePersister implementation.
  • Autoloader now doesn't error in case of non-existing namespaced classes so other autoloaders have chance to handle these.

New in Yii 1.1.14 (Aug 13, 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 `` not just with `` 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)

New in Yii 1.1.13 (Jan 3, 2013)

  • 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: 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 (http://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)

New in Yii 1.1.13 RC (Dec 6, 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: 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: 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 (http://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)

New in Yii 1.1.12 (Dec 6, 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)

New in Yii 1.1.11 (Jul 30, 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)

New in Yii 1.1.10 r3566 (Feb 14, 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)

New in Yii 1.1.9 r3324 (Jan 11, 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 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)

New in Yii 1.1.7 r3135 (Apr 6, 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)
  • Enh #2199: Added CListView::separator (Qiang)
  • Enh #2206: Added $clearErrors parameter to CModel::validate() (Qiang)

New in Yii 1.1.6 r2877 (Jan 17, 2011)

  • Bug #997: Fixed the bug that relational AR query with page-by and sorting may fail to work for SQL Server (Qiang)
  • - Bug #1775: Fixed the bug that AR and Gii may fail for tables not in default schema in Oracle DB (Qiang)
  • - Bug #1790: Fixed the bug that CJSON::encode may generate invalid encoding result when data contains float numbers (Qiang)
  • - Bug #1799: Fixed the bug that CJuiDatePicker::$name may cause a PHP error (Y!!)
  • - Bug #1819: CHttpRequest::getPathInfo() now respects encoded characters (Sam Dark, creocoder)
  • - Bug #1851: CFileHelper::getMimeType() was causing an error if used with PHP 5.2 and PECL fileinfo extension (Sam Dark)
  • - Bug #1858: Fixed the bug that CDbCommandBuilder::createInCondition() doesn't work with composite keys (Qiang)
  • - Bug #1864: Fixed a typo in CDbCommandBuilder that disables correct handling of group and having in createCountCommand (Qiang)
  • - Bug #1878: Fixed the issue that keys rendered in grid view and list view should be encoded (Qiang)
  • - Bug #1879: Fixed the issue the AR does not work with PostgreSQL array column type (Qiang)
  • - Bug #1891: Fixed the bug that on CListView ajax request was generating a DOM container inside itself (mdomba)
  • - Bug #1902: Fixed the issue that CActiveRecord::exists() may cause ambiguous column error when used in relational query (Qiang)
  • - Bug #1920: Fixed the issue that the summary displayed by CGridView and CListView may be incorrect for SQL Server (Qiang)
  • - Bug #1936: Fixed the issue that flat CJuiDatePicker is not closing it's tag correctly (sebas)
  • - Bug #1942: Fixed the bug that CSecurityManager::computeHMAC() generates non-standard HMAC (Qiang)
  • - Bug #1945: Fixed the bug that user-supplied form ID is not honored when building a form using CForm with a model (Qiang)
  • - Bug #1948: Fixed a bug in generating the number symbols of I18N data from CLDR (Qiang)
  • - Bug #1975: Fixed the bug that caused a PHP error when CAssetManager::publish() tried to create a symlink in a non-existing directory (Y!!)
  • - Bug: Fixed the bug that CActiveForm generates unnecessary js code about setting focus (Qiang)
  • - Bug: Fixed CDateTimeParser::parse() default hour, minute and second handling when they are not used in pattern (Sam Dark)
  • - Enh #1733: Updated multifile plugin used by CMultiFileUpload to version 1.47 (mdomba)
  • - Enh #1771: Added $driverOptions parameter to CDbCommand::bindParam() method (Qiang)
  • - Enh #1785: Added CAssetManager::$excludeFiles property to support exclusion of irrelevant files from the publishing process (Y!!)
  • - Enh #1836: The contact form model of the blog demo does now make use of CCaptcha::checkRequirements (Y!!)
  • - Enh #1842: CHtml::button will not render the name attribute if it is set null (Qiang)
  • - Enh #1860: Changed the signature of CValidator::createValidator() to make it easier to use (Qiang)
  • - Enh #1849: Updated Blueprint CSS to version 1.0 (sebas)
  • - Enh #1872: Added $defaultUrl parameter to CWebUser::getReturnUrl() (Qiang)
  • - Eng #1875, #1987: Added support for CLDR-based plural forms format and number placeholders to Yii::t (creocoder, Sam Dark, Qiang, dmitriy.trt)
  • - Enh #1877: createAbsoluteUrl in CWebApplication and CController will now respect URL rules that already have host info built-in (Qiang)
  • - Enh #1885: Added ipFilters to the Gii-created config file to reduce user confusion (Sam Dark, Steve Friedl)
  • - Enh #1895: Added CDbDataReader implements Countable interface (mdomba)
  • - Enh #1899: Added checkIntegrity and resetSequence for SQL Server (Qiang)
  • - Enh #1929: Improved CActiveForm so that it can be used multiple times on the same page for the same type of data model (Qiang)
  • - Enh #1931: CDbConnection.tablePrefix can now use an empty string as table prefix (Qiang)
  • - Enh #1962: Added submenuOptions option to CMenu::items (Qiang)
  • - Enh #1995: Added CDbConnection::driverMap to allow more easily customizing schema classes (Qiang)
  • Updated CLDR data to version 1.9 (Sam Dark)
  • Allowed passing multiple forms or choice format quantity parameter without wrapping it with array (Sam Dark)
  • CDbConnection::quoteColumnName and quoteTableName will properly quote table prefix and schema prefix. (Qiang)
  • Added CConsoleCommand::init() (Qiang)
  • Improved the exception display with source code for each call stack (Sam Dark, Qiang)
  • Improved the error display in console command mode (Qiang)
  • Added support for using anonymous parameters and global options in console commands (Qiang)
  • Added message translations in Czech and Croatia (Qiang)
  • Enhanced CFileLogRoute to process the logs faster (Y!!)
  • Improved IDE code completion for Yii::app()-> (Sam Dark)
  • CSort now supports relation.field notation to sort grids by related model fields (Sam Dark, denis909)
  • Added CHttpRequest->xSendFile() to process file download requests by using X-Sendfile header (mdomba)
  • Refactored CMenu by adding CMenu::renderMenuItem to make it easier to be extended (Qiang)
  • Refactored CCheckBoxColumn for better use, added CCheckColumn->selectableRows (mdomba)
  • #1914: Composite foreign keys should be separated by commas in CActiveRecord::relations() (Qiang)
  • #1949: CGridView will now display the first page after changing filters (Qiang)
  • isset($model->x) and isset($model['x']) are now identical for CActiveRecord models (Sam Dark)
  • Changed CHtml::clientChange() to make $live a configurable option in $htmlOptions (Qiang)
  • #1191: Implemented the database migration feature (Qiang)
  • Added query builder (Qiang)

New in Yii 1.1.5 r2654 (Nov 18, 2010)

  • Added support for console command actions and parameter binding
  • Added support for autoloading namespaced classes
  • Added support for theming widget views

New in Yii 1.1.4 r2429 (Oct 4, 2010)

  • #698: Now you can get and modify criteria of the current query in beforeFind() event handler (Sam Dark)
  • #1031: Fixed the bug that the filters in CGridView does not work in IE (Qiang)
  • #1119: Added CUploadedFile::reset() to make it more test-friendly (Qiang)
  • #1176: Fixed the bug that CVarDumper does't highlight well strings with quotes (Qiang)
  • #1376: Fixed the bug that the timestamps displayed in Web application log may not be formatted properly (Qiang)
  • #1377: Fixed the bug that CStarRating did not work when not setting the model property (Qiang)
  • #1382: Fixed space removal in CDbCriteria::compare() (Sam Dark)
  • #1384: SET NAMES problem with MSSQL PDO Provider (Qiang)
  • #1390: AR may lose precision if a column is declared as unsigned int for MySQL database (Qiang)
  • #1404: CSecurityManager::validateData() fails when the data is an array (Qiang)
  • #1408: CDbAuthManager may throw exception when unserializing data from auth items in PHP 5.3 (Qiang)
  • #1432: AR find methods with JOIN in query criteria may populate AR objects with attribute values belonging to other tables (Qiang)
  • #1435: Table alias declared in scopes may be ignored when performing relational findByPk and findByAttributes queries (Qiang)
  • #1476: Fixed the bug that setting 'id' to be false will still render 'id' attribute in CHtml::radioButton and checkBox (Qiang)
  • #1455: CFormButtonElement generates wrong type for button tags (Qiang)
  • #1488: When using cookies with CJuiWidget jquery.cookie.js is not registered (sebas)
  • #1493: ShellCommand wouldn't process logs after exiting. (Qiang)
  • #1521: CUniqueValidator may incorrectly fail the validation of a non-PK column when updating both this column and the PK column (Qiang)
  • #1526: CFormInputElement by default should only show error if CForm::showErrorSummary is false (Qiang)
  • #954: Refactored CActiveRecord and CActiveFinder so that CActiveRecord::with() always returns the AR object itself (Qiang)
  • #1019: Improved CDataFormatter for formatting numeric weekdays (Qiang)
  • #1073: Allow dependencies to be set in constructor of CChainedCacheDependency. Also allow dependencies to be specified as configurations. (Qiang)
  • #1087: Allow CDbCriteria to be used as dynamic relational query options (Qiang)
  • #1104: Added argument "$" to jQuery block to prevent $ alias conflict (mdomba)
  • #1108: Added option to CFileHelper::getMimeType() to allow enable and disable falling back to extension-based MIME detection (Qiang)
  • #1120: Improved error handling in session write handler of CDbHttpSession (Qiang)
  • #1128: Improved error reporting when assets directory does not exist or is not writable (Qiang)
  • #1222: Added relations information to Gii generated model's PHPDoc (Sam Dark)
  • #1244: CActiveRecord::count() now respects GROUP-BY and HAVING settings (Qiang)
  • #1347: Added CPagination::validateCurrentPage (Qiang)
  • #1358: Enhanced the 'together' option of HAS_MANY/MANY_MANY relations so that setting it true will ensure the related table is joined with the primary table in a single SQL (Qiang)
  • #1359: Added CActiveRecord::countByAttributes (Qiang)
  • #1361: Added linkLabelWrapper, firstItemCssClass and lastItemCssClass to CMenu (Qiang)
  • #1366: Added CListView::itemsTagName (Qiang)
  • #1371: Improved js code in gii view templates to allow easier subclassing (Qiang)
  • #1392: Added CCaptchaAction::fixedVerifyCode (Qiang)
  • #1400: Enhanced CActiveRecord::getAttributeLabel() to support returning labels for related object's attribute (Qiang)
  • #1412: Yii::import() now throws an exception when trying to include nonexisting PHP file (Qiang)
  • #1414: Several enhancements to MSSQL driver used by AR (Qiang)
  • #1433: Added CMessageSource::forceTranslation (Qiang)
  • #1434: Added zii message translation in Italian (enrico.detoma)
  • #1440: CDbException does now provide a valid error code if possible (Y!!)
  • #1443: Added CCheckBoxColumn::checked to allow settings checked state for each CCheckBoxColumn row (Sam Dark)
  • #1444: Added CFilter::init() (Qiang)
  • #1449: Changed CDbCriteria's base class to be CComponent to better report configuration errors (Qiang)
  • #1461: Enhanced CEmailLogRoute to support additional email headers (Y!!)
  • #1471: CActiveForm AJAX validation should be cancelled when the form is already submitted (Qiang)
  • #1509: Improved CMarkdownParser so that it can be used in console mode (Qiang)
  • #1525: Added support to allow customizing 'name' attribute of checkboxes generated by CCheckBoxColumn (Qiang)
  • #1532: Exposed the serviceName and namespace properties of CWsdlGenerator (Qiang)
  • Added CPortlet::hideOnEmpty property (Qiang)
  • Added CValidator::safe to allow marking a validator as safe or unsafe (Qiang)
  • Added CDbCacheDependency::params (Qiang)
  • Added CUrlManager::addRules() (Qiang)
  • Added support for using sqlsrv driver with MSSQL (Qiang)
  • Added CActiveForm::focus to set input focus on page load (mdomba)
  • Added jQuery UI as a core client script package (Qiang)
  • #1309: CHttpRequest::getPathInfo() now always returns decoded results (Qiang)
  • #1494: CHtml::ajaxSubmitButton() will generate a submit button (Qiang)
  • #1515: CModel::onUnsafeAttribute() will be invoked only when $safeOnly is true when calling CModel::setAttributes (Qiang)
  • Replaced jQuery live() with delegate() in CHtml-generated js code (Qiang)
  • Upgraded JQuery UI to 1.8.4 (Sam Dark)
  • Upgraded code highlighter: added sh and VBScript, fixed comments in CSS and hex numbers in JavaScript (Sam Dark)
  • Added CSqlDataProvider and CArrayDataProvider (Qiang)
  • Added support for automatic action parameter binding from $_GET (Qiang)

New in Yii 1.1.3 r2247 (Sep 1, 2010)

  • Bug #856: Logout doesn't work when CWebUser::identityCookie is configured and allowAutoLogin is set true (Qiang)
  • Bug #1027: CButtonColumn->buttons is ignored (Sam Dark)
  • Bug #1039: Table prefix feature did not work with PostgreSQL and AR (Qiang)
  • Bug #1046: Fixed the bug that CDbFixtureManager did not properly initialize the fixture data (Qiang)
  • Bug #0147: Fixed the bug that changing CAuthItem.description value would cause an exception when using CPhpAuthManager (Qiang)
  • Bug #1050: Fixed the bug that filter conditions were prefilled with default values when using an AR model in CGridView (Qiang)
  • Bug #1109: CActiveRecord::getRelated() did not refresh when setting the $refresh parameter to be true (Qiang)
  • Bug #1142: Fixed the character encoding in polish translations (pawel.drylo)
  • Bug #1149: CHtml::resolveName() does not work with multiple dimensional attributes (Qiang)
  • Bug #1176: CVarDumper may omit some backslashes in the syntax-highlighted display (Qiang)
  • Bug #1190: CLocale::getMonthNames may fail due to a typo (Qiang)
  • Bug #1208: Unsigned integer column type was not handled correctly (Qiang)
  • Bug #1213: Fixed the bug that skipOnError doesn't have effect on inline validators (Qiang)
  • Bug #1226: CWebUser::autoRenewCookie does not handle the case when the user is already logged in (Qiang)
  • Bug #1227: CActiveRecord::resetScope doesn't work with default scope (Sam Dark)
  • Bug #1231: CPgsqlColumnSchema may incorrectly parse the default column when DB expression is used (Qiang)
  • Bug #1241: DB search parameters should have special characters escaped (Qiang)
  • Bug #1242: Fixed the bug that CGridView filtering and item deletion would not work when ajax-update is disabled (Qiang)
  • Bug #1252: CJSON::encode() was not able to encode models and model arrays (Sam Dark)
  • Bug #1262: Fixed the bug that CDbFixtureManager was unable to load fixture data if table prefix feature is used (Qiang)
  • Bug #1292: CDateTimeParser::parse() did not honor the number of digits in the required format in some cases (Qiang)
  • Bug #1293: Added tag to initial CAPTCHA image URL to avoid caching issue (Qiang)
  • Bug #1295: CHtml::beginForm() would generate useless CSRF field when in GET mode (Qiang)
  • Bug: Fixed AR memory leaks on PHP

New in Yii 1.1.1 r1.907 (Apr 6, 2010)

  • AR may lose precision for numbers of bigint type (Qiang)
  • COciColumnSchema must return 'double' if precision and scale designators of NUMBER field are absent (Qiang)
  • CUniqueValidator did not work with CFormModel (Qiang)
  • typo in CLinkColumn about linkHtmlOptions (Qiang)
  • typo in CFormatter about calling method_exists() (Qiang)
  • CWidgetFactory didn't set the owner of the newly created widgets correctly (Qiang)
  • CDateFormatter::formatTimeZone() may report error for certain locale data (Qiang)
  • A module generated by the yiic module command did not use the application layout by default (Qiang)
  • The 'alias' option set in default scope was ignored when performing an eager relational query (Qiang)
  • CLocale::getWeekDayName() causes PHP error when requesting 'narrow' format data (Qiang)
  • CTabView does not target tab links correctly when extra elements are put in the header (Qiang)
  • CGettextPoFile should allow optional msgctxt (Qiang)
  • CFormInputElement doesn't respect element-id if set (Sam Dark)
  • COcSchema::quoteTableName() and quoteColumnName() should quote the names (Qiang)
  • The 'alias' option set in default scope was ignored when some find methods in AR (Qiang)
  • "yiic message" command generates incorrect message file name when used in a module context (Qiang)
  • Added documentation about the "js:" prefix in CJuiSortable (sebas)
  • Change the way CJuiDatePicker sets its language option (sebas)
  • Fixed the issue that when CSRF is turned on, delete button doesn't work for CGridView (Qiang)
  • Setting the 'with' option in criteria array doesn't trigger eager loading for AR (Qiang)
  • CActiveRecord should update oldPrimaryKey after calling save() CForm renders invalid 'name' and 'type' attributes when used to generate nested forms (Qiang)
  • Fixed the bug that beforeAjaxUpdate/afterAjaxUpdate of CGridView/CListView do not take effect.
  • Fixed the bug that the names of URL parameters were not encoded (Qiang)
  • CGridView and CListView may not register the needed CSS file for the pager (Qiang)
  • Added support to allow CHtml links and buttons work in AJAX responses (Qiang)

New in Yii 1.1.0 R1700 (Jan 21, 2010)

  • Bug #720: The new table prefix feature does not work with many-many relationship in AR (Qiang)
  • Bug #735: CDbCriteria should save 'with' attribute when toArray() is called (Qiang)
  • Chg #796: The alias name for the primary table in a relational AR query is changed to be 't' (Qiang)
  • Chg: renamed CDetailView::model to be 'data'. renamed 'dataField' and 'dataExpression' to be 'name' and 'value' for grid view columns. (Qiang)
  • Enh #656: Added support to indicate the size of enum column type for MySQL schema (sebas)
  • Enh #767: Added CUrlRule::matchValue option to support creating URLs only when a rule's parameter value patterns are matched. (Qiang)
  • Enh: Improved the default code generated by the yiic tool (Qiang)
  • Enh: Refactored the blog demo (Qiang)
  • New: Added CFormatter and CApplication::format (Qiang)
  • New: Added CController::forward() and CController::route (Qiang)

New in Yii 1.0.6 R 1102 (Jun 7, 2009)

  • Bug #305: column aliases used in CActiveFinder should be quoted so that their cases are kept (Qiang)
  • Bug #308: typo in CLinkPager CSS class name (Qiang)
  • Bug #310: Leading space in auto generated labels if they end with "ID" (Qiang)
  • Bug #312: defaultScope not honored when other sopes are applied (Qiang)
  • Bug #313: Dynamic parameter for lazy loading resets the parameters specified in default scope (Qiang)
  • Bug #321: CProfileLogRoute should be disabled for AJAX requests (Qiang)
  • Bug #331: HTTP 403 status code should be used to indicate auth failure (Qiang)
  • Bug #338: Undefined variables in CTimestamp.php (Qiang)
  • Bug #343: HtmlPurifier should register its autoload to allow using its plugins (Qiang)
  • Bug #353: CClientScript may not generate expected output on some PHP version due to preg_replace bug (Qiang)
  • Bug: Syntax errors in autoloaded classes are not reported (Qiang)
  • New #36: Added column declarations to the generated model class using yiic (Qiang)
  • New #231: Enhanced yiic shell model command to generate relations automatically (olafure, Qiang)
  • New #271: Added CFileCache (Qiang)
  • New #300: Added support for using a controller action to display application errors (Qiang)
  • New #304: Added flv mimeType to the mimeType array (Qiang)
  • New #315: Added CDbConnection.enableProfiling (Qiang)
  • New #320: Added support for customizing a single URL rule by setting its urlFormat and caseSensitive options (Qiang)
  • New #326: Yii::powered() will show Yii site in a new window (Qiang)
  • New #328: Make yiic to work with f-cgi (Qiang)
  • New #344: Added support to automatically attach behaviors to a controller (Qiang)
  • New #346: Enhanced CMemCache so that it can be used with both memcache and memcached (Qiang)
  • New #347: Added CUrlManager.useStrictParsing to support parsing URLs only based on rules (Qiang)
  • New #349: Enhanced MySQL driver to recongize tinyint(1) as a boolean (Qiang)
  • New #351: Enhanced CModelBehavior so that its beforeValidate() can stop the current validation process (Qiang)
  • New: Enhanced the 'with' option in relational rules so that it also applies in eager loading (Qiang)
  • New: Enhanced yiic shell model command to generate all models for the whole database (olafure, Qiang)
  • New: Added support to allow using named scopes with update and delete methods (Qiang)
  • New: Refactored support for dynamic query options with relational AR (Qiang)
  • New: Added CDbCriteria::toArray() (Qiang)
  • New: Added support to allow merging CDbCriteria using 'OR' operator (Qiang)
  • New: Added CLogger::getStats() (Qiang)
  • New: Added support to import and autoload interfaces (Qiang)
  • New: Added tracing statements to cache components (Qiang)
  • New: Added CLogFilter to support logging additional context information (Qiang)

New in Yii 1.0.4 (Apr 30, 2009)

  • Bug #177: CFileValidator::getSizeLimit() not calculate well (Qiang)
  • Bug #185: German error views have syntax errors (Qiang)
  • Bug #183: Fatal error in CActiveFinder::afterFindInternal() (Qiang)
  • Bug #186: MainMenu component in yiic webapp doesn't detect active menu item correctly (Qiang)
  • Bug #187: SET CHARACTER SET is not working for MySQL in some cases (Qiang)
  • Bug #190: yiic shell command does not work when the Web application redirects by default (Qiang)
  • Bug #192: CDbLogRoute has several issues (Qiang)
  • Bug #199: yiic webapp command may fail in some directory setup (Qiang)
  • Bug #200: CDateFormatter does not recognize timestamp given as a string (Qiang)
  • Bug #205: CTRL-D puts yiic into endless loop (olafure)
  • Bug #206: Property "click" in CStarRating does not work (Qiang)
  • Bug #218: Uppercase letter in controller in URL leads to exception (Qiang)
  • Bug #226: CJoinElement uses undefined _primaryKey (Qiang)
  • Bug #223: Calling CApplication::clearGlobalState causes error (Qiang)
  • Bug #229: dynamic content does not work with page caching (Qiang)
  • Bug: Setting the 'expression' option in an access url causes error (Qiang)
  • Bug: CAccessRule.roles should be case sensitive (Qiang)
  • Bug: CDbAuthManager::checkDefaultRoles() uses an undefined variable (Qiang)
  • Bug: CPgsqlSchema does not handle quotes well in detecting FK constraints (Qiang)
  • Bug: CPradoViewRenderer is calling an undefined method (Qiang)
  • Bug: CClientScript::scriptMap generates duplicated script tags (Qiang)
  • Bug: ActiveRecord may fetch the same PK column twice in a relational query (Qiang)
  • Bug: CWebUser::hasState does not return consistent result (Qiang)
  • Bug: A module layout in a theme cannot be applied (Qiang)
  • Bug: Enabling both CSRF prevention and theming may cause a PHP error (Qiang)
  • Bug: Eager loading in RAR may join the same table twice in some cases (Qiang)
  • New #171: Added version info to yiic help output (Qiang)
  • New #172: Added eAccelerator cache driver (Steffen)
  • New #176: Added support to make yiic tool working with modules (Qiang)
  • New #195: Added CModel::scenario property (Qiang)
  • New #197: Added getParam, getQueryParam and getPostParam to CHttpRequest (Qiang)
  • New #203: Added CZendDataCache (Steffen)
  • New #207: Enhanced CHtml::activeFileField so that we can still use $_POST to detect form submission under some rare cases (Qiang)
  • New #212: 'Readline' support in yiic console script (olafure)
  • New #225: Added trace statements to CActiveRecord and CActiveFinder (Qiang)
  • New #230: Enhanced CHtml so that it can be used in situations where controller is absent (Qiang)
  • New #233: allow CFileValidator::types to be set with an array (Qiang)
  • New: Added support to GROUP BY and HAVING in eager loading of AR (Qiang)
  • New: Added CClientScript::scriptFiles and CClientScript::cssFiles (Qiang)
  • New: Added SQL Server support for Active Record (Christophe)
  • New: Added support for performing statistical query with Active Record (Qiang)
  • New: Added CHtml::beginForm and endForm (Qiang)
  • New: Added 'controllers' option to access control (Qiang)
  • New: Added CContentDecorator.data property (Qiang)
  • New: Refactored application and module code (Qiang)
  • New: Added HTTP status code parameter to CHttpRequest::redirect (Qiang)
  • New: Added beforeControllerAction and afterControllerAction to CWebApplication and CWebModule (Qiang)
  • New: Added 'checkAll' option to CHtml::checkBoxList and CHtml::activeCheckBoxList (Qiang)
  • New: Added CHtml::encodeArray() to allow HTML-encoding an array recursively (Qiang)
  • New: Added case-sensitivity parameter to CDbCommandBuilder::createSearchCondition (Qiang)
  • New: Added COutputCache.varyByExpression to allow variating cached content based on an expression value (Qiang)
  • New: Added CExpressionDependency to represent dependency based on an expression value (Qiang)
  • New: Added CAutoComplete.textArea to allow using it as a text area (Qiang)
  • New: Added support to allow using AR when a table has no primary key defined (Qiang)
  • New: Added support to CAPTCHA widget so that it can use captcha defined in other controllers (Qiang)
  • New: Added CExistValidator (Qiang)

New in Yii 1.0.0 (Dec 5, 2008)

  • Added CTabView
  • Added CStarRating
  • Added CUploadedFile
  • Added CFileValidator
  • Added CActiveRecord::safeAttributes
  • Added hashByName option to asset manager
  • Added CHtml::openTag and CHtml::closeTag
  • Added CHtml::activeFileField
  • Added CFileHelper::getMimeType and CFileHelper::getMimeTypeByExtension
  • Added COutputCache::varyByRoute
  • Added 'params' to HTML options that are used in CHtml methods
  • Added CDbConnection::emulatePrepare
  • Added CWebApplication::clientScript and removed CController::clientScript
  • Added roles support to CAccessControlFilter
  • Added cross-site request forgery prevention (Wei, Qiang)
  • Added CPagination.route
  • Refactored UserIdentity generated by yiic webapp
  • Refactored CLinkPager
  • Refactored CFilter
  • Removed CClientScript::registerBodyScript and CClientScript::registerBodyScriptFile;
  • Added a position parameter to CClientScript::registerScript and CClientScript::registerScriptFile
  • Changed CModel::validate() to allow validating specified attributes
  • Changed CActiveRecord::save() to allow saving specific attributes
  • Fixed a bug in CNumberValidator about checking upper limit
  • Fixed a bug in CHtml::dropDownList() which doesn't render the 'name' attribute
  • Fixed a bug when MySQL tables are using mixed-case letters in their names, relational active record fails to work as expected.
  • Fixed a bug in CDateFormatter::formatDateTime that causes the method to return null
  • Fixed issue #35: CTreeView's getClientOptions() don't works