You are here

function custom_breadcrumbs_taxonomy_install in Custom Breadcrumbs 7.2

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

Implements hook_install().

File

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

Code

function custom_breadcrumbs_taxonomy_install() {
  $t = get_t();

  // 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($t('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;
    foreach ($result as $breadcrumb) {
      db_insert('custom_breadcrumbs_taxonomy_term')
        ->fields(array(
        'paths' => $breadcrumb->path,
        'tid' => $breadcrumb->tid,
        'visibility_php' => '',
      ))
        ->execute();
      ++$found;
    }
    $result = db_query("SELECT * FROM {taxonomy_breadcrumb_vocabulary}");
    foreach ($result as $breadcrumb) {
      db_insert('custom_breadcrumbs_taxonomy_vocabulary')
        ->fields(array(
        'paths' => $breadcrumb->path,
        'vid' => $breadcrumb->vid,
        'visibility_php' => '',
      ))
        ->execute();
      ++$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_breadcrumbs_taxonomy.'));
    }
    else {
      drupal_set_message($t('No taxonomy_breadcrumbs were found'));
    }
  }
  drupal_set_message($t('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($t('administration page'), 'admin/config/user-interface/custom-breadcrumbs') . '.');
}