You are here

featured_content.install in Featured Content 6

Provides install, upgrade and un-install functions for featured_content.

File

featured_content.install
View source
<?php

/**
 * @file
 * Provides install, upgrade and un-install functions for featured_content.
 */

/**
 * Implements hook_uninstall().
 */
function featured_content_uninstall() {

  // delete featured_content variables
  variable_del('featured_content_blocks');

  // array with all blocks data
  variable_del('featured_content_block_ids');

  // array with all block ids
  // remove block configurations
  db_query("DELETE FROM {blocks} WHERE module = 'featured_content'");
  db_query("DELETE FROM {blocks_roles} WHERE module = 'featured_content'");
  cache_clear_all();
}

/**
 * Implements hook_enable().
 */
function featured_content_enable() {
  drupal_set_message(t('To use Featured Content Blocks, find the "Add Featured Content Block" tab (or button) on the <a href="@url">administer blocks page</a>.', array(
    '@url' => url('admin/build/block'),
  )));
}

/**
 * Implements hook_install().
 */
function featured_content_install() {

  // nothing to do
}

/**
 * Make sure that the settings are updated properly to deal with issue #705308.
 */
function featured_content_update_6000() {
  $featured_blocks = variable_get('featured_content_blocks', array());
  if (!empty($featured_blocks)) {
    foreach ($featured_blocks as $delta => $data) {

      // convert content type settings
      if ($data['filter']['content_types']['node']) {
        $featured_blocks[$delta]['filter']['content_types']['type']['CURRENT'] = 1;
      }
      if ($data['filter']['content_types']['option'] == 'content_type_selected') {
        $selected = $data['filter']['content_types']['selected'];
        foreach ($selected as $name => $value) {
          if ($value) {
            $featured_blocks[$delta]['filter']['content_types']['type'][$name] = 1;
          }
        }
      }

      // convert user settings
      if ($data['filter']['users']['node']) {
        $featured_blocks[$delta]['filter']['users']['user']['CURRENT'] = 1;
      }
      if ($data['filter']['users']['option'] == 'user_selected') {
        $selected = $data['filter']['users']['selected'];
        foreach ($selected as $uid => $value) {
          if ($value) {
            $featured_blocks[$delta]['filter']['users']['user'][$uid] = 1;
          }
        }
      }

      // convert vocabulary settings
      $vocabularies = taxonomy_get_vocabularies();
      foreach ($vocabularies as $vocabulary) {
        $vid = $vocabulary->vid;
        if ($data['filter']['vocab'][$vid]['node']) {
          $featured_blocks[$delta]['filter']['vocab'][$vid]['term']['CURRENT'] = 1;
        }
        if ($data['filter']['vocab'][$vid]['option'] == 'vocab_selected') {
          $selected = $data['filter']['vocab'][$vid]['selected'];
          foreach ($selected as $tid => $value) {
            if ($value) {
              $featured_blocks[$delta]['filter']['vocab'][$vid]['term'][$tid] = 1;
            }
          }
        }
      }
    }
  }
  variable_set('featured_content_blocks', $featured_blocks);
  return array();
}

Functions

Namesort descending Description
featured_content_enable Implements hook_enable().
featured_content_install Implements hook_install().
featured_content_uninstall Implements hook_uninstall().
featured_content_update_6000 Make sure that the settings are updated properly to deal with issue #705308.