The Ortus BlogBox

"Ortus: A rise, beginning, coming into being, born, the origin!"

 

 

Category Filtering: 'coldbox-mvc'

 

ContentBox ColdFusion CMS v3.0.0 Release Candidate is here!

Luis Majano
May 23, 2016

 

 

We are so excited to bring about the release of ContentBox 3.0.0 Release Candidate to you today. It has been a monumentus milestone for us at Ortus Solutions as we have devoted almost a full year's worth of development, which has been unusual for our releases, but so worth it for ContentBox ColdFusion CMS.

This release candidate is a major release and with a completely rewritten administration module and with a collection of more than 150 tickets resolved. It has been a massive undertaking with some great results. We also are in the documentation process and our book is available as well now: contentbox.ortusbooks.com

 

Download ContentBox 3.0.0 RC Today!

 

What's New

We have created a very comprehensive what's new guide in our documentation book here: http://contentbox.ortusbooks.com/content/introduction/whats_new.html.

Books, ColdBox MVC, ColdFusion, ContentBox CMS, Releases 0

ContentBox - Extending ContentBox 3 with your Own Custom Modules

Gavin Pickin
May 20, 2016

 

In a previous Post, we talked about extending ContentBox easily with modules, and showed you how you could just download a module, activate it and use it in minutes. In this post, we'll look at how to add Modules into your website, by building your own, and how to leverage Module Layouts.

Whether you have used ColdBox before or not, using Modules with ContentBox and ColdBox is fairly straightforward, in fact, I think its a great way to dip your toes into using both technologies. Working with Modules is like everything else in ColdBox, you work with conventions, but you have control. In this previous post, 'Modules Modules everywhere, Extending ContentBox', we show you how there are 4 locations for modules in ContentBox, and depending on how your module will work, you should choose the appropriate location. In this post, we're going to build a custom ColdBox module, which it not managed by ContentBox Admin's Module Manager.

ColdBox MVC, ContentBox CMS, Modules 0

ColdFusion Summit 2016 Training Bootcamp

Luis Majano
Apr 20, 2016

 

  

 

 

We are so excited to bring our Box training series back to this year's Adobe ColdFusion Summit on October 8-9th, 2016 at the Mandalay Bay hotel, which is the same conference venue.  This training series will be led by Box creators Luis Majano and Brad Wood.  The first day will be a hands-on training on all things CommandBox. The ColdFusion CLI, package manager and REPL tool.  We will then move into ColdBox MVC training for the entire second day thanks to all the goodies we learned in Day 1.  We are so excited to be part of the Adobe ColdFusion Summit and be able to add some training goodness to it as well.  See you there.

 

Adobe ColdFusion Attendees Discount

If you will be attending the ColdFusion Summit you can get an additional 15% OFF by using the discount code for the event: https://cfsummit-box.eventbrite.com/?discount=adob3cf

 

ColdBox MVC, Community, Events, News, Training 0

ColdBox 4.2.0 Released!

Luis Majano
Apr 01, 2016

 

We are excited to announce the general availability of ColdBox 4.2.0. This release includes tons of fixes but also great new features and speed improvements. If you have CommandBox installed, you can upgrade now by just typing: box update coldbox or get started with a new ColdBox app by typing: box coldbox create app --installColdBox.

 

 

Here is a synopsis of the major feature updates and improvements in this release.

ColdBox MVC, Releases 0

Making a live edit contact list with Coldbox REST & Vue.js

Scott Steinbeck
Mar 28, 2016

 

Today we will be making a contact database that you can quickly and easily manage using ColdBox and Vue.js. We will be using bootstrap in our project to make it the UI look a little better but it is completely optional if you want to use this in your own project.

For this project I will be using CommandBox to generate all my files.

TL;DR: View the repo here

Lets Begin.

Step 1: You can skip this step if you already have a project set up. 

From CommandBox run:

coldbox create app name=CBVue skeleton=rest --installColdBox

This will give us a minimal project with a handlers\BaseHandler.cfc (needed to make our life easy when creating a REST API) and an handlers\Echo.cfc which is an example usage to get you started.

Now that we have our project started we need to tweak a few things.

First, since this is a template that is expecting to be setup for REST only, the Echo.cfc is set to be the default entry point. Since we want to create a view that accesses a REST API we need to point that to a view.

ColdBox MVC, REST, WireBox 3

REST2016 - Route Conditions

Luis Majano
Mar 23, 2016

 

Sometimes when you define an incoming API route, you want it to match certain environment or aspect conditions. The addRoute() has an argument called condition, which can be a closure or UDF pointer that must return a boolean and receives the incoming requestString. You can then decide if the route should execute or just be ignored.

So if a route matches via the pattern, then this closure/UDF is called to verify the route with your own custom conditions. This is a great way to create some routes that must match certain environment criterias before they fire. Let's say you only want to fire some routes if they are using FireFox, or a user is logged in, or whatever.

// condition closure
function(requestString){}

// Routing with condition
addRoute(
    pattern="/go/ff", 
    response="

Hello FireFox!

", condition=function(requestString){ return ( findnocase( "Firefox", cgi.HTTP_USER_AGENT ) ? true : false ); } );
Happy Resting!!
ColdBox Connection, ColdBox MVC, REST, RoadShow 0

Building Ionic Apps with ColdBox REST

Scott Steinbeck
Mar 22, 2016

 

Are you ready to enter the exciting world of app building? In today's world, 60% of people are viewing your website on a mobile phone most sites are hard to navigate.  People constantly have to scrolling around and zoom in and out to get all the information. The first option is to make a responsive site which will help but in squishing all your content down into a smaller screen, you lose a lot of the design aspects you spent all your time working on. 

What about a mobile app? Well that's just way too expensive to create, and plus you have to know Objective-C (or Swift) and Java.... Well thanks to some help from our friends at Ionic Framework now you too can create a mobile app without having to learn new languages. Now you can fully customize your user's experience on your site, plus use all of the functionality that is available to the phone. You can easily integrate popular plugins such as the Camera, Geolocation, Contacts, Bluetooth, TouchID, Accelerometer, and much more...

In my Webinar on March 30th I will give a quick overview of Ionic Framework and the Ionic Ecosystem, create a ContentBox REST API, and build an Ionic App that will pull live data from the ContentBox API to display pages and blog posts. 

The link to next week's webinar can be found here:
https://www.ortussolutions.com/blog/coldbox-restful-roadshow-2016-coming-your-way

 

 

ColdBox MVC, ColdFusion, Ionic, REST, RoadShow 0

REST2016 - Testing your API with TestBox

Gavin Pickin
Mar 18, 2016

 

Are you writing APIs? Going to start writing APIs? Now is the time to start testing. Do it early, and often, and reap the benefits as the project grows. TestBox, the defacto CFML test suite, can help your test your API, whether it’s CFML or not.

I will assume you have the basic TextBox installation setup.
 

ColdBox MVC, REST, RoadShow, TestBox 2

REST2016 - Route Responses

Luis Majano
Mar 14, 2016

 

You can route responses inline with ColdBox via the addRoute() function globally in your main routes.cfm template or within any Module as well. This will allow you to build simple response functions or even mock out or stub a RESTFul service very easily. The paremeters you will use for response routing will be: response, statusCode and statusText.

The response argument can be a string or a closure or UDF pointer. The closure and UDF will receive a rc argument which represents the request collection parsed already for you. The simple string can also contain replacement strings that are binded to the parsed parameters from the pattern by using {key} replacements. You can even execute runEvent() within your closure and delegate to whatever event you want instead of auto-routing as well.

// Simple response routing
addRoute( 
    pattern="/users/hello", 
    response="

Hello From RESTLand

", statusCode=200 ); // Simple response routing with placeholders addRoute( pattern="/users/:username", response="

Hello {username} From RESTLand

", statusCode=200 ); // Closure/UDF response routing addRoute( pattern="/users/:username", response=function(rc){ // Do some code here // more code return "

Hello #arguments.rc.username# from RESTLand

"; } ); // Closure/UDF response routing with event support addRoute(pattern="/users/:username", response=function(rc){ // Do some code here // more code return runEvent(event='api:users.data', eventArguments={quickData=true}); });
Happy Resting!!
ColdBox Connection, ColdBox MVC, REST, RoadShow 0

REST2016 - Creating Sub-module URL entry points

Luis Majano
Mar 11, 2016

 

In this entry I will go over how to leverage ColdBox's Modular architecture to RESTFul routing. In ColdBox, every module's ModuleConfig.cfc you create has two important facets for building RESTFul services: 1) The this.entryPoint and the 2) routes structure in the configure() method.

If you are creating ColdBox applications using modules, then you will benefit with the capability to nest entry points so they can match to nested sub-modules. Let's say you have the following module structure:

+modules
  + api
    + security
    + data
ColdBox Connection, ColdBox MVC, REST, RoadShow 0