Implicit Layout-View Declarations

Last updated last month

Now that we have seen what layouts and views are, where they are located and some samples, let's dig deeper. Let's discover the power of implicit layout/view declarations:

//Register Layouts
layouts = [
{ name = "login",
file = "Layout.tester.cfm",
views = "vwLogin,test",
folders = "tags,pdf/single"
}
];

This layouts setting allows you to implicitly define layout to view/folder assignments without the need of programmatically doing it. This is a time saver and a nice way to pre-define how certain views will be rendered. Let's see more examples:

//Register Layouts
layouts = [
{ name = "Popup",
file = "Layout.Popup.cfm",
views = "login,test",
folders = "^tags,pdf/single"
},
{ name = "help",
file = "layout.help.cfm",
folders = "^help"
}
];

In the sample, we declare the layout named popup and points to the file Layout.Popup.cfm. We can then assign it to views or folders:

  • Views : The views to assign to this layout (no cfm extension)

  • Folders : The folders and its children to assign to this layout. (regex ok)

This is cool, we can tell the framework that some views and some folders should be rendered within a specific layout. Wow, this opens the possibility of creating nested applications that need different rendering schemas!