You are here

function search_autocomplete_install in Search Autocomplete 6.2

Same name and namespace in other branches
  1. 8 search_autocomplete.module \search_autocomplete_install()
  2. 6.4 search_autocomplete.install \search_autocomplete_install()
  3. 7.4 search_autocomplete.install \search_autocomplete_install()
  4. 7.2 search_autocomplete.install \search_autocomplete_install()
  5. 7.3 search_autocomplete.install \search_autocomplete_install()
  6. 2.x search_autocomplete.module \search_autocomplete_install()

Implementation of hook_install().

1 call to search_autocomplete_install()
search_autocomplete_update_6200 in ./search_autocomplete.install
Get ready to version from 1.x to 2.0

File

./search_autocomplete.install, line 151
This file is used to install/update/delete the module tables in database

Code

function search_autocomplete_install() {
  if (db_table_exists('search_autocomplete_forms') && db_table_exists('search_autocomplete_suggestions')) {
    return;
  }
  $results = drupal_install_schema('search_autocomplete');

  //Install the database specified in  'function search_autocomplete_schema'
  foreach ($results as $result) {

    // Check eventual errors that could have occured
    if (!$result['success']) {
      drupal_set_message(st('An error has occured during table creation, please retry. If the problem persist please post an issue and report the code: #err_code:400 @query', $result['query']), 'error');
    }
  }
  $limit = variable_get('search_autocomplete_limit', 15);
  $trigger = variable_get('search_autocomplete_trigger', 3);
  $enabled = 1;
  $enable_taxo = module_exists("taxonomy") ? 1 : 0;
  $enable_comment = module_exists("comment") ? 1 : 0;

  // ----------------
  // create possible default forms
  $sql = 'INSERT INTO {search_autocomplete_forms} (title, selector, weight, enabled, min_char, max_sug) VALUES ' . '("%s", "%s", %d, %d, %d, %d),' . '("%s", "%s", %d, %d, %d, %d),' . '("%s", "%s", %d, %d, %d, %d),' . '("%s", "%s", %d, %d, %d, %d)';
  $variables = array(
    st('Search page - Node Tab') . "  (search/node/%)",
    "#search-form",
    0,
    $enabled,
    $trigger,
    $limit,
    st('Search page - User Tab') . "  (search/user/%)",
    "#search-form",
    1,
    $enabled,
    $trigger,
    $limit,
    st('Search Block'),
    "#search-block-form",
    0,
    $enabled,
    $trigger,
    $limit,
    st('Search box (added by the theme)'),
    "#search-theme-form",
    0,
    $enabled,
    $trigger,
    $limit,
  );
  $ok_result1 = db_query($sql, $variables);
  if (!$ok_result1) {
    drupal_set_message(st('An error has occured while creating default forms, please retry. If the problem persist please post an issue and report the code: #err_code:401'), 'error');
  }

  // ----------------
  // create the possible suggestions :
  $sql = 'INSERT INTO {search_autocomplete_suggestions} (sid, sug_fid, sug_enabled, sug_prefix, sug_title, sug_name, sug_dependencies, sug_weight, sug_query) VALUES ' . '(%d, %d, %d, "%s", "%s", "%s", "%s", %d, "%s"),' . '(%d, %d, %d, "%s", "%s", "%s", "%s", %d, "%s"),' . '(%d, %d, %d, "%s", "%s", "%s", "%s", %d, "%s"),' . '(%d, %d, %d, "%s", "%s", "%s", "%s", %d, "%s"),' . '(%d, %d, %d, "%s", "%s", "%s", "%s", %d, "%s")';
  $ok_result2 = TRUE;
  for ($form = 0; $form <= 4; $form++) {
    $variables = array(
      1,
      $form,
      1,
      "node:",
      "Add node titles",
      "node_title",
      "",
      1,
      "SELECT n.title, CONCAT('node/',n.nid) FROM {node} n WHERE n.status = 1 AND LOWER(n.title) LIKE LOWER(:like_word)",
      2,
      $form,
      1,
      "user:",
      "Add usernames",
      "username",
      "",
      2,
      "SELECT u.name, CONCAT('user/', u.uid) FROM {users} u WHERE u.status = 1 AND LOWER(u.name) LIKE LOWER(:like_word)",
      3,
      $form,
      $enable_taxo,
      "vocab:",
      "Add taxonomies",
      "taxo_title",
      "taxonomy",
      3,
      "SELECT t.name, CONCAT('taxonomy/term/', t.tid) FROM {term_data} t WHERE LOWER(t.name) LIKE LOWER(:like_word)",
      4,
      $form,
      $enable_comment,
      "comment:",
      "Add node comment titles",
      "comment_title",
      "comment",
      4,
      "SELECT c.subject, CONCAT('node/', c.nid, '/#comment-', c.cid) FROM {comments} c WHERE c.subject LIKE LOWER(:like_word)",
      5,
      $form,
      1,
      "",
      "Add all possible words (any word appearing on your website)",
      "word_title",
      "search",
      5,
      "SELECT DISTINCT s.word, CONCAT('search/node/', s.word) FROM {search_index} s, {node} n WHERE s.type = 'node' AND n.nid = s.sid AND n.status = 1 AND LOWER(s.word) LIKE LOWER(:like_word)",
    );
    $ok_result2 &= db_query($sql, $variables);
  }
  if (!$ok_result2) {
    drupal_set_message(st('An error has occured while creating default suggestions, please retry. If the problem persist please post an issue and report the code: #err_code:402'), 'error');
  }
  variable_del('search_autocomplete_forms');
  variable_del('search_autocomplete_test');
  variable_del('search_autocomplete_limit');
  variable_del('search_autocomplete_trigger');
  variable_del('search_autocomplete_method');
  if ($ok_result1 && $ok_result2 && $result['success']) {
    drupal_set_message(st('Search Autocomplete is now correctly installed!'));
  }
}