On March 26, 2019 we launched new MODX Forums. Please join us at the new MODX Community Forums.
Subscribe: RSS
  • Revolution 2.1 Adds Support for Microsoft SQL Server, Huge Performance Improvements, Long-deprecated Code Eliminated

    MODX Revolution 2.1 is a huge milestone for MODX. It adds Microsoft SQL Server support, huge performance and caching improvements, the elimination of thousands of lines of long-deprecated code and so much more. We are incredibly excited about this release and want to thank all the community members that have tested and reported issues in the lead up to this day.

    What’s New In 2.1:

    • Full Microsoft SQL Server support is new in 2.1. This is pretty cool and we’re very excited about offering developers the choice of running MODX Revolution on a full MS stack.
    • The MODX caching system has been restructured to vastly improve caching times and performance. It now properly implements file locking, partitioning and multiple format support. We’ve seen cache file sizes drop to nearly 30% (or greater) of their previous size and page load time significantly decrease. The context cache is also now pre-generated before the existing cache is overwritten, ensuring your site remains available even with vast numbers of resources.
    • Removal of all deprecated MODX Evolution Code which loses several thousand lines of code, lightens the distributions and will make future development simpler.
    • Template Variable Improvements adding Input Options to allow you to control how particular TV types treat the data in the Manager to add validations, paths or other parameters.
    • New URI Editing and Freezing. You can now customize a resource’s URL independently from the Friendly URL settings and tree path (essentially overrides the alias and alias path). If you have a resource located at /blog/2010/01/really-important.html you can set it to be called /really-important.html. This also means that if you decide to move it elsewhere in the resource structure the URL remains the same.
    • More Secure Password storage as Revolution 2.1 introduces the use of the PBKDF2 which replaces MD5. We’ve also included structural changes to allow future features and customizations to the password settings.

    Impact of Microsoft SQL Server Support for site owners and developers
    Now that Revolution supports a full Microsoft stack, including Microsoft SQL Server, Extras that interact with custom xPDO models will need to have sqlsrv schema created and maps/classes generated in order to work across platforms. All xPDO and xPDOQuery methods (e.g. ->where(), ->select() etc) are inherently cross-platform. However, if MySQL-specific syntax has been introduced, methods are available to bring the vast majority of queries into cross-platform bliss. xPDO goes further and gives the developer the additional power to tweak queries per-platform. In the future we’ll be adding other database drivers such as sqlite, oracle, postgre and more.

    An Important Note Before Upgrading or Deploying 2.1 to a Production Site
    Revolution 2.1 sees the removal of the long-deprecated code from the Evolution code-base. While these methods have been marked as deprecated since pre-2.0, it is a fact that there will be popular extras and custom code that relies on them. This means that site owners need to test their upgraded sites before deploying. We have been working with Extras developers to get their add-ons ready and ensure compatibility with Revolution 2.1. Most of the popular Extras developed by the MODX core team members have already been updated, including getResources and Wayfinder for Revolution. If you are a site owner and need help moving to Revolution 2.1 a MODX Solution Partner would be happy to help.

    Download Revolution 2.1
    Read the Revolution 2.1 Documentation
    Read the Installation Guide
    Upgrade Guide
    Check the Installation Requirements

    We’re always improving and we need your help. Please report any and all issues and bugs. Make sure you read the documentation, post feedback and successes in the MODX Community forums.

    The MODX Team

    Changelog/Release Notes:
    MODX Revolution 2.1.0-pl (May 24, 2011)
    - [#4818] Fix SqlSrv query errors related to TVs
    - Add modX->$sourceCache data to cached Resources
    - Fix loading of cached Resource content and processed flag
    - Fix caching of empty policies for Resources
    - Fix modSessionHandler->write() cache flag if cache_db_session is not enabled
    - Update xPDO to v2.1.4-pl for cache_db bug fixes and improvements
    - [#4832] Fix issue with moving resource parent to root
    - [#4827] Make sure editing a file sends the working context along
    - Fix erroneous call to OnDocUnpublished event that should be OnDocUnPublished
    - [#4796] fix New Resource page heading during typing of page title
    - Add Usergroup filter to users grid
    - [#4785] Fix preview of files in left tree in non-standard contexts with absolute filemanager_ settings
    - [#4473] Add other common file types to upload_files system setting
    - [#4539] Fix issue with stretching of quick update chunk and small screen resolutions
    - Automatically focus cursor to first textfield on windows in mgr
    - [#4738] Fix issue with inconsistent results in resourcelist TV
    - [#4441] Fix FC issue when parent is constraint and trying to change default template
    - [#4764] Fix issue with timestamp display on manager log page
    - [#4680] Fix javascript error when typing Template name
    - [#4681] Fix path issue which was causing 404 errors in the manager, IE 7-9
    - [#4439] Add parentheses to list of disallowed password characters in installer
    - [#4669] Fix button target size to make it more responsive to most clicks
    - [#4625] Fix sizes of buttons and submit inputs in installer - IE 8 and 9
    - [#4617] Fix custom values not being shown on Context Installation page during Advanced Upgrade
    - [#4605] modX->switchContext() now checks load permission via Context ACLs
    - [#4595] Fix display of modified/accessed times on Edit File page
    - [#4594] Fix last login time displayed in Info block of Manager welcome page
    - [#4470] Fix frozen URI not displayed when editing resource
    - [#4572] Fix installer error log filenames (characters not allowed in Windows filenames)
    - [#4585] Fix database connection processors in advanced upgrade
    - Update xPDO to v2.1.3-pl
    - [#4567] Remove calls to xPDO->log() in xPDOCacheManager->writeFile()
    - [#4557] Minor fixes on Installer Options screen for Traditional package
    - [#4556] Fix js error on Welcome screen of Traditional package's installer
    - [#4076] Fix Edit/Quick Update context menu items in protected categories
    - Fix Context Access query broken in RC4 changes for #4502
    MODX Revolution 2.1.0-rc-4 (April 29, 2011)
    - [#4543] Fix preview URLs when FURLs are turned Off
    - [#4537] Trigger refreshURIs when related settings are modified
    - Have modAccess*::loadAttributes() check access_*_enabled settings
    - [#4502] Enable custom targets in modUser->loadAttributes()
    - [#3692] Add policy checks for new_document_in_root and add_children to resource/sort processor
    - [#4526] Additional fixes for output filters on placeholders
    - [#4504] Ensure UserGroup ACLs are deleted along with UserGroups
    - [#4507] Fix usergroup description not being set when created
    - Change modResource->isDuplicateAlias() to return id of duplicate Resource
    - [#4495] Add duplicate URI check to resource/publish action
    - [#3857] Fix placeholder processing when output filters applied
    - [#4362] Fix path issues with Static Resources and base_urls of /
    - [#4074] Require list permission on Context for Resource searches
    - [#4439] Do not allow invalid characters in username / password
    - [#4485] Fix issue with scrolling on drag/drop Element Properties window in small resolutions
    - [#4352] Fix failedlogincount / user blocking logic in login processor
    - [#4373] Fix issue with htmltag TV output render and empty values
    - [#4374] Fix issue with updating files in the edit file page
    - [#4024] Fix issue with LocalProperty grids not rendering list type properties display values correctly
    - [#4400] Trim whitespace from Namespace paths when adding/updating them
    - [#4434] Fix issue with edit panel on contexts
    - [#4372] Fix View button not getting URI change after Save Resource (all Resource types)
    - [#4369] Ensure Save button is active after Template change on Weblink, Symlink, Static Resource
    - [#4471] Set Resource alias properly on update
    - [#4469] Guard against inadvertent creation of duplicate New Resources
    - Add options to configure cache file writing attempts when exclusive locks fail
    - [#4464] Prevent unnecessary TV queries on uncached Resources
    - [#4422] Fix problems updating Boolean settings (System, Context, User)
    - [#4453] Fix File Browser when paths contain "n_"
    - [#4447] Fix ACL grid in Edit Context view
    - [#4438] Fix error logging to custom log targets defined by array
    - [#4399] Fix IE8 javascript error on Resource and Element update pages
    MODX Revolution 2.1.0-rc-3 (April 11, 2011)
    - Fix invalid merge retained in master branch from 2.1.0-rc-1
    - Fix modResource::save() to refresh uri if isfolder field is dirty.
    MODX Revolution 2.1.0-rc-2 (April 11, 2011)
    - Refresh resource tree if resource's parent has changed
    - [#4327] Fix bug with auto-publishing
    - Fix positioning of right panel in mgr UI to make tree/nav static and isolated from scrolling of right panel
    - Make alias required field in resource/create processor when friendly_urls is on but automatic_alias is off
    - [#4280] Fix issue where transport package could not be removed if transport files were removed
    - [#4281] Utilize modX::sourceCache in modParser::processElement()
    - Fix issues with Namespace grid related to context menus and search
    - [#4257] Fix issue where context menus did not show in Contexts grid
    - [#4288] Fix issue with resource preview context menu
    - [#4279] Fix undefined collResources notice with empty Contexts
    - [#3119] Fix modResource->getAliasPath() to use id if set
    - Upgrade MagpieRSS to 0.72 to fix issues with atom feeds
    - [#3623] Fix TemplateVarTemplate foreign key definition in modTemplate
    - Replace specific references to MySQL with more general language
    - [#4185] Change modx logo in mgr to new logo
    - [#4217] Add rank field to modUserGroupMember table
    - [#4271] Highlight currently editing Resource on tree
    - Fix issue with image/file TV and uploading in MODx.Browser when using a custom basePath TV
    - [#4270] Fix issue where images could not be removed when using a custom basePath TV
    - Add User Group related events
    - [#4260] Change title tag in mgr UI to reflect current page
    - [#4256] Add caption field to Quick Create/Update TV
    - [#4261] Change keyboard save shortcut to CTRL+S
    - [#4262] Ensure that FC rules htmlencode their tab/field labels
    - [#4243] Ensure that files that are read-only do not show save button; fix file tree opening
    - [#4244] Add backwards compatibility for Element properties of list type with older indexes
    - [#4236] Fix bug in Template combo that hid category name
    - Improve compression of images in mgr to reduce load times and core transport zip size
    - [#4232] Fix Output Options being ignored in TVs in 2.1.0-rc1
    - Add options to allow ACL queries to be disabled for Contexts, Categories, and Resource Groups
    - [#3941] Fix issue where Resource TV values were not copied when duplicating a Context
    - [#4202] Fix issues with file/image TVs urls/paths when using modx path placeholders
    - Fix sorting/display bugs on UserGroup ACL grids, add grouping for better visibility
    - [#4175] Add modRequest->getClientIp() for better IP handling
    - [#4217] Add rank field to modUserGroup
    - Update version to 2.1.0-rc-2
    - [#4173] Fix issues with math-related output filters and floats
    - [#4205] Ensure old modxcms.com provider is removed after change to modx.com provider
    - [#4220] Fix modX::makeUrl() when friendly_urls not enabled
    - [#4207] Fix issues with checkboxes and Form Customization rules
    - [#4013] Fix modX::_log() to pass target to parent::_log() properly
    MODX Revolution 2.1.0-rc-1 (March 28, 2011)
    - Fix issue with properties and i18n in Element properties and in drag/drop box
    - [#4146] Fix issue where new Content Types were always created as Binary
    - [#291] Add principal_targets setting to allow custom ACLs to be loaded by MODX Principals/Users
    - [#99] Allow SymLinks/modX->sendForward() to forward to Resources in external Contexts
    - [#4147] Changing ContentType extension in grid not refreshing URIs
    - [#3967] Fix issue with running user create/update processors more than once in a session
    - [#3542] Hide Template Variables tab on Resource create/update pages if no TVs are present
    - [#788] FC Rules for TVs now display distinctly for create or update
    - [#1118] Add more help for User fields in manager editing page
    - [#2578] Fix issues with manager log view page where sorting was off and grid was not sortable
    - Fix issue where user-created FC tabs were not removable from a Set
    - [#4096] Fix Package Management archive issue when using mapped Windows drives
    - [#3785] Add category filter and search box to TV grid on Template panel
    - [#65] Make locked Resources be read-only rather than unviewable
    - Improve Package Management to show changelog, more supports information in package browser
    - [#4120] Fix issue where TV sort order is reset on Quick Update
    - [#4115] Fix issue with modPhpThumb and filenames with + signs
    - [#2719] Fix reset behavior on autotag/tag TV inputs
    - [#3586] Adjust improper text on Content Types page
    - [#2652] Fix issue where Element could be drag/dropped onto another Element in tree
    - Add ability to select a blank value for ResourceList TV input type
    - [#54] Fix issues with phpThumb and DOCUMENT_ROOT by adding a custom phpthumb_document_root System Setting
    - [#4122] Fix order of execution of validation and plugin events for Element processors
    - [#4105] Add Spanish translation
    - Refactor duplicate alias checks into duplicate URI checks
    - Cleanup deprecated code in Resource templates
    - [#3765] Ensure entries editedon values are set when editing a Lexicon Entry
    - Update ExtJS to 3.3.1
    - [#4073] Add session_name, session_cookie_path, session_cookie_domain as System Settings with blank default values
    - [#4077] Add resource_quick_create and resource_quick_update Permissions to restrict access to Quick actions on Resource tree
    - [#4050] Add tree_show_resource_ids and tree_show_element_ids Permissions to show/hide IDs of Resources/Elements in tree panels
    - Add username field to modTransportProvider, and send it and UUID to providers during transmissions
    - [#3641] Add base URL for Help links in manager for easier management and customization of URLs
    - [#3552] Fix issue causing list-xtype properties to be swapped when using drag/drop into field functionality
    - [#4069] Ensure that you cannot delete the last User in the Administrator user group
    - Add fix for ie9 to get tree nodes to work properly
    - Prevent Category ACL queries on Elements if no entries for current context
    - [#2601] Improve text and drag/drop for weblink/symlink content fields
    - [#3636] Fix issue with empty values on options in list/dropdown/checkbox/radio TVs
    - [#4024] Fix issue with display value not always showing for list properties in element property grid
    - [#4056], [#4041] Add xtype password, template, user, usergroup, etc to available xtypes for System Settings
    - [#3350] Improvements to bugfix for PHP bug 53632
    - [#4054] Improve select binding to be able to use Resource fields via placeholders
    - [#142] Add modResource.setTVValue API method
    - [#4021] Add system setting to allow setting of a custom favicon for the manager
    - [#3589] Fix issue with Static Resource paths when using custom filemanager_path
    - [#4040] Fix issue where Users were always created as active in mgr UI
    - [#4043] Enable drag/drop of users and groups in User Group tree
    - [#4052] Fix issues with element property import and invalid characters causing freezing in UI
    - [#4042] Fix issue in phpThumb base class preventing far property from working
    - [#4049] Add resource_tree_node_tooltip for controlling field in Resource Tree tooltip
    - [#3511], [#2964], [#3601] Fix issues regarding form customization and Templates by removing ajax loading of TVs in Resource panels
    - Consolidate JS for derivative Resource panels to allow to inherit from main Resource panel
    - Add context param to modx.getParentIds
    - [#3754] Ensure Resources can not have their parent set as one of their descendants
    - Add context param to modX.getChildIds
    - [#3612] Improve CDATA filter to not add spaces at beginning or end
    - [#3764] Add delete to actionbar on Resource edit panel
    - [#3585] Add description field to modUserGroup
    - [#3020] Improve trees to expand node on click if no href target is set for tree node
    - [#4006] Show children count rather than IDs on categories in element tree to lessen id ambiguity
    - Fix issue where Quick Create was not respecting unchecked setting checkboxes
    - [#3673] Add "Save and Close" button to quick update windows
    - [#3970] Ensure extension is lowercased before checking for allowed status when uploading files
    - [#3920] Ensure modPHPMailer resets replyTo and custom header fields
    - Add UI for managing Resource uri and uri_override fields
    - Remove all deprecated methods and variables scheduled for removal in next minor release
    - Change modxcms.com references to modx.com
    - [#3898] Prevent any non-integer being set in ?a= in mgr interface
    - [#3926] Ensure security/user/create processor can take in a class_key parameter to set class_key for SSO
    - Improve user processors event handling to allow for better SSO integration that can stop save/remove/update
    - Refactor password reset not to send password hash as activation key
    - [#325] Allow configurable user password hashing with PBKDF2 default implementation
    - [#3111] Fix bug causing unnecessary writes to Resource cache files
    - Update xPDO to v2.1.1-pl2
    - Add modResource.uri_override to allow a uri to be manually set and locked per Resource
    - [#3111] Add modResource.uri field to allow context maps to be regenerated in a single query
    - [#3859] Remove redundant check for php bug
    - [#3858] Fix javascript errors from FC hideField rule
    - [#2812] Add link_tag_scheme to define default scheme for makeUrl() call in modLinkTag
    - [#3111] Remove resourceListing, documentListing, and documentMap from context cache
    - [#3111] Cache refactoring with proper file locking, partitioning, and multiple format support
    - [#3111] Update xPDO to release 2.1.0-pl for cache improvements
    - [#3740] Add proxy support to modTransportPackage.class.php
    - [#3693] Fix reversed content-disposition logic on static resources
    - [#3427] Fix issue where User Settings were not respected with filemanager_path/url
    - [#3702] Ensure file/image TVs can have files drag/dropped onto them
    - [#3465] Add sanity check for non-object to log call in modAccessibleObject::_loadInstance
    - [#3615] Fix issue with modx->user->getResourceGroups, set resource groups in "modx.user.{$id}.resourceGroups" session key
    - [#3568] Fix double error->failure reference in resource/create processor
    - [#3425] MODx.Browser now loads directory of TV's current value on load
    - [#3481], [#3571], [#3304], [#3569] Fix issue with filemanager_path in non-web contexts 
    - [#3009] Add ability to assign TVs to specific directories and base paths, limit file extensions shown
    - [#2679] Add Input Options to TVs, allowing TV inputs to be customized and tweaked

      Author of zero books. Formerly of many strange things. Pairs well with meats. Conversations are magical experiences. He's dangerous around code but a markup magician. BlogTwitterLinkedInGitHub