You are here

function custom_breadcrumbs_taxonomy_install in Custom Breadcrumbs 6.2

Same name and namespace in other branches
  1. 7.2 custom_breadcrumbs_taxonomy/custom_breadcrumbs_taxonomy.install \custom_breadcrumbs_taxonomy_install()

Implements hook_install().

File

custom_breadcrumbs_taxonomy/custom_breadcrumbs_taxonomy.install, line 11
Install file for the custom_breadcrumbs_taxonomy module.

Code

function custom_breadcrumbs_taxonomy_install() {

  // Create tables.
  drupal_install_schema('custom_breadcrumbs_taxonomy');

  // If taxonomy_breadcrumbs is installed, copy term and vocab breadcrumb to custom_breadcrumbs_taxonomy tables.
  if (module_exists('taxonomy_breadcrumb')) {

    // Search for taxonomy_breadcrumb term and vocabulary breadcrumbs and copy to new custom_breadcrumb_taxonomy tables.
    drupal_set_message('Taxonomy breadcrumb module is enabled. Copying breadcrumbs from {taxonomy_breadcrumb_term} and {taxonomy_breadcrumb_vocabulary} to custom_breadcrumbs_taxonomy ...');
    $result = db_query("SELECT * FROM {taxonomy_breadcrumb_term}");
    $found = 0;
    while ($breadcrumb = db_fetch_object($result)) {
      db_query("INSERT INTO {custom_breadcrumbs_taxonomy_term} (paths, tid) VALUES ('%s', %d)", $breadcrumb->path, $breadcrumb->tid);
      ++$found;
    }
    $result = db_query("SELECT * FROM {taxonomy_breadcrumb_vocabulary}");
    while ($breadcrumb = db_fetch_object($result)) {
      db_query("INSERT INTO {custom_breadcrumbs_taxonomy_vocabulary} (paths, vid) VALUES ('%s', %d)", $breadcrumb->path, $breadcrumb->vid);
      ++$found;
    }

    // use variable definitions already set for taxonomy_breadcrumb
    variable_set('custom_breadcrumbs_taxonomy_home', variable_get('taxonomy_breadcrumb_home', t('Home')));
    variable_set('custom_breadcrumbs_taxonomy_show_current_term', variable_get('taxonomy_breadcrumb_show_current_term', TRUE));
    variable_set('custom_breadcrumbs_taxonomy_include_node_title', variable_get('taxonomy_breadcrumb_include_node_title', FALSE));
    variable_set('custom_breadcrumbs_taxonomy_include_nodes', variable_get('taxonomy_breadcrumb_include_nodes', FALSE));
    variable_set('custom_breadcrumbs_taxonomy_node_types', variable_get('taxonomy_breadcrumb_node_types', TAXONOMY_BREADCRUMB_NODE_TYPES_DEFAULT));
    define('CUSTOM_BREADCRUMBS_TAXONOMY_NODE_TYPES_DEFAULT', TAXONOMY_BREADCRUMB_NODE_TYPES_DEFAULT);

    // Set custom_breadcrumbs_taxonomy to use taxonomy hierarchy in constructing breadcrumb.
    variable_set('custom_breadcrumbs_taxonomy_use_hierarchy', TRUE);
    if ($found > 0) {
      drupal_set_message(format_plural($found, 'Copied 1 breadcrumb.', 'Copied @count breadcrumbs.'));
      drupal_set_message(t('You can now disable taxonomy_breadcrumb, and test custom_breadcrumb_taxonomy.'));
    }
    else {
      drupal_set_message(t('No taxonomy_breadcrumbs were found'));
    }
  }
  drupal_set_message('Custom Breadcrumbs for Taxonomy Terms and Vocabularies: Taxonomy based breadcrumbs should now appear on node pages and taxonomy/term pages.  For the most common applications this module will work "out of the box" and no further configuration is necessary.  If customization is desired settings can be changed on the ' . l('administration page', 'admin/settings/custom-breadcrumbs') . '.');
}