Released on January 10th, 2017
  • Fix The updater attempts to clear the cache earlier in the update process. Result? Better updating.
  • Fix Polyfill String.includes() because we made the silly assumption that IE was able to check if a string contains another string.
  • Fix Sanitize get, post, and get_post variables.
  • Fix Prevent an error when saving an empty taxonomy field.
  • Fix Regex conditions (matches|match|regex) now work on arrays.
  • Fix Fix number_format modifier. It's smarter now, and doesn't trip on irreverent commas.
  • Fix If and when stuck in the "meta refresh due to a cache building error", allow the console to work so you can clear the cache.
  • Fix Fix issue where only one collection gets localized. #886 (Thanks Remy!)
  • Fix Fix localizable routes. #1164 (Thanks Peter!)
  • Fix Fix issue when a localized route exists, any entries that have not been localized wouldn't work.
  • Fix Fix issue where updating a localized entry/term would override the default locale until the cache is cleared.
  • Fix List fieldtype now enters the current line on blur #1166
  • Fix Form submission view now escapes HTML properly #1145
  • Fix The "#" character is now valid inside tags, which enables and addresses numerous things, including #1112
  • Fix Template and Layout now show in the debug bar on 404 pages #690


Released on November 18th, 2016
  • New Improved the example starter nginx config.
  • New Add cc and bcc support to forms, because if there's one thing this world needs, it's more email. 💌 #1086
  • New "Old" data is now available as variables (instead of Tags) inside Form tags so you have more control over template output. #792
  • New Boolean based modifiers can now be used in conditions. #522
  • New You can retrieve Form errors individually like so {{ error:snorkle_size }}. #792
  • Fix Fix issue where Javascript based translations weren't respecting the user's locale preference. #1068
  • New The contains modifier now supports arrays.
  • Fix Form submissions with arrays will now show them in the control panel as JSON.
  • Fix Fix the old tag not recognizing colons for nested keys. The old tag now loves colons, which sounds weird but probably only in English.
  • Fix Only the drag handles in the page tree will now trigger dragging. Fixes #1076, #517
  • Fix The Form widget now shows newest submissions on top. Like a whipped cream, but less exciting. 🍨 #1075
  • Fix Fix the Date fieldtype layout inside Grids. #1043
  • Fix Fix html entities on "backing up" text inside the updater. #1024
  • Fix Fix time picker formatting in Firefox. #914
  • Fix Fix a significant performance issue regarding OAuth. #1096
  • Fix Fix subdirectory appearing in the URL when editing pages, when installed in a subdirectory. #937
  • Fix Fix "create page" redirect URL when running in a subdirectory. #977
  • Fix Fix single pages being duplicated when clicking them. They were just lonely and wanted a friend, ok? #1097, #1103
  • Fix Fixed something else probably
  • Fix Fix addon translations not being available in Javascript. #1064
  • Fix Fix form editor column saving issue. #789
  • Fix Add some common global vars to Form submission email templates (like date, site_url, etc). #1010
  • Fix Fix a CP search positioning issue in Safari, which is the new IE if you haven't heard. #904
  • Fix Path::tidy() will also normalize slashes. This fixes some Windows path issues. #1102, #888
  • Fix Fix the continue button link on installer.php on Windows. #953
  • Fix Fix protocol warning on installer.php when running https.


Released on October 27th, 2016
  • Fix Fix issue where saving a taxonomy term could sometimes throw an error. #1070
  • Fix Fix IE 11 not showing the Pages interface. It took us a while to find a copy of IE11. #1028
  • Fix Fix the links to form submissions in the dashboard widget.
  • Fix Nav:exists was having an existential crisis after reading Tolstoy. Therapy has fixed it and revoked its library card. #1069


Released on October 26th, 2016
  • New The get_content tag now supports IDs. #1058
  • New The get_content tag now supports a shorthand syntax too.
  • New You can now search the control panel with Algolia #827.
  • New You can now set Algolia's searchable attributes in the control panel.
  • New Added an event when a search is performed.
  • Fix Fix an issue where an error while building the Stache could result in an infinite redirect.
  • Fix Fix an issue where the redirect while the Stache is building would append itself repeatedly. Recursive grossness. #1042
  • Fix Fix issue where the user groups fieldtype would not be populated.
  • Fix Remove the undesired services settings tab that appeared in 2.1.15 like a g-g-g-ghost in a Scooby Doo cartoon. #1049
  • Fix Fix some translations in the CP when used through Javascript. We even did so without adding a new JS framework!
  • Fix Prevent a long title from wigging out the publish page like a loose tooth on a windy day. #837
  • Fix Fix honeypot link on the form page. #1041
  • Fix Put some methods in alphabetical order to satisfy Erin's self-proclaimed OCD. #1052
  • Fix Fix error in nav:count tag when there are no nav items. #1061
  • Fix Fix users fieldtype showing no data. #1032
  • Fix Fix an issue with the user groups fieldtype.
  • Fix The user groups and roles fieldtypes are only editable if the user has super permissions.
  • Fix The user groups and roles fieldtypes use a tag UI.
  • Fix Fix settings with interpolated .env being editable in the CP. #1059
  • Fix Fix a regression preventing you from overriding globals in your environment file. #1034
  • Fix Content::uriExists will ensure there's a leading slash for consistency.


Released on October 17th, 2016

This release adds some improved security suggestions to the sample server files (htaccess and nginx.conf) that you'll want to look at if you haven't already done so. Things like disallowing access to all . hidden files, not just .htaccess, and so on.

  • New Added a form fieldtype for choosing one (or more) of your forms.
  • New get and url modifiers work with array by grabbing the first item.
  • New Added a Please facade. Does the exact same thing as Artisan.
  • Fix Fix an issue where some people would see an infinitely refreshing page as the cache warmed up.
  • Fix Search API methods will catch exceptions and log them instead of breaking the site with an error display.
  • Fix Fix issue where services.yaml would not be recognized.
  • Fix Add some rules for protecting hidden files to the sample htaccess and nginx.conf files.
  • Fix Removed the collection of entries from taxonomy terms when converting to an array. Fixes an Algolia error saying too much data is being sent.
  • Fix Fix untranslated string in the updater.
  • Fix Fix an issue with the locale dropdown.
  • Fix Fix issue where addons weren't referencing their translation files when running above webroot #805
  • Fix Added an m4v filetype icon.


Released on October 6th, 2016
  • New Keyboard lovers should order a new pair of happy shoes because you can now tab your way all through the publish screens and custom fields. 🎶
  • Fix Updated the Markdown package, which should solve an issue where some heading IDs cause the page to disappear.
  • Fix Fix issue where partials with spaces and underscores weren't recognized. #1016
  • Fix The register method in a service provider is no longer required. #1012
  • Fix Fix issue where you couldn't create a user when login type is set to email. #966
  • Fix Add title when creating a formset.
  • Fix The taxonomy fieldtype saves a string when max_items is 1.
  • Fix Fix issue where asset tags referencing a field named img would self-destruct. #1013
  • Fix Fix issue where addon settings weren't being shown in the CP.
  • Fix Fixed Tag methods being sent as an argument.
  • Break Addon classes (Tags, Modifier, etc) no longer extend Addon. Neither should you. Instead, use the Extensible trait.
  • Break If you were relying on the tag method being sent as an argument, you can use $this->tag_method.
  • Break Removed the addon helper methods that were added in 2.1.13. If you were already using them, you're quick! The property versions are the best way to do this. We know why now.


Released on September 30th, 2016
  • New You may override translation files by placing them in site/lang/en. Like fr, for example. #991
  • New Added URL::isAncestor(). If you were a URL you could use this to find your grandpa.
  • New You can now set request headers in your front matter and/or routes.
  • New Arbitrary addon classes that want to leverage helpers no longer need to extend Addon. You can now use the Extensible trait.
  • New You can add redirect: 404 to front matter to trigger a 404, if you want to do that for some reason.
  • New Improved the validation when editing an Asset Container. #588
  • Fix Fix some issues where content wouldn't get completely parsed.
  • Fix Fix issue where actionUrl would be missing the addon name. #997
  • Fix Fix issue where addon service providers were booted twice. How can you boot that which is already booted? Think about it. #998
  • Fix Fix nav tags thinking similarly named sibling pages were parents. What are we, Targaryens? #993
  • Fix Fix $this->getConfig() returning null instead of an array.
  • Fix Add a translation. #992
  • Fix Added a search shorthand tag, which is exactly the same as search:results.
  • Fix When a Glide tag references a non existent value, it now outputs nothing instead of a potential error. Broken images are better than broken sites.
  • Fix Fix a derpy issue where some configs weren't getting merged with the defaults correctly. #990
  • Fix Fix issue where an extra | would sometimes appear in markdown fields. You might still need to fix existing cases manually, however. #930
  • Fix Fix an issue on large sites where data might be missing while the Stache is performing its initial warm up.
  • Fix Added $this->session->forget() addon helper.
  • Fix ~~All the addon context helpers ($this->blink, etc) are now also methods ($this->blink()).~~ Don't use this, it'll be gone in 2.1.14
  • Break Removed $this->flash() helper from Controllers (it now references $this->flash). If you used this, you can still just do session()->flash()


Released on September 26th, 2016
  • New The parent tag now supports arrays, and thereby all parent data. It's no longer your grandfather's tired tag.
  • New The pages tag can now use IDs in addition to URLs or folder names.
  • New Email values in formsets can now use environment variables.
  • New Loggers can now be managed through environments.
  • New The Control Panel is now fully translatable. All of our hardcoded strings have been wired up. Celebrate!
  • New Modals can now be closed with the escape key. #862
  • New The installer now makes the user super instead of just assigning role. You are a super developer and don't let anyone tell you otherwise.
  • Fix Fix paths in S3 based asset containers #975
  • Fix Fix an issue that caused the get modifier to not get...anything.
  • Fix Asset container syncing will now sync folders, which fixes some related issues too.
  • Fix Fix some issues with editing/deleting assets with stache_always_update: false.
  • Fix Fix an issue where the parent tag wouldn't work with multi word variables. #976
  • Fix Fix an error where the cache wouldn't clear properly after running the installer, thereby making first-time run experiences really derpy. Sorry about that.
  • Fix Improve slug auto-generation. #312
  • Fix Fix an error after deleting the last entry in a collection.
  • Fix Fix an error when using the syslog log handler.
  • Fix Fix the directory when using $this->email() #983


Released on September 21st, 2016
  • New Templates can use section and yield to inject into layout. Game changer, ya'll.
  • New Taxonomy listing pages can now have their columns customized, just like Collections.
  • New Added user:not_in tag. Yup, it's the opposite of user:in.
  • New Added a syslog logger.
  • New Cmd/Ctrl+s will now save changes to your page tree order.
  • New Niles is writing a screenplay.
  • New The save button in the page tree only appears after you reorder something. Simpler is better.
  • Fix Fix issues where the cache needed to be manually cleared for items to show up when Stache is was set to not update on every request.
  • Fix When running the clear:cache command, it no longer tells you the Stache was cleared. But don't worry, it still does.
  • Fix If you ever need to manually clear the Stache or Glide cache, they're now stored in their own folders.
  • Fix Added missing timezone field in system settings.
  • Fix Added .kml filetype icon.
  • Fix Context and parameters get passed into custom filters in taxonomy tags.
  • Fix The Auto Taxonomies feature is back.
  • Fix Uploaded assets first go to a temporary location. Fixes S3 assets being the incorrect MIME type.
  • Fix Fixed/added support for putting your site in maintenance mode.
  • Fix Fixed issue where users in a user group weren't being saved.
  • Fix Changed the users field in the user group form back to the panes mode.


Released on September 13th, 2016
  • Fix Globals are savable in the Control Panel once again. #948
  • Fix Redactor's "Open link in a new window" checkbox is now visible. #265


Released on September 9th, 2016
  • Fix Put the Stache in our hydraulic press and now it's half the size. Fixes some weird memory and serialization issues some people were experiencing.
  • Fix The Stache now also checks the version number for invalidating itself.


Released on September 8th, 2016
  • Fix Fix a search related error that popped up in 2.1.7
  • Fix Fix a syntax error you'd see if you are kickin' PHP ol' skool. #932
  • Fix Search auto-indexing doesn't happen when the cache is built from scratch.


Released on September 7th, 2016
  • New Added a convert:email-login command that converts user files from username to email.
  • New Added a performant pages:count tag.
  • New Added a new markdown:indent tag to let you wrap content in your templates.
  • New Added the ability to mix named and unnamed wildcards in routes.
  • New Added Search::insert() and delete() API methods.
  • New Added a parseNoResults() tag helper method that returns common useful variables.
  • New Search auto indexing is now much smarter and uses diffs. Removed the search.index_frequency setting. No longer necessary.
  • New Added a new setting to let you exclude URLs from CSRF protection.
  • Fix Fixed a long-standing bug that masqueraded as a feature that nobody liked. Empty values in loops where replaced by the previous iteration's values forcing the need to over-scope everything. It's fixed. 🎉 #514, #733, #786, #830, #889
  • Fix Fix a missing update_available variable error in addons. #906
  • Fix Add validation to user registration forms to prevent using an existing username.
  • Fix Improved username/email handling when login_type is set to email.
  • Fix The search:update command shows more useful output.
  • Fix Fixed regression where asset URLs with spaces were not encoded.
  • Fix Glide URLs with spaces now get encoded.
  • Fix Fix incorrect Glide URLs in the CP when using the cached setting.
  • Fix Fix an issue where assets were being included when fetching "content".
  • Fix When saving data programmatically, IDs will always be added if they aren't already there.
  • Fix Fixed up some issues with the get_value tag. #675
  • Fix Added pagination and a couple other useful little code examples to Redwood.


Released on August 29th, 2016
  • New Added a Path::isAbsolute() API method to better determine if a path if absolute or not.
  • Fix Improve tests for absolute paths when building out the filesystems.
  • Fix Fix incorrect path error on Windows. #905 and Lodge #2472
  • Fix When passing parameters directly into $asset->manipulate(), you now get a URL as promised.


Released on August 26th, 2016
  • Fix Fix token errors when uploading assets.


Released on August 26th, 2016
  • New Forms can be submitted using AJAX. This is a DIY thing, the tags don't write the JavaScript for you.
  • New Added csrf_token and csrf_field global variables.
  • New New Collections Fieldtype that helps you select Collections, as the name implies.
  • New The new Collections Fieldtype is now used to choose your Collection in the collection fieldtype. So Meta.
  • New You can now delete Form submissions in the Control Panel.
  • New Added webroot and glide filesystems. (Only addon devs will care about this. Maybe.)
  • New Added option_list (and piped alias) modifiers to convert an array var into a pipe-delimited string.
  • Fix Fix front-end CSRF protection.
  • Fix Fix duplicate ID error in assets.
  • Fix Fix another Safari UI issue. Seriously, when did Safari become IE? It's definitely IE now. #884
  • Fix Added installer.php to the sample.gitignore file so you don't accidentally push it to production. Lookin' out for ya.
  • Fix Fix error when using Glide and the path="/to/img.jpg" param when running above webroot. #898
  • Fix Fix a couple of errors when using external URLs with Glide.
  • Fix Improved the clear:glide command.
  • Fix Fixed missed User subnav labels #893
  • Fix The Sneak Peak "Done" button is now easier to see. It's a different color than the background now. Bright blue, in case you were wondering. #894
  • Fix The Markdown Asset button is now aligned correctly instead of dangling out in the land of Collapsed Margins.
  • Fix Fix data loss when collapsing Replicator sets #885
  • Break If you had some custom front-end forms, you'll likely need to add a CSRF token to them now.


Released on August 24th, 2016
  • New Static Caching now has invalidation controls!
  • New Added the ability to generate static images with Glide, which increases performance significantly.
  • New New markdown tag pair. Now you can write Markdown anywhere!
  • New Added the ability to disable unique ID assertions. Increases performance, but still available for debugging/managing duplicates.
  • New Fieldtype's now use a deslugified version of their fieldtype for display. #882
  • New Replicators now have the ability to collapse/expand all sets. It's in a new little dropdown control in each set's header.
  • Fix Add Entry::countWhereCollection() which is a more performant way of counting entries in a collection. It's used in the CP collection listing.
  • Fix Fix error when trying to create a taxonomy term. #851
  • Fix The user fieldtype will now only default to the current user if you explicitly set default: current.
  • Fix The is & isnt conditions now use a loose (==) comparison, which works better with our loose data types. Added x_strict suffixed versions if you still need strict (===) comparisons.
  • Fix Improved Glide URL performance.
  • Fix Numerous performance improvements. We've been really focused on performance lately.
  • Fix The Stache lives in the Cache again.
  • Fix Fixed collapsed margins within replicator fields.
  • Fix Fixed some flexbox issues. Newsflash: cross-browser support for flexbox is kinda wompy. #876
  • Fix Translated the navigation sidebar.
  • Fix Fix issue where Glide would sometimes not find a file.
  • Fix Brought back the results and collection variables inside a term / taxonomy listing. #869
  • Fix Fix the variable string fallback ("or") syntax so it works with single quotes too. #873
  • Fix The collection tag pair inside a taxonomy tag works just like a collection tag should. #705
  • Fix The theme tags (theme:css, etc) output a relative URL by default. Added an absolute="true" param.
  • Fix Fix issue where localized pages all wanted to be the homepage. If only we could all be a home page. #855
  • Fix Fix issue where creating a taxonomy term showed duplicates. #868
  • Fix Fix issue where conditions weren't taking into account the cascade or the default locale values. #874


Released on August 5th, 2016
  • Fix Fix alpha based entries always being marked as published. #813
  • Fix Fix the CP not updating all content types in the Stache correctly (inline taxonomy creation appeared to not work correctly. Which is, let's be honest, functionally the same thing as not working correctly).
  • Fix Suppress errors when assets with non-existent (e.g. manually deleted) files were loaded.
  • Fix Relate tags can access nested variables, eg. relate:foo:bar
  • Fix Fixed various Safari-related Flexbox issues. When did Safari become IE?


Released on August 4th, 2016
  • Fix Fix a PHP 5.6 error. (Upgrade to PHP 7 if you can, it's like, better than Pokémon Go)
  • Fix Fix users not being able to be deleted.
  • Fix Fix a Safari flexbox layout issue when your screen is > 1400px


Released on August 4th, 2016
  • New We totally rebuilt the "Stache" for significant performance improvements, stability, and other gainz!
  • New Passwords can now be a thing of the past. OAuth is now integrated natively!
  • New Completely overhauled API classes for consistency and fluency. Check out what's changed. Also, we now have a pile more documentation!
  • New A stunningly large amount of Control Panel UI/UX improvements to tickle your fancy, and your neighbor. We can't list them all because we forgot most of them. Everything just looks better, and we'll leave it at that.
  • New You can now customize your entry and taxonomy listing table columns. #653
  • New Terms can now be created on the fly inside a taxonomy fieldtype, the way it was always meant to be. #283
  • New You can now manage permanent redirects (301) in your routes.
  • New Relate fieldtypes (taxonomy, collection, etc) now use a "tag" style UI by default.
  • New New Updater and Form widgets. Also souped up the Collection widget like a Fast & Furious sequel. It now has a button.
  • New The Collection Tag (and derivatives) now accepts a locale parameter.
  • New Collection Tags can be filtered by a locale, without falling back to the default locale. You asked, we delivered. #759
  • New Entries can now have a different route for each locale. (eg. /articles, /des-articles, etc)
  • New You are presented with a nice, helpful, and informative error message when a duplicate content ID is encountered. (Hint, if you see this error, go remove that ID. Just...delete it.)
  • New You can now pass variables into the contains modifier along with regular strings.
  • New Glide now supports external/remote images. Be nice to other people's sites though, okay?
  • New Login throttling has been added to the CP. Too many attempts in a short time will lock a user out for a minute, allowing them time to make coffee before trying again.
  • New Added a user.registering event that allows you to halt the registration process or modify the user data.
  • New Added a make:fieldset command that bakes you a small, delicate cupcake.
  • New Added the reply_to option in form emails. #817
  • New Added an upload button to the asset browse modal. #811
  • New Added an adorable little house icon next the home page. Don't you just wanna move in?
  • New Added support for content_type: text for serving content as text/plain.
  • New Added support for HTML5 style tag attributes without values on forms. #782
  • New Partials now support front-matter. #696
  • New Want to change an alpha collection to numbers? Edit the folder.yaml and hit reorder in the CP. Boom.
  • New When you have a single Collection it will show its title in the sidebar, the same way Taxonomies now work.
  • New When you have a single Taxonomy type it will show its title in the sidebar, the same way Collections now work.
  • New The Users fieldtype now defaults to the logged in user.
  • New You can now customize the "Create New Entry" title text (you know, when you're creating a new Entry) for your collection with create_title in your fieldset.
  • New You can now customize the Grid fieldtype "Add row" button text in the Control Panel.
  • New Event URLs (or Action URLs) can now be received by an addon's Controller.
  • New The Statamic\API\Str helper now wraps all the methods in StaticStringy so you don't have to use both.
  • New Jason got a haircut.
  • Fix Localized globals get shown on the appropriate locale.
  • Fix The Theme tags (theme:css, etc) will now always point to the default locale by default.
  • Fix Sneak peek can peek into your localized URLs, even without a passport or valid visa.
  • Fix Fix relate tag not working correctly on another locale. #779
  • Fix Fix relate tag not finding anything when the var contains dashes.
  • Fix Items get alphabetized when retrieved. Fixes inconsistencies in nav items. #808
  • Fix Added no_results to the Users Tag when there are indeed no results.
  • Fix Fixed edit URL for nested pages only ever showing the slug.
  • Fix Fix *recursive children* tag not working when children is scoped.
  • Fix Fix nav:breadcrumbs being a total weirdo on a localized site.
  • Fix Prevent nav:breadcrumbs flipping out when a parent URI results in a non-existent page. Like /blog/2015/01/post. What's /blog/2015/01?
  • Fix Fixed the |get modifier. It now actually works.
  • Fix The offset parameter is now supported when using pagination on Collection tags.
  • Fix permalink is now an absolute URL, even if your site URL setting isn't.
  • Fix Fix form submissions not being clickable. #809
  • Fix Fix user reset emails having & in the URLs. #801
  • Fix Fix plain-text-only emails not getting sent as plain text. Lodge Post #2412
  • Fix Fix form submission table not being selectable. #799
  • Fix Did you notice there was no page number 4 in the Redwood content? Neither did we.
  • Fix The home page will use the title in the page tree. #766
  • Fix Improve code block support in the Markdown field.
  • Fix Asset container.yaml files can use environment variables.
  • Fix Max Files now respected in the asset listing picker #747
  • Fix When using email as username, the email field gets removed.
  • Fix Fix addon's getConfig() method ignoring intentionally falsey values and incorrectly falling back to defaults.
  • Break We've deprecated a whole bunch of methods and classes for the greater good. Here's a complete list.
  • Break The concept of a "url_path" is deprecated. If you were using url_path in templates (you probably weren't) it's now uri.
  • Break The Stache is now stored as files in local/cache/stache. This means for now you can't place the Stache in memcached, redis, etc.
  • Break Renamed CollectionFolder to Collection.


Released on June 24th, 2016
  • New Add get() to Modify class to allow retrieval of the raw value.
  • Fix Fix an accidental regression (aren't they all?) in modifiers stemming from the abstractions we made in 2.0.10


Released on June 23rd, 2016
  • New Custom fields can be added to a user during registration.
  • New Collection and Taxonomy tags can now use any date variable in since and until filters.
  • New Custom filter classes now have access to context and tag parameters.
  • New If you ever thought "Golly, I'd love to use a modifier outside of a template", get your smile out of your pocket. Now you can.
  • New Added $this->formOpen() into the Tags class.
  • New Arrays now get indexed when using the Zend search driver.
  • New Added Request::only() and Request::except() methods.
  • Fix Fix order inconsistency when using number based collections. The correct setting is order: number. For realsies. We made sure numeric works for backwards compatibility, but it's totally supposed to be number.
  • Fix Lured the debug bar home with a hot apple pie and a fan on our window sill. It worked so fast you would have laughed if you saw it... #763
  • Fix Third party fieldtypes no longer get dropped at the end of the fieldtype list like non-alphabetical outcasts.
  • Fix The cache key prefix can be modified with CACHE_KEY_PREFIX in your .env file. #730
  • Fix Fix issue where striptags modifier wasn't working. It should. Now it does.
  • Fix Fix issue where the asset selector is empty when used in Redactor or Markdown fields. #724
  • Fix RedirectExceptions use a 302 status by default. You probably don't care about this, but it was the right thing to do.
  • Fix Fixed error when updating search index. #764


Released on June 14th, 2016
  • Fix Lasso Smartypants and hog tie it, forcing it to stay put. The newest version went rogue and escaped from Packagist somehow and ruined breakfast for everyone. 753
  • Fix Fix alignment of icons in Collection widgets.


Released on June 13th, 2016
  • New Added a glide:generate tag pair that will generate an image and provide dimensions and the url as variables.
  • New Added a widont tag pair. We did.
  • New Added tag="true" and alt="" parameters to the Glide tag.
  • New Added $this->isPair to Tags for an easy way to check if its a single or tag pair.
  • New Added Event::fireFirst() method that gets the value from the first event.
  • New Added some common php.ini overrides to the sample.htaccess file to save you time on Stack Overflow.
  • New Form submissions are now sortable and searchable, the way God intended. #626
  • New The make:theme command now generates meta.yaml and sets the theme in your settings. #574
  • Fix Any errors when uploading assets in the asset manager will now be actually shown to you. It's kind of a big deal.
  • Fix Form submissions are sorted chronologically with the newest first. Logically.
  • Fix Fix error when using multiple collections in a collection tag.
  • Fix Fix $this->get not getting a config value when using a $default argument.
  • Fix Fix issue where an unknown asset ID would cause the assets field not to load. #703
  • Fix Fix issue where Grid fields with empty asset fields (and any other time an asset value was null) would display the Spinner of Doom™. #740
  • Fix The t() translation helper accepts parameters.
  • Fix Fix the static folder being placed above webroot on above-webroot installations. #731
  • Fix Prevent null values being saved in Grid and Replicator fields #742


Released on May 31st, 2016
  • Fix Fixed a white screen error on the control panel login caused by an infinite loop when checking for super permissions which checks for a generic permission which checks for super permissions which checks for a generic permission which checks for super permissions which checks for a generic permission which checks for super permissions ...


Released on May 31st, 2016

Oops, go directly to 2.0.7!

  • New Forms now support file uploads! The uploaded files can even become actual Assets if you'd like.
  • New Asset containers can now have handles (e.g. logos or header_images. Using those UUIDs all over the place was super annoying when working with files. We're sorry it took so long to make this easier for you.
  • New The Asset Browser in an assets field now allows you to create and navigate subfolders. And there was much rejoicing! 🎉
  • New The Asset Browser will now remember if you left it in grid or table mode. If only it could remember where the Apple TV remote was. Maybe in 2.1.
  • New The Asset Browser now has a search field to help you find stuff. #623
  • New Added assets:find, assets:list, and assets:sync commands. Are you noticing a trend here?
  • New Added Asset::path() method to find assets matching a path.
  • New Added Assets::all() to get ALL THE ASSETS!
  • New Added a get modifier which grabs a single value from a relationship.
  • New Added an alt parameter to the theme:img tag. Useful when paired with tag="true", like cheese and wine.
  • New Added a URL::encode() method that's smarter than urlencode.
  • Fix Renamed Redwood's bundled asset container from 380dc8d9-481c-4d18-9162-ecd5688f98a8 to main because we're humans and we can remember words better than 90 million characters.
  • Fix Fix "file not found" error on Glide URLs when running Statamic above webroot.
  • Fix Fix issue where uploading to the Asset fieldtype browse modal would upload files twice. Derp.
  • Fix Assets URLs get encoded. Among other things, this'll replace spaces with %20s.
  • Fix Added a fallback user fieldset so editing a user doesn't break without user.yaml.
  • Fix Fix an error related to using the old tag. It totally worked on our machines though.
  • Fix Changed the nav tag's max_depth parameter's default value from 1 to 2 so it always has first level children at the ready.
  • Fix Added collection and taxonomy fields to their respective fieldtype settings. #612
  • Fix Fix addon resource url. #670
  • Fix Fixed issue where the error.html layout would be ignored, much like your inbox, or tweets about sportsball teams in foreign lands. #691
  • Fix You can localize taxonomy terms again. #701
  • Fix Fixed the line height of the CP's subnav items. #714
  • Fix Added the missing make:tasks command. #716
  • Fix Fixed missing locale translations. They were lost in translation. #717


Released on May 19th, 2016
  • New The front-end of your sites no longer go blank without a license key, while the control panel will prompt you for it.
  • New The Control Panel can now be disabled completely by setting $cp = false in index.php.
  • New The Importer now simply asks for your v1 URL and does the rest for you, rather than making you copy and paste JSON like some kind of assembly line worker.
  • New The Importer now shows a neat little summary and allows you to be selective and customize what to import where.
  • New The Importer now imports globals in a pretty smart way.
  • New Glide can now manipulate images directly by filename, without having to know or use asset IDs. CP-less devs rejoice!
  • New Added sort, limit, and offset parameters to the Assets tag.
  • New Added a collection:count tag, which returns, as one might suspect, the number of entries in a collection.
  • New Added an allow_request_redirect parameter to user tags.
  • New Added a long version of the taxonomy tag.
  • New When saving content the Stache gets updated automatically every time. No need to clear the Stache manually or wait for the next request.
  • New Added a homepage global (spoiler alert: it's an alias of site_url).
  • New Added an error_redirect parameter to the form:create tag. #625
  • New Added a $this->blink->all() method.
  • New Added a Config::set() and Config::save() methods.
  • New Added a please set command to set/save config variables via CLI.
  • New Added a Cookie API class, and associated $this->cookie addon helper methods. Great, now I want cookies, brb
  • Fix Statamic will verify that images have an image/* MIME type before trying to manipulate them with Glide. This mitigates that recently discovered ImageMagick exploit.
  • Fix Fix 404'ing resource URLs on some environments. #670
  • Fix The nav:exists tag is now a tag pair instead of a boolean. #678
  • Fix please make:provider creates a file with the correct filename. #651
  • Fix When referencing a non-existent collection in a collection tag, we now throw a much more informative error.
  • Fix Fix issue where two taxonomy tags on one page would sometimes affect each other like siblings on a long road trip.
  • Fix Fix issue where Service Providers couldn't use addon helper methods. It wasn't their fault. It was ours. They tried hard.
  • Fix Fix issue where the Importer sometimes wouldn't import child pages for reasons previously unknown to humankind.
  • Fix Fix issue where a fieldset could be saved without a slug or filename.
  • Fix Added some missing filetype icons #680
  • Fix Fix subnav not showing in the CP when index.php is in the URL.
  • Break The cache.cleared event is no longer triggered. Use cache:cleared instead. Note the colon there. That's what changed. The colon.


Released on May 6th, 2016

That index.php routing setting default turned out to be a bad idea. It's off again, but can still be enabled if you can't rewrite URLs for some reason or another.

  • New Added a "Sync assets" button. One click inhales any new files into your containers like Kirby at a buffet.
  • New The Updater got some needed love and attention.
  • New The Updater is now async and will download the update and run a backup at the same time, saving you several seconds you can spend later on Reddit.
  • New The Updater's error handling is now much more descriptive. Like this changelog.
  • New $this->cache->forget($key) is now a thing, and the Devil's Issue has been cast back into the fiery chasm from whence it came. #666
  • New You can now delete form submissions in the Control Panel #630
  • Fix The Grid now respects max_rows as an authority figure in its life. #643
  • Fix The Taxonomy tag's min_count parameter works again. #656
  • Fix The Get_Values tag now works when you aren't using filters. #657
  • Fix Templates with Front Matter no longer turn {{ content }} into a bowl of null mush #642
  • Fix The Collections list now has nicely aligned values like a good table should. #531
  • Fix The Asset Config title is now lined up nicely too. #455
  • Fix The update badge that got out of place is now chained back in its place. #498
  • Fix Running php addons:refresh will now remove cached references to no-longer-present addons. #258
  • Fix Addons with composer dependencies are no longer symlinked. This caused the updater to fail, and developers to weep gently into their hands. #636


Released on April 25th, 2016
  • New Forms now support Honeypot fields. Pooh would be excited. #614
  • New Added an env tag.
  • Fix Fixed an error when importing a v1 site with no taxonomies. #427
  • Fix Fixed issue where fieldsets wouldn't load. #632
  • Fix Addon views no longer conflict when having the same name. For real this time. #634
  • Fix Fixed incorrect link to addon's settings page. #627
  • Fix Fixed error when viewing an addon's settings page without an API class. #567
  • Fix Fix the --force option logic in the please clear:site command.
  • Fix Prettied up the placeholder page for invalid license, theme, templates, etc.