diff --git a/CHANGELOG b/CHANGELOG deleted file mode 100644 index fd5e1d7..0000000 --- a/CHANGELOG +++ /dev/null @@ -1,1656 +0,0 @@ - Yii Framework Change Log - ======================== - -Version 1.1.14 August 11, 2013 ------------------------------- -- Bug: There was unnecessary echo in CRUD views generated by Gii (samdark) -- Bug: CJavaScript::encode was formatting floats in a wrong way during encoding (samdark) -- Bug: Fixed minLength and maxLength range check in CCaptchaAction::generateVerifyCode so values are now always stay in bounds (samdark) -- Bug #101: CActiveFinder::buildJoinTree() no longer uses 'false' for 'select' value (klimov-paul) -- Bug #135: Fixed wrong CActiveRecord rows count with having (klimov-paul) -- Bug #139: Fixed Active Record lazy load through relation with condition (klimov-paul) -- Bug #150: Fixed CWidget was not switching between view paths when using themes (antoncpu) -- Bug #159: CUploadedFile::getInstancesByName() has been fixed allowing correct fetching files, which name is a part of other file name (klimov-paul) -- Bug #196: CActiveForm: models list whose errors should be displayed in error summary is now customizable when using AJAX validation (resurtm) -- Bug #662: Fixed incorrect Active Record lazy loading of relation through BELONGS_TO relation (klimov-paul) -- Bug #1464: Fixed transparent background for ImageMagick in CCaptchaAction (manuel-84, cebe) -- Bug #1669: CNumberValidator used to add wrong error messages in case non-numeric values being validated (resurtm) -- Bug #1692: CWebUser::renewCookie() and CWebUser::restoreFromCookie() now make use of the identityCookie options (f10i) -- Bug #1693: Fixed log file will rotate twice when high performance (monque) -- Bug #1724: Allow CClientScript registering scripts and script files with the HTML options (klimov-paul) -- Bug #1732: CWebLogRoute and CProfileLogRoute with enabled $showInFireBug: fixed bug related to JS `console` object in MSIE 8 and 9 (resurtm) -- Bug #1763: CSqlDataProvider was appending another ORDER BY string to an existing ORDER BY statement when using fieldname with dot (szako) -- Bug #1827: Gii wasn't properly handling table name with the schema part for PostgreSQL (resurtm) -- Bug #1895: Fixed erroneous language attributes in french views (located at `framework\views\fr`) (Ragazzo) -- Bug #1909: CGridView::$filterSelector now prevents default action after event has completed by returning false result in event handler function (matih) -- Bug #1911: MigrateCommand does not rely on cached value about migration table existance anymore as this info could be outdated in testing enviroment (cebe) -- Bug #1915: CDataProviderIterator: fixed init in case of disabled pagination (antoncpu) -- Bug #1916: CMssqlSchema::findColumns() issues an "invalid object name" error (resurtm) -- Bug #1924: CLogFilter::$dumper added: this property can be used to get around circular reference issue when using standard `var_export` dumper by changing it to `print_r` (resurtm) -- Bug #1933: fixed using "multiple" parameter with a value of false in CHtml::activeDropDownList, CHtml::ListBox and CHtml::DropDownList (adminnu) -- Bug #1941: yiiactiveform.js form reset now uses CHtml::errorCss instead of a hardcoded value (mdomba) -- Bug #1942: CActiveForm client/ajax validation will now remove error class from server side validation (mdomba) -- Bug #1945: Reference to undefined variable $column in CDbMigration::dropPrimaryKey (paystey) -- Bug #1955: Some validators used to cause warnings or errors in case non-scalar array typed values being checked (resurtm) -- Bug #1957: Add primary key support for MySQL schema (paystey) -- Bug #1984: CDbMigration: fix of undeclared variable usage in debug information in dropPrimaryKey (papulovskiy) -- Bug #1990: CDateFormatter::formatWeekInMonth(): incorrect result for a week which was last in a previous year and first in a next year simultaneously (resurtm) -- Bug #1996: Using yiic help for commands with parameters with array as default value resulted in PHP error with latest PHP versions (dInGd0nG, samdark) -- Bug #1997: Cache key in CGettextMessageSource::loadMessages wasn't specific enough (odevyatkov) -- Bug #2023: CHttpRequest::stripSlashes() now modifies array keys as well (etienneq) -- Bug #2030: Fixed problem with MySQL 4.x: Undefined Index: Comment in CMysqlSchema (cebe) -- Bug #2048: AR now uses alias from CActiveRecord::getTableAlias instead of always using default "t" (s-larionov) -- Bug #2049: CStatElement relation with join option throw exception when key-field present on joined table (Yiivgeny) -- Bug #2078: Fixed problem with "undefined" parameter in query string when using CListView or CGridView with enableHistory (Parpaing) -- Bug #2086: Fixed .hgignore rule for assets folder (GeXu3, Koduc) -- Bug #2087: CLocale: getLocaleDisplayName() was only returning the language display name, not the full locale display name (brandonkelly) -- Bug #2112: Fixed broken yiic shell CRUD command (mbischof) -- Bug #2121: CMssqlSchema::resetSequence() incorrectly resets sequence (resurtm, joewoodhouse) -- Bug #2122: CActiveRecord, lazy load: 'params' from relations used in 'through' option were not applied to the final SQL statement (resurtm) -- Bug #2123: Fixed error in plural rules handling if locale has no plural rules defined (cebe, stepanselyuk) -- Bug #2146: CEmailValidator fix when fsockopen() can output uncatched error 'Connection refused (61)' (armab) -- Bug #2159: Fixed SQL syntax for delete command with join in MySQL (serebrov) -- Bug #2184: CDbHttpSession now supports MS SQL Server BLOB data type (cheuschober, resurtm) -- Bug #2201: Cannot use "having" with bound params in CActiveRecord::count() (ivokund) -- Bug #2216: CDbCommandBuilder::createInCondition() has been updated, allowing to pass array of values with mixed keys for the single type column (klimov-paul) -- Bug #2223: CActiveForm::error does not respect CHtml::$errorMessageCss (ivokund) -- Bug #2239: Fixed CHtml::refresh() method to use proper syntax (mdomba) -- Bug #2241: COciSchema::resetSequence() now works the same way as the same methods for the other RDMBSes. PHPDocs of the CMssqlSchema::resetSequence(), CMysqlSchema::resetSequence(), CPgsqlSchema::resetSequence(), COciSchema::resetSequence() and CSqliteSchema::resetSequence() methods have been adjusted to fit their real functionality (resurtm) -- Bug #2244: MessageCommand has been updated, allowing to merge string with value '0' correctly (klimov-paul) -- Bug #2258: CJuiSliderInput didn't support string typed 'range' option (bookin) -- Bug #2283: Gii Model Generator's tooltips are not working and always invisible (resurtm) -- Bug #2289: CDbCacheDependency with reuseDependentData did not invalidate cache when getting cache across different requests (marcovtwout) -- Bug #2299: CMssqlSchema: findTableNames(), getTables() and getTableNames() methods used to prepend schema prefix to the table names twice (resurtm) -- Bug #2311: Fixed SQlite default value for timestamp CURRENT_TIMESTAMP (zeeke) -- Bug #2321: CGettextPoFile is now able to parse multiline msgid and msgstr declarations (resurtm) -- Bug #2325: Fixed UTF-8 troubles in CDateTimeParser (error in parsing chinese and thai dates) (s-larionov) -- Bug #2336: PostgreSQL: CDbCommandBuilder used `NULL` instead of `DEFAULT` as default value for the primary keys of serial type (resurtm) -- Bug #2368: Reset error CSS for ':input', which includes SELECT elements (blueyed) -- Bug #2398: Fixed 'Undefined variable: results' E_NOTICE at CProfileLogRoute (klimov-paul) -- Bug #2402: Fixed clientValidation incorrectly rendered as HTML attribute, when used in CActiveForm::error() (mdomba) -- Bug #2406: CUrlManager::$urlRuleClass now supports path alias value (as it was described in its PHPDoc before this fix) (resurtm) -- Bug #2423: Fixed CHtml::button() enforces "value" attribute for the image buttons (klimov-paul) -- Bug #2426: CDbCriteria::__wakeup() used to issue an error in case SQL containing fields were arrays and criteria parameters were specified (resurtm) -- Bug #2438: CViewAction now checks if requested view is a string to not fail when array was given (cebe) -- Bug #2449: CSqlDataProvider causes an error when CDbCommand with enabled PDO::FETCH_OBJ mode used as SQL source (resurtm) -- Bug #2454: Fix CMysqlColumnSchema::extractLimit for ENUM values containing comma (blueyed) -- Bug #2491: Prevent SQL exception being thrown when inserting a row into the session table whilst regenerating the session ID (mynameiszanders) -- Bug #2502: Fix match controller in access rule, match uniqueId instead id (slavcodev) -- Bug #2508: Fix CHtml::activeLabel() to resolve attribute input name for tabular input with custom 'for' (klimov-paul) -- Bug #2516: Fixed the bug that some $.fn.yiiGridView methods were not working always if a custom CGridView::template was used (buakos) -- Bug #2524: Fixed incorrect HTTPS detection (resurtm) -- Bug #2551: CWebUser::loginRequired() AJAX response now properly sends 403 (creocoder) -- Bug #2554: Fixed CRangeValidator when allowEmpty is false (samdark, creocoder) -- Bug #2565: CCaptchaAction in ImageMagick mode used to issue an exception in case $backColor or $foreColor have had leading zeros (resurtm) -- Bug #2581: Fixed the bug with empty ajaxVar in jquery.yiilistview.js and jquery.yiigridview.js (seregagl) -- Bug #2602: CUrlValidator and CEmailValidator now works correctly with display_errors = on and validateIDN = true (creocoder) -- Bug #2662: CLocale::getTerritory() used to return null value even for proper input values, bug fix #1622 made in 1.1.13 has been reverted (resurtm) -- Bug #2632: Fixed inability import non-build aliases by config on some case (Yiivgeny) -- Bug #2651: CHttpSession was using hardcoded GC probability/divisor values (marcovtwout, cebe, samdark) -- Enh: Better CFileLogRoute performance (Qiang, samdark) -- Enh: Refactored CHttpRequest::getDelete and CHttpRequest::getPut not to use _restParams directly (samdark) -- Enh #100: CLogFilter::$logVars can now be array of arrays intended for designating particular items of the $GLOBALS (resurtm, tomtomsen) -- Enh #129: Proper support of namespaced models in forms (LastDragon-ru, Ekstazi, pgaultier) -- Enh #169: Allow to set AJAX request type for CListView and CGridView (klimov-paul) -- Enh #289: Gii module could be submodule of an another module (resurtm) -- Enh #315: COciSchema::checkIntegrity() method added: allows to toggle integrity check (resurtm) -- Enh #755: Allow to get currently running command from CConsoleApplication (klimov-paul) -- Enh #1065: CJuiSliderInput now supports ranged slider when using it without model (resurtm) -- Enh #1142: CSecurityManager::computeHMAC() has been made public (resurtm) -- Enh #1353: Added onBeforeCount event to CActiveRecord (jakob-stoeck) -- Enh #1391: CDetailView: callables (including anonymous functions for PHP 5.3+) could be used as value generators of the attributes (resurtm) -- Enh #1447: CSqliteSchema: added enabling/disabling integrity check for sqlite (gleb-sternharz, resurtm) -- Enh #1589: Added HTTP range responses support to CHttpRequest::sendFile (Ragazzo, samdark) -- Enh #1604: Added method CDbCommandBuilder::createMultipleInsertCommand() to support multiple insertion (klimov-paul) -- Enh #1725: Added CFileHelper::removeDirectory() static method (resurtm) -- Enh #1743: Added CActiveForm::searchField() and CHtml::activeSearchField() to create HTML input field of type SEARCH (njasm) -- Enh #1794: Added ability to change widget ID via $htmlOptions['id'] array item in: CTabView, CBaseListView, CListView, CGridView, CDetailView, CMenu, and CPortlet (umrs) -- Enh #1796: Separate count criteria has been added to the CActiveDataProvider, it's useful for the counting queries simplification (resurtm) -- Enh #1818: Created a CLocalizedFormatter application component that allows formatting values according to current locale (cebe) -- Enh #1842: Added support for MySQL BIT(M) data type default values (migelsabre, cebe) -- Enh #1847: Added COutputCache::varyByLanguage to generate separate cache for different languages (Obramko) -- Enh #1863: Added CActiveFinder::getModel, added CActiveRecord::getActiveFinder, CExistValidator::getModel, CUniqueValidator::getModel, CActiveDataProvider::getModel, CSort::getModel (denisarius, samdark) -- Enh #1928: Gii is now able to use table columns' comments as the attribute labels of a new generated model (resurtm, tlikai) -- Enh #1948: Tidy up and improve html5 input support in CHtml and CActiveForm (phpnode) -- Enh #1977: CFormatter::normalizeDateValue() now is protected instead of private to enable child classes to override it (etienneq) -- Enh #2003: Gii now allows namespaced base classes to be defined in generators (etienneq) -- Enh #2038: CFormatter::formatNtext() method can replace newlines with `

` 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) - -Version 1.1.13 December 30, 2012 --------------------------------- -- Bug #93: Criteria modification in CActiveRecord::beforeFind() did not apply when record was loaded in relational context. See UPGRADE instructions for details on behavior change. (cebe) -- Bug #109: formatNumber() now uses number_format() instead of round(), because of round() error in IEEE754 accuracy limitations (SonkoDmitry) -- Bug #110: MSSQL: fixed empty $primaryKey value after saving CActiveRecord model (resurtm) -- Bug #112: MSSQL: database abstraction layer now uses native transaction support of the SQLSRV driver (resurtm) -- Bug #124: Added CMysqlCommandBuilder to handle JOIN directive on update commands correctly (cebe, DaSourcerer) -- Bug #126: Fixed CWebUser::getReturnUrl(), allowing to determine default URL correctly, if CUrlManager::showScriptName is set to false (klimov-paul) -- Bug #138: CMysqlSchema fixed to support MySQL ANSI mode (cebe) -- Bug #140: Fixed validation CJuiButton with type buttonset (adminnu) -- Bug #162: Eventhandler attached twice when behavior is set enabled after attaching it (cebe) -- Bug #218: Fixed problem when using 'union' and 'order/limit/offset' in CDbCommand::buildQuery (nsanden) -- Bug #276: Tweaked CGridView stylesheet to include a hover style for the selected row (acorncom) -- Bug #810: Gii now adds a number to the end of relation name if same named relation already exists instead of not generating relation (n30kill, samdark) -- Bug #835: CApplication::onEndRequest is now called at the script shutdown to make sure log is written on forceful script termination (samdark, cebe) -- Bug #837: Fixed method CDbCriteria::__wakeup(), allowing to keep custom names for params and update all string parts for automatic params (klimov-paul) -- Bug #959: Bug where non-lowercase keys cannot be found in CConsoleApplication::$commandMap fixed (resurtm) -- Bug #962: Fixed handling of negative timestamps in CDateFormatter::format() (johnmendonca) -- Bug #1094: CListView with enabled history used to clear page title in case sorting or paging performed (Opera and Firefox only) (mdomba, resurtm) -- Bug #1095: Added missing retry_interval parameter of addServer function call in CMemCache (Lisio) -- Bug #1181: Fixed can read but not save binary data e.g. BYTEA on PostgreSQL (karmakaze) -- Bug #1212: Added missing .gitignore files to the application generated by WebAppCommand (resurtm) -- Bug #1249: CHttpRequest::sendFile() outputs malformed file content in some specific circumstances (andyhu) -- Bug #1279: CHttpRequest::sendFile() now always sends valid content-header (Ragazzo) -- Bug #1330: SQLite column default value was incorrect for column of type string and DEFAULT NULL (cebe) -- Bug #1344: Fixed URL problem in CGridView and CListView when enableHistory was true and unicode chars where used (mdomba, Redjik) -- Bug #1347: CDbTestCase: table name in fixtures list enclosed into double curly brackets (e.g. 'tasks'=>':{{task}}') didn't worked properly (resurtm) -- Bug #1351: CClientScript::registerMetaTag() now allows to register multiple meta tags with the same set of attributes (klimov-paul) -- Bug #1364: Empty CHtml::$errorCss cause class attribute rendering errors (creocoder) -- Bug #1381: Ignore select given by criteria or scope on stat relation (cebe) -- Bug #1392: HostInfo was appended to CHttpRequest::redirect() location in case of using protocol relative URLs (dInGd0nG, samdark) -- Bug #1406: Fixed the issue that false value returned from CDbCommand could not be cached properly (mdomba) -- Bug #1407: CDbCommandBuilder::createCountCommand() used to bind parameters for unused ORDER clause and unused SELECT part (resurtm) -- Bug #1444: Fixed CGoogleApi::register call to registerScriptFile (mdomba) -- Bug #1478: Fixed CWsdlGenerator error when using namespaced classes (Diego-Rocha) -- Bug #1485: CSort does not quote table alias when using CDbCriteria (undsoft) -- Bug #1492: Fixed jQuery calls when noConflict feature was used and jQuery code was returned by ajax calls (l-nagash) -- Bug #1499: Fixed CVarDumper highlighting "\" (antoncpu) -- Bug #1549: Fixed CFormatter::sizeFormat() to use translations from 'yii' category and corrected english default translation, also improved number formatting (cebe) -- Bug #1552: Fixed potential vulnerability in CJavaScript::encode(): $safe parameter didn't used to be passed to the recursive method calls (resurtm) -- Bug #1575: MessageCommand::extractMessages fails to ignore invalid category definitions (softark) -- Bug #1584: Fixed CGridView and CListView urls when enableHistory was used with "path" urlFormat (mdomba) -- Bug #1621: Fixed CCompareValidator to support {compareAttribute} in $message also on client-side (cebe) -- Bug #1622: CLocale::getTerritory() used to return invalid territory name when locales (language tags) were specified without territory part (e.g. 'de', 'fr') (resurtm) -- Bug #1624: Requirements page now tries all other preferred languages when the most preferred one is missing (ArtVal) -- Bug #1625: CEmailLogRoute does not properly encode UTF8 characters contained in logs, CEmailLogRoute::$utf8 property added (mdomba, resurtm) -- Bug #1628: Active HTTP sessions overwrote the Cache-Control header set by CHttpCacheFilter (DaSourcerer) -- Bug #1646: CLocale::getTerritory() used to return invalid territory name when locales (language tags) were specified with script part (e.g. 'zh-Hans-CN', 'zh-Hant-HK') (resurtm) -- Bug #1652: Fixed incorrect syntax of CDbSchema::renameTable() for SQLite, added CSqliteSchema::renameTable() method (Sarke) -- Bug #1673: CHttpRequest::getPreferredLanguage now works according to RFC2616. Added CHttpRequest::getPreferredLanguages that returns all user accepted languages in order of preference (Rupert-RR, bwoester, cebe, samdark) -- Bug #1676: Fixed listData() grouping when no group was specified (mdomba) -- Bug #1716: Fixed CCodeModel::pluralize() and CConsoleCommand::pluralize() so it doesn't force lowercase the first letter in any words (nsanden) -- Bug #1726: Fixed the error Undefined variable: json in CJSON.php when json_decode function did not exist (heyhoo) -- Bug #1792: Fixed persistent access permissions when two identities were used in a single application run. (jhenriquemc, François Gannaz) -- Bug #1853: CAssetManager::publish() method will throw an exception if $forceCopy and $linkAssets are both true (resurtm, mdomba) -- Bug: Table schema is refreshed on Gii model generation when schemaCachingDuration is used (SonkoDmitry) -- Bug: CDbCommand::setFetchMode wasn't accepting additional arguments needed for PDO::FETCH_CLASS (samdark) -- Bug: CCaptchaAction::validate check wasn't working properly in some cases (samdark, Qiang) -- Enh #84: Log route categories are now accepted in form of array. Added CLogRoute::except and parameter to CLogRoute::getLogs that allows you to exclude specific categories (paystey) -- Enh #104: Added CWebLogRoute::$collapsedInFireBug property to control whether the log should be collapsed by default in Firebug (marcovtwout) -- Enh #117: Added CPhpMessageSource::$extensionPaths to allow extensions, that do not have a base class to use as category prefix, to register message source (rcoelho, cebe) -- Enh #144: baseID in CHtml::checkBoxList and CHtml::radioButtonList can now be customized via htmlOptions (cebe) -- Enh #217: Added CTypeValidator::validateValue() and CTypeValidator::$strict, better check for arrays (samdark) -- Enh #259: CHttpRequest::getRestParams is now public (samdark) -- Enh #291: CFormatter::formatDate and formatDateTime now also accept strings in strtotime() format (francis_tm, cebe) -- Enh #486: CHttpSession::$gCProbability and CDbHttpSession::$gCProbability are floats now. Minimal possible $gCProbability value has been changed to the ≈0.00000005% (1/2147483647), was integer 1% before, default value left unchanged (1%) (resurtm) -- Enh #545: Add CDataProviderIterator to allow iteration over large data sets (phpnode) -- Enh #556: CDbColumnSchema::$comment property has been added. It stores comment for the table column, comment retrieving is working for MySQL, PgSQL and Oracle (resurtm) -- Enh #724: Third argument of CHtml::listData() now receives anonymous function as calculator of the text field value, PHP 5.3+ only (resurtm) -- Enh #846: Added addPrimaryKey() / dropPrimaryKey() commands to CDbMigration (ridget) -- Enh #949: Added COciSchema::resetSequence (jazahn, samdark) -- Enh #990: Added CArrayDataProvider::$caseSensitiveSort property which allows to control whether sorting should be case sensitive (resurtm) -- Enh #999: Changed md5() to crypt() in docs/guide/topics.auth, docs/blog and demos/blog. Added Wiki 425 tutorial on use of crypt() (tom--) -- Enh #1084: CDateTimeParser: MMM pattern for parsing short month names is now locale aware (resurtm) -- Enh #1146: CFileHelper::copyDirectory recursive directory creation (senz) -- Enh #1183: CDbCommand: added andWhere()/orWhere() which appends condition to the WHERE part of the query, in contrary of CDbCommand::where() which replaces it (resurtm) -- Enh #1184: CEmailValidator now supports IDN (Internationalized Domain Names), added CEmailValidator::$validateIDN property (resurtm) -- Enh #1134: CAssetManager filepath creation now can be extended thru generatePath(). Path creation is now recursive in publish(). (senz) -- Enh #1201: CMenu now supports HTML attributes for the links' wrap element specified in $linkLabelWrapper (resurtm) -- Enh #1228: Added ability to MessageCommand to generate translation files for multiple functions (Arne-S, samdark) -- Enh #1238: CJuiDatePicker is now using the native altField option to handle the hidden input when type flat is used (mdomba, christiansalazar) -- Enh #1282: CDateTimeParser: added MMMM pattern for parsing standard month names such as 'January', 'Décembre' or 'März' (resurtm) -- Enh #1286: CUrlValidator now supports IDN (Internationalized Domain Names), added CUrlValidator::$validateIDN property (resurtm) -- Enh #1289: Added support for column comments for MSSQL (CDbColumnSchema::$comment property) (resurtm) -- Enh #1299: Added CSRF token validation for PUT and DELETE (miraage, samdark) -- Enh #1369: Added CCheckBoxColumn::disabled that accepts PHP expression or anonymous function determining if checkbox for the row should be disabled (sucotronic) -- Enh #1386: Second parameter of the CHtml::value() is now able to accept anonymous function which calculates value to be used (Qiang, resurtm) -- Enh #1396: Added 'text/csv' mime-type for the 'csv' file extension in utils/mimeTypes.php (effectively used by e.g. CHttpRequest::sendFile()) (rawtaz) -- Enh #1426: Behaviors are now affecting memory consumption significantly less (slavcodev, creocoder, Qiang, samdark) -- Enh #1443: Added CHttpRequest::getRawBody() that allows reading RAW HTTP request body multiple times (itamar82, resurtm, samdark) -- Enh #1464: CCaptchaAction now supports rendering through ImageMagick, CCaptcha::checkRequirements() changed (resurtm, SonkoDmitry) -- Enh #1500: CSqlDataProvider now supports CDbCommand in constructor (slavcodev) -- Enh #1507: Added support for minOccurs, maxOccurs, nillable to CWsdlGenerator. Changed most of the methods visibility to protected. Added unit tests (lubosdz) -- Enh #1518: Allow to configure CHtml::$closeSingleTags and CHtml::$renderSpecialAttributesValue. Useful for HTML5 code (creocoder) -- Enh #1527: Added $id argument to CClientScript::registerMetaTag that allows you to override existing tags (Alex-Code) -- Enh #1531: CArrayDataProvider is now able to sort cutted array, where sorting column is not available in every entry (Yiivgeny) -- Enh #1535: HTML5 special attributes added to CHtml::renderAttributes() (creocoder) -- Enh #1538: Added CListView::ajaxUpdateError for the possibility to use a custom ajax error handler (mdomba) -- Enh #1567: Added filterSelector property to CGridView (MonkeyMaster) -- Enh #1581: Added 'unselectValue' to CHtml::dropDownList() and CHtml::activeDropDownList() to define default post value if no option is selected in multiple mode (creocoder, mdomba) -- Enh #1596: Added CGridView::rowHtmlOptionsExpression to allow set HTML attributes for the row (Ryadnov) -- Enh #1657: CDbCommandBuilder::createUpdateCounterCommand now can be used with float values (samdark, hyzhakus) -- Enh #1658: CFormatter::formatHtml() is now more flexible and customizable through new CFormatter::$htmlPurifierOptions property (resurtm) -- Enh #2343: Added CRequiredValidator::$trim property which determines to trim attribute value or not (AnatolyRugalev) -- Enh: Fixed the check for ajaxUpdate false value in jquery.yiilistview.js as that never happens (mdomba) -- Enh: Requirements checker: added check for Oracle database (pdo_oci extension) and MSSQL (pdo_dblib, pdo_sqlsrv and pdo_mssql extensions) (resurtm) -- Enh: Added CChainedLogFilter class to allow adding multiple filters to a logroute (cebe) -- Enh: Allow CDataProvider to use custom pagination and sorter (creocoder) -- Enh: Value of the CHtml::activeTextArea() can now be set through $htmlOptions['value'] (resurtm) -- Enh: Allow to customize CHtml::error() container tag (creocoder) -- Enh: CModule::setComponents() now can reconfigure already loaded components (creocoder) -- Enh: CLocale::getWeekDayName() weekday-number argument is now more compatible with date() function, allowing 0 and 7 for sunday (Yiivgeny, cebe) -- Enh: Added minified jQuery BBQ (samdark) -- Chg #1193: Upgraded jQuery to 1.8.3 (samdark) -- Chg #1373: Upgraded jquery star rating to 3.14 (samdark) -- Chg #1548: Upgraded jQueryUI to 1.9.2 (samdark) -- Chg #1563: Updated CTestCase for PHPUnit 3.7.7+ (tanakahisateru, samdark) -- Chg #1746: CDbCriteria::mergeWith() is now more consistent with all other class methods (hyzhakus, samdark) -- Chg: MSSQL unit tests updated and actualized, added SQLSRV driver support (resurtm) -- Chg: Added Oracle unit tests (resurtm) -- Chg: Updated CHttpCacheFilter to use dates as specified by RFC 1123 (bramp) -- Chg: Added punycode.js v1.1.1 (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) - -Version 1.1.12 August 19, 2012 ------------------------------- -- Bug #190: WSDL return tag was not generated by CWsdlGenerator when Macintosh line endings were used inside service describing docblock (resurtm) -- Bug #1066: CMemCache: expiration time higher than 60*60*24*30 (31536000) seconds led the value to expire right away after saving (resurtm) -- Bug #1072: Fixed the problem with getTableAlias() in defaultScope() (creocoder) -- Bug #1076: CJavaScript::encode() was not compatible with PHP 5.1 (samdark) -- Bug #1077: Fixed the problem with alias in CSort (creocoder) -- Bug #1083: CFileValidator is now unsafe by default. This will prevent setting attribute when no file was uploaded (samdark) -- Bug #1087: Reverted changes to CCookieCollection::add() introduced in 1.1.11 as they were triggering E_STRICT on some old PHP-versions (suralc) -- Bug #1088: Fixed usage of proper CActiveForm id property when it's supplied with htmlOptions (mdomba) -- Bug #1094: CGridView with enabled history used to clear page title in case sorting or paging performed (Opera and Firefox only) (resurtm) -- Bug #1109: Fixed "js:" encoding BC-break in CHtml::ajax() and related methods introduced in 1.1.11 (samdark) -- Bug #1120: Fixed duplicate events processing in CGridView when ENTER was pressed for filtering (mdomba) -- Bug #1192: CHttpCacheFilter failed to comply with RFC 2616, section 10.3.5 (DaSourcerer) -- Bug #1207: Fixed an issue in CHtml::resolveValue() which occurs when handling tabular data input (Qiang) -- Bug #1225: Fixed the bug that $.fn.yiiGridView.getChecked was not working always if a custom CGridView::template was used (mdomba) -- Bug #1243: Fixed the bug that when using CUrlManager::addRules with $append=false rules were added in reverse order (samdark) -- Enh #243: CWebService is now able to deal with the customized WSDL generator classes, was hardcoded to the CWsdlGenerator before, added CWebService::$generatorConfig property (resurtm) -- Enh #636: CManyManyRelation now parses foreign key for the junction table data internally, and provide public interface to access it (klimov-paul) -- Enh #1163: CGridview does not create empty class attributes anymore (cebe) -- Chg #1099: Changed connectionId dropdown to sticky text field in Gii model generator (mdomba) -- Chg #1167: Reverted back the change to CComponent::evaluateExpression() about global function support (Qiang) - -Version 1.1.11 July 29, 2012 ----------------------------- -- Bug #098: No correct identity value being returned when using Active Record and mssql (c-schmitz) -- Bug #114: CUniqueValidator and CExistValidator now respect table alias while creating db query condition (klimov-paul) -- Bug #145: CGettextMoFile now can parse strings with no context (eagleoneraptor) -- Bug #148: Fixed the bug in the blog demo that was not deleting right comment when not on the first page (mdomba) -- Bug #161: CCookieCollection::remove() now accepts an array of cookie options as a second argument to facilitate correct cookie removal (maximcherny) -- Bug #164: CEmailValidator.checkPort now checks the port 25 of listed MX servers (DaSourcerer) -- Bug #178: webapp creation with relative paths like ../ was not working correctly (cebe) -- Bug #193: Changed datetime column type for postgresql from 'time' to 'timestamp' (cebe) -- Bug #238: Fixed the problem that empty row could be selected in CGridView when there was no data (mdomba) -- Bug #295: Sometimes CJSON::decode returns null because native json_encode has bugs and returns null. Workaround to continue decoding when result of json_decode is null (luislobo) -- Bug #381: Fixed the bug that Gii model name input could get misspelled when autocomplete is used (mdomba) -- Bug #417: CAttributeCollections::mergeWith() does not take into account the caseSensitive (dmtrs) -- Bug #433: Fixed the bug that Gii model name input autocomplete was not working sometimes (mdomba) -- Bug #449: CDbHttpSession and CDbLogRoute now use query builder instead of DAO for proper quoting (mdomba, redguy) -- Bug #454: Removed translation on CDbConnection exception as it was creating an endless loop if the application used CDbCache (mdomba) -- Bug #517: Rule parameter sub-patterns are not checked correctly (ranvis) -- Bug #539: Fixed CUrlRule::createUrl() to treat sub-patterns as Unicode as parseUrl() does (ranvis) -- Bug #553: Criteria of related AR finders was affected after performing find with relational scopes (marcovtwout) -- Bug #618: Fixed caching of CWebUser::checkAccess() when it is called first time with and second time without $params (cebe) -- Bug #660: Fixed error when calling CDbCache::getValues (zilles) -- Bug #697: Fixed WSDLGenerator now generating proper namespace for certain complexTypes (BBoom) -- Bug #749: CActiveRecord::refresh() did not work in afterSave() for new records, will now always refresh, when db entry exists (cebe) -- Bug #769: Fixed the bug that $.fn.yiiGridView.getSelection was not working always if a custom CGridView::template was used (mdomba) -- Bug #772: CHttpRequest::getIsSecureConnection() was failing on some conditions (bulletbee, samdark) -- Bug #773: CGridView filters now filter on enter key in Internet Explorer (BBoom) -- Bug #803: Arbitary non-sorting links in CDataColumn's header were not working proper way (resurtm) -- Bug #827: Fixed the problem that CJuiSliderInput was rendering a name attribute for div element (mdomba) -- Bug #842: Active Records insert fails in MSSQL if a column has a default value of (NULL) (c-schmitz) -- Bug #852: Fixed the problem that CActiveForm was not revalidating fields if ajax submit was used (mdomba) -- Bug #859: Fixed CSort::applyOrder() and CSort::getOrderBy() to use custom table aliases (troch, samdark) -- Bug #865: CLogRoute called processLogs() even if log array was empty and caused empty emails and log files (cebe) -- Bug #879: Fixed a possible PHP error caused by CWebUser::restoreFromCookie() in combination with CHttpRequest.enableCookieValidation (kidol) -- Bug #901: Fixed possible encoding problem on exception (mdomba, samdark, cebe) -- Bug #1000: Added params to profiling token in CDbCommand::execute() to be consitent with CDbCommand::queryInternal() (cebe) -- Bug #1045: Building a query with empty array as parameter will not result in a broken sql-string anymore(suralc) -- Bug: Fixed CMenu::isItemActive() to work properly when there is a hash in the item's url (SlKelevro) -- Bug: Added missing return statement to CAuthItem->revoke() (mdomba) -- Bug: CHtml::resolveValue() ignoring of array elements accessor at the beginning of the $attribute argument now works properly (resurtm) -- Enh #120: Added ability to set cookies in an object based style without specifying the cookie-name twice (suralc) -- Enh #136: Added ability to select database connection in Gii model generator (samdark) -- Enh #157: Added ability to use models with objects implementing ArrayAccess as properties in CHtml::resolveValue (samdark) -- Enh #165: Allow CCacheDependency to be reusable across multiple cache calls (phpnode) -- Enh #171: Added support for PUT and DELETE request tunneled through POST via parameter named _method in POST body (musterknabe) -- Enh #179: CLogger now supports filtering profile timings by multiple & wildcard categories (intel352) -- Enh #191: Added ability to customize HTML classes of CLinkPager via its public properties (mashingan) -- Enh #206: Added ability to pass CDbCriteria object as AR relation parameter (samdark) -- Enh #215: Added tokens to CGridView::updateSelectors to allow adding custom selectors instead replacing only (mdomba) -- Enh #220: The URL pointing to the Google API in CGoogleApi is now protocol relative (suralc) -- Enh #237: The tabs of CTabView now support the property 'visible' (DaSourcerer) -- Enh #255: Sort CArrayDataProvider when elements is CActiveDataProvider or other object (rusmaxim) -- Enh #266: Add support for HTML5 url, email, number, range and date fields to CHtml (gregmolnar) -- Enh #267: CDbHttpSession is now able to store binary payload such as the output of the igbinary serializer (DaSourcerer, samdark) -- Enh #282: Added CCheckBoxColumn::headerTemplate to allow custom headers (mdomba) -- Enh #286: Added wildcard token to CDateTimeParser (cebe) -- Enh #294: Added deniedCallback to CAccessControlFilter and CAccessRule to allow forwarding control to a method on denial (luislobo) -- Enh #342: Added ability to pass parameters for RBAC bizRules from CAccessControlFilter configuration (claudejanz, samdark) -- Enh #356: Improved extendability of CDetailView by adding method renderItem() (cebe) -- Enh #369: Added $hashKey to CCache (kidol) -- Enh #414: Added sort parameter to yiic message command that sorts messages by key when merging (ranvis) -- Enh #455: Added support for default value in CConsoleCommand::prompt (eagleoneraptor) -- Enh #551: Added $safe parameter to CJavaScript::encode. If set to true, 'js:' will not be allowed. If you need to pass JavaScript, wrap your code with CJavaScriptExpression instead (samdark) -- Enh #552: Added support for http-level caching via CHttpCacheFilter (DaSourcerer) -- Enh #568: CHtml::getIdByName() will now convert spaces to underscore to get proper ID for HTML elements (mdomba) -- Enh #578: Added extension checks to CMemCache (samdark) -- Enh #581: Added formatSize method in CFormatter to format file sizes into units of different order - KB, MB, etc (brilyuhns, samdark) -- Enh #584: Refactored WebAppCommand to be more customizable, added more PHPDoc (samdark) -- Enh #599: Added case sensitivity check when autoloading classes (qiangxue) -- Enh #601: added the method loginRequired() to the IWebUser interface (mdomba) -- Enh #616: CVarDumper is now correctly highligting integer array keys (vernes, samdark) -- Enh #641: Added support for customizing serialization methods for cache components (DaSourcerer, Qiang) -- Enh #648: Added filterHtmlOptions property to the CGridColumn component (juban) -- Enh #652: Added namespace to yiiGridView events, so they can be easily removed by .off() jQuery method (Bethrezen) -- Enh #673: Changed CClientScript::scripts to be public (mdomba) -- Enh #675: CDateFormat::format() now returns null if the parameter $time is null (mdomba) -- Enh #690: Added sender name and proper headers for UTF8 encoding when sending e-mail in SiteController->actionContact() (mdomba) -- Enh #766: Added 'userId' to $params in CDbAuthManager::checkAccess() and CPhpAuthManager::checkAccess() (cebe) -- Enh #666: Added property $except to CValidator, a list of scenarios that the validator should not be applied to (resurtm) -- Enh #839: CListView::renderItems now resolves view file only once (nizsheanez) -- Enh #938: CFileValidator::sizeToBytes() is now public and available for using in the whole application (resurtm) -- Enh #943: CDateTimeParser is now able to parse short textual representation of month, e.g. Jan, Jun, Aug (resurtm) -- Enh #967: Commands from YII_CONSOLE_COMMANDS environment variable are now always added to yiic console application (schmunk) -- Enh: CFileValidator could validate uploaded file by its MIME-type, added $mimeTypes and $wrongMimeType properties (resurtm) -- Enh: Fixed romanian translation to use the better-supported cedilla characters (tudorilisoi) -- Enh: Added default value to CConsoleCommand::confirm (musterknabe) -- Enh: Allowed returning integer values as application exit code in CConsoleCommand actions (cebe) -- Enh: Added third parameter to CHttpCookie to configure the cookie by array (suralc) -- Enh: Added getIsFlashRequest(), proper handling of Flash/Flex request when using CWebLogRoute with FireBug (resurtm) -- Enh: Added CBreadcrumbs::$activeLinkTemplate and CBreadcrumbs::$inactiveLinkTemplate properties which allows to change each item's template (resurtm) -- Enh: Added full-featured behaviors and events CConsoleCommand::onBeforeAction & CConsoleCommand::onAfterAction (Yiivgeny) -- Enh: Added HTML5 history support on ajax requests on CGridView and CListView using History.js v1.7.2-r2 (https://github.com/balupton/history.js) from Benjamin Arthur Lupton (lightglitch) -- Enh: Changed CldrCommand to use medium dateTimeFormat and updated 18n data using newest(6546) CLDR (tanakahisateru) -- Enh: Added CErrorHandler::getHttpHeader() to send correct HTTP error codes (pgaultier) -- Enh: CGridView, only rows in tbody should have hover effect (mdomba) -- Enh: CClientScript::$defaultScriptFilePosition and CClientScript::$defaultScriptPosition for controlling default $position argument for registerScriptFile and registerScript (resurtm) -- Enh: CHttpCookie now implements __toString (suralc) -- Enh: Ability to set namespace for module controllers using CWebModule::controllerNamespace, documentation about using namespaced controllers and modules (samdark) -- Enh: Added possibility to set the container for CHtml::radioButtonList and CHtml::checkBoxList() (pgaultier) -- Enh: Added zii romanian(ro) translation; edited core messages to include proper romanian characters with diacritic marks (tudorilisoi) -- Enh: Added ILogFilter interface as an alternative to using CLogFilter as base class for implementing log filters (cebe) -- Enh: CAssetManager, added $forceCopy property which globally forces publication of asset files and directories (resurtm) -- Enh: WebAppCommand has ability to generate fresh application with git or hg specific files (resurtm) -- Enh: Gii default templates: added additional metadata (PHPDoc) of the variables passed into views for better IDE autocompletion (resurtm) -- Enh: WebAppCommand generated application: added additional metadata (PHPDoc) of the variables passed into views for better IDE autocompletion (resurtm) -- Enh #1053: CComponent::evaluateExpression will allow using global functions as callbacks (Ekstazi) -- Chg #384: CWebUser::changeIdentity() will now delete old unused session data file (Qiang) -- Chg #440: Upgraded JQuery UI to 1.8.22 (samdark) -- Chg #497: Added log component and preloaded it in default console application config in order to properly log errors (samdark) -- Chg: Upgraded jQuery to 1.7.2 (samdark) -- Chg: More unit tests added for CHtml (resurtm) -- Chg: Upgraded bundled markdown parser to v1.2.5 (DaSourcerer) -- New: Added TranslationsCommand build command aimed to help translation teams (samdark) - -Version 1.1.10 February 12, 2012 --------------------------------- -- Bug Fixed the bug introduced in 1.1.9 CActiveForm required field was not validated if left empty (mdomba) -- Bug #1799: Better fix for bug #1799 old fix was breaking CJuiDatePicker tabular input (mdomba) -- Bug #2284: Fixed the CActiveForm clientvalidation for tabular input (mdomba) -- Bug #3062: Fixed the bug that using yiilite.php and CLocale will cause exception (Qiang) -- Bug #3070: Fixed the CActiveForm JS error if there is no field rendered (mdomba) -- Bug #3071: Fixed the bug that afterValidateAttribute was not called properly (mdomba) -- Bug #3096: Fixed the bug when reporting an error and CHtml is not loaded (mdomba) -- Bug #3103: Fixed the bug that CActiveForm->error() was not overloading htmlOptions (mdomba) -- Bug #3107: Fixed the wrong encoding issue of Italian messages (Qiang) -- Bug #3108: Fixed the bug introduced in CActiveFinder::applyLazyCondition (Qiang) -- Bug #3166: Fixed the bug that CDbColumnSchema typecasted to NULL even for NOT NULL columns (Sam Dark) -- Enh #3063: Gii, when generating models, tableNames will be checked against reserved PHP keywords when '*' is used (mdomba) -- Enh #3097: Added CHttpRequest::decodePathInfo() (Y!!) -- Enh #3101: The methods of CSecurityManager do now work correctly for the case that mbstring.func_overload is in effect (Y!!) -- Enh #3112: Fixed the exception error display on ajax calls when YII_DEBUG is true (mdomba) -- Enh #3121: Added more rules for proper pluralization to the pluralize() method in CCodeModel and CConsoleCommand (mdomba) -- Enh #3153: CClientScript::addPackage() now returns CClientScript instance to support method chaining (Sam Dark) -- Enh #3154: Removed file existance check to allow relative path and added additional headers option to xSendFile() (mdomba) -- Enh #3169: Added CSort::SORT_ASC and CSort::SORT_DESC (Sam Dark) -- Enh: Added CActiveForm::validateTabular() to simplify ajax validation for tabular input (mdomba) -- Chg: HTML-encoded input values for exist and unique validators (Qiang) -- Chg: Upgraded JQuery UI to 1.8.17 (mdomba) -- Chg: Upgraded HTMLPurifier to v4.4.0 (Sam Dark) - - -Version 1.1.9 January 1, 2012 ------------------------------ -- Bug: Removed unnecessary COciCommandBuilder::createInsertCommand quotes (Sam Dark) -- Bug: CHttpRequest.sendFile() gives incorrect content length when output_handler is enabled through code or non output_handler directive (Sam Dark) -- Bug #1356: Fixed CActiveForm ajax validation when checkBoxList or radioButtonList are used (mdomba) -- Bug #1968: Fixed inconsistence in CActiveForm error highlighting when checkBoxList or radioButtonList are used (mdomba) -- Bug #2603: Fixed the bug that CDbHttpSession::regenerateID call when session isn't started results in SQL error (Sam Dark) -- Bug #2623: Fixed the bug that by setting multiple classes in CGridView itemsCssClass prevents rows being selected (mdomba) -- Bug #2635: MigrateCommand migration execution time is now measured correctly (Sam Dark) -- Bug #2636: CConsoleCommand::init() wasn't called in yiic shell mode (Sam Dark) -- Bug #2773: Fixed possible CUrlManager::createUrl parameters conflict when using custom URL rule classes (Sam Dark) -- Bug #2581: Fixed CJuiTabs - not replacing id slug in header tool tips (sebas) -- Bug #2643: Output buffer wasn't properly cleaned on displaying error screen (Sam Dark) -- Bug #2733: Fixed CDbCriteria parameter names collision on unserialize (mcheale, Sam Dark) -- Bug #2786: Fixed inheritance in CLDR months parsing (mcheale, Sam Dark) -- Bug #2822: Fixed warning when "Host:" isn't present or is empty in HTTP request headers (Sam Dark) -- Bug #2853: Fixed sending of the button name in CActiveForm with enableAjaxValidation enabled (mdomba) -- Bug #2861: Removed the nested container css class in the skeleton application views (Qiang) -- Bug #2915: Fixed client validation in CCompareValidator to compare numbers instead of strings (mdomba) -- Bug #2932: CAuthItem::getType() returns string while using CDbAuthManager (Sam Dark) -- Bug #2999: CSort::getDirections, error when array is passed via $_GET (Sam Dark) -- Bug #3018: Fixed CACtiveForm ajax validation when checkBox or radioButton are used (mdomba) -- Bug #3029: Fixed the bug that empty items were not hidden when CMenu::hideEmptyItems is true (mdomba) -- Bug #3033: Fixed proper array merging in CDirectoryCacheDependency->generateTimestamps (mdomba) -- Bug #3041: Fixed possible infinite loop while processing logs (Yiivgeny, Sam Dark) -- Bug #3042: Fixed the bug that CHttpSession::setCookieMode wasn't setting session.use_only_cookies when 'none' value was used (Sam Dark) -- Chg: Upgraded JQuery UI to 1.8.16 (Sam Dark) -- Chg: Upgraded jQuery to 1.7.1 (Sam Dark,mdomba) -- Chg: Upgraded CMaskedTextField jQuery plugin (Masked Input) to 1.3, added minified version (Sam Dark) -- Chg: Reverted back the changes made to fix issue 2284 (Qiang) -- Chg #2647: Fixed inconvenient way of defining through relation (creocoder, Sam Dark) -- Chg #2951: Removed CConfiguration::createObject, CController::paginate and CHtml::getActiveId deprecated since 1.0.x (Sam Dark) -- Chg #3054: CComponent::__isset properly checks for null values (mdomba) -- Enh #2029: Added scope support to Model::relations() (creocoder, Sam Dark) -- Enh #2129: Added Monospace font as a fallback for source code on the exception view page (mdomba) -- Enh #2231: Added CMenu::itemCssClass for the possibility to assign one CSS class to all menu items (mdomba) -- Enh #2334: CHttpRequest::getPathInfo() now properly decodes both UTF-8 and ISO-8859-1 encoded URIs (Sam Dark) -- Enh #2387: Numeric keys are now displayed in error/exception stacktrace call argument if array isn't 0..X indexed (Sam Dark) -- Enh #2602: Better error handling in CHttpSession::open() when using PHP <5.3.0 (Sam Dark) -- Enh #2604: CArrayDataProvider::keyField can now be set to false to use keys from $rawData array instead of a named keyField (creocoder, Sam Dark) -- Enh #2637: Related table alias set dynamically in relational query is now available in the scopes of related model (creocoder, Sam Dark) -- Enh #2646, #2706: Added ability to join on a specific keys (creocoder, Sam Dark) -- Enh #2654: Enhanced CUrlManager::addRules() by allowing new rules to be inserted in front of the existing rules (Qiang) -- Enh #2715: CMap::mergeArray now can accept multiple arrays to be merged (firejdl, Sam Dark) -- Enh #2717: Extracted MigrateCommand::createMigrationHistoryTable method from MigrateCommand::getMigrationHistory (Sam Dark) -- Enh #2751: Added removeOld parameter to yiic message command that allows not to add obsolete lines to translation file generated (luislobo, Sam Dark) -- Enh #2795: Added Yii::t() to YiiBase::powered() (Sam Dark) -- Enh #2808: Added ability to override core classes using YiiBase::classMap (Sam Dark) -- Enh #2811: Fully automated CLDR data update, updated data to 2.0.1. Added getLanguageID, getScriptID, getTerritoryID, getRegionID, getLocaleDisplayName, getLanguage, getScript, getTerritory methods to CLocale (kshaw, Sam Dark) -- Enh #2823: Added autocomplete for Gii "Table Name" field (Sam Dark) -- Enh #2855: CWebUser::login() returns the login status (mdomba) -- Enh #2872: Added CConsoleCommand::prompt() that asks for input and CConsoleCommand::confirm() that asks for confirmation (Sam Dark) -- Enh #2890: Added CInlineValidator::clientValidate to set custom client validation (mdomba) -- Enh #2914: Added CClientScript::addPackage (Sam Dark) -- Enh #2929: Added forceDownload to xSendFile options to choose between attachment and inline disposition. (mdomba) -- Enh #2981: Added CHtml::liveEvents to set the default global style for attaching jQuery event handlers. (mdomba, Sam Dark, Ekstazi) -- Enh #3020: Added HTTP_REFERER information to the exception log (mdomba) -- Enh #3024: Added CDbMigration::refreshTableSchema() that refreshes specified table schema cache (Sam Dark) -- Enh: Documented component accessors with @property for significantly better IDE autocomplete (Sam Dark, Detonator, Athari) -- Enh: Added CWebUser->loginRequiredAjaxResponse - value to be returned for ajax calls in case the user session has expired (mdomba) -- Enh: CFileCache::get() does now suppress a possible PHP error which might occur on concurrent requests (Y!!) -- Enh: jquery.yiiactiveform.js added check for form visibility to validate() to prevent JS error when using CActiveForm with jQuery dialog (mdomba) -- Enh: removed the check for ajax call in CErrorHandler::handleException() (mdomba) -- Enh: CAssetManager now generates different hash for files/directories with different mtime (Sam Dark) -- Enh: Yii error screen will now display proper message like error/warning/notice (mdomba) -- Enh: CHtml::clientchange() now uses the new jQuery on() method for event binding (mdomba) - -Version 1.1.8 June 26, 2011 ---------------------------- -- Bug: Fixed a typo that may cause issue when setting custom script packages with baseUrl option for CClientScript (Qiang) -- Bug #2001: CGridView now renders the body after the footer in order to conform to the standard (Qiang) -- Bug #2236: CJuiTabs - added id to ajax tabs (sebas) -- Bug #2272: Fixed the bug of undefined index css in CTreeView (mdomba) -- Bug #2274: CDbCriteria can't merge "with" anymore if a scope applied another "with" condition (Sam Dark, Michael) -- Bug #2275: Fixed the bug that ajax error handler was not called in case of exception (mdomba) -- Bug #2284: Fixed the bug that CActiveForm clientValidation did not work with tabular input forms (Qiang) -- Bug #2292: Fixed the bug that CActiveDataProvider may ignore the specified criteria for the sorting configuration (Qiang) -- Bug #2294: Fixed the bug that duplicated PK columns may appear in the join SQL statement if custom select option is used (Qiang) -- Bug #2303: Fixed not logging anything on WSDL service failure (Sam Dark) -- Bug #2312: Fixed the bug that auto-incremental columns for MSSQL may return non-integers as last insert ID (Qiang) -- Bug #2328: Fixed the bug that table names was not quoted in CDbAuthManager (mdomba) -- Bug #2338: Fixed a typo in the client validation code for CNumberValidator (Qiang) -- Bug #2359: Fixed the bug that checkbox in Gii view template may be hidden automatically (Qiang) -- Bug #2377: Fixed the bug that jsonp was expected instead of JSON when using AJAX and CAutoComplete at the same page (Sam Dark) -- Bug #2382: Fixed the bug that yiic wasn't able to run if there is no commands dir in application (Sam Dark) -- Bug #2394: Fixed a typo in CDbCache that may cause mget() to fail (Qiang) -- Bug #2409: Fixed the bug that CCaptcha::buttonOptions is not respected (Qiang) -- Bug #2411: Fixed the bug that CCaptcha will fail when setting buttonType to be 'button' (Qiang) -- Bug #2422: Fixed the bug that calling CLogger::flush(true) multiple times may cause duplication of dumped messages (Qiang) -- Bug #2426: Fixed the bug in Gii about calling a non-static method in a static way (Qiang) -- Bug #2463: Fixed the bug that INSERT statement created by COciCommandBuilder may fail in some cases (Qiang) -- Bug #2475: Fixed the bug that CMssqlCommandBuilder and COciCommandBuilder don't respect parameters declared in CDbExpression when doing insertion and updating (Qiang) -- Bug #2485: Fixed the bug that CMssqlPdoAdapter is not used when the driver is sqlsrv (Qiang) -- Bug #2509: Fixed the bug that AR for MSSQL may fail if on different catalogues (Qiang) -- Bug #2516: CTimestamp::getDate() produced wrong output with the default timestamp (Y!!) -- Bug #2538: Fixed the bug that AR may join with incorrect columns (Qiang) -- Bug #2544: Fixed the bug that setting CJuiDatePicker.language to be 'en' will use wrong language (Qiang) -- Bug #2574: Fixed the bug that overriding CActiveRecord::primaryKey() does not set the isPrimaryKey flag for columns (Qiang) -- Bug: CMapIterator current key wasn't initialized properly (Sam Dark, Detonator) -- Bug: Controller generated with Gii CRUD wasn't able to handle non-integer primary key (Sam Dark) -- Bug: Query caching may give incorrect caching results when bindParam or bindValue is used (Qiang) -- Bug: Changing CActiveForm.errorMessageCssClass had no effect when ajax and client validation were disabled (Y!!) -- Bug: Error when using CUniqueValidator with models indexed by specific field (Sam Dark, Yiivgeny) -- Bug: Fixed the bug that CAssetManager doesn't set permission mode according to newDirMode and newFileModel properties when publishing a directory (Qiang) -- Enh #2319: Added support to call behavior scope through criteria 'with'=>array('scopes'=>'behaviorScope') (Sam Dark, creocoder) -- Enh #2262: Added warning log when a session fails to start by CHttpSession (Qiang) -- Enh #2264: Added an option to the model code generator such that the relation generation can be disabled (Qiang) -- Enh #2268: Added CClientScript::getPackageBaseUrl() (Qiang) -- Enh #2273: Used better merging algorithm to build query parameters that are of array type in CUrlManager (Qiang) -- Enh #2299: Added CAssetManager.newFileMode and newDirMode (Qiang) -- Enh #2325: Added $option parameter to CDbCommand::select() to support special SELECT syntax (Qiang) -- Enh #2341: More verbose log message for CModel::onUnsafeAttribute. Added model class (Sam Dark) -- Enh #2357: Documented CWebApplication accessors with @property for better IDE autocomplete (Sam Dark) -- Enh #2361: Added CDbConnection::pdoClass that allows to specify and use custom PDO wrapper class (Sam Dark) -- Enh #2365: Added support for creating more complex index by using createIndex() of query builder. (Qiang) -- Enh #2386: Added CController::renderClip() (Qinag) -- Enh #2389: MessageCommand now accepts overwrite option determining if merge result will overwrite existing file (Sam Dark) -- Enh #2410: Improved CHtml::error() so that it can take attribute names in tabular format (Qiang) -- Enh #2424: CDbConnection::beginTransaction() will now trigger a trace message for better debugging (Y!!) -- Enh #2436: Added support for allowing console applications to call createUrl() (Qiang) -- Enh #2450: Added Ctype extension check to Yii requirements checker (Sam Dark) -- Enh #2474: Enhanced CDbCommand::insert() and update() to support CDbExpression (Qiang) -- Enh #2483: Added CGridView::$ajaxUrl and CListView::$ajaxUrl (Qiang) -- Enh #2493: Added money column type to the query builder (Qiang) -- Enh #2500: Added possibility to use a custom click handler for CButtonColumn default delete button (mdomba) -- Enh #2524: CActiveRecord::exists() now respects the scopes applied (Qiang) -- Enh #2532: Improved Yii class autoloader to support Web servers that do not allow changing PHP include paths. (Qiang) -- Enh #2534: Added CHtml::decode() (Qiang) -- Enh #2535: Added YiiBase::setLogger() (Qiang) -- Enh #2555: Exposed CFileCache::gc() so that garbage collection can be explicitly invoked (Qiang) -- Enh #2556: Improved exception display in ajax mode (Qiang) -- Enh #2571: Improved the code for cleaning output buffers in CErrorHandler (Qiang) -- Enh: XHR is now passed to CButtonColumn error JavaScript callback as a first argument (Sam Dark) -- Enh: Added CHttpSession::regenerateID() and improved CWebUser::changeIdentity() by regenerating session ID (Qiang) -- Enh: Added CActiveRecord::saveCounters() (Qiang) -- Enh: Added Brazilian Portuguese translation (pt_br) of the core messages (bastardgoblin) -- Enh: CJSON::encode() can now encode non-UTF8 data (Qiang) -- Enh: Added CLogger::autoDump to allow writing log messages to destinations in "real time" (Qiang) -- Enh: Added support for using custom URL rule classes with CUrlManager (Qiang) -- Enh: Added input length check to email and url validators to improve security (Qiang) -- Enh: Added support to allow registering a class autoloader after Yii's default autoloader (Qiang) -- Enh: Unit tests for validators (Kevin Bradwick) -- Chg #2251: Changed the constructor of CUploadedFile to be public (Qiang) -- Chg #2258: Added support to invalidate cached content by setting COutputCache::duration to be 0 (Qiang) -- Chg #2261: Upgraded HTMLPurifier to v4.3.0 (Sam Dark) -- Chg #2309: Changed XML mimetype to application/xml for more interoperability (Sam Dark) -- Chg #2370: Upgraded JQuery UI to 1.8.13 (Sam Dark) -- Chg #2401: Upgraded jQuery to 1.6.1 (Sam Dark) -- Chg #2452: Upgraded Blueprint CSS to 1.0.1 (Sam Dark) -- Chg #2482: CWebService will not display source file name and error line number in production mode (Qiang) -- Chg #2496: Setting CDbConnection::$emulatePrepare to be false will now explicitly set PDO::ATTR_EMULATE_PREPARES to be false (Qiang) -- Chg: Changed CHtml::clientChange event binding to support custom event types and avoid conflicts when using AJAX (Sam Dark) -- Chg: Changed all js live() calls with on() as live() is deprecated (mdomba) - -Version 1.1.7 March 27, 2011 ----------------------------- -- Bug #1080: Correct recursive merging for CDbCriteria::with (creocoder, Sam Dark) -- Bug #1624: Fixed the bug that Gii would generate only one relation for a parent that has a child with more FK linking to it (mdomba) -- Bug #1809: Fixed the bug that CPgsqlSchema did not detect sequence names correctly in some scenarios (Qiang) -- Bug #1984: Fixed firing event multiple times when using live()/delegate() on AJAXified pages (Ekstazi, Sam Dark) -- Bug #2026: Fixed the bug that migration command does not respect the connectionID property value (Qiang) -- Bug #2032: Fixed the bug that beginCache with renderDynamic was not working if used multiple times (mdomba) -- Bug #2037: Fixed CGridView js bug on selectionChanged "sboxname is undefined" (mdomba) -- Bug #2060: Fixed the bug that CWebUser::getFlashes() would return a counter array in the result (Qiang) -- Bug #2097: CHttpRequest::getUrl() should be the same as getRequestUri (Qiang) -- Bug #2099: Fixed CDbCriteria::mergeWith error (creocoder, Sam Dark) -- Bug #2107: Fixed the bug that calling CSqliteSchema::resetSequence() may throw exception when no autoincrement column (Qiang) -- Bug #2130: Fixed bug that Gii code/diff view was not starting from top (mdomba) -- Bug #2131: Fixed the bug that CGridView ajax calls would sometime display error alert when leaving the current page (mdomba,Qiang) -- Bug #2136: CGridView filter now uses jQuery serialize() instead of param() so that a checkbox can be used as a filter (mdomba) -- Bug #2140: Fixed the problem that CGridView even rows where not properly rendered in Firefox and Chrome (mdomba) -- Bug #2146: Fixed the bug in CFileHelper::getExtension, validatePath and getMimeTypeByExtension that was not finding the file extension correctly (mdomba) -- Bug #2169: Fixed the bug that some columns are not properly quoted in MigrateCommand (Qiang) -- Bug #2178: Fixed the bug that query builder did not recognize the AS keyword when using table alias (Qiang) -- Bug #2183: Fixed the bug that calling CActiveDataProvider::getTotalItemCount() explicitly would make the applied scopes disappear (Qiang) -- Bug #2188: 'join' in default scopes is now respected by STAT relations (creocoder, Sam Dark) -- Bug #2202: Fixed the bug that when setting CJuiDatePicker.flag=true, the date picker would not appear (Qiang) -- Bug #2214: Fixed the bug that renameColumn for MSSQL did not work correctly (Qiang) -- Bug: Fixed the bug that a PHP notice may occur in exception view if a method in the call stack has a very complex signature (Qiang) -- Bug: Fixed error that CGridview breaks when updating non-cgridview elements (mdomba) -- Bug: Fixed the bug in CCheckBoxColumn, "check all" checkbox was not being checked/unchecked when needed (mdomba) -- Bug: Fixed the bug in CGridView, selectionChanged was not called when "check all" was clicked (mdomba) -- Bug: Fixed resetting sequence in CDbCommand::truncateTable (Sam Dark) -- Bug: Fixed CMemCache incompatibility with some pecl-memcache and memcached versions (Sam Dark) -- Enh #558, #1755: Added parametrized named scopes, added scopes to criteria, implemented scope criteria merging (creocoder, Sam Dark) -- Enh #802: Added RESTful URL management (Qiang) -- Enh #923: Improved CUrlManager::parsePathInfo() to support multi-dimensional input arrays (Qiang) -- Enh #1117: Added support for "through" in Active Record relations allowing to handle association table data (creocoder, Sam Dark) -- Enh #1285: Added support for using custom script packages with CClientScript (Qiang) -- Enh #1741: Exposed CActiveForm::attributes and summaryID (Qiang) -- Enh #1770: Added CDbColumnSchema::autoIncrement property to allow checking whether a DB column is auto-incremental (Qiang) -- Enh #1782: Added updateSelector property to both CGridView and CListView (Qiang) -- Enh #1786: Enhanced CUrlValidator by adding 'validSchemes' and 'defaultScheme' property (Y!!) -- Enh #1784: Enhanced CWidget::getViewPath() to support returning themed view path (Qiang) -- Enh #1792: Enhanced CGridView: on ajax error a proper message is composed and displayed or optionally sent to the custom error handler (mdomba) -- Enh #1795: Added CFormInputElement::$enableAjaxValidation and $enableClientValidation to allow turning on/off AJAX validation for individual input fields (Qiang) -- Enh #1816: Added $dumpLogs parameter to CLogger::flush() so that log messages can be forced to be dumped at will (Qiang) -- Enh #1843: Added 'uncheckValue' option to CHtml::activeRadioButtonList and CHtml::activeCheckBoxList. It allows to avoid hidden field rendering (creocoder, Sam Dark) -- Enh #1847: Exposed CClientScript::$hasScripts (Qiang) -- Enh #1852: Added CWebUser::authTimeout to support separation between authentication timeout and session timeout (Qiang) -- Enh #1868: CDbConnection will now open a DB connection only when needed, unless autoConnection is set true (Qiang) -- Enh #1937: Added support to use custom input ID for input fields that need AJAX-based validation (Qiang) -- Enh #1993: Allow AR relations across separate db connections (Qiang) -- Enh #1996: Added support for using parameter binding with class-based actions (Qiang) -- Enh #1999: Added CCaptchaAction::offset property in order to decrease or increase the readability of the captcha (Y!!) -- Enh #2011: Added CDbCommand::setFetchMode to allow setting PDO result fetching mode (Sam Dark) -- Enh #2013: When creating model with Gii, database field names will be checked to conform with PHP variable naming rules (mdomba) -- Enh #2024: Added CHttpRequest::getPut() and getDelete() to fully support RESTful requests (Qiang) -- Enh #2059: Added support to respect the "target" attribute of an element generated by CHtml with "submit" HTML options (Qiang) -- Enh #2063: The CActiveForm JavaScript should now correctly trigger validaton for checkbox and radio type input fields (Y!!) -- Enh #2068: CTimestampBehavior::timestampExpression can now be a DB expression (Qiang) -- Enh #2093: CDataColumn will now always render a filter if the filter property is a string (Qiang) -- Enh #2094: Added SQL statement display in debug mode when an error occurs while executing a SQL (Qiang) -- Enh #2105: Added CButtonColumn::afterDelete so that a custom javascript function can be called after the delete function (mdomba) -- Enh #2108: Added CGridView::blankDisplay to allow customizing blank cell display (Qiang) -- Enh #2125: Added memcached check and hint to requirements checker (Sam Dark) -- Enh #2133: Set default focus to the password input for Gii login page (Qiang) -- Enh #2141: Allow the 'label' option of CMenu menu items to be optional and take an empty string value (Qiang) -- Enh #2142: Added CWebUser::autoUpdateFlash (Qiang) -- Enh #2143: Added htmlOptions to CTreeView::data so that additional options can be set for any tree view node (mdomba) -- Enh #2172: Added CDbMigration::execute() (Qiang) -- Enh #2179: Added CMultiFileUpload::options so that additional options can be passed to the constructor of the multifile object (mdomba) -- Enh #2185: Allow the column type to be optional when specifying columns for CGridView (Qiang) -- Enh #2197: Added $escape parameter to CDbCriteria::compare() (Qiang) -- Enh #2198: Improved CJuiTabs so that the tab content can be skipped (Qiang) -- Enh #2199: Added CListView::separator (Qiang) -- Enh #2206: Added $clearErrors parameter to CModel::validate() (Qiang) -- Enh #2209: Added CDbConnection::setAttributes() and getAttributes() to support initializing DB connection with PDO attributes (Qiang) -- Enh #2226: Added more tokens to summaryText when CBaseListView.enablePagination is set false (Qiang) -- Enh #2227: Exposed CActiveRecord::query() (Qiang) -- Enh: Added CGridView::ajaxUpdateError for the possibility to use a custom ajax error handler (mdomba) -- Enh: Allowed using CController instead of Controller with webapp generated application (Sam Dark) -- Enh: Added ability to perform Relational query without getting related models (creocoder, Sam Dark) -- Enh: Error page now displays associative array keys in parameter list (Sam Dark) -- Enh: Added CController::getActionParams() and invalidActionParams() to allow customizing action parameter binding feature (Qiang) -- Enh: Added CEvent::$params (Qiang) -- Enh: CStringValidator now uses application charset by default if mb_strlen is available (Sam Dark) -- Chg #2001: CGridView now renders footer after the body content (Qiang) -- Chg #2111: Calling CActiveRecord::getRelated($name, true) now will redo the DB query even if isNewRecord is true (qiang) -- Chg #2144: Upgraded jQuery UI to version 1.8.11 (Sam Dark) -- Chg #2148: Upgraded jQuery to version 1.5.1 (Sam Dark) -- Chg #2163: CConsoleCommand::usageError() will now exit with error code 1 (Qiang) -- Chg: jQuery UI now uses minified CSS (Sam Dark) -- Chg: Removed jQuery dimensions plugin since it's in jQuery core (Sam Dark) -- Chg: Upgraded bgiframe to 2.1.2 (Sam Dark) -- New #1763: Added support for performing seamless client-side data validation using CActiveForm (Qiang, hightman) -- New #2069: Added CDateValidator (Qiang) -- New: Added support for query caching (Qiang) -- New: Added Lithuanian translations (tomas.valacka) - -Version 1.1.6 January 16, 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) -- Enh: Updated CLDR data to version 1.9 (Sam Dark) -- Enh: Allowed passing multiple forms or choice format quantity parameter without wrapping it with array (Sam Dark) -- Enh: CDbConnection::quoteColumnName and quoteTableName will properly quote table prefix and schema prefix. (Qiang) -- Enh: Added CConsoleCommand::init() (Qiang) -- Enh: Improved the exception display with source code for each call stack (Sam Dark, Qiang) -- Enh: Improved the error display in console command mode (Qiang) -- Enh: Added support for using anonymous parameters and global options in console commands (Qiang) -- Enh: Added message translations in Czech and Croatia (Qiang) -- Enh: Enhanced CFileLogRoute to process the logs faster (Y!!) -- Enh: Improved IDE code completion for Yii::app()-> (Sam Dark) -- Enh: CSort now supports relation.field notation to sort grids by related model fields (Sam Dark, denis909) -- Enh: Added CHttpRequest->xSendFile() to process file download requests by using X-Sendfile header (mdomba) -- Enh: Refactored CMenu by adding CMenu::renderMenuItem to make it easier to be extended (Qiang) -- Enh: Refactored CCheckBoxColumn for better use, added CCheckColumn->selectableRows (mdomba) -- Chg #1914: Composite foreign keys should be separated by commas in CActiveRecord::relations() (Qiang) -- Chg #1949: CGridView will now display the first page after changing filters (Qiang) -- Chg: isset($model->x) and isset($model['x']) are now identical for CActiveRecord models (Sam Dark) -- Chg: Changed CHtml::clientChange() to make $live a configurable option in $htmlOptions (Qiang) -- New #1191: Implemented the database migration feature (Qiang) -- New: Added query builder (Qiang) - - -Version 1.1.5 November 14, 2010 -------------------------------- -- Bug #997: Fixed the bug that relational AR query with page-by and sorting may fail to work for SQL Server (Qiang) -- Bug #1130: Fixed the bug when renderDynamic and beginCache was used together without page caching (mdomba) -- Bug #1244: Fixed the bug that CDbCommandBuilder::createCountCommand may generate invalid SQL when having and/or group options are used (Qiang) -- Bug #1420: Fixed the bug that the table alias set in the model was not honored in STAT AR queries (Qiang) -- Bug #1565: Fixed the bug that COutputCache may fail to work when used to cache whole pages (Qiang) -- Bug #1577: Fixed the bug in CMssqlSchema::compareTableNames() (Qiang) -- Bug #1592: Fixed the bug that the hidden field generated by CHtml::checkBox may have the same ID as the checkbox. (Qiang) -- Bug #1615: Fixed the bug that caused CLogFilter::filter() to add context informations when the log was empty (Y!!) -- Bug #1643: Fixed the bug that CFileValidator may cause a PHP error when using maxFiles>1 and the model attribute returning unexpected array (Qiang) -- Bug #1647: Fixed the bug that CActiveRelation may attempt to set an undefined 'together' property when merging with a criteria (Qiang) -- Bug #1653: Fixed the bug that in PHP 5.3 CArrayDataProvider will fail due to incorrect parameters sent to array_multisort (Qiang) -- Bug #1655: Fixed the bug in COciSchema about checking DB schema (Qiang) -- Bug #1673: Fixed the bug that CDbSchema::getTables() might return null table schemas (Qiang) -- Bug #1685: Fixed the bug in COciSchema that will fail when used with DB schema (Qiang) -- Bug #1696: Fixed the bug that CJSON and CJavaScript might serialize float numbers into local-dependent strings (Qiang) -- Bug #1715: Fixed the bug that CActiveDataProvider.sort does not respect table alias set in the query criteria (Qiang) -- Bug #1718: Fixed the bug that Gii may fail if the error handler or user component is customized in the main application (Qiang) -- Bug #1719: Fixed the bug that CActiveForm->focus was not working if enableAjaxValidation was set to false (mdomba) -- Bug #1730: Fixed the bug that CDbConnection may attempt to use "SET NAMES" to set charset for Oracle DB (Qiang) -- Bug #1735: Fixed the bug that CGridView and CListView may fail to work in AJAX mode if setting pagerCssClass with multiple classes (Qiang) -- Bug #1748: Fixed the bug that CDbDataReader does not properly reset internal pointer when it has multiple rowsets (Qiang) -- Bug: Fixed the bug that some HTTP requests may cause a PHP notice complaining HTTP_HOST undefined in CHttpRequest (Qiang) -- Bug: Fixed a bug in CGridView JavaScript that would fail the deletion action in IE when ajaxUpdate is set false (Qiang) -- Bug: Fixed a bug that CFileCache may slow down performance when strlen is overloaded by mb_strlen (Qiang) -- Enh #202: Added support for console command actions and parameter binding (Qiang) -- Enh #970: Added CController::beforeRender() and CController::afterRender() (Qiang) -- Enh #1081: Refactored application global state management to allow loading and saving states explicitly for long-run tasks (Qiang) -- Enh #1126: CHtml can now properly render special HTML attributes, such as readonly, disabled, according to their boolean values (Qiang) -- Enh #1419: CMaskedTextField, CAutoComplete, CStarRating, CJuiDatePicker, CJuiAutoComplete and CJuiSliderInput now can be used with tabular input (Sam Dark) -- Enh #1450: Added support for theming widget views (Qiang) -- Enh #1481: Added support for autoloading namespaced classes (Qiang) -- Enh #1522: The attributes of CDetailView now support the property 'visible' (Y!!) -- Enh #1546: Fixed the bug that disabling behaviors did not detach behavior event handlers (Qiang) -- Enh #1555: Added support to allow unloading/resetting an application component by calling CModule::setComponent() (Qiang) -- Enh #1561: Enhanced Gii tooltip feature to allow disable tooltips for certain input fields (Qiang) -- Enh #1599: Refactored CMultiFileUpload by extending from CInputWidget (Qiang) -- Enh #1560: Removed potential circular references in relational AR queries (Qiang) -- Enh #1578: Added support to parse AM/PM by CDateTimeParser (Qiang) -- Enh #1583: Upgraded HTMLPurifier to v4.2.0 (Sam Dark) -- Enh #1591: Fixed yiic.bat to make sure it works even if the path of PHP executable contains spaces (Qiang) -- Enh #1594: Added CWebLogRoute::ignoreAjaxInFireBug to make sure ajax calls work when showInFireBug is set to true (mdomba) -- Enh #1596: Added 'not' property to CRangeValidator and CRegularExpressionValidator in order to support inversion of the validation logic (Y!!) -- Enh #1598: Fixed CHttpRequest::getUserAgent() to make sure it works even if HTTP_USER_AGENT is not defined (Qiang) -- Enh #1607: Added CDbCache::setDbConnection (Qiang) -- Enh #1611: Added support for using composite keys in CActiveDataProvider (Qiang) -- Enh #1618: Fixed CHttpRequest::getAcceptTypes() to make sure it works even if HTTP_ACCEPT is not defined (Y!!) -- Enh #1625: Replaced rand() with mt_rand() for generating random private keys (Qiang) -- Enh #1627: Added check if FreeType support is installed and enabled in GD (mdomba) -- Enh #1633: Added $defaults to CDateTimeParser::parse() to support more reasonable datetime parsing (Qiang) -- Enh #1641: Added PhpUnit 3.5.0RC1 and up support (Sam Dark) -- Enh #1644: Added CModel::onAfterConstruct event and allowed CModelBehavior to respond to this event (Qiang) -- Enh #1651: Added 'name' and 'model' properties to the attribute objects used in CActiveForm javascript code (Qiang) -- Enh #1658: Added CAssetManager::linkAssets to support publishing assets via symbolic links (Qiang) -- Enh #1659: Improved CHttpRequest::sendFile() and CWebService::renderWsdl() to make them more secure in case mbstring.func_overload is in effect (Qiang) -- Enh #1661: Added CActiveForm 'reset' event handler to reset validation errors if using CHtml::resetButton() (mdomba) -- Enh #1667: Added CDbCriteria::index to support indexing the AR query result array with the specified attribute values (Qiang) -- Enh #1668: Added validation to ensure PHP keywords be not used as class names (Qiang) -- Enh #1688: Refactored CDbMessageSource to allow easier extension (Qiang) -- Enh #1699: Added capability to remove duplicated script files registered for different positions in CClientScript (Qiang) -- Enh #1710: Upgraded treeview JavaScript to version 1.4.1 (mdomba) -- Enh #1711: JavaScript registered in POS_LOAD will now be put in jQuery window load event instead of the previous global window load event (Qiang) -- Enh #1742: Exposing the class map feature that was previously only available to core classes (Qiang) -- Enh #1738: Upgraded JQuery UI to 1.8.6 (Sam Dark) -- Enh #1740: Added CModelEvent::criteria so that in onBeforeEvent event, the query criteria can be accessed (Qiang) -- Enh #1753: Added method chaining support for CClientScript (Qiang) -- Enh: Added checking for empty keywords in addSearchCondition(), to prevent adding unnecessary conditions (mdomba) -- Enh: Added flushValues() method to the cache classes (Y!!) -- Enh: Added buttonset for CJuiButoon (sebas) -- Enh: Improved error handling to catch errors occurring in CApplication::end() (Qiang) -- Enh: Improved CHttpRequest::sendFile() to avoid timeout errors caused by long file downloading time (Qiang) -- Enh: Improved action parameter binding by detecting if a parameter requires array or not (Qiang) -- Enh: Added logging of DB query params in DB query profiling (Sam Dark, Vitaliy Stepanenko) -- Enh: Added CDbCommand::bindValues() (Qiang) -- Chg #1355: CHtml will no longer render null attributes in HTML tags (Qiang) -- Chg #1540: The 'name' option set in CCheckBoxColumn::checkBoxHtmlOptions will be kept as is without any change (Qiang) -- Chg #1678: The prompt and empty options used in CHtml methods will NOT be HTML-encoded anymore. (Qiang) -- Chg #1680: Upgraded jQuery to version 1.4.4 (Sam Dark) -- Chg #1756: Changed CGoogleApi::BOOTSTRAP_URL to CGoogleApi::$bootstrapUrl to allow customization (Qiang) -- Chg: The javascript files of CListView and CGridView are now registered at the end of the page (Qiang) -- Chg: Log filters will now be invoked only when there are some log messages available (Qiang) -- Chg: removed destructor from CDbCache, CDbAuthManager and CDbLogRoute to avoid potential DB connection issue (Qiang) -- New #1542: Added CTypedMap (Qiang) - - -Version 1.1.4 September 5, 2010 -------------------------------- -- Bug #698: Now you can get and modify criteria of the current query in beforeFind() event handler (Sam Dark) -- Bug #1031: Fixed the bug that the filters in CGridView does not work in IE (Qiang) -- Bug #1119: Added CUploadedFile::reset() to make it more test-friendly (Qiang) -- Bug #1176: Fixed the bug that CVarDumper doesn't highlight well strings with quotes (Qiang) -- Bug #1376: Fixed the bug that the timestamps displayed in Web application log may not be formatted properly (Qiang) -- Bug #1377: Fixed the bug that CStarRating did not work when not setting the model property (Qiang) -- Bug #1382: Fixed space removal in CDbCriteria::compare() (Sam Dark) -- Bug #1384: SET NAMES problem with MSSQL PDO Provider (Qiang) -- Bug #1390: AR may lose precision if a column is declared as unsigned int for MySQL database (Qiang) -- Bug #1404: CSecurityManager::validateData() fails when the data is an array (Qiang) -- Bug #1408: CDbAuthManager may throw exception when unserializing data from auth items in PHP 5.3 (Qiang) -- Bug #1432: AR find methods with JOIN in query criteria may populate AR objects with attribute values belonging to other tables (Qiang) -- Bug #1435: Table alias declared in scopes may be ignored when performing relational findByPk and findByAttributes queries (Qiang) -- Bug #1476: Fixed the bug that setting 'id' to be false will still render 'id' attribute in CHtml::radioButton and checkBox (Qiang) -- Bug #1455: CFormButtonElement generates wrong type for button tags (Qiang) -- Bug #1488: When using cookies with CJuiWidget jquery.cookie.js is not registered (sebas) -- Bug #1493: ShellCommand wouldn't process logs after exiting. (Qiang) -- Bug #1521: CUniqueValidator may incorrectly fail the validation of a non-PK column when updating both this column and the PK column (Qiang) -- Bug #1526: CFormInputElement by default should only show error if CForm::showErrorSummary is false (Qiang) -- Enh #954: Refactored CActiveRecord and CActiveFinder so that CActiveRecord::with() always returns the AR object itself (Qiang) -- Enh #1019: Improved CDataFormatter for formatting numeric weekdays (Qiang) -- Enh #1073: Allow dependencies to be set in constructor of CChainedCacheDependency. Also allow dependencies to be specified as configurations. (Qiang) -- Enh #1087: Allow CDbCriteria to be used as dynamic relational query options (Qiang) -- Enh #1104: Added argument "$" to jQuery block to prevent $ alias conflict (mdomba) -- Enh #1108: Added option to CFileHelper::getMimeType() to allow enable and disable falling back to extension-based MIME detection (Qiang) -- Enh #1120: Improved error handling in session write handler of CDbHttpSession (Qiang) -- Enh #1128: Improved error reporting when assets directory does not exist or is not writable (Qiang) -- Enh #1222: Added relations information to Gii generated model's PHPDoc (Sam Dark) -- Enh #1244: CActiveRecord::count() now respects GROUP-BY and HAVING settings (Qiang) -- Enh #1347: Added CPagination::validateCurrentPage (Qiang) -- Enh #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) -- Enh #1359: Added CActiveRecord::countByAttributes (Qiang) -- Enh #1361: Added linkLabelWrapper, firstItemCssClass and lastItemCssClass to CMenu (Qiang) -- Enh #1366: Added CListView::itemsTagName (Qiang) -- Enh #1371: Improved js code in gii view templates to allow easier subclassing (Qiang) -- Enh #1392: Added CCaptchaAction::fixedVerifyCode (Qiang) -- Enh #1400: Enhanced CActiveRecord::getAttributeLabel() to support returning labels for related object's attribute (Qiang) -- Enh #1412: Yii::import() now throws an exception when trying to include nonexisting PHP file (Qiang) -- Enh #1414: Several enhancements to MSSQL driver used by AR (Qiang) -- Enh #1433: Added CMessageSource::forceTranslation (Qiang) -- Enh #1434: Added zii message translation in Italian (enrico.detoma) -- Enh #1440: CDbException does now provide a valid error code if possible (Y!!) -- Enh #1443: Added CCheckBoxColumn::checked to allow settings checked state for each CCheckBoxColumn row (Sam Dark) -- Enh #1444: Added CFilter::init() (Qiang) -- Enh #1449: Changed CDbCriteria's base class to be CComponent to better report configuration errors (Qiang) -- Enh #1461: Enhanced CEmailLogRoute to support additional email headers (Y!!) -- Enh #1471: CActiveForm AJAX validation should be cancelled when the form is already submitted (Qiang) -- Enh #1509: Improved CMarkdownParser so that it can be used in console mode (Qiang) -- Enh #1525: Added support to allow customizing 'name' attribute of checkboxes generated by CCheckBoxColumn (Qiang) -- Enh #1532: Exposed the serviceName and namespace properties of CWsdlGenerator (Qiang) -- Enh: Added CPortlet::hideOnEmpty property (Qiang) -- Enh: Added CValidator::safe to allow marking a validator as safe or unsafe (Qiang) -- Enh: Added CDbCacheDependency::params (Qiang) -- Enh: Added CUrlManager::addRules() (Qiang) -- Enh: Added support for using sqlsrv driver with MSSQL (Qiang) -- Enh: Added CActiveForm::focus to set input focus on page load (mdomba) -- Chg #1102: Added jQuery UI as a core client script package (Qiang) -- Chg #1309: CHttpRequest::getPathInfo() now always returns decoded results (Qiang) -- Chg #1494: CHtml::ajaxSubmitButton() will generate a submit button (Qiang) -- Chg #1515: CModel::onUnsafeAttribute() will be invoked only when $safeOnly is true when calling CModel::setAttributes (Qiang) -- Chg: Replaced jQuery live() with delegate() in CHtml-generated js code (Qiang) -- New: Upgraded JQuery UI to 1.8.4 (Sam Dark) -- New: Upgraded code highlighter: added sh and VBScript, fixed comments in CSS and hex numbers in JavaScript (Sam Dark) -- New: Added CSqlDataProvider and CArrayDataProvider (Qiang) -- New: Added support for automatic action parameter binding from $_GET (Qiang) - -Version 1.1.3 July 4, 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<5.3 (Sam Dark, parpaing) -- Enh #217: Added support to allow using related objects as selection values in CHtml (Qiang) -- Enh #663: Improved CSecurityManager to allow customizing the crypt/hash algorithms being used (Qiang) -- Enh #716: Improved the performance of statistical query in AR (Qiang) -- Enh #862: Enhanced CSort virtual attributes and support for related tables (Qiang) -- Enh #887: Relative URL's will be returned when using a parameterized hostname url rule that has the current hostinfo (Qiang) -- Enh #930: Updated CStarRating's jQuery plugin to v3.13, updated jQuery Metadata plugin (Sam Dark) -- Enh #952: Enhanced support for using defaultParams in CUrlManager (Qiang) -- Enh #1015: Added automatic column initialization when non-active data provider is used for CGridView (Qiang) -- Enh #1022: Added CMenu::activateItems (Qiang) -- Enh #1041: Added support to allow skinning pagers used in CGridView and CListView (Qiang) -- Enh #1043: Improved view resolution to support using themeable application views in a module (Qiang) -- Enh #1049: Enhanced label generation when using CDetailView with associative arrays (Qiang) -- Enh #1127: Added support to automatically generate maxlength attribute for text/password inputs based on model rules (Qiang) -- Enh #1151: Added support to generate grid column header based on attribute names (Qiang) -- Enh #1158: Added translations in Latvian (lafriks) -- Enh #1166: Added CActiveRecord::setOldPrimaryKey (Qiang) -- Enh #1174: AR's count() now generates more reasonable SQL statement when 'group' option is specified (Qiang) -- Enh #1179: Added CMultiFileUpload::file (Qiang) -- Enh #1180: Exposed several member variables in CClientScript to be protected (Qiang) -- Enh #1183: Added support to retrieve the currently active table alias in AR scopes (Qiang) -- Enh #1188: Removed exception message display in production mode when a DB connection fails to improve security (Qiang) -- Enh #1189: Added $loadedOnly parameter to CModule::getComponents() so that it can return all application components including unloaded ones (Qiang) -- Enh #1199: AR's count() method now respects the 'select' option in the query criteria (Qiang) -- Enh #1202: Added support for using anonymous functions as component property values (Qiang) -- Enh #1203: Gii now respects the newDirMode and newFileMode settings even when lower umask is set (Qiang) -- Enh #1210: Added support to generate proper labels for relational properties in CDetailView (Qiang) -- Enh #1225: Added 'firstError' option to CHtml::errorSummary() to support displaying only the first error message of each model attribute (Qiang) -- Enh #1232: Added CAuthManager::showErrors. When value is true Yii will turn on error_reporting for RBAC bizRules. False by default (Sam Dark) -- Enh #1239: CBreadcrumbs should have the 'Home' label translated (Qiang) -- Enh #1245: Optimized the implementation of checkAccess of CPhpAuthManager and CDbAuthManager (Qiang) -- Enh #1261: Added magicFile parameter to CFileHelper::getMimeType() and getMimeTypeByExtension() (Qiang) -- Enh #1268: Added isset and unset support to behavior properties in a component context (Qiang) -- Enh #1271: Added CWebUser::getFlashes() (Qiang) -- Enh #1276: Added CClientScript::coreScriptPosition to support customizing the insertion position of core scripts (Qiang) -- Enh #1278: Gii model generator will now respect the table prefix when determining which tables the models should be generated for (Qiang) -- Enh #1283: Added port and securePort properties to CHttpRequest (Qiang) -- Enh #1284: Added support to allow passing an AR finder as the first parameter of the constructor of CActiveDataProvider (Qiang) -- Enh #1286: Upgraded HTMLPurifier to v4.1.1 (Qiang) -- Enh #1289: Added support to allow using non-string values when calling CDbCriteria::compare() (Qiang) -- Enh #1290: Added cssClass to individual item in CDetailView (Qiang) -- Enh #1306: Hide log route outputs when no messages are collected after filtering (Qiang) -- Enh #1311: Added {page} and {pages} tokens to CBaseListView::summaryText (Qiang) -- Enh #1326: Added CBaseActiveRelation::join property (Qiang) -- Enh: CActiveRecord::beforeFind event is now triggered in all cases including related models with both lazy and eager loading (Sam Dark, creocoder) -- Enh: Added support for using array-typed model attributes in active methods in CHtml (Qiang) -- Enh: Added beforeValidate, afterValidate, beforeValidateAttribute and afterValidateAttribute options to CActiveForm (Qiang) -- Enh: Changed @var declarations to class @property declarations in gii and yiic shell model templates (Sam Dark) -- Enh: IDE code completion for CActiveRecord::attributes (Sam Dark) -- Enh: Added beforeLogin, afterLogin, beforeLogout and afterLogout to CWebUser (Qiang) -- Enh: Enhanced CSort::defaultOrder to allow using virtual attribute names (Qiang) -- Chg #1323: Conditions declared in scopes of the related AR classes will be put in the ON clause of the JOIN statement (Qiang) -- Chg: CAutoComplete is now deprecated (Sam Dark) -- New: Added CJuiButton (sebas) - -Version 1.1.2 May 2, 2010 -------------------------- -- Bug #676, 891: merging criterias with parameters is impossible (Sam Dark) -- Bug #1006: Setting CForm::attributes may cause exception (Qiang) -- Bug #1007: CActiveForm did not update the validation result correctly when change of one attribute affects the validity of another (Qiang) -- Bug #1014: CDataProvider was accessing non-existing property modelClass (Qiang) -- Bug #1021: Missing return in CAuthItem::removeChild (Sam Dark) -- Bug #1031: Added a temporary fix for dropdown filter in CGridView not working in IE (Qiang) -- Bug #1035: RBAC BizRule security violation (Sam Dark) -- Bug #1048: CAutoComplete conflicts with jQueryUI 1.8.x (Sam Dark) -- Bug #1115: Fixed the bug that using bigint with MySQL, PostgreSQL and SQL Server may lose precision (Qiang) -- Bug #1121: typo in CActiveRecord::setPrimaryKey() (Qiang) -- Bug #1136: Fixed wrong API call in CXCache::flush() (Qiang) -- Bug #1147: zii widget messages are not translated via Yii::t() (Sam Dark) -- Bug: Removed the debugging line in CActiveFinder that caused many-many relational query to fail if FKs are not defined (Qiang) -- Bug: Fixed the bug that doing performance profiling while turning on YII_TRACE_LEVEL would throw exception (Qiang) -- Bug: user was redirected to AJAX URLs after logging in (Sam Dark) -- Bug: RBAC rules with bizRule and caching enabled worked wrong (Sam Dark) -- Bug: CSort may cause exception if an invalid column is to be sorted (Qiang) -- Bug: AR count() does not generate correct SQL when distinct is set true in the criteria (Qiang) -- Bug: Relational AR query may complain column not well defined when the column select spans multiple lines (Qiang) -- Enh #943: dynamic AR relations (Sam Dark) -- Enh #946: Added a new parameter to CBaseController::widget() method to allow capturing the output of the widget (Qiang) -- Enh #977: Added CModel::getValidatorList() to allow adding/removing validation rules on the fly (Sam Dark, creocoder) -- Enh #1001: Added CActiveRecord::resetScope() that resets all scopes and criterias applied including default scope (Sam Dark) -- Enh #1009: Allow quoted columns in CDbCriteria::select when performing relational query (Qiang) -- Enh #1025: added 'uncheckValue' option to CHtml::radioButton() and CHtml::checkBox() (Jonah) -- Enh #1042: CForm __construct now uses setModel() instead of assigning _model directly (Sam Dark) -- Enh #1062: Added CDbCriteria::addBetweenCondition() (Sam Dark) -- Enh #1071: Optimized file copying in CUploadedFile::saveAs() (Sam Dark) -- Enh #1084: Added CLocale::getOrientation() to return character orientation information of a locale (Qiang) -- Enh #1091: Added support to allow using normal PHP views with special views recognized by the installed view renderer (Qiang) -- Enh #1093: CJSON now tries to use native PHP functions prior to use Yii implementation (Sam Dark) -- Enh #1140: Added CHttpSession::get() (Qiang) -- Enh #1156: Updated jQuery BBQ to 1.2.1 (Sam Dark) -- Enh #1282: Added support to configure widget default values in application configuration (Qiang) -- Enh: Improved IDE code completion for generated AR models (Sam Dark) -- Enh: CCaptchaAction now supports unlimited tests by setting its testLimit to be 0 (Qiang) -- Enh: Added $forceCopy parameter to CAssetManager::publish() (Qiang) -- Enh: CTypeValidator now supports checking array data (Qiang) -- Enh: Added CFileHelper::getExtension() (Qiang) -- Enh: Added CModule::hasModule() (Qiang) -- Enh: CFileValidator now works with php.ini's upload_max_filesize strings with K, G, k, m, g (Sam Dark) -- Enh: Enhanced CActiveForm to make it more robust in case some code error occurs when performing ajax validation (Qiang) -- Enh: CMaskedTextField's jquery.maskedinput updated to 1.2.2 (Sam Dark) -- Enh: Added support to allow CActiveRecord::getAttributes() to return custom attributes if required (Qiang) -- Chg #1118: CActiveRecord::refresh() now updates the record by directly updating the attributes array (Qiang) -- Chg #1125: Ability to use model metadata in behavior's attach() method (Sam Dark) -- Chg #1163: CLinkPager will enable first and last page buttons unless the current page is first or last. (Qiang) -- Chg #1164: CUrlRule will not throw 404 exception when unable to parse a URL under strict parsing mode (Qiang) -- New #1005: added CWinCache (Sam Dark) -- New #1013: Added CJuiAutoComplete (sebas) -- New: Added Ukrainian translations (Valeriy) -- New: Upgraded JQuery UI to 1.8.1 (Qiang) - -Version 1.1.1 March 14, 2010 ----------------------------- -- Bug #727: AR may lose precision for numbers of bigint type (Qiang) -- Bug #738: COciColumnSchema must return 'double' if precision and scale designators of NUMBER field are absent (Qiang) -- Bug #816: CUniqueValidator did not work with CFormModel (Qiang) -- Bug #823: typo in CLinkColumn about linkHtmlOptions (Qiang) -- Bug #839: typo in CFormatter about calling method_exists() (Qiang) -- Bug #865: CWidgetFactory didn't set the owner of the newly created widgets correctly (Qiang) -- Bug #869: CDateFormatter::formatTimeZone() may report error for certain locale data (Qiang) -- Bug #871: A module generated by the yiic module command did not use the application layout by default (Qiang) -- Bug #890: The 'alias' option set in default scope was ignored when performing an eager relational query (Qiang) -- Bug #932: CLocale::getWeekDayName() causes PHP error when requesting 'narrow' format data (Qiang) -- Bug #947: CTabView does not target tab links correctly when extra elements are put in the header (Qiang) -- Bug #957: CGettextPoFile should allow optional msgctxt (Qiang) -- Bug #967: CFormInputElement doesn't respect element-id if set (Sam Dark) -- Bug #988: COcSchema::quoteTableName() and quoteColumnName() should quote the names (Qiang) -- Bug #995: The 'alias' option set in default scope was ignored when some find methods in AR (Qiang) -- Bug #996: "yiic message" command generates incorrect message file name when used in a module context (Qiang) -- Bug #14 (zii): Added documentation about the "js:" prefix in CJuiSortable (sebas) -- Bug #18 (zii): Change the way CJuiDatePicker sets its language option (sebas) -- Bug #27 (zii): Fixed the issue that when CSRF is turned on, delete button doesn't work for CGridView (Qiang) -- Bug: Setting the 'with' option in criteria array doesn't trigger eager loading for AR (Qiang) -- Bug: CActiveRecord should update oldPrimaryKey after calling save() (Qiang) -- Bug: CForm renders invalid 'name' and 'type' attributes when used to generate nested forms (Qiang) -- Bug: Fixed the bug that beforeAjaxUpdate/afterAjaxUpdate of CGridView/CListView do not take effect. -- Bug: Fixed the bug that the names of URL parameters were not encoded (Qiang) -- Bug: CGridView and CListView may not register the needed CSS file for the pager (Qiang) -- Enh #38: Added support to allow CHtml links and buttons work in AJAX responses (Qiang) -- Enh #392: Added CStringValidator::encoding to support checking the length of multibyte strings (Qiang) -- Enh #686: Added CUrlManager::setBasePath() (Qiang) -- Enh #726: Added CDbExpression::params (Qiang) -- Enh #794: Added support to allow using * to select all primary table columns in relational AR query (Qiang) -- Enh #820: Added CAccessRule::message to allow customizing authorization error message (Qiang) -- Enh #826: Added CMenu::itemTemplate property and template option for each menu item (Qiang) -- Enh #857: Added $exit parameter to CController::forward() (Qiang) -- Enh #872: Added CFlexWidget::allowFullScreen (Qiang) -- Enh #888: Added CBaseUserIdentity::setPersistentStates (Sam Dark) -- Enh #898: Added support to allow defining global yiic commands (Qiang) -- Enh #912: Added CModel::onUnsafeAttribute() which will log a warning message when massively assigning unsafe attributes (Qiang) -- Enh #916: Added visible option to buttons in CButtonColumn (Qiang) -- Enh #918: Added support to show attribute name as the label when displaying an array using CDetailView (Qiang) -- Enh #936: Current module ID is no longer needed when calling CController::forward() (Qiang) -- Enh #941: AR now allows MANY_MANY relation to be specified more flexibly (Qiang) -- Enh #953: Added CGridView::hideHeader (Qiang) -- Enh #955: Added validateValue() to CUrlValidator and CEmailValidator (Qiang) -- Enh #971: Added CDbCriteria::addNotInCondition() (Sam Dark) -- Enh #992: Added 'data' option to CTabView.tabs property (Qiang) -- Enh: Refactored the blog demo to make use of the new CActiveForm and the filtering feature of CGridView (Qiang) -- Enh: Improved the code generated by yiic, including menu refactoring, filtering/search support, and using active form (Qiang) -- Enh: Improved CHtml::beginForm() to auto-generate hidden fields for a GET form whose action contains query string (Qiang) -- Enh: Added CDataProvider::setTotalItemCount() (Qiang) -- Enh: Added skipOnError property to built-in validators (Qiang) -- Enh: Added CDbConnection::initSQLs (Qiang) -- Enh: Added CHtml::refresh() (Qiang) -- Enh: Added CListView.loadingCssClass and CGridView.loadingCssClass (Qiang) -- Enh: Added filtering support for CGridView (Qiang) -- Enh: Added 'template' option to each attribute specification in CDetailView (Qiang) -- Chg #841: Changed CUrlManager::parsePathInfo() to non-static (Qiang) -- Chg #851: yiic tool no longer turns off E_NOTICE (Qiang) -- Chg #949: The init() method will be invoked after an AR instance is created by the find methods (Qiang) -- Chg #974: CComponent::evaluateExpression() no longer suppresses expression error (Qiang) -- Chg #978: CActiveRecord::afterSave() will now be invoked only when the saving is successful (Qiang) -- Chg: Upgraded jquery to version 1.4.2 (Qiang) -- Chg: CMenu will render the 'active' CSS class in the container tag of the link (Qiang) -- Chg: Set the default theme for JQuery UI widgets to be 'base' (Qiang) -- New: Added CActiveForm that performs model validations via AJAX (Qiang) -- New: Added 'form' command to the 'yiic shell' tool (Qiang) -- New: Upgraded JQuery UI to 1.8rc3 (Qiang) - -Version 1.1.0 January 10, 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: Added CTimestampBehavior to automatically set timestamps in AR (Jonah) -- New: Added CBaseMenu and CListMenu to aid in creating menus (Jonah) -- New: Added CJuiWidget (sebas, Qiang) -- New: Added CJuiInputWidget (sebas, Qiang) -- New: Added CJuiSlider (sebas, Qiang) -- New: Added CJuiSliderInput (sebas) -- New: Added CJuiAccordion (sebas, Qiang) -- New: Added CJuiProgressBar (sebas, Qiang) -- New: Added CJuiTabs (sebas, Qiang) -- New: Added CJuiDatePicker (sebas, Qiang) -- New: Added CJuiSortable (sebas) -- New: Added CJuiDialog (sebas) -- New: Added CJuiSelectable (sebas) -- New: Added CJuiDroppable (sebas) -- New: Added CJuiResizable (sebas) -- New: Added CJuiDraggable (sebas) -- New: Added CGridView (Qiang) -- New: Added CDetailView (Qiang) -- New: Added CListView (Qiang) -- New: Added CPortlet (Qiang) -- New: Added CBreadcrumbs (Qiang) - -Version 1.1rc December 13, 2009 -------------------------------- -- Bug #713: webapp command generates incorrect test bootstrap script (Qiang) -- Bug #724: the rememberMe attribute is not validated in generated webapp code (Qiang) -- Enh #666: Added support for auto-flushing log messages (Qiang) -- Enh #668: Nested forms generated by CForm will render attributes in the fieldset tag (Qiang) -- Enh #695: Upgraded HTML Purifier to 4.0.0 (Qiang) -- Enh #711: Added CWebUser::autoRenewCookie to support automatically renew cookie-based login (Qiang) -- Enh: Added CSS class for links generated by CSort to differentiate sorting directions (Qiang) -- Enh: Added CComponent::evaluateExpression() (Qiang) -- Enh: Added CPagination::offset and CPagination::limit (Qiang) -- Chg: CSort.multiSort is changed to sort by single attribute by default (Qiang) -- New: Added CDataProvider and CActiveDataProvider (Qiang) -- New: Updated I18N data to CLDR 1.7.1.2 and added support for stand-alone month and day names (Qiang) -- New: Added CDbCriteria::with to support eager loading via a criteria with this property (Qiang) - -Version 1.1b November 1, 2009 ------------------------------ -- Bug #611: When using relation name as table alias, it should be properly quoted to avoid name conflict (Qiang) -- Bug #642: CPgsqlSchema::findTableNames() should not include view names in the result (Qiang) -- Bug #652: Calling CFormElementCollection::remove() triggers a method-not-defined error (Qiang) -- Bug: Using CFileValidator causes an error about accessing a method of a non-object (Qiang) -- Enh #570: Improved CSort so that it can support sorting by complex expressions or compound attributes (Qiang) -- Enh #597: Added support for modifying primary key of an AR instance by calling save() directly (Qiang) -- Enh #622: Added support for using HTML button tags in form builder (Qiang) -- Enh: Added getFixtureData() and getFixtureRecord() to CDbTestCase and CWebTestCase (Qiang) -- Chg #574: session ID is no longer hashed for CDbHttpSession (Qiang) -- New #633: Added support to allow using customized locale data (Qiang) -- New: Added support for using table prefixes (Qiang) - -Version 1.1a October 1, 2009 ----------------------------- -- New #429: CFileValidator and CUploadedFile now accept multiple uploads (pestaa) -- New: Refactored scenario-based validation and massive assignments (Qiang) -- New: Added CDbSchema::checkIntegrity() and resetSequence() (Qiang) -- New: Added phpunit-based testing framework (Qiang) -- New: Added CForm and relevant classes to allow reusing form representation and rendering (Qiang) -- New: Added support for widget skins (Qiang) -- New: Added support for accessing behavior's properties via the component it is attached to (Qiang) -- Chg #433: Changed application and module parameter names to be case-sensitive (Qiang) -- Chg #556: CHtml::resolveName now supports array-typed properties (pestaa) -- Chg: Changed AR eager loading so that it generates and executes a single SQL statement by default (Qiang) -- Chg: Changed AR table aliasing so that it uses relation names as default table aliases (Qiang) -- Chg: Changed the default value of allowEmpty to be false for CCompareValidator. (Qiang) - -Version 1.0.12 March 14, 2010 ------------------------------ -- Bug #731: When using CWebService to generate WSDL, it may cause the error about Premature end of data in tag definitions in SoapClient (Qiang) -- Bug #740: CDbCriteria::addColumnCondition() should handle NULL parameter correctly (Qiang) -- Bug #742: CEmailValidator should allow upper case email addresses (Qiang) -- Bug #776: CWebUser may fail when unserializing invalid cookie data (Qiang) -- Bug #788: CHttpRequest.sendFile() gives incorrect content length when output_handler is enabled (Qiang) -- Bug #801: CCaptcha allows unlimited tests if the CAPTCHA image is not reloaded (Qiang) -- Bug #832: CJavaScript::quote() should also escape the sequence "encode($value); - - New: - - require_once(Yii::getPathOfAlias('system.vendors.Net_IDNA2.Net').DIRECTORY_SEPARATOR.'IDNA2.php'); - $idna=new Net_IDNA2(); - $result=$idna->encode($value); - -- CAPTCHA appearance has been changed. Non-free Duality.ttf font (used by CCaptchaAction) replaced by open/free - SpicyRice.ttf. New font is distributed under SIL Open Font License version 1.1. Do not forget to adjust font path - in case your application relies on Duality.ttf font file. - -- CSecurityManager::computeHMAC() method is now public and third parameter has been added. You must change signature - of this method in the extended child class to fit new circumstances. Otherwise an E_STRICT error will be issued. - -- CClientScript::registerScriptFile() and CClientScript::registerScript() methods signature changed. - Update your subclasses that override registerScriptFile() or registerScript() if any. - -- CActiveRecord::refreshMetaData() now clears meta data for all objects of the particular Active Record class. - Also CActiveRecord::refreshMetaData() will not create new meta data at once - new CActiveRecordMetaData instance - will be created on the first demand. - -- Oracle related note: in case you're using COciSchema::resetSequence() or CDbSchema::resetSequence() methods with - the Oracle database, keep in mind that its behavior has changed to be consistent with the same methods for - the other database management systems. Please refer to its documentation for more details and don't forget - to adjust your code respectively. - -- Signature of the CJuiInputWidget::resolveNameID() method has changed. If you're overriding this method you must - change your code to fit it. This method now accepts two parameters, it means you have to adjust code of the - overlapped descendant method signature as follows: - - protected function resolveNameID($nameProperty='name',$attributeProperty='attribute') - - And ancestor method call to: - - parent::resolveNameID($nameProperty,$attributeProperty); - -- In case you've used your own relation types extended from `CHasOneRelation` or - `CHasManyRelation` make sure you update these to reflect moving `through` property - from both these to `CActiveRelation`. - -- CSecurityManager::generateRandomKey() has been deprecated in favor of CSecurityManager::generateRandomString(). - Try not to use it anymore and avoid CSecurityManager::generateRandomKey() method in your code. - -Upgrading from v1.1.12 ----------------------- -- Both jQuery and jQueryUI were updated. Check [jQuery UI upgrade guide](http://jqueryui.com/upgrade-guide/1.9/) - and [jQuery release notes](http://blog.jquery.com/2012/08/09/jquery-1-8-released/). - -- We completed the behavior of CFormatter::sizeFormat() which has been introduced in Yii 1.1.11. If you are using it with your own translation file - you have to move your translations to the `yii` category in `yii.php` file which is handled by the application component `coreMessages`. - We also fixed the default translation strings to be correct English and apply to choice format, so you have to adjust your translation file keys. - -- Be sure to clean all your existing cache during the upgrade. The cache values from CDbCommand has been - changed to an array to be able to store false values (returned when no records are found). - -- Make sure all your event handlers in behaviors are public methods, as we are not supporting protected methods as event handlers anymore. - -- We fixed the calls to CActiveRecord::beforeFind() for consistency so that beforeFind() now always gets called for every relation - on eager loading even if the main query does not return a result. This has been the case for all CActiveRecord::find*()-methods - already but now also applies for findBySql() and findAllBySql(). - -- Criteria modification in CActiveRecord::beforeFind() did not apply to the query when model was loaded in a relational context. - Since version 1.1.13 changes to query criteria made in beforeFind() now also apply to the query when model is loaded in a relational context. - The main problem here is that you can not use the `t`-alias for your table anymore, you have to change your code to - use the table alias currently in use as this is different in relational context. - You can get that alias by calling `$this->getTableAlias();` in your active record class - or `$this->owner->getTableAlias()` in behavior context. - - Example: - $criteria->condition = 't.myfield = 1'; - You need to change that to: - $alias = $this->owner->getTableAlias(); - $criteria->condition = $alias.'.myfield = 1'; - -- Make sure you are using `CCaptcha::checkRequirements()` method for checking whether CAPTCHA could be rendered successfully in your environment. - `extension_loaded('gd')` expression is not enough and wrong because CAPTCHA could be rendered via ImageMagick with fallback to GD since 1.1.13 - (thus checking code is not simple as it seems). - -- In case you're using MSSQL driver make sure authentication credentials you use have permissions to use - `sys.extended_properties` system view. This is critical for retrieving additional metadata on tables. - -Upgrading from v1.1.11 ----------------------- -- Changes in CCookieCollection::add() (introduced in 1.1.11) were reverted as they were triggering E_STRICT on some old PHP-versions - If your application relies on these newly added changes. You should change your code from - - $cookies->add(new CHttpCookie($name, $value)); - to - $cookies[$name] = new CHttpCookie($name, $value); - - -- CActiveRecord::resetScope() method signature changed. Please update your subclasses that override resetScope() if any. - -Upgrading from v1.1.10 ----------------------- -- API of public method CConsoleCommand::confirm() changed. If you are overriding this method make sure to update your code. - The method now has a 2nd parameter for the default value which will be used if no selection is made, so you have to - adjust the signature to fit - - public function confirm($message,$default=false) - - and the parent call to - - parent::confirm($message,$default); - -- API of protected method CConsoleCommand::afterAction() changed, if you are overriding this method make sure to update your code. - method now has a 3rd parameter for application exit code, so you have to adjust the signature to fit - - protected function afterAction($action,$params,$exitCode=0) - - and the parent call to - - parent::afterAction($action,$params,$exitCode); - -- CDateFormat::format() now will return null if the parameter $time is null. Previously it would return 1/1/1970. - -- If you are using CJavaScript::encode in your application with parameter coming - from user input, set second argument to true: - - CJavaScript::encode($userInput, true); - - It will disable prefixing parameters with "js:". If you need to pass JavaScript - expression it's now preferrable to wrap these with CJavaScriptExpression: - - CJavaScript::encode(new CJavaScriptExpression('alert("Yii!");'), true); - - Note that second "safe" parameter doesn't affect CJavaScriptExpression in any way. - - -Upgrading from v1.1.9 ---------------------- -- Previously xSendFile() was returning false if the file was not found. - This has been removed to allow relative file paths. If you are relying on this check, - you will need to do it manually before calling xSendFile(). - -Upgrading from v1.1.8 ---------------------- -- CConfiguration::createObject, CController::paginate and CHtml::getActiveId deprecated since 1.0.x were removed. Use - Yii::createComponent, new CPagination directly and CHtml::activeId respectively. - -- In CErrorHandler::handleException() the checking for ajax call has been removed - as it was preventing to customize the display of the exception during an ajax call. - -- Previously in case of validation error the CSS "error" class was not added to the row container at all when - checkBoxList or radioButtonList where used. This is fixed now and proper "error" CSS class is added to the row - container but in case of validation error, all labels from the list are shown in red because of the CSS rule. - - To fix this and display only the attribute label in red: - - in /css/form.css the line: - - div.form div.error label - - should be changed to - - div.form div.error label:first-child - -- If you've used "through" ActiveRecord option in your relation definitions it's good to update code as shown below. - Old style of defining this option still works but is now deprecated. - - Change - -~~~ -class Group extends CActiveRecord -{ - public function relations() - { - return array( - 'roles'=>array(self::HAS_MANY,'Role','group_id'), - 'users'=>array(self::HAS_MANY,'User','user_id','through'=>'roles'), - ); - } -} -~~~ - - to - -~~~ -class Group extends CActiveRecord -{ - public function relations() - { - return array( - 'roles'=>array(self::HAS_MANY,'Role','group_id'), - 'users'=>array(self::HAS_MANY,'User',array('user_id'=>'id'),'through'=>'roles'), - ); - } -} -~~~ - - -Upgrading from v1.1.7 ---------------------- -- CDbAuthManager will now quote columns and tables referenced in its SQL code. - If your auth tables were created in a case-insensitive fashion (e.g. on PostgreSQL) - while your DBMS is case-sensitive, this change may cause DB query errors. - To fix this issue, you will have to rename the table names and columns, or re-create - the auth tables by following the SQL code given in framework/web/auth/*.sql. -- jQuery was upgraded to 1.6.1. Check your client side code and if you have issues consider - downgrading to 1.5.1 or 1.4.4. - - -Upgrading from v1.1.6 ---------------------- -- Make sure you are using latest stable PHPUnit 3.5 if you are using unit tests. - - -Upgrading from v1.1.5 ---------------------- -- In CActiveRecord::relations(), if a relation involves composite foreign keys, the foreign key - columns must be separated by commas now. Previously, the columns can be separated by either - commas or spaces. If your mode code are generated by Gii or yiic shell, you do not need to - worry about this. -- CLDR data was updated to a newest available version so data formats, month - names and other regional data can be changed. - - -Upgrading from v1.1.4 ---------------------- -- CHtml will no longer render null attributes for HTML tags. This means if $htmlOptions is - array('class'=>null), it will no longer render the 'class' attribute in the HTML tag. - it would render the class attribute as class="". We expect this will not cause much trouble - in upgrading. However, in case problems happen, you may set the attribute to be an empty string - to solve them. - -- Now by default CWebLogRoute does not render logs in FireBug for ajax calls. - To get logs rendered for ajax calls in FireBug set CWebLogRoute::ignoreAjaxInFireBug to false - -- The implementation of CCache::flush() was changed a little. Child classes should now implement - a flushValues() method. If you use any custom cache class with flush functionality, you should - rename the flush method accordingly. - -- The prompt and empty options used in CHtml methods will NOT be HTML-encoded anymore. It will now - always convert ">" and "<" into ">" and "lt;", respectively. This should be sufficient in most - cases. But if your application uses some other special characters, or if you allow user inputs - to be used as prompt and empty text labels, please call CHtml::encode() explicitly on these option - values. - - -Upgrading from v1.1.3 ---------------------- -- Zii was merged into Yii so if you are using SVN to keep framework - up to date, you'll need to delete 'framework/zii' and then update it. - -Upgrading from v1.1.2 ---------------------- -- When using the skin feature, you now need to explicitly configure - the 'enableSkin' property of 'widgetFactory' application component - to be true. Also, if you have configured the 'widgets' property, you - should rename it to be 'skinnableWidgets'. These changes are due to - the introduction of the global widget customization feature. - Please see the guide (the "Theming" section) for more details. - -- CAutoComplete is now deprecated and will be removed in Yii 1.2. Consider - using CJuiAutoComplete. - -- Now it's not possible to reuse CActiveFinder. So if you have code like this: - - $finder = Post::model()->with('comments'); - $posts1 = $finder->findAll(); - … - $posts2 = $finder->findAll(); - - you should rewrite it to: - - $posts1 = Post::model()->with('comments'); - … - $posts2 = Post::model()->with('comments'); - -- The 'condition' declared in the scopes of the related AR classes will now - be put in the 'ON' clause of the JOIN statement when performing relational AR queries. - - -Upgrading from v1.1.1 ---------------------- - -Upgrading from v1.1.0 ---------------------- -- CHtml::beginForm() will automatically generate hidden fields to represent - the parameters in the query string when the form uses GET method. - To avoid submitting duplicated query parameters, you may use createUrl() - to explicitly specify the action of the form. You may also need to remove - the hidden fields that you previously render for the same purpose. - -- The code generated by yiic tool is changed. If you are using yiic tool - to generate new CRUD code on a previously generated skeleton, you are recommended - to run "yiic webapp" again to re-generate the skeleton. Make sure you backup - your work before you do this. - -- CMenu now renders the 'active' CSS class for the 'li' tag instead of the - hyperlink tag. You should adjust your CSS code accordingly if you use CMenu - in your application. - -- CUrlManager::parsePathInfo() is changed to be non-static. If you override - this method or your existing code calls this method directly (neither is common), - you need to change your code accordingly. - -- CController::forward() will exit the application by default now. If you want - to keep the old behavior, you may pass false as the second parameter. - -- The jQuery copy included in the framework has been upgraded to version 1.4.2. - This may cause some incompatibility problems to your existing jQuery code or plugins. - If you want to keep using version 1.3.2, you may do so by configuring - CClientScript::scriptMap property. - -- The default theme for JQuery UI widgets was changed from 'smoothness' to 'base'. - If you are using 'smoothness', you will need to manually download this theme from - jqueryui.com and configure the 'theme' property of the JQuery UI widgets accordingly. - - -Upgrading from v1.1rc ---------------------- -- CRudColumn is renamed as CButtonColumn -- CDataColumn.dataField and dataExpression are renamed as name and value, respectively -- The alias name for the primary table in an AR query is fixed to be 't' - -Upgrading from v1.1b --------------------- - -Upgrading from v1.1a --------------------- -- CSort::attributes is changed. Now the array keys refer to attribute names - and array values refer to virtual attribute definitions. Please read the - API documentation for this property to learn more details. This change will - affect your code only when you explicitly specify this property. - -Upgrading from v1.0.x ---------------------- -- Application and module parameter names are changed to be case-sensitive. - In 1.0.x, they are case-insensitive. - -- For tabular input, using Field[$i] is not valid anymore. Attribute names - should look like [$i]Field in order to support array-typed fields - (e.g. [$i]Field[$index]). - -- Please read the Guide for further details on how to upgrade from v1.0.x to v1.1. - -Upgrading from v1.0.12 ----------------------- - -Upgrading from v1.0.11 ----------------------- - -Upgrading from v1.0.10 ----------------------- - -Upgrading from v1.0.9 ---------------------- - -Upgrading from v1.0.8 ---------------------- -- ActiveRecord lazy loading is changed for optimization purpose. Previously, - when lazy loading occurs, the related table will be joined with the primary - table. Now, the related table will be queried without joining the primary table. - As a result, if you are using lazy loading and the corresponding relation - declaration includes reference to the primary table, the query will fail. - To fix this problem, please specify the lazy loading query options with the - actual primary table column values. - -Upgrading from v1.0.7 ---------------------- -- A directory imported using Yii::import() will have precedence over - any existing include paths. For example, if we import 'application.models.*', - then the corresponding directory will be searched before any other - existing include paths. This also means, a directory imported later will - have precedence over directories imported earlier. Previously, this order - was reversed. This change may affect you if you have several classes with - the same name and they are imported via different directories. You will need - to adjust the import order of these directories to make sure your existing - applications are not broken due to this change. - - -Upgrading from v1.0.6 ---------------------- -- Default named scope will no longer be applied to INSERT, UPDATE and - DELETE queries. It is only applied to SELECT queries. You should be aware - of this change if you override CActiveRecord::defaultScope() in your code. - -- The signature of CWebUser::logout() is changed. If you override this method, - you will need to modify your method declaration accordingly. - - -Upgrading from v1.0.5 ---------------------- - - -Upgrading from v1.0.4 ---------------------- -- CWebUser::checkAccess() takes an additional parameter to allow caching - the access check results. If you override this method, you will need to - modify your method declaration accordingly. Because the new parameter will - enable caching the access check results by default, please double check - your code containing this method call to make sure the behavior is as expected. - -- CDateParser has been renamed to CDateTimeParser - - -Upgrading from v1.0.3 ---------------------- -- The signature of CWebModule::init() is modified. Its parameter is removed. - If your application uses modules, you have to modify your module class - files accordingly. - - -Upgrading from v1.0.2 ---------------------- -- Controllers that are organized in subdirectories are now referenced - using the ID format "path/to/xyz". Previously it was "path.to.xyz". - If you use "path.to.xyz" in your application, you have to modify it - to "path/to/xyz". - -- CHtml::coreScript() is removed. If you used this in your application, - please use the following alternative: - - Yii::app()->clientScript->registerCoreScript($name); - - -Upgrading from v1.0.1 ---------------------- -- Due to the introduction of the scenario-based massive assignment feature, - we removed CActiveRecord::protectedAttributes(). Please use safeAttributes() - to specify which attributes are safe to be massively assigned. - - For more details about scenario-based assignment and validation, - please read the following tutorial section: - - http://www.yiiframework.com/doc/guide/form.model#securing-attribute-assignments - -- The signature of CModel::validate() has been changed to: - - CModel::validate($scenario='', $attributes=null) - - That is, the order of the two parameters has been swapped. If your application - contains code that invokes the validate() method (of either a CFormModel - or a CActiveRecord object) with some parameter, please make sure you fix - the parameter order. - -- The usage of CActiveRecord::with() and the 'with' option in relations - has been changed. In order to query child relations, we should specify the 'with' - parameter/option like the following now: - - Post::model()->with(array('comments', 'author.profile'))->findAll(); - - Previously, this should be written as: - - Post::model()->with(array('comments', 'author'=>'profile'))->findAll(); - - If your code does not involve child relations (like 'profile' in the above), - nothing needs to be changed. - - This change has been introduced in order to support dynamic relational - query options. For example, we can specify that comments be sorted in - descending order (assuming in the relations() method it is specified as - ascending order): - - Post::model()->with(array( - 'comments'=>array('order'=>'createTime DESC'), - 'author.profile', - ))->findAll(); - - -Upgrading from v1.0.0 ---------------------- -- An $scenario parameter is added to both CModel::beforeValidate() and afterValidate(). - If you override these methods in your child classes (form models, AR classes), - make sure you change the method signature accordingly.