Implicit Layout-View Declarations

Last updated 6 months ago

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!