block_subtitle.module in Block Subtitle 7
Same filename and directory in other branches
This module allows subtitles to be added to blocks
File
block_subtitle.moduleView source
<?php
/**
* @file
* This module allows subtitles to be added to blocks
*/
/**
* Implements hook_form_alter().
*/
function block_subtitle_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'block_add_block_form' || $form_id == 'block_admin_configure') {
$block = new StdClass();
$block->module = $form['module']['#value'];
$block->delta = $form['delta']['#value'];
// Get the subtitle.
$subtitle = _block_subtitle_get_subtitle($block);
$form['settings']['block_subtitle'] = array(
'#type' => 'textfield',
'#title' => t('Subtitle'),
'#default_value' => $subtitle,
'#description' => t('Subtitle for the block. Leave blank if you do not need a subtitle.'),
'#weight' => -17,
);
$form['#submit'][] = 'block_subtitle_submit';
}
}
/**
* Custom submit handler for block_subtitle.
*/
function block_subtitle_submit($form, &$form_state) {
$module = $form_state['values']['module'];
$delta = $form_state['values']['delta'] ? $form_state['values']['delta'] : block_subtitle_get_delta($module);
$subtitle = $form_state['values']['block_subtitle'];
// Save the suubtitle.
if ($module && ($delta || $delta == 0)) {
$block_name = $module . '_' . $delta;
// Delete subtitle if blank.
if (strlen($subtitle) == 0 || $subtitle == '') {
_block_subtitle_delete($block_name);
}
else {
_block_subtitle_save($block_name, $subtitle);
}
}
}
/**
* Function to get the subtitle of a block.
*
* @param object $block.
* The block name.
*
* @return string
* the block subtitle
*/
function _block_subtitle_get_subtitle($block) {
if (!isset($block->module) && !isset($block->delta)) {
return FALSE;
}
$varname = 'block_subtitle_' . $block->module . '_' . $block->delta;
return variable_get($varname, NULL);
}
/**
* Function to save a subtitle.
*/
function _block_subtitle_save($block_name, $value) {
variable_set('block_subtitle_' . $block_name, $value);
}
/**
* Function to delete a subtitle.
*/
function _block_subtitle_delete($block_name) {
variable_set('block_subtitle_' . $block_name, '');
}
/**
* Implements hook_preprocess_block().
*/
function block_subtitle_preprocess_block(&$vars) {
$vars['block']->subtitle = _block_subtitle_get_subtitle($vars['block']);
}
/**
* Gets the delta for custom blocks.
*/
function block_subtitle_get_delta($module) {
// The blocks table changed to block in block_update_7002()
$table = db_table_exists('blocks') ? 'blocks' : 'block';
//get last delta
$delta = db_select($table, 'b')
->fields('b', array(
'delta',
))
->condition('module', $module)
->orderBy('bid', 'DESC')
->range(0, 1)
->execute()
->fetchField();
return $delta;
}
Functions
Name![]() |
Description |
---|---|
block_subtitle_form_alter | Implements hook_form_alter(). |
block_subtitle_get_delta | Gets the delta for custom blocks. |
block_subtitle_preprocess_block | Implements hook_preprocess_block(). |
block_subtitle_submit | Custom submit handler for block_subtitle. |
_block_subtitle_delete | Function to delete a subtitle. |
_block_subtitle_get_subtitle | Function to get the subtitle of a block. |
_block_subtitle_save | Function to save a subtitle. |