function homebox_add_block in Homebox 7.3
Same name and namespace in other branches
- 6.3 homebox.module \homebox_add_block()
- 6.2 homebox.module \homebox_add_block()
- 7.2 homebox.module \homebox_add_block()
Add a custom block to a user's page.
1 string reference to 'homebox_add_block'
- homebox_menu in ./
homebox.module - Implements hook_menu().
File
- ./
homebox.module, line 1252 - Homebox main file, takes care of global functions settings constants, etc.
Code
function homebox_add_block($page, $module, $delta) {
$user_blocks = _homebox_get_user_settings($page, TRUE);
// Get default region for the blocks in page settings.
$region = 1;
foreach ($page->settings['blocks'] as $item) {
if ($item['delta'] == $delta) {
$region = $item['region'];
break;
}
}
// Build custom block
$block = array(
'module' => $module,
'delta' => $delta,
'title' => '',
'open' => 1,
'color' => 'default',
'status' => 1,
'region' => $region,
'movable' => 1,
'closable' => 1,
);
if (module_hook($block['module'], 'homebox_block_keys')) {
foreach (module_invoke($module, 'homebox_block_keys', (object) $block) as $key) {
if (isset($_REQUEST[$key])) {
$block[$key] = $_REQUEST[$key];
}
}
}
// Add custom block to user's blocks
$key = $block['module'] . '_' . $block['delta'];
$id = 1;
if (isset($user_blocks[$key])) {
while (isset($user_blocks[$key . '-' . $id])) {
$id += 1;
}
$key .= '-' . $id;
}
$user_blocks = array_merge(array(
$key => $block,
), $user_blocks);
_homebox_save_user_settings($page, $user_blocks);
drupal_goto(homebox_get_path($page));
}