Extending the default layout
In addition to customizing the size and positions of various sections in the default layout, you may also extend it by defining new sections within any of the predefined sections.
For example, suppose the top part of the main section for every page is a link showing Google's search box. We could hard code the link in the template file for the main section for every controller and action. However, this makes it harder if we want to switch to the Bing search box at some future point when Microsoft throws a five-dollar bill at us. A better way would be to define a single main template for the controller and then within it define a new page section to contain the actual content.
Assuming the controller is
mycontroller, create a
common main page section containing the following:
In effect we have now defined a new page section called
content that will be retrieved using the same
used for retrieving predefined sections. To render the main section for
myaction in the controller, Woof! will look for
mycontroller-myaction-main.wtf. Upon not
finding this file, it will look for
mycontroller-main.wtf and find it
containing the above content. When encountering the
page fetch command, it will look for
and insert it in the appropriate place.
The advantage of this approach is that should we desire to make any changes to the search box, or even move it below the real content, we only need to modify the one single file above.