You are here

custom_breadcrumbs.install in Custom Breadcrumbs 5

File

custom_breadcrumbs.install
View source
<?php

/**
 * Implementation of hook_install().
 */
function custom_breadcrumbs_install() {
  switch ($GLOBALS['db_type']) {
    case 'mysql':
    case 'mysqli':
      db_query("CREATE TABLE {custom_breadcrumb} (\n        bid int unsigned NOT NULL auto_increment,\n        titles varchar(255) NOT NULL default '',\n        paths varchar(255) NOT NULL default '',\n        visibility_php text NOT NULL default '',\n        node_type varchar(64) default '',\n        PRIMARY KEY (bid)\n      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
      break;
    case 'pgsql':
      db_query("CREATE TABLE {custom_breadcrumb} (\n        bid serial CHECK (bid >= 0),\n        titles varchar(255) NOT NULL default '',\n        paths varchar(255) NOT NULL default '',\n        visibility_php text NOT NULL default '',\n        node_type varchar(64) default ''\n      )");
      db_query("CREATE INDEX {custom_breadcrumb}_bid_idx ON {custom_breadcrumb} (bid)");
      break;
  }
}

// Update old-style tokens from early versions of token.module.
// Most users aren't using them, but we might as well handle them
// properly.
function custom_breadcrumbs_update_1() {
  $ret = array();
  $stuff = array(
    '%author_id' => '[author-uid]',
    '%author_name' => '[author-name]',
    '%user_id' => '[user-id]',
    '%user_name' => '[user-name]',
    '%node_id' => '[nid]',
    '%node_type' => '[type]',
    '%node_type_name' => '[type-name]',
    '%top_term' => '[term]',
    '%top_tname' => '[term-id]',
    '%created_d' => '[dd]',
    '%created_D' => '[ddd]',
    '%created_j' => '[d]',
    '%created_l' => '[day]',
    '%created_F' => '[month]',
    '%created_m' => '[mm]',
    '%created_M' => '[mon]',
    '%created_n' => '[m]',
    '%created_y' => '[yy]',
    '%created_Y' => '[yyyy]',
  );
  $search = array_keys($stuff);
  $replace = array_values($stuff);
  $result = db_query("SELECT * FROM {custom_breadcrumb}");
  while ($crumb = db_fetch_object($result)) {
    $crumb->titles = str_replace($search, $replace, $crumb->titles);
    $crumb->paths = str_replace($search, $replace, $crumb->paths);
    custom_breadcrumbs_save_breadcrumb($crumb);
  }
  $ret[] = array(
    'success' => TRUE,
    'query' => 'Custom Breadcrumb replacement strings updated for use with Token module.',
  );
  return $ret;
}
function custom_breadcrumbs_update_2() {
  $ret = array();
  switch ($GLOBALS['db_type']) {
    case 'mysql':
    case 'mysqli':
      $ret[] = update_sql("ALTER TABLE {custom_breadcrumb} ADD visibility_php text NOT NULL default ''");
      break;
    case 'pgsql':
      db_add_column($ret, 'custom_breadcrumb', 'visibility_php', 'text', array(
        'not null' => TRUE,
        'default' => "''",
      ));
      break;
  }
  return $ret;
}
function custom_breadcrumbs_uninstall() {
  db_query('DROP TABLE {custom_breadcrumb}');
}