We've released Bolt 1.1: The first major update for Bolt, after its initial release back in February. This release contains a lot of bigger and smaller improvements. We've updated the screenshots on both the frontpage , and the screenshots page, so if you're just curious about how it looks, take a look over there.

To upgrade an existing install, or to setup a new one, just follow the instructions . When you do an upgrade, you will not overwrite your modified settings with the upgrade. You should still make a backup before doing an upgrade, though. Get the latest .tgz or .zip , or browse the folder with the distributions .

Actually, when you update to the latest version, you'll notice that this is in fact version 1.1.2. Last weekend we packaged the release and were all ready to release 1.1.0, but we discovered two annoying bugs that we wanted to fix first. But, 1.1.0 was already uploaded to the distribution folder, so we had to bump the version number, to avoid confusion.

Changelog for this release:

  • We've slightly tweaked the user-interface: A bit less rounded corners, a bit more spacing between items, a different font. Nothing drastic or rigorous, just small, subtle changes. Take a look at these two screenshots for a comparison. (you can use the left and right arrow keys to switch between them)

    Image: 2013-06/compare1.pngImage: 2013-06/compare2.png
  • Recently, both Silex 1.0.0 stable and Symfony 2.3.0 have been released. As you might know, Bolt uses Symfony components extensively, so we're happy that we can now use the stable versions of these components. There have been minor or major updates to a lot of the other components and libraries Bolt uses. Including, but not limited to: jQuery and jQueryUI, CKEditor, Codemirror, Backbone.js and Underscore.js

  • We added indices to the database, we're using Doctrine\DBAL\Schema\Comparator to compare and alter table definitions. You can define indices for fields in contenttype.yml, to allow for more performant queries.

  • Smoother automatic creation and updating of all database tables.

  • The parameters in {% setcontent %} can be used in any order now. Fixes #363.

  • We added the 'printquery' parameter, to show the SQL query that's generated behind the screens. We've also added some measures to prevent infinite loops.

  • Bolt now allows taxonomies in {% setcontent %} like where { tags: 'foo' } and where { categories: 'bar' } . Fixes #206.

  • Added a small notice to the Dashboard for when javascript is disabled.

  • We've created an 'ImportWXR' extension, that can be used to import content from Wordpress or PivotX installs.

  • The Bolt backend is now localized. Currently available are English, French, Dutch, German, Spanish, Finnish, Italian and Russian. Translations are stored in .yml files, and can be edited/improved directly from the Bolt user interface.

  • We've added a 'localdate'-filter for displaying localized dates and timestamps in the frontend, using any installed system locale.

  • We've made many improvements to Extensions. Adding your own controllers, Twig functions or Filters is much simpler and more consistent. Accessing an extension's data is much more straightforward, and there's a $this->config , which contains the extension's settings.

  • {{ print() }} and Util::var_dump now displays collapsibles as closed by default.

  • Much improvements have been made to the Wysiwyg component (CKEditor). You can now easily insert Youtube or Vimeo embeds, insert images that can be selected from previously uploaded files and internal links to other Bolt records can be made.

  • The wysiwyg editor itself uses Codemirror to edit the source code, giving a much more readable overview of your content's HTML.

  • Added "Autogrow" to CKeditor, with some sensible defaults.Image: 2013-06/codemirror.png

  • New feature: You can now 'brand' the Bolt backend with a name, contact info, and a custom location to logon to the backend.

  • Added listing_template option to taxonomies for setting a custom listing template for a taxonomy Fixes #331.

  • Taxonomies can now have 'pretty names', when using a hash instead of a simple array:

name: Categories
singular name: Category
behaves like: categories
options: { kittens: 'cute kittens', ducklings: 'fluffy ducklings', molerats: 'Bald molerats' }
  • There's a better, new login-screen. We've also added a 'forgotten password' feature.
  • We've overhauled the way sessions work. We're keeping our own sessions now, alongside PHP's default sessions. This means your session will stay active when PHP decides to clean up lingering sessions. As an added benefit, you can now see which users are logged in from which location, and when they were last active. A user now has the ability to manually log off, which will end all sessions for that user.
    Image: 2013-06/sessions.png
  • A lot more settings can be configured in config.yml . If you're upgrading, be sure to check the default config.yml.dist for examples. Examples of these are the branding, ckeditor settings, thumbnail settings and the locale.
  • Added a lot of default option for incomplete config.yml files
  • Don't check the database for incorrect tables from the dashboard more often than once per hour, per session. Improves performance.
  • Long overdue new feature: "Browse on server" option for image fields.
  • Some minor fixes to {{ menu }} tag. Allows passing extra parameters now. We've also made the entire {{ record }} available in each menu-item.
  • Added a 'checkbox' field for use in contenttypes.
  • We no longer let Silex cache frontend pages, since it would give weird results. You can expect a proper cache in Bolt 1.2.
  • Fix for when news.bolt.cm is not reachable or gives invalid JSON: Don't block the backend UI. Fixes #409
  • We always properly escape 'negated' fieldnames like "-id" in {% setcontent %} and contenttypes.
  • Make sure 'date' and 'datetime' fields are initialised properly. Adding defaults to 'date' and 'datetime' in contenttype.yml.dis t for kitchensink. Fixes #388.
  • Don't just sort inside of groups, but also sort the groups themselves according to the order in taxonomy.yml .
  • Fix a minor bug in taxonomies: has_sortorder works again.
  • Fixing a 'sprintf', filtering in the sidebar works again.
  • We implemented a bunch of smaller improvements to SimpleForm extension: We added submitter_cc to SimpleForms. We also added redirection to Simpleforms, and the option to store results in a database table.
  • Database fix: When an "update" doesn't work, attempt to "insert" a record, before giving up.
  • Re-add the propertychange and input events, keep change for supporting change in a selectbox. Change them to namespaced events.
  • Display placeholders for thumbnails and videos in backend. Also cleaning up various bits of javascript.
  • Merged searchresults.twig into listing.twig . Less mandatory templates!
  • Allow some timthumb settings to be set in our config.yml . Fixes #350.
  • Added "Whoops" error handler. When working on a site, errors are presented with much more information and a stacktrace, to simplify debugging.
  • Show "showing page x of y" in overview. Fixes #348. Fix retrieving of relations by removing unneeded quote() The 'uses' value for slugs in contenttypes now support multiple fields, so you can create slugs like '123-lorem-ipsum' for [id, title] .
  • Added a bunch of sanity checks for contenttypes. Fixes #285, fixes #286.
  • Fix: don't set the slug for contenttype in getContentType() .
  • Clear cache has it's own (simple) page now. Fixes #256. Multiple smaller fixes for NiceUrls extension. "Developer" and "Admin" users always have access to all of the contenttypes. Fixes #283.
  • New feature: Allow default_status in contenttype. Fixes #284.
  • New feature: Set the canonical in the -section of the page, and also fix the link to content pages. Fixes #279.
  • Prevent slugs from starting or ending with a '-'.
  • Finetuning the new 'add dummy content' functionality. Closes #241
  • New feature: Config setting for favicon location. Fixes #276.
  • Prevent "Flash of unstyled content" for debug bar.
  • Extra replacement for windows-servers running fast_cgi: replace drive-letter in paths. Fixes #323.
  • Bolt no longer adds html-snippets 'at random', but only in actual frontend pages. (not in the backend or asynchronous request) Contenttypes can now be overridden. Before, all records were always \Bolt\Content , but now you can define a class: in your contentype's .yml , and that class will be used. All you need to do is extend \Bolt\Content in your extension, and you're good to go.
  • Made taxonomies a bit more flexible. Now /category/foo works, just like /categories/foo .
  • Fixing two notices for when a taxonomy is removed from taxonomies.yml .
  • Better support for SQlite and PostgreSQL.
  • Added Lowlevelcheck for ' magic_quotes '. Don't just break, but show a proper error page.
  • Added an extra check, so people who still have php 5.2 get a sensible error message. Fixes #235.
  • Don't do half-assed attempt at caching, just return the results. Fixes #251.
  • "sort" in contenttype.yml doesn't understand '-id', when used together with Grouping. Fixes #382.
  • Make sure 'posted' date and datetime end in "00:00", not ":00". Fixes #243
  • Use prepared statements for all queries, where applicable
  • There's a 'preview' button when editing content.
  • Callbacks for snippets and widgets now accept only 1 extra parameter. Working on issue #13.
  • Now can specify the contenttypes that an 'editor' can see and edit.
  • Added {{ foo|first }} and {{ foo|last }} filters to easily get the first or last item from an array.
  • Added {{ disquslink() }} to Disqus extension.
  • Better detection of which objects not to traverse in `{{ print() }} . Fixes #131.
  • When deleting a record, also delete its relations and taxonomies. Fixes #94.
  • Display an error when either Postgres or MySQL is selected, but databasename or password is omitted from the config
  • Don't allow fieldnames with dashes in it in contenttypes.yml .
  • Added PRAGMA synchronous = OFF for sqlite. Huge speedboost for slow filesystems.
  • Correctly returning values for localdate() in Twig, simplifying the 'locale' setting.
  • Publish "Timed" records at the right time. Fixes #211.
  • Since we use UTF-8 and HTML5, don't translate everything to HTML entities. Handle multibyte strings better in TrimText. Fixes #214.
  • Made 'taxonomies' behave like link => value arrays.
  • Added {{ showimage }} tag, analogous to `{{ fancybox }}
  • Added ' order() ' filter, to sort/order an array of records on a field.
  • Added config:get and config:set Nut tools.
  • Don't change the slug, if it's already set. Fixes #222.
  • Moved PHPass, HTMLawed and Markdown from 'our' code, and use them as Composer components instead.
  • New feature: Make sure usernames, email-addresses and displaynames are unique.
  • Keep the correct order for taxonomies. Fixes #208.
  • Don't return unpublished records for related() , make order consistently ' ORDER BY id ', closes #181.
  • Config edit screens work better on mobile and tablets.
  • Fields with more than 4kb text will now properly parse if they contain Twig tags.

For version 1.2 we'll have a more compact list of changes. Check our roadmap to see what's planned. And as always: If you'd like to contribute and help us improve Bolt: Get in touch!

comments powered by Disqus