Drupal 6: Blocks are implemented using hook_block passing the $op parameter which can have four possible values viz.
'list': A list of all blocks defined by the module.
'configure': Configuration form for the block.
'save': Save the configuration options.
'view': Process the block when enabled in a region in order to view its contents.
<?php
//Drupal 6
/**
* Implementation of hook_block().
*/
function newblock_block($op = 'list', $delta = 0, $edit = array()) {
switch ($op) {
case 'list':
$blocks[0]['info'] = t('A listing of all of the enabled modules.');
$blocks[0]['cache'] = BLOCK_NO_CACHE;
return $blocks;
case 'view':
$list = module_list();
$content = theme('item_list', $list, NULL, 'ol', array('class'=>'myclass'));
$blocks['subject'] = t('Enabled Modules');
$blocks['content'] = $content;
return $blocks;
}
}
?>
Drupal 7: Blocks are implemented using four basic hooks viz.
hook_block_info is to tell Drupal about all the blocks that the module provides..
hook_block_view is responsible for building the contents of the block. This will have the functionality code
hook_block_configure defines a configuration form for a block.
hook_block_save saves the configuration options from hook_block_configure().
<?php
// Drupal 7
/**
* Implements hook_block_info().
*/
function first_block_info() {
$blocks = array();
$blocks['list_modules'] = array(
'info' => t('A listing of all of the enabled modules.'),
'cache' => DRUPAL_NO_CACHE,
);
return $blocks;
}
/**
* Implements hook_block_view().
*/
function first_block_view($block_name = '') {
if ($block_name == 'list_modules') {
$list = module_list();
$theme_args = array('items' => $list, 'type' => 'ol');
$content = theme('item_list', $theme_args);
$block = array(
'subject' => t('Enabled Modules'),
'content' => $content,
);
return $block;
}
}
?>