Bricolage 1.9.0 Punkin Changes


New Features

  • Added MASON_INTERP_ARGS bricolage.conf directive to allow arguments to be passed to the Mason template interpreter. [Scott]

  • Added support for sub-second precision to date and time management in Bricolage. This means that dates can be stored in the database with microsecond precision. This was done by modifying Bricolage's date and time handling to use the DateTime module from CPAN under the hood. The upshot is that you can use the full suite of strftime formats supported by DateTime, including the formats for milliseconds and microseconds. Sponsored by Alinghi. [David]

  • Added new Precision option to DateTime fields added to elements and contributor types. The supported precisions are Year, Month, Day, Hour, Minute, Second, Millisecond, and Microsecond. For purposes of backwards compatibility, the default precision for custom DateTime fields is Minute. Sponsored by Alinghi. [David]

  • Added preview_another_all_ocs() and blaze_another() to Bric::Util::Burner. The former executes a preview for all of the output channels a document is associated with. The latter takes a document for its argument and calls publish_another() in PUBLISH_MODE and preview_another_all_ocs() in PREVIEW_MODE. [Serge Sozonoff]

  • Added $INSTALL_VERBOSITY makefile environment variable that, when set to QUIET, eliminates many of the questions asked during installation and cloning, falling back on the default values. [Rod Taylor & Andrea Rota]

  • Added $USE_DEFAULTS makefile environment variable that, when used with $INSTALL_VERBOSITY, will use platform-specific answers to all of the installation questions. This allows for completely silent, customizable installations, which are necessary for packagers. [Marshall]

  • Added make dev makefile target for installing a development version straight out of a Subversion checkout. It performs a standard installation, then symlinks bin/, comp/ and lib/ back to the Subversion checkout. [Marshall]

  • Added RELATED_MEDIA_UPLOAD bricolage.conf directive that allows editors to upload media files directly into an element profile if they have permission to create media and to access a media workflow. This makes it a much simpler process for editors to quickly associate media with story documents. The uploaded media files will be created based on the media type element selected from a select list, and given the same category, cover date, and priority as the current document. Enabled by default. [João Pedro and David]

  • Added the element type and output channel modules to the SOAP interface. [Scott]

  • Added the ENABLE_GZIP bricolage.conf directive to turn on compression of the UI pages through mod_gzip. This results in pages as much as fifteen times smaller, with minimal extra server load. If mod_gzip is found during installation, the appropriate LoadModule/AddModule lines will be added to httpd.conf. Disabled by default. Suggested by Rod Taylor. [Marshall]

  • Added Show Alpha Search preference that determines whether the alpha search ("A | B | C | ... [All]") links should be shown. The alpha search isn't very useful because you can type the first letter in the textbox (or % for All) for the same results, and it supports only the ASCII alphabet. Alpha search is now off by default. [Marshall]

  • Added MEDIA_UNIQUE_FILENAME bricolage.conf directive to allow the file name of media documents to be set to a unique, automatically generated file name on upload, (off by default). Also added the MEDIA_FILENAME_PREFIX directive for setting a prefix word, such as media, to be prepended to the file name if desired (off by default). [Paul Orrock / Digital Craftsmen]

  • Added support for the ANY() function to pass multiple possible values for a given parameter to the list(),list_ids(), and, where pertinent, href() methods in the following classes:

    More classes will support it soon! [David]

  • Added support for associating secondary categories and output channels when cloning a story. Sponsored by Alinghi. [David]

  • Added support for adding secondary output channels to a new clone by selecting a group of output channels. All output channels in that group that are allowed by the story element will be associated with the clone. This is an easy and accurate way to add a bunch of output channels to a clone at once. Users must have READ access to each listed output channel group. Sponsored by Alinghi. [David]

  • Added MEDIA_UPLOAD_LIMIT bricolage.conf directive for setting a size limit on uploaded media files. [Scott]

  • The URI formats are now more flexible. You can now use many more parts of the cover date in the URI, and in whatever format you like. So you could have a format of /%{categories}/%Y-%m-%d and end up with the URI /foo/bar/2004-09-22 if you wanted. Or even /%{categories}/%Y/%V to get the week number as part of the URI. You can also include your own text, similar to the URI Prefix and URI Suffix fields, anywhere in the URI (e.g. foobar in /%{categories}/%Y/%m/foobar/%{slug}". Suggested by David. [Marshall]

  • Added a frame on top of the preview window with a Repreview link. This is useful for previewing changes when you're developing templates. Rather than having to save the template, go back to the workspace, repreview, and then go back to the template profile, you can preview the story, then edit the template and click Repreview as necessary after each save. [Marshall]

  • Added a pluggable authentication system. New authentication engines can be created by simply implementing a module named Bric::Util::Auth*, where * is the name of the authentication scheme. The new scheme can then be used by adding it to the new AUTH_ENGINES bricolage.conf directive. By default only the existing authentication scheme is used. Sponsored by Kineticode. [David]

  • Added support for authentication to Bricolage against an LDAP server. The new LDAP_* bricolage.conf directives make it simple to configure Bricolage to authenticate against any LDAP server. Includes support for authenticating users only if they are members of a specific user group in the LDAP database. Users must still exist in Bricolage, however. Sponsored by Kineticode. [David]

  • Added support for multiple WYSIWYG editors. The ENABLE_HTMLAREA bricolage.conf directive has been replaced by the ENABLE_WYSIWYG and WYSIWYG_EDITOR directives. You can now choose between htmlArea 3 and the new Xinha, a more active fork of htmlArea (recommended). More editors possibly coming soon. See Bric::Admin for details. [Marshall]

  • Added AUTO_PREVIEW_MEDIA bricolage.conf directive. Enabling this directive allows media files uploaded to a media document to be distributed to all relevant preview servers as soon as the media document is saved. Sponsored by Alinghi. [David]

  • Added a PHP burner. Implemented by George Schlossnagle of Omni TI consulting. Sponsored by [George Schlossnagle]

  • Added UUIDs to story and media documents. A UUID is a universally unique identifiers. The format for UUIDs has been described in RFC 4122, ITU-T Rec. X.667 and ISO/IEC 11578:1996. In Bricolage, they are generated by Data::UUID.


  • Creating a template that was deactivated now reactivates it instead of just giving an error message. [Scott]

  • The User Override screen has been integrated into the Users screen since the two pages are mostly redundant except for a few links. [Marshall]

  • User overrides are now recorded in the event log. Suggested by David. [Marshall]

  • The UI now shows which user is logged in and includes a link to the user's profile at the top of each page, above the log out button. Suggested by Philip Brown. [Marshall]

  • All of the old NUMERIC columns have been removed from the database and replaced with the more appropriate (and faster) INTEGER, SMALLINT, and BOOLEAN data types. [Neil Conway & David]

  • Added exclude_id parameter to the list() methods of the story, media, and template classes. This parameter can be used to exclude one or more asset IDs from the list of objects returned by the call to list() and friends. Suggested by Curtis Poe. [David]

  • The get_desk_stamps() method in the asset classes has been removed (it was deprecated in Bricolage 1.8.4). The same goes for the required_satisfied() method in Bric::Biz::Workflow. Thanks to Marshall Roch for the spot! [David]

  • Users now must have at least READ permission to sources to add them to stories. If upgrading from an earlier version of Bricolage, for purposes of backward compatibility, members of the All Users group (that is to say, all users) will be granted READ access to all sources. Change this permission to limit access as appropriate. For new installations of Bricolage, the default Story Editors and User Producers groups have READ permission to all sources. Suggested by Simon Wilcox. [David]

  • There is now a Preserve Formatting (disabled by default) option in Bulk Edit that retains leading spaces, trailing spaces, and line breaks. With this option set, you can, for example, paste in poetry without it all ending up on one line. [Marshall]

  • URI formats now require that the categories be a part of the format. [David]

  • When using the command line tools, you can now opt to be prompted for your password rather than entering it on the command line, which would store your plain text password in the shell history. [Marshall]

  • Added tests for the burners. This was important for thoroughly testing the new PHP burner, but it will keep the other burners functioning well from here on in, as well. [David]

  • Moved the burn_again attribute from Bric::Util::Burner::Mason to Bric::Util::Burner, since it could be useful to other burners, and since Bric::Util::Burner had knowledge of it, anyway. [David]

  • The HTML::Template burner now sets parameters for all attributes of a story as returned by the my_meths() method of the story class, rather than just the story title. So, for example, you can now use <tmpl_var primary_uri> or <tmpl_var cover_date> with out creating a .pl template to set them up. [David]

  • Refactored the separate _add_resource() methods in each of the burner subclasses int Bric::Util::Burner itself. [David]

  • Arguments can now be passed to the display_element() method of the Template Toolkit burner and they will be set up as variables in the stash of the execution context of the element template.

  • Category templates in the HTML::Template burner now cascade just like in all the other burners, rather than stopping at the first category template found in the category URI. Users of HTML::Template templates should take note of this if they have more than one category template in their category URIs. [David]

  • The HTML::Template burner now has access to both the related story and the related media URIs via the rel_story_uri and rel_media_uri variables. The old link variable has been deprecated, since it cannot handle an element that has both a related media and a related story. [David]

  • Major interface clean-up. The UI is finally mostly valid XHTML and uses CSS for all styles. The USE_XHTML directive, added in 1.7.0, is no longer used. The file sizes of some pages have been reduced by as much as 70%, offering improved page load times. Also, it will now be much easier to customize colors, etc. by customizing the CSS stylesheet. [Marshall]

  • The desks/My Workspace have been slightly modified to be more usable. Most notably, the View and Edit links (depending on checkout status) have been moved to the asset's title, where the preview link formerly was, the Category line has been replaced with Primary URI, and the URI itself is the preview link. Also, the Site line now only shows up when there is more than one site. [Marshall]

  • Added MASON_STATIC_SOURCE bricolage.conf directive to enable static sources in the Mason-powered UI. Enabling this directive can eliminate many file system stats on every request, thus increasing performance. It's disabled by default, but you should turn it on now! [David]

  • Changed the names of the attributes in Bric::Biz::AssetType and Bric::Biz::AssetType::Parts::Data that have double underscores to have only single underscores. The double underscores are still supported for the sake of backwards compatibility, but are no longer required. [David]

  • Updated search documentation and wrote tests for Bric::Biz::Contact, Bric::Biz::AssetType::Parts::Data, and Bric::Biz::Org::Parts::Addr. [David]

blog comments powered by Disqus