'The base table for nodeblock.module.', 'fields' => array( 'nid' => array( 'description' => 'The primary identifier for a node.', 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, ), 'enabled' => array( 'description' => 'A flag indicating whether a block should be created.', 'type' => 'int', 'size' => 'tiny', 'not null' => TRUE, 'default' => 1, ), 'machine_name' => array( 'description' => 'The machine name for a block.', 'type' => 'varchar', 'length' => 32, 'not null' => TRUE, ), 'block_title' => array( 'description' => 'The block title for a block.', 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '', ), 'view_mode' => array( 'description' => 'The view mode used to render the node.', 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, ), 'node_link' => array( 'description' => 'Whether the node links should be shown.', 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '0', ), 'comment_link' => array( 'description' => 'Whether the comment links should be shown.', 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '0', ), 'translation_fallback' => array( 'description' => 'A flag indicating whether the translation fallback is enabled.', 'type' => 'int', 'size' => 'tiny', 'not null' => TRUE, 'default' => 0, ), ), 'primary key' => array('nid'), 'unique keys' => array( 'machine_name' => array('machine_name'), ), ); return $schema; } /** * Placeholder for potential Drupal 6 upgrade path */ function nodeblock_update_7100() { } /** * Remove variable settings for nodes where blocks are not enabled. */ function nodeblock_update_7101() { $variables = variable_initialize(); foreach($variables as $name => $value) { if(strpos($name, 'nodeblock') !== false) { if(strpos($name, 'nodeblock_block_') !== false) { $blocks[str_replace('nodeblock_block_', '', $name)] = $name; } else if(strpos($name, 'nodeblock_comment_link_') === false && strpos($name, 'nodeblock_node_link_') === false && strpos($name, 'nodeblock_view_mode_') === false) { if((bool)$value) { $content_types[] = str_replace('nodeblock_', '', $name); } } } } if(!empty($content_types) && !empty($blocks)) { $query = db_select('node', 'n') ->fields('n', array ('nid')) ->condition('n.type', $content_types); $result = $query->execute()->fetchAll(); if(!empty($result)) { foreach($result as $value) { $nids[$value->nid] = $value->nid; } if(!empty($nids)) { $blocks = array_diff_key($blocks, $nids); if(!empty($blocks)) { foreach($blocks as $name) { variable_del($name); } } } } } } /** * Adding a new nodeblock table and create entries for all existing nodeblocks. */ function nodeblock_update_7102() { module_load_include('module', 'nodeblock'); if (!db_table_exists('nodeblock')) { $schema = nodeblock_schema(); db_create_table('nodeblock', $schema['nodeblock']); $types = node_type_get_types(); $enabled_types = array(); foreach ($types as $type_name => $type) { if (nodeblock_type_enabled($type_name)) { $enabled_types[] = $type_name; } } if (count($enabled_types)) { $results = db_select('node', 'n') ->fields('n', array('nid')) ->condition('type', $enabled_types) ->execute() ->fetchCol(); $defaults = array( 'comment_link' => 'node_block_default', 'node_link' => 'node_block_default', 'view_mode' => 'node_block_default'); foreach ($results as $nid) { $settings = variable_get('nodeblock_block_' . $nid, $defaults); $settings = array_merge($defaults, $settings); if(isset($settings['teaser']) && $settings['teaser'] == 1) { $settings['view_mode'] == 'teaser'; } if(isset($settings['links']) && $settings['links'] == 1) { $settings['node_link'] = 1; $settings['comment_link'] = 1; } db_insert('nodeblock') ->fields(array('nid', 'machine_name', 'view_mode', 'node_link', 'comment_link', 'translation_fallback')) ->values(array($nid, $nid, $settings['view_mode'], $settings['node_link'], $settings['comment_link'], variable_get('nodeblock_translation_fallback_' . $nid, 0))) ->execute(); variable_del('nodeblock_translation_fallback_' . $nid); variable_del('nodeblock_block_' . $nid); } } } } /** * Add new block title column in db. */ function nodeblock_update_7103() { module_load_include('module', 'nodeblock'); if (!db_field_exists('nodeblock', 'block_title')) { db_add_field('nodeblock', 'block_title', array( 'description' => 'The block title for a block.', 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '', )); } $types = node_type_get_types(); $enabled_types = array(); foreach ($types as $type_name => $type) { if (nodeblock_type_enabled($type_name)) { $enabled_types[] = $type_name; } } if (count($enabled_types)) { $results = db_select('node', 'n') ->fields('n', array('nid', 'title')) ->condition('type', $enabled_types) ->execute(); foreach ($results as $node) { db_update('nodeblock') ->fields(array('block_title' => $node->title)) ->condition('nid', $node->nid) ->execute(); } } } /** * `Show the Block title field in the Node Block fieldset` default value, change schema weight. */ function nodeblock_update_7104() { $types = node_type_get_types(); foreach ($types as $type_name => $type) { if ($var = variable_get('nodeblock_node_overrides_' . $type_name)) { $var[] = 'block_title_in_fieldset'; variable_set('nodeblock_node_overrides_' . $type_name, $var); } } } /** * Implements hook_uninstall(). */ function nodeblock_uninstall() { $types = node_type_get_types(); foreach ($types as $type_name => $type) { if (variable_get('nodeblock_' . $type_name, 0)) { variable_del('nodeblock_' . $type_name); variable_del('nodeblock_comment_link_' . $type_name); variable_del('nodeblock_node_link_' . $type_name); variable_del('nodeblock_view_mode_' . $type_name); variable_del('nodeblock_node_overrides_' . $type_name); variable_del('nodeblock_node_override_block_available_' . $type_name); variable_del('nodeblock_node_override_block_title_field_' . $type_name); } } db_delete('block') ->condition('module', 'nodeblock') ->execute(); db_delete('block_role') ->condition('module', 'nodeblock') ->execute(); variable_del('nodeblock_dangerous_force_block_caching'); variable_del('nodeblock_table_exists'); }