1 theming_example.module | theming_example_list_page() |
The list page callback.
An example page where the output is supplied as an array which is themed into a list and styled with css.
In this case we'll use the core-provided theme_item_list as a #theme_wrapper. Any theme need only override theme_item_list to change the behavior.
Related topics
File
- modules/
examples/ theming_example/ theming_example.module, line 160 - Hook implementations for the Theming Example module.
Code
function theming_example_list_page() {
$items = array(
t('First item'),
t('Second item'),
t('Third item'),
t('Fourth item'),
);
// First we'll create a render array that simply uses theme_item_list.
$title = t("A list returned to be rendered using theme('item_list')");
$build['render_version'] = array(
// We use #theme here instead of #theme_wrappers because theme_item_list()
// is the classic type of theme function that does not just assume a
// render array, but instead has its own properties (#type, #title, #items).
'#theme' => 'item_list',
// '#type' => 'ul', // The default type is 'ul'
// We can easily make sure that a css or js file is present using #attached.
'#attached' => array('css' => array(backdrop_get_path('module', 'theming_example') . '/theming_example.css')),
'#title' => $title,
'#items' => $items,
'#attributes' => array('class' => array('render-version-list')),
);
// Now we'll create a render array which uses our own list formatter,
// theme('theming_example_list').
$title = t("The same list rendered by theme('theming_example_list')");
$build['our_theme_function'] = array(
'#theme' => 'theming_example_list',
'#attached' => array('css' => array(backdrop_get_path('module', 'theming_example') . '/theming_example.css')),
'#title' => $title,
'#items' => $items,
);
return $build;
}