Main Themable Functions

A small number of themable functions are responsible for the overall layout and construction of a Drupal page, and they are most commonly implemented in custom themes. Here is a list of those functions and a short description of what they do:

• theme_page($content): Places $content in a complete HTML page. Typically, theme_page will call further themable functions to get additional output such as the blocks, status messages, and HTML headers. All custom themes implement their own version of theme_page. In PHPTemplate, this is manifested in the form of a page.tpl.php file, which is the only required file a PHPTemplate theme must have.

• theme_node($node, $teaser = FALSE, $page = FALSE): Provides the HTML wrapper for the content of a node. Based on the $teaser parameter, this function will return either the truncated preview version of a node or the full version. The $page variable determines whether the node is being displayed on its own page or in a list of nodes, and usually controls whether or not the title is printed as a heading. The function also handles calling theme_links() for any links that are to appear along with the node, such as taxonomy terms and whatever links have been added by modules, such as comment or subscription links.

• theme_comment($comment, $links = 0): Handles the output of comments. This includes comments made to posts like blogs as well as comments in a threaded forum. Note that this does not handle the threading itself, just the HTML around the variable $comment. Whatever links are associated with the comment are expressed in the variable $links.

• theme_block($block): Gets called for each block region and wraps the block content in HTML.

• theme_box($title, $content, $region = 'main'): Builds a generic container around content, usually with the use of <div> tags.

The theme_page($content) function is responsible for generating the actual page that gets sent to the browser. It is the last function that is called when building a page. To invoke this function correctly (without calling it directly), use the syntax theme('page', $content). This tells Drupal that a themable function called page is to be called with the parameter $content. Drupal then starts looking for the appropriate function.

0 0

Post a comment