More than a year ago, we have talked about some basic theming in Drupal 6.
- Drupal – Introduction to Drupal Theming @ 1
- Drupal – Introduction to Drupal Theming @ 2
- Drupal – Introduction to Drupal Theming @ 3
In Drupal 7, there are some changes on the theming functions as well as the block hooks. So here is a slightly modified versions from the example of Drupal – Introduction to Drupal Theming @ 3. The logic behind is exactly the same.
ykyuen.info
; $Id$ name = Theme customized block description = Theme the customized block. Ref: http://eureka.ykyuen.info package = "Eureka" core = 7.x version = 7.x-1.0
ykyuen.module
<?php
/**
* Implementation of hook_block_info().
*/
function ykyuen_block_info() {
$blocks = array();
$blocks['eureka_block'] = array(
'info' => t('Eureka block')
);
return $blocks;
}
/**
* Implements hook_block_view().
*/
function ykyuen_block_view($delta = '') {
$block = array();
switch ($delta) {
case 'eureka_block':
$variables = array(
'name' => 'Welcome to Eureka!',
'link' => 'http://eureka.ykyuen.info',
);
$block = array('content' => theme('eureka', $variables));
break;
}
return $block;
}
/**
* Implementation of hook_theme().
*/
function ykyuen_theme() {
return array(
'eureka' => array(
'template' => 'eureka',
'variables' => array(
'name' => NULL,
'link' => NULL,
),
)
);
}
/**
* Preprocess function for eureka.tpl.php.
*/
function ykyuen_preprocess_eureka(&$variables) {
$variables['extra'] = "Hello World!";
}
eureka.tpl.php
<h2>Theme .tpl.php example</h2> <p><a href="<?php print $link; ?>"><?php print $name; ?></a></p> <p><?php print $extra; ?></p>
Enable the module and turn on Eureka block. Remember to clear the cache before viewing you first themed block.

Done =)

One thought on “Drupal 7 – Create your own theme function on your custom block”