Changelog
- Fixed issue with cacheable toggle on derivative Resource pages
- Fix error message when reading expired messages in modDBRegister.
- Fixed issue with login page JS
- Fixed issue with derivative Resource classes JS not loading Page Settings data into submit
- Fixed issue with utilities JS not loading at right time
- Updated build.xml to produce beta releases.
- Quick fix to prevent blank attribute referencing
- Fixed issue with package attributes and skipping blank options
- [#MODX-723] Fixed issue where preview pane was picking up CSS from preview
- Updated xPDO to revision 333.
- Fix issues with Page settings defaulting to 1 on resource creation
- Adjusted order of JS utils loading to make for easier min-concat loading
- Cleanups to JS to prepare for beta-1
- Lexicon updates
- Updating outdated copyright notices in source code headers.
- Fixed hardcoded version number in setup.
- Added request_controller system setting to indicate the front-controller file (default=index.php).
- Fixed array_merge warnings in modLexicon.
- Added back support for anonymous user access control.
- Added support for returnUrl parameter to be sent to login processor to allow unauthorized responses to return to the original requested page directly (NOTE: this overrides manager_login_startup and login_startup parameters, but does not work with POST requests: these will simply return to the URL with only GET parameters).
- Export lexicon now prompts for download of exported file
- Enhanced User Group update/create screen to now have grids that allow you to assign Resource Group / Context permissions to that user group. This will help clear up confusion with the access relationships.
- Fixed scope issue in accordion.css that was causing odd behaviours with panels in the main content
- Adjusted setup procedures to allow for more lexicon support for pre-load checks
- Adjusted setup lexicon to allow for multiple topics; conformed upgrade scripts and other references to match
- Consolidated similar code in setup, esp. with regards to fatal errors
- Added smarter checks for xPDO failures in connectors
- [#MODX-744] Fixed issue with invalid display of num cleared on cache claering
- Fixed bugs with updating packages from a remote provider
- Made sure package attr returns '' if false
- Fixed manager log to show username, not user ID
- Standardized derivative resource form panels to move page settings to left
- Tweaked tree menu headers
- Minor IE overrides for top navigation and accordion panel.
- Added support for modLinkTag properties as url parameters, with context reserved to indicate a context to send to makeUrl().
- Fixed error in modLinkTag when passed invalid data.
- Added '@RESOURCE' binding alias so as to deprecate @DOCUMENT binding
- Fixed default language setting for modLexicon
- Fixed a couple issues with the page settings checkboxes for resources
- Removed deprecated _tx_.gif
- Removed home icon and replaced with tab
- Adjusted CSS to align main content page vertically
- Trees now have fun new icons representing their types (this includes the resource, element and file trees)
- Cleaned up the default.inc.php lexicon topic to remove any no-longer-used entries
- Fixing typo in subtract output modifier
- Fixed improper reference in TV property renders for mgr context
- Updated xPDO to revision 329.
- Improvements to sendError() behavior.
- Added lock stealing processor and updated remove_locks processor.
- Added steal_lock:true policy attribute to default Resource policy to allow lock stealing permissions by ResourceGroup.
- modTemplateVar: Fix getValue() on `value` field by storing and verifying the value requested is cached by the same resource.
- modResource: Add resourceId value to getMany() on modTemplateVar to identify the resource caching a value on the modTemplateVar instance.
- modX: Set logTarget based on XPDO_CLI_MODE; ECHO for CLI and HTML for non-CLI requests.
- modX: Add sendError() function to provide customizable, named error pages on FATAL or other critical error situations.
- modX: Refactored sendForward(), sendErrorPage(), sendUnauthorizedPage() functions to allow an array of options and better handle FATAL errors.
- modCacheManager now Caches related modContentType data to prevent unnecessary database connection/query on fully cached pages.
- Fixed problem with modStaticResource truncating the content to the size of the static file by setting the content length header on non-binary content types.
- Fixed problem with modStaticResource non-binary content types rendering the path to the static file rather than the actual content of the file.
- Calling modX->log(MODX_LOG_LEVEL_FATAL) or modX->messageQuit() now logs the error to file and then renders {MODX_CORE_PATH}errors/fatal.include.php.
- Updated to r325 in xPDO: xPDO method changes to getOption() and _log().
- Update 'setup-options' ability in transport packages to allow for script-based setup options that will properly handle upgrades to setup options default values
- Updated to r323 in xPDO: Revise xPDOTransport::writeManifest to make 'setup-options' be able to be an executable script to allow for dynamic form ability
- Updated snoopy class to version 1.2.4 (used by magpierss).
- [#MODX-535] Removed automatic setting of isfolder based on presence or absence of children.
- [#MODX-499] Site start Resources now return base_url from modContext->makeUrl() if no scheme is specified (i.e. when expecting relative links).
- Improved error reporting on modX->makeUrl() to show original $id value being passed in on failures.
- modLinkTag no longer returns empty values on first pass of parser, allowing delays until the value returns a valid value.
- Implemented modResource editor locking (added modResource methods: getLock(), addLock($user), removeLock($user)).
- Implemented modResource locking features in all appropriate processors.
- modResource->checkChildren() now uses modX->getCount() to determine if children exist.
- Added steal_locks attribute to Context access policy.
- [#MODX-728] Made sure config check dialog is hidden if no warnings are present
- Package Installations will now skip license agreements / readme panels if none are specified
- Made sure More Info in download panel can scroll
- Fixed issue with spacing in setup options panel of package install
- modCacheManager->generateScript(): Fixed PHP notice in log message on error.
- modInstall: Modify _modx() function to call setDebug with E_ALL & ~E_NOTICE instead of E_ALL & ~E_STRICT.
- Optimized queries in element tree to eliminate subqueries or queries in loop, reducing to O(n) instead of O(n^2n)
- Made clear cache results a bit smaller
- Refresh trees after clear cache
- [#MODX-609] Clear cache menu item now loads results in an alert dialog. No longer loads a separate page.
- Fixed to template getlist processor
- [#MODX-671] Fixed bug with resource group access permissions being checked when not assigned
- [#MODX-699] Fixed to allow usage of login processor without lexicons
- Added Import/Export to element properties grids, which allows for file-based transporting of properties.
- Fixed issues with comboboxes dropping down a blue screen
- [#XPDO-28] Fixed problem with multiple file resolvers on vehicles with similar basenames cause directory contents to merge unexpectedly.
- fixed PHP notice for missing elementType variable
- fixed subcategory elements missing from display (was counting elements in parent category rather then subcategory to determine if the subcategory should be displayed)
- Fixed issue with default properties in TVs being locked
- Fixed no onTVFormPrerender
- Made sure clearDirty is fired on TV panels
- Tweaked the css and updated copyright year.
- Refactored all index.php gateways to support constructor options set as $options in the various config.core.php files.
- modCacheManager/modCache: Introduced cache partitioning allowing various cache provider implementations to target specific MODx cache partitions and provide custom (system/context/user) settings for configuration options to each: cache_system_settings, cache_context_settings, cache_resource, cache_scripts, cache_lexicon_topics, cache_action_map
- modAccessibleObject: Refactored object and collection loader logic to improve cache hit rates.
- modRequest: Fixed warning for undefined variable $fromCache.
- modSessionHandler: Refactored write() method to only update access time when the session data has changed or at specified intervals before the data is made available for GC.
- modSessionHandler: Added support for cache_db_session, a new configuration setting to allow session data to be cached when cache_db is enabled.
- modTemplateVar: Allow getValue() to use a `value` field for data if already populated for a specific resource.
- Commented out missing image in welcome.tpl (temporary)
- Added couple of bugfixes to modDBRegister to prevent duplicate payloads and update existing messages.
- Fixed bug where QuickUpdateChunk was persisting values
- Added fix to prevent DOM id problems
- Added clearCache checkbox to chunk editing to allow toggleable cache clearing
- Optimized chunk processors
- Added 'Quick Update Chunk' and 'Quick Create Chunk' options to Elements tree, which allows you to quickly edit or create chunks via a window straight from the Element tree on any page
- [#MODX-718] Fixed bug where elements without a category wouldn't show
- [#MODX-697] Fixed problem with deprecated role topic still in action build scripts
- [#MODX-705] Removed random numbers causing Radio TVs to render improperly
- Fixed bug that caused policy data to be erased when creating/saving/removing policy data
- [#MODX-711] Fixed Update Context screen to properly pass correct PK
- modDbRegister: fixed bug with expired messages not being removed if remove_read => false
- modDbRegister: allowed messages to be updated/overwritten
- Fixed modCacheManager::prepare() - was returning false on already-prepared contexts
- Added support for nested categories for elements; categories can now have subcategories
- Fixed to treestate to properly set treestate ID so restore can work properly
- Fixed call to onDocFormRender to make sure ID is passed on Resource update
- Fixed to getFiles processor for MODx.Browser to properly store URL parameter with the base_url prefixed
- [#MODX-712] Fixed errors creating context settings
- modX: Fixed potential error when invokeEvent() is called and executes a plugin with property sets and pluginCache does not contain the object
- modCacheManager: Fixed error when building the pluginCache with property sets
- modCacheManager: Fixed typo in parentSql that was breaking use alias paths option.
- modCacheManager->generateContext(): Added support for Resources to be generated in multiple contexts via modContextResource.
- modParser: Removed errant log() statement in parseProperties().
- modParser: Fixed problem in parsePropertyString() when passing `escaped` property values containing semi-colons (;).
- Added in necessary reloading functions to ColumnTree
- Fixed issue with column tree's context menu overriding the ID
- modManagerResponse: Detect if controller responses are error arrays and render using error.tpl appropriately.
- [#MODX-693] redirect bug - modResponse logic error
- Moved core/config/version.inc.php to core/docs/version.inc.php
- layout/tree/resource/getnodes.php: Additional optimization to reduce memory usage and improve performance when opening Resources containing a large number of children.
- modConnectorResponse->toJSON() optimized to greatly reduce memory usage and improve performance with large result sets.
- [#MODX-691] allow User Settings to be saved from prop. grid
- Fixed bug with documentMap
- Fixed issue with default tv render panel for resource page
- [#MODX-690] Fixed a few events names registered in the system_eventsnames table during build/install
- Added id's to element and category nodes for informational purposes (missed one spot).
- Added id's to element and category nodes for informational purposes.
- Updated drag and drop behavior to update context_key of all child Resources when dropping a container on a different context node.
- Modified modTransportPackage.manifest field from MEDIUMTEXT to TEXT in order to handle large manifests.
- Fixed aliasMap broken in recent cacheManager refactoring.
- Added helper functions to MODx.tree.ColumnTree
- Added DD events to ColumnTree
- Added missing column tree CSS
- Added UI for adding property sets to PluginEvents
- Added cacheManager object checks to verify for PHP4 installs
- modCacheManager->generateResource(): added validation of the modResource primary key before attempting to cache a record.
- modUser: modified storage of session data to use the modUser primary key value to isolate values associated with a specific user; this will allow users to login as multiple users on the back-end and/or front-end without affecting the session data associated with a specific user.
- modX->_initSession(): Enable session_gc_lifetime configuration setting to set session.gc_liftime ini setting regardless of what session handler is configured.
- modPluginEvent: Added the ability of plugins to utilize Property Sets by allowing a plugin registered to a particular event to attach a Property Set and make it available during processing.
- Fixed warning with loading of RTEs in resource page
- [#MODX-674] Fixed content-dispo combobox bug
- Removed allowBlank: false check on menuindex to allow for dynamic creation
- Added in missing lexicon entries for prior menuindex commit
- [#MODX-678] Added back in 'menuindex' field to resource panels
- Added missing modX::__construct() options parameter.
- Allow for extending of MODx.panel.ResourceTV by making reference to modx-resource-template field dynamic
- Fixes for RTE loading
- Fixed issue where smarty template path was not being reset if 3PC set path to something else
- modX constructor now accepts a second parameter containing an array of options to be set in the config
- Major refactoring of modCacheManager to provide more granular caching options
- modCacheManager now accepts options, based on changes to xPDOCacheManager, and provides access via getOption()
- generate*() methods now all return data as well as cache it to a specified cache_handler unless otherwise configured
- modX->getCacheManager() no longer supports MODX_CACHE_DISABLED or config['cache_disabled']; the cacheManager is required, though you will still be able to effectively turn off all caching in the future via this setting (this will be worked back in)
- manager/controllers/system/refresh_site.php changes to better target things to remove from the cache
- Introducing modDbRegister and the modx.registry.db package, providing a database modRegister implementation.
- Added new system settings for individual cache areas, i.e. cache_system_settings, cache_context_settings, cache_lexicon_topics, cache_scripts, etc.
- modCacheManager: Various fixes and adjustments to latest refactoring, including clearCache improvements.
- manager/controllers/system/refresh_site.php: Improvements to default clearCache call.
- modCacheManager: converted generateActionMap() to support configurable cache implementations
- Updated modAction->rebuildCache() and modManagerRequest->loadActionMap()
- Additional tweaks to manager/controllers/system/refresh_site.php
- Updated xPDO externals to revision 308
- Removed unnecessary comments from the reg* functions
- Moved all manager pages JS/CSS to inside HEAD tag using the reg* functions; this improves speed and validation of the manager
- Fixed the way 3PCs handle their controller files. NOTE!!! This means that you no longer need a "core/controllers" file in your 3PC; just set the namespace path correctly, then set the controller in your modAction.
- Added an ability for mgr pages to utilize regClientStartupScript and other reg* functions to make pages load faster and move JS/CSS to HEAD tag
- modX->getEventMap() - Made sure prepare() creates a valid statement before calling execute()
- Updated modStaticResource to set headers in getFileContent() for now, though this needs to be refactored for flexibility.
- Fixed issue with saving TVs from create resource processor
- [#MODX-637] Fixed issue with TVs not reloading on changing template in new resources
- [#MODX-663] Fixed various issues with modAction creation
- Fixed issue with MODx.Browser uploads not refreshing the main view
- Fixed publishedon default date setting
- Fixed date TV default value
- Fixed default setting for symlinks
- Fixed issue with Symlink/WebLink class_key storing
- Fixed issue with textfield editing in Safari on Property Set grid
- [#MODX-662] Fixed duplicate issue with elements
- Fixed issue with property sets page and property lock
- Fixed name issue on duplicating elements
- Fixed symlink page setTimeout issue
- Fixed missing file inclusions
- Fixed element tree where categorized templates weren't showing
- Added editing ability to resource's publishedon date
- Fixes to package downloader panel due to ID conflicts
- Adjusted modTransportPackage::transferPackage to rename incoming file to [signature].transport.zip rather than basename($source)
- Fixed xml/json response classes to properly work
- Added permission "unlock_element_properties", which gives ability to unlock editing of default element properties.
- Added implementation of above permission into element properties grid
- Fixed some logic issues with the lockMask
- [#MODX-561] Added "Locked" ability to default properties for elements
- [#MODX-633] Fixed issue with add another not respecting parent
- Fixed TV access panel not working on new TVs
- Fixed state management with tree nodes
- [#MODX-661] Fixed URL TV input, where it was not setting prefix value
- [#MODX-659] Fixed bug where root-level docs couldnt be updated b/c of parent issue
- Fixed bug with parent being assigned to 0 always in derivative Resource classes
- Made sure bad resources (where parent = id) are ignored when building the context cache files.
- Fixed parent bug in controllers
- Fixed transport.data.php with 'namespace' key on modActions
- [#MODX-622] Updated top menu structure to be more consistent.
- Fixed error if properties are null
- [#MODX-651] Fixed bug when deleting a propset, would not empty grid
- Fixed to resource page combos not setting display value correctly
- [#MODX-658] Fixed issue where in TV -> Create, templates were not showing
- Fixed template nodes to properly sort by templatename
- Adjusted resource menus and such to refer to a 'Resource' without a specific class_key as 'Document' when applicable, with the exception of talking about Resources in the generic sense
- Added Duplicate option to Property Sets
- Fixed bug where template inheritance for resources wasn't happening
- Fixed symlink page
- [#MODX-632] Updating xmlrpc to 2.2.1
- Corrected logic in setup to allow forced PDO emulation mode (XPDO_MODE == 2).
- Added `category` field to modPropertySets; they can now be categorized
- Enhanced UI to support new modPropertySet category ability
- Modified MODx.Window so that the ENTER key submits the form
- Added more IDs to element forms
- Added ability to "remove" overridden properties, but only ones that are not in the default propset (ones that are should "revert")
- Fixed OnWebPagePrerender event not firing as expected.
- modOutputFilter: Refactored date modifier to return '' if the timestamp encountered == 0 or -1.
- modOutputFilter: Added strtotime modifier.- Refactored connectors to execute in the context from which they are called, rather than their own context.
- Updated xPDO to revision 304 for new xPDOFileVehicle feature to respect XPDO_TRANSPORT_RESOLVE_FILES options.
- [#MODX-562], [#XPDO-24], [#XPDO-25], and [#XPDO-26] Updated xPDO to revision 302 to resolve various issues regarding transport packages and model generation.
- [#XPDO-23] and [#MODX-604] Updated xPDO to revision 298 to resolve nesting error when logging messages during installation with improper cache directory permissions.
- Added modPropertySet->getElements() method as shortcut to get all proper modElement instances available to the set.
- Added overridden modElementPropertySet->getOne() to get related Element using the proper element_class value.
- [#XPDO-21] Updated xPDO to revision 290 for updates to xPDOObject::addOne() and addMany().
- [#MODX-553] Unpublished and deleted Resources now ignored properly in modRequest::getResource().
- [#MODX-553] Core setup now automatically adds an ACL to the web context for members of the Administrator group.
- Core setup now updates the Administrator group ACLs for accessing the mgr and connector contexts with an Authority of 0 (highest authority).
- Modified OnUserNotFound event handling not to rely on references which no longer work properly with recent changes to property handling.
- Added overridden modElement->get() to handle converting legacy property strings stored in the database.
- Added modPropertySet class to represent persistent sets of properties that can be applied to modElement instances.
- Added support for modElements to relate modPropertySet objects via modElementPropertySet (many-to-many).