Index: modules/block.module =================================================================== RCS file: /cvs/drupal/drupal/modules/block.module,v retrieving revision 1.144 diff -u -F^f -r1.144 block.module --- modules/block.module 15 Nov 2004 11:26:04 -0000 1.144 +++ modules/block.module 9 Dec 2004 21:06:46 -0000 @@ -72,11 +65,11 @@ function block_menu($may_cache) { 'type' => MENU_CALLBACK); $items[] = array('path' => 'admin/block/delete', 'title' => t('delete block'), 'access' => user_access('administer blocks'), - 'callback' => 'block_box_delete', + 'callback' => 'block_custom_delete', 'type' => MENU_CALLBACK); $items[] = array('path' => 'admin/block/add', 'title' => t('add block'), 'access' => user_access('administer blocks'), - 'callback' => 'block_box_add', + 'callback' => 'block_custom_add', 'type' => MENU_LOCAL_TASK); } @@ -91,25 +84,25 @@ function block_menu($may_cache) { function block_block($op = 'list', $delta = 0, $edit = array()) { switch ($op) { case 'list': - $result = db_query('SELECT bid, title, info FROM {boxes} ORDER BY title'); + $result = db_query('SELECT delta, title, info FROM {blocks_custom} ORDER BY title'); while ($block = db_fetch_object($result)) { - $blocks[$block->bid]['info'] = $block->info; + $blocks[$block->delta]['info'] = $block->info; } return $blocks; case 'configure': - $box = block_box_get($delta); - if (filter_access($box['format'])) { - return block_box_form($box); + $edit = db_fetch_array(db_query('SELECT * FROM {blocks_custom} WHERE delta = %d', $delta)); + if (filter_access($edit['format'])) { + return block_custom_form($edit); } break; case 'save': - block_box_save($edit, $delta); + block_custom_save($edit, $delta); break; case 'view': - $block = db_fetch_object(db_query('SELECT * FROM {boxes} WHERE bid = %d', $delta)); + $block = db_fetch_object(db_query('SELECT title, body, format FROM {blocks_custom} WHERE delta = %d', $delta)); $data['subject'] = $block->title; $data['content'] = check_output($block->body, $block->format); return $data; @@ -197,20 +190,20 @@ function block_admin_display() { foreach ($blocks as $block) { - if ($block['module'] == 'block') { - $operation = l(t('delete'), 'admin/block/delete/'. $block['delta']); - } - else { - $operation = ''; - } - $row = array($block['info'], array('data' => form_checkbox(NULL, $block['module'] .']['. $block['delta'] .'][status', 1, $block['status']), 'align' => 'center'), form_weight(NULL, $block['module'] .']['. $block['delta'] .'][weight', $block['weight']), form_radios(NULL, $block['module'] .']['. $block['delta'] .'][region', $block['region'], array(t('left'), t('right')))); $row = array($block['info'], array('data' => form_checkbox(NULL, $block['module'] .']['. $block['delta'] .'][status', 1, $block['status']), 'align' => 'center'), form_weight(NULL, $block['module'] .']['. $block['delta'] .'][weight', $block['weight']), form_radios(NULL, $block['module'] .']['. $block['delta'] .'][region', $block['region'], array(t('left'), t('right')))); if (module_exist('throttle')) { $row[] = array('data' => form_checkbox(NULL, $block['module'] .']['. $block['delta'] .'][throttle', 1, $block['throttle']), 'align' => 'center'); } - $row[] = array('data' => l(t('configure'), 'admin/block/configure/'. $block['module'] .'/'. $block['delta']), $operation); + $row[] = l(t('configure'), 'admin/block/configure/'. $block['module'] .'/'. $block['delta']); + if ($block['module'] == 'block') { + $row[] = l(t('delete'), 'admin/block/delete/'. $block['delta']); + } + else { + $row[] = ''; + } + $rows[] = $row; } @@ -220,10 +213,6 @@ function block_admin_display() { return form($output, 'post', url('admin/block')); } -function block_box_get($bid) { - return db_fetch_array(db_query('SELECT * FROM {boxes} WHERE bid = %d', $bid)); -} - /** * Menu callback; displays the block configuration form. */ @@ -271,18 +260,18 @@ function block_admin_configure($module = /** * Menu callback; displays the block creation form. */ -function block_box_add() { +function block_custom_add() { $edit = $_POST['edit']; $op = $_POST['op']; switch ($op) { case t('Save block'): - block_box_save($edit); + block_custom_save($edit); drupal_set_message(t('The new block has been added.')); drupal_goto('admin/block'); default: - $form = block_box_form(); + $form = block_custom_form(); $form .= form_submit(t('Save block')); $output .= form($form); } @@ -293,19 +282,19 @@ function block_box_add() { /** * Menu callback; confirm and delete custom blocks. */ -function block_box_delete($bid = 0) { +function block_custom_delete($delta = 0) { $op = $_POST['op']; - $box = block_box_get($bid); + $block = db_fetch_object(db_query('SELECT info FROM {blocks_custom} WHERE delta = %d', $delta)); switch ($op) { case t('Delete'): - db_query('DELETE FROM {boxes} WHERE bid = %d', $bid); - drupal_set_message(t('The block %name has been deleted.', array('%name' => ''. $box['info'] .''))); + db_query('DELETE FROM {blocks_custom} WHERE delta = %d', $delta); + drupal_set_message(t('The block %name has been deleted.', array('%name' => ''. $block->info .''))); cache_clear_all(); drupal_goto('admin/block'); default: - $form = '

'. t('Are you sure you want to delete the block %name?', array('%name' => ''. $box['info'] .'')) ."

\n"; + $form = '

'. t('Are you sure you want to delete the block %name?', array('%name' => ''. $block->info .'')) ."

\n"; $form .= form_submit(t('Delete')); $output = form($form); } @@ -313,7 +302,7 @@ function block_box_delete($bid = 0) { print theme('page', $output); } -function block_box_form($edit = array()) { +function block_custom_form($edit = array()) { $output = form_textfield(t('Block title'), 'title', $edit['title'], 50, 64, t('The title of the block as shown to the user.')); $output .= filter_form('format', $edit['format']); $output .= form_textarea(t('Block body'), 'body', $edit['body'], 70, 10, t('The content of the block as shown to the user.')); @@ -322,16 +311,17 @@ function block_box_form($edit = array()) return $output; } -function block_box_save($edit, $delta = NULL) { +function block_custom_save($edit, $delta = NULL) { if (!filter_access($edit['format'])) { $edit['format'] = FILTER_FORMAT_DEFAULT; } if (isset($delta)) { - db_query("UPDATE {boxes} SET title = '%s', body = '%s', info = '%s', format = %d WHERE bid = %d", $edit['title'], $edit['body'], $edit['info'], $edit['format'], $delta); + db_query("UPDATE {blocks_custom} SET title = '%s', body = '%s', info = '%s', format = %d WHERE delta = %d", $edit['title'], $edit['body'], $edit['info'], $edit['format'], $delta); } else { - db_query("INSERT INTO {boxes} (title, body, info, format) VALUES ('%s', '%s', '%s', %d)", $edit['title'], $edit['body'], $edit['info'], $edit['format']); + $delta = db_next_id('{blocks_custom}_delta'); + db_query("INSERT INTO {blocks_custom} (delta, title, body, info, format) VALUES (%d, '%s', '%s', '%s', %d)", $delta, $edit['title'], $edit['body'], $edit['info'], $edit['format']); } } Index: database/database.mysql =================================================================== RCS file: /cvs/drupal/drupal/database/database.mysql,v retrieving revision 1.163 diff -u -F^f -r1.163 database.mysql --- database/database.mysql 7 Dec 2004 16:55:38 -0000 1.163 +++ database/database.mysql 9 Dec 2004 21:06:46 -0000 @@ -143,17 +143,16 @@ ) TYPE=MyISAM; -- --- Table structure for table 'boxes' +-- Table structure for table 'blocks_custom' -- -CREATE TABLE boxes ( - bid tinyint(4) NOT NULL auto_increment, +CREATE TABLE blocks_custom ( + delta tinyint(4) NOT NULL, title varchar(64) NOT NULL default '', body longtext, info varchar(128) NOT NULL default '', format int(4) NOT NULL default '0', - PRIMARY KEY (bid), - UNIQUE KEY title (title), + PRIMARY KEY (delta), UNIQUE KEY info (info) ) TYPE=MyISAM; Index: database/updates.inc =================================================================== RCS file: /cvs/drupal/drupal/database/updates.inc,v retrieving revision 1.78 diff -u -F^f -r1.78 updates.inc --- database/updates.inc 7 Dec 2004 16:55:38 -0000 1.78 +++ database/updates.inc 9 Dec 2004 21:06:47 -0000 @@ -90,7 +90,8 @@ "2004-11-07" => "update_111", "2004-11-15" => "update_112", "2004-11-28" => "update_113", - "2004-12-05" => "update_114" + "2004-12-05" => "update_114", + "2004-12-09" => "update_115" ); function update_32() { @@ -2063,6 +2064,22 @@ function update_114() { $ret[] = update_sql("ALTER TABLE {node} DROP score"); $ret[] = update_sql("ALTER TABLE {node} DROP users"); + return $ret; +} + +function update_115() { + $ret = array(); + + if ($GLOBALS['db_type'] == 'mysql') { + $ret[] = update_sql('ALTER TABLE {boxes} RENAME TO {blocks_custom}'); + $ret[] = update_sql('ALTER TABLE {blocks_custom} CHANGE bid delta tinyint(4) NOT NULL'); + $ret[] = update_sql('ALTER TABLE {blocks_custom} DROP INDEX title'); + $result = db_fetch_object(db_query('SELECT MAX(delta) AS id FROM {blocks_custom}')); + if ($result->id) { + $ret[] = update_sql("INSERT INTO {sequences} (name, id) VALUES ('{blocks_custom}_delta', %d)", $result->id); + } + } + return $ret; }