A complete page is rendered as a nested set of template files (technically, a nested set of Blocks). There are no
explicit "widgets" in the system, that means, you won't find a specific "Form" class nor "Button" class or object. The
lowly Block classes straddle the line between widgets and templates. The nested set of templates and blocks is
controlled by ... you guessed it, an XML file, specifically a set of XML files. This is quite powerful for developers and
plug-in contributors, but it seems that it is overly complicated for most designers (even those familiar with PHP).
The layout files control the structure of any final page rendering. They are located in the layout folder under your
app/code/core/Mage/Catalog/Block/Product/View.php (runs include() on ...
layout/catalog.xml (defines the block)
layout/page.xml (default settings)
$this->*() refers to the Block that includes this file
<?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
The most important XML file is page.xml.