Major Performance Improvements
- Full page caching available globally and on a page-by-page basis.
- Better block caching using protected variables in block controller.
- If site statistics are disabled, full page caches won't even connect to the database
- Better CSS caching when using customizable stylesheets
- Many more objects are cached and certain other optimizations made
- Re-enabled local in-memory cache after fixing race condition bug.
File Manager Improvements
- Change "Upload Complete" window to have all metadata and sets that a editor can change in one page that you always see. Remove close window and only allow save. This will strongly encourage proper asset descriptions on entry.
- Add "Originally added To" field that remembers where the file was originally created/placed. Shows on properties and is a search option.
- Add "copy file" for one or multiple files
- Anywhere Sets are used, add a live search/filter interface at the top
- All sets can now be removed from the dashboard file manager, to those who have the ability to remove them, using a nice mouseover interface. This includes non-public sets.
- Ability to see all the files in a set from the set edit details, and manage a sort order of files in the set.
- Saved Search Sets – Ability to save a search query in the file manager as a new set which will be available to everyone.
- Fixed bug where, after adding a file then you can't delete files after file manager reloads. It will delete them but not re-submit search. It also doesn't let you select files after add
- Fixed buggy behavior when accessing functionality in the access and permissions dialog
Additional Feature Improvements
- New blog related blocks and functionality, search custom templates. Included new Date Navigation, Tags and Next/Previous blocks for better blog-like display. (Thanks to Jordan Lev for providing lots of code and spurring this on.)
- TinyMCE 3.3.9.2 is now included. Numerous TinyMCE compatibility improvements.
- Include option for file manager and sitemap in the dashboard in editing preferences. Allows file editing and page navigation anywhere.
- Flat view in sitemap can now control sort order with dragging, "send to top" and "send to bottom."
- You can define "nav_target" custom attribute and assign them to pages, and the autonav will honor them.
- External links can now define targets
- You can define EMAIL_ADDRESS_REGISTER_NOTIFICATION and EMAIL_ADDRESS_REGISTER_NOTIFICATION_FROM to get notifications when new users register through your site.
- Design controls are now available in the scrapbook and on page defaults
- Improved W3C Validation in front-end theme and blocks
- When displaying images in content, uses built-in image resizing to display images that are smaller than the source (thanks Mattias)
Additional Behavioral Improvements
- Better sample content setting up a more blog-like view
- SQL-based install should take less time, fewer resources
- Better performance in edit mode by using built-in CSS3 features when available. Dramatically lowers the number of assets loaded.
- Change "Folder View" to "Flat View" and remove any other instances of “folder” which is misleading.
- Change folder Icon to stacked pages icon
- remove php wordwrap which is not utf8 compatible
- Regular search block now just does a simple like search by default. This can be changed in code.
- We now create files/incoming/ folder on install
- Tweak to sitemap in non-IE browsers to make display order, dragging and drop behave nicer
- Removed the behavior of saving old URLs when changing URL slugs.
- Forms now track user against them if you're logged in
- When connecting to marketplace, and doing FileHelper::getcontents() make sure to throw an exception if it doesn't work
- Improved indexing of paths table for better performance
- Updated states provinces list
- Made it so if no handle is found for a page and no handle can be generated we use the cID
- More reliable page path rescanning
- Improved localization of dates when using non-US locales.
- Searcher indexer now works with datetime/timestamp, lets you reindex passes rather than all at once.
- doing a redirect to base url, do a 301 header redirect
- PageSearchIndex table entries removed when pages are deleted.
- Editing a block now shows the block type's name in the title bar.
Bug Fixes
- Made it so that events::extend() can define multiple hooks for one event type
- Fixed bug where new unapproved pages were showing up when browsed to.
- Fixed but where layouts on page duplicate don't get retained.
- Custom block and area design is now honored when pages are duplicated
- Fixed open redirect bug. rcID can either be a number (then it is a page ID) or a page path, but the base url and relative path to concrete5 install will always be prepended, and the page will be validated before you can be redirected to it.
- File set clicking on revert permissions when a file isn't in a set should give the file global permissions again
- When copying pages with manual permissions, any users who were set to add sub-pages of a certain type weren't being set properly on the newly created page.
- Fixed edit area gives an error because of encodeURI?
- Improved permissions propagation when changing permissions on pages that should add special permissions records to areas.
- When exporting a list of users, the number of logins field was blank. It will now be filled correctly.
- Fixes in HTML helper when using a site that has safe mode turned on
- Fix in .flv importer now properly calculates height.
- Fixed bug where packaged attribute types weren't working with Page objects when pages are cached.
- layout bug fix: http://www.concrete5.org/private/bugs/layouts-call-encodeuri-on-arhandle-other-ajax-calls-donand039t-f/
- Fixed bug in BlockView::getThemePath() that led to themes not being returned from within a block view template
- Page in preview mode not displayed in page list on live site
- Adding in index.html to files/tmp directory upon its creation
- Fixed bug with certain pages that lacked page paths not linked to correctly in content area.
- Fixed bug where non canonical links in content area were being shown by default.
- Fixed bug where links to pages in the content block without page paths wouldn't link properly.
- Fixed a bug where search within a certain path using the search block didn't work
- HTML block now adds its content to the search index.
- Fixed a bug when including blocks in page not found page.
- http://www.concrete5.org/community/forums/installation/crt-parameters-in-dashboard/
- Fixed some bugs when using APP_TIMEZONE constant.
- Fixed a bug with multiple checkbox list not checking all options in the excel export.
- http://www.concrete5.org/private/bugs/concrete-5-4-0-5-imagefile-attribute-bug-andamp-fix/
- Bug fixes when including aliases in the PageList class.
- Improved TinyMCE support in attributes
- Multime block deletion and scrapbook errors fixed.
- Try to do a better job of, if AJAX form submit fails then redirect user to page.
- Saving custom user search columns the page now reloads.
- Better garbage collection
- Move an alias page and it now longer moves the original
- More consistent styling in Opera
- http://www.concrete5.org/developers/bugs/5405/attribute-set-none/
- http://www.concrete5.org/developers/beta/beta-bugs/5-4-1-development/non-object-on-denied/
- http://www.concrete5.org/developers/beta/beta-bugs/5-4-1-development/tinymce-editor-bugs-for-textarea-custom-attribute-with-richtext-/
- Fixes for IE placing content at the top of TinyMCE
- Changing user avatar in profile now gives a completion message
Developer Updates
- Now including jQuery UI 1.8.4 and jQuery 1.4.2
- Fixed user selector when used in dashboard
- Page selector now works with more than one on a page, works with attributes (thanks Remo)
- Better TinyMCE page selection, using a passed callback parameter (which is optional) instead of just hard coding ccm_selectSitemapNode
- Added a MailHelper::replyTo() function (thanks mose)
- Reworked Loader::model() and Loader::library() and Loader::packageElement to include local files first (even in situations where packages are being loaded) for customization and speed purposes
- Defined AL_THUMBNAIL_JPEG_COMPRESSION to control the default compression level for all uses of imagejpeg
- Made ccm.sitemap.js and ccm.sitemap.css load through helpers to allow overriding.
- BlockView::getBlockPath() and Tools helpers should look in the root directory first, then a package, then the core.
- Loader::controller() ought to check root directory first