Index: modules/block/block.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.admin.inc,v
retrieving revision 1.14
diff -u -p -r1.14 block.admin.inc
--- modules/block/block.admin.inc 22 Dec 2007 23:24:24 -0000 1.14
+++ modules/block/block.admin.inc 2 Feb 2008 22:52:29 -0000
@@ -140,6 +140,10 @@ function _block_compare($a, $b) {
* Menu callback; displays the block configuration form.
*/
function block_admin_configure(&$form_state, $module = NULL, $delta = 0) {
+
+ drupal_add_js(drupal_get_path('module', 'block') .'/block.configure.js');
+ // TODO: Insert default block title below.
+ drupal_add_js(array('blockConfigurationTitle' => ''), 'setting');
$form['module'] = array('#type' => 'value', '#value' => $module);
$form['delta'] = array('#type' => 'value', '#value' => $delta);
@@ -151,12 +155,21 @@ function block_admin_configure(&$form_st
'#title' => t('Block specific settings'),
'#collapsible' => TRUE,
);
+ // Don't show customize checkbox to custom blocks.
+ if ($module != 'block') {
+ $form['block_settings']['customize'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Customize block title'),
+ '#weight' => -18,
+ '#default_value' => empty($edit['title']) ? 0 : 1,
+ );
+ }
$form['block_settings']['title'] = array(
'#type' => 'textfield',
'#title' => t('Block title'),
'#maxlength' => 64,
'#description' => $module == 'block' ? t('The title of the block as shown to the user.') : t('Override the default title for the block. Use <none> to display no title, or leave blank to use the default block title.'),
- '#default_value' => $edit['title'],
+ '#default_value' => $edit['title'] == '' ? '' : $edit['title'],
'#weight' => -18,
);
@@ -268,6 +281,16 @@ function block_admin_configure_validate(
function block_admin_configure_submit($form, &$form_state) {
if (!form_get_errors()) {
+ // Set title to blank if checkbox is not checked
+ if ($form_state['values']['customize'] == 0) {
+ $form_state['values']['title'] = '';
+ }
+ elseif ($form_state['values']['customize'] == 1) {
+ // Set title to if the checkbox is checked and title is blank
+ if ((string) $form_state['values']['title'] == '') {
+ $form_state['values']['title'] = '';
+ }
+ }
db_query("UPDATE {blocks} SET visibility = %d, pages = '%s', custom = %d, title = '%s' WHERE module = '%s' AND delta = '%s'", $form_state['values']['visibility'], trim($form_state['values']['pages']), $form_state['values']['custom'], $form_state['values']['title'], $form_state['values']['module'], $form_state['values']['delta']);
db_query("DELETE FROM {blocks_roles} WHERE module = '%s' AND delta = '%s'", $form_state['values']['module'], $form_state['values']['delta']);
foreach (array_filter($form_state['values']['roles']) as $rid) {