Blog

ContentBox v1.5.6 Released!

Luis Majano August 29, 2013

Spread the word

Luis Majano

August 29, 2013

Spread the word


Share your thoughts

We are announcing the release of ContentBox v1.5.6 which includes over 46 different issues closed and updated.  You can either download the updates or use our auto-update panel to upgrade.  The updates are now cumulative for the 1.5.X series only as well, so you can upgrade from any 1.2 version or higher.

  • ContentBox Source: To deploy in any CFML engine (Adobe or Railo)
  • ContentBox WAR: To deploy in any J2EE engine
  • ContentBox Express: To deploy in any machine

Download

Auto Update

If you will be auto-updating your installation, please note that you need to do some things manually on this release. 

1. Update your config/routes.cfm with the following line:

// The valid extensions this interceptor will detect
setValidExtensions('xml,json,jsont,rss,html,htm,cfm,print,pdf,doc');
	

2. Update your .htacess file or rewrite filter file to remove pdf and doc extensions from the rewrite like shown below:

// Before
RewriteCond %{REQUEST_URI} \.(bmp|gif|jpe?g|png|css|js|txt|xls|ico|pdf|doc|swf)$

// After
RewriteCond %{REQUEST_URI} \.(bmp|gif|jpe?g|png|css|js|txt|xls|ico|swf)$

3. Once you apply the 1.5.6 update you can run an optional manual update to migrate your customHTML objects to native content store objects.  You will do this by downloading the following patch and applying it.  You can also you just the download patch option in ContentBox and place the URL there as shown below.  Remember you must do this AFTER you apply the 1.5.6 update.

https://github.com/Ortus-Solutions/ContentBox/raw/master/workbench/patches/1-5-6-ContentStoreMigration.zip

Release Notes

You can read our very detailed release notes in our archive page.  Below we will cover the major enhancements this release brings to the table a part from all the improvements and bugs that where squashed.

Content Store

We finally migrated all of our Custom HTML into our Content Store.  All of the Content Store objects have the following capabilities now:

  • Version control
  • Categorization capabilities
  • Clonining
  • Exporting
  • Importing
  • Publishing and expiration controls
  • Granular admin caching
  • Better searching capabilities
  • Content store object metadata, so you can attach a-la-carte metadata to content objects

The API has been opened as well via the ContentStoreService and the CBhelper object has new content store capabilities as well. 

New Content UI

We have redone our content UI for pages, entries and content store so it can be more responsive and snapier.  You can now traverse hierarchies in-page, paginate, filter and even do quick searches with ease.

UI Content Export

We have expanded our layout system to allow for different format representations of your pages or your blog entries.  You can now add by default the following extensions to your content URLs:

  • .print - HTML no fuzz print
  • .pdf - PDF export
  • .doc - Word document

So if you have a URL for a page for example like: http://mysite.com/about-us, you can add the extensions to it to get a representation of the same page in different formats:

  • http://mysite.com/about-us.print
  • http://mysite.com/about-us.pdf
  • http://mysite.com/about-us.doc

By default ContentBox will be smart and try to just output to that specific format.  However, if you have created a layout in your layout theme for that format, then it will be used.  So if you have a page that use the pages.cfm layout and you have also a pages_pdf.cfm, pages_print.cfm, pages_doc.cfm  Then ContentBox will use each appropriate format extension with that layout for exporting your content beautifully!

Important: In order for this feature to work you must make sure the valid extensions in your config/routes.cfm are defined and your .htaccess or rewrite rules do not block on pdf or doc extensions.  Download the full ContentBox source to check out these files if you need to.

Bulk Deletes

As an administrator you will love that you can now delete selected content with ease.

Show All

You can now show all the content for a specific content object so you can view everything in one nice console.

JavaScript Notifier

We have added a new global admin notifier: adminNotifier( type, message, delay ) that will allow you to send nice UI messages to the admin from your widgets, modules, etc.

adminNotifier( "info", "<i class='icon-exclamation-sign'></i> <strong>Action Ran, Booya!</strong>", 4000 );

Widget Console Enhancements

There are several widget console enhancements for widget authors.  The ones most relative is some metadata you can add to your widget function arguments that the widget console with use for you.  You can now use the @ignore and @optionsUDF annotations on arguments to extend the UI console.  The @ignore annotation allows you to create more methods in your widgets that you do NOT want the console UI to show to users.  The @optionsUDF annotation allows you to tell the console that for a specific argument call a method in that widget to get an array or list of options to display for selection.  Here is an actual example of our Content Store Selector:

/**
* Renders a published ContentStore object, if no default value is used, this throws an exception
* @slug.hint The content store slug to render
* @slug.optionsUDF getSlugList
* @defaultValue.hint The string to show if the contentstore snippet does not exist
*/
any function renderIt(required string slug, string defaultValue){

	var content = contentStoreService.findBySlug( arguments.slug );

	// Return if loaded 
	if( content.isLoaded() ){
		return content.renderContent();
	}

	// default value
	if( structKeyExists( arguments, "defaultValue" ) ){
		return arguments.defaultValue;
	}

	// else throw
	throw(message="The content slug '#arguments.slug#' does not exist", type="InvalidContentStoreException");
}

/**
* Return an array of slug lists, the @ignore annotation means the ContentBox widget editors do not use it only used internally.
* @cbignore
*/ 
array function getSlugList(){
	return contentStoreService.getAllFlatSlugs();
}

UI Enhancements

Alongside all the updates there are tons and tons of small detail UI enhancements that will make it working with ContentBox a pleasure.  We have also updated it for a better experience on touch devices as well.

Add Your Comment

Recent Entries

BoxLang 1.0.0 Beta 7 Launched

BoxLang 1.0.0 Beta 7 Launched

We are pleased to announce the release of BoxLang 1.0.0-Beta 7! This latest beta version includes improvements and essential bug fixes, but more importantly it certifies the execution of ColdBox HMVC and TestBox.

What is BoxLang?

BoxLang is a modern dynamic JVM language that can be deployed on multiple runtimes: operating system (Windows/Mac/*nix/Embedded), web server, lambda, iOS, android, web assembly, and more. BoxLang combines many features from different progr

Luis Majano
Luis Majano
July 26, 2024
New BoxLang Feature: Java Method References and Higher-Order Functions

New BoxLang Feature: Java Method References and Higher-Order Functions

We’ve added more goodies to our BoxLang Java interop: method references and higher-order functions. CFML has never let you do these things, making Java Interop feel like a second-class citizen. But with BoxLang, we’re elevating Java integration to a new level.

Maria Jose Herrera
Maria Jose Herrera
July 26, 2024
Level Up Your ColdFusion Skills with our Virtual Live Training: ColdBox from Zero to Hero

Level Up Your ColdFusion Skills with our Virtual Live Training: ColdBox from Zero to Hero

Level Up Your ColdFusion Skills with our Virtual Live Training: ColdBox from Zero to Hero

Are you a CFML developer looking to take your skills to the next level? Look no further than the ColdBox from Zero to Hero Virtual Live Training! This intensive two-day course will equip you with the knowledge and expertise to build robust and scalable applications using ColdBox 7, the latest version of the most popular CFML MVC framework.

What You'll Learn:

  • Master the Fun...

Cristobal Escobar
Cristobal Escobar
July 24, 2024