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