annotate solrsearch_search.install @ 0:a2b4f67e73dc default tip

initial
author Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
date Mon, 08 Jun 2015 10:21:54 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
1 <?php
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
2
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
3 /**
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
4 * @file
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
5 * Install and related hooks for solrsearch_search.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
6 */
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
7
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
8 /**
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
9 * Implements hook_install().
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
10 */
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
11 function solrsearch_search_install() {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
12 // Add a taxonomy search page to the database
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
13 $settings = array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
14 'solrsearch_search_search_type' => 'tid',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
15 'solrsearch_search_per_page' => 10,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
16 'solrsearch_search_browse' => 'results',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
17 'solrsearch_search_spellcheck' => FALSE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
18 'solrsearch_search_search_box' => FALSE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
19 );
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
20 $settings = serialize($settings);
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
21
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
22 $fields = array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
23 'page_id' => 'taxonomy_search',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
24 'label' => 'Taxonomy Search',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
25 'description' => 'Search all items with given term',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
26 'search_path' => 'taxonomy/term/%',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
27 'env_id' => '',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
28 'page_title' => '%value',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
29 'settings' => $settings,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
30 );
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
31 db_insert('solrsearch_search_page')->fields($fields)->execute();
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
32 }
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
33
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
34 /**
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
35 * Implements hook_enable().
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
36 */
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
37 function solrsearch_search_enable() {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
38 // Make sure the default core search page is installed.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
39 //dpm("ENABLE");
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
40 $search_page = solrsearch_search_page_load('core_solr_search');
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
41 //dpm($search_page);
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
42 if (empty($search_page)) {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
43 // Add Default search page (core search)
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
44 // This is a duplication from update_7004 but it is intended
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
45 // so future changes are possible without breaking the update
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
46 $settings = array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
47 'solrsearch_search_search_type' => 'custom',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
48 'solrsearch_search_per_page' => 10,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
49 'solrsearch_search_browse' => 'browse',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
50 'solrsearch_search_spellcheck' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
51 'solrsearch_search_not_removable' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
52 'solrsearch_search_search_box' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
53 );
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
54 $settings = serialize($settings);
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
55
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
56 $fields = array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
57 'page_id' => 'core_solr_search',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
58 'label' => 'Core Solr Search',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
59 'description' => 'Core SolrSearch',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
60 'search_path' => 'solrsearch/site',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
61 'env_id' => 'searchecho',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
62 'page_title' => 'echo',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
63 'settings' => $settings,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
64 );
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
65 db_insert('solrsearch_search_page')->fields($fields)->execute();
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
66 }
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
67
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
68
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
69 #$active = variable_get('search_active_modules', array('node', 'user'));
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
70 #$active[] = 'solrsearch_search';
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
71 #variable_set('search_active_modules', array_unique($active));
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
72 }
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
73
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
74 /**
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
75 * Implements hook_schema().
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
76 */
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
77 function solrsearch_search_schema() {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
78 $schema = array();
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
79
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
80 $schema['solrsearch_search_page'] = array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
81 'description' => 'Apache Solr Search search page settings.',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
82 'export' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
83 // Environment machine name.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
84 'key' => 'page_id',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
85 // Description of key.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
86 'key name' => 'search page machine name',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
87 // Variable name to use in exported code.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
88 'identifier' => 'searcher',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
89 // Use the same hook as the API name below.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
90 'default hook' => 'solrsearch_search_default_searchers',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
91 'status' => 'solrsearch_search_page_status',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
92 // CTools API implementation.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
93 'api' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
94 'owner' => 'solrsearch_search',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
95 'api' => 'solrsearch_search_defaults',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
96 'minimum_version' => 3,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
97 'current_version' => 3,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
98 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
99 // Includes all search page specific configurations.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
100 'export callback' => 'solrsearch_search_page_settings_export',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
101 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
102 'fields' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
103 'page_id' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
104 'description' => 'The machine readable name of the search page.',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
105 'type' => 'varchar',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
106 'length' => 32,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
107 'not null' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
108 'default' => '',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
109 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
110 'label' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
111 'description' => 'The human readable name of the search page.',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
112 'type' => 'varchar',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
113 'length' => 32,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
114 'not null' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
115 'default' => '',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
116 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
117 'description' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
118 'description' => 'The description of the search page.',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
119 'type' => 'varchar',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
120 'length' => 255,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
121 'not null' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
122 'default' => '',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
123 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
124 'search_path' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
125 'description' => 'The path to the search page.',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
126 'type' => 'varchar',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
127 'length' => 255,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
128 'not null' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
129 'default' => '',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
130 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
131 'page_title' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
132 'description' => 'The title of the search page.',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
133 'type' => 'varchar',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
134 'length' => 255,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
135 'not null' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
136 'default' => '',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
137 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
138 'env_id' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
139 'description' => 'The machine name of the search environment.',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
140 'type' => 'varchar',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
141 'length' => 64,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
142 'not null' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
143 'default' => '',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
144 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
145 'settings' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
146 'description' => 'Serialized storage of general settings.',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
147 'type' => 'text',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
148 'serialize' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
149 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
150 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
151 'primary key' => array('page_id'),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
152 'indexes' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
153 'env_id' => array('env_id'),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
154 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
155 );
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
156
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
157 return $schema;
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
158 }
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
159
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
160 /**
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
161 * Implements hook_uninstall().
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
162 */
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
163 function solrsearch_search_uninstall() {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
164 $stored = variable_get('solrsearch_index_last', array());
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
165 unset($stored['solrsearch_search']);
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
166 variable_set('solrsearch_index_last', $stored);
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
167
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
168 $active = variable_get('search_active_modules', array('node', 'user'));
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
169 $idx = array_search('solrsearch_search', $active);
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
170 if ($idx !== FALSE) {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
171 unset($active[$idx]);
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
172 variable_set('search_active_modules', $active);
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
173 }
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
174 // Remove variables.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
175 variable_del('solrsearch_search_spellcheck');
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
176 variable_del('solrsearch_search_mlt_blocks');
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
177 variable_del('solrsearch_search_default_search_page');
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
178 // Remove blocks.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
179 db_delete('block')->condition('module', 'solrsearch_search')->execute();
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
180 }
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
181
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
182 /**
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
183 * Various updates for Drupal 7.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
184 */
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
185 function solrsearch_search_update_7000() {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
186 $taxo_links = variable_get('solrsearch_search_taxonomy_links', 0);
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
187 // TODO - enable the new contrib module?
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
188 variable_del('solrsearch_search_taxonomy_links');
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
189 // TODO - possibly rename block deltas, etc.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
190 $active = variable_get('search_active_modules', array('node', 'user'));
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
191 $active[] = 'solrsearch_search';
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
192 variable_set('search_active_modules', array_unique($active));
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
193 if (variable_get('solrsearch_search_make_default', 0)) {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
194 variable_set('search_default_module', 'solrsearch_search');
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
195 }
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
196 variable_del('solrsearch_search_make_default');
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
197 }
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
198
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
199 /**
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
200 * Add solrsearch_search_page table.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
201 */
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
202 function solrsearch_search_update_7001() {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
203 // Moved to 7002
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
204 }
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
205
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
206 /**
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
207 * Add solrsearch_search_page table for real.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
208 */
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
209 function solrsearch_search_update_7002() {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
210
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
211 $schema['solrsearch_search_page'] = array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
212 'description' => 'Apache Solr Search search page settings.',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
213 'export' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
214 'key' => 'page_id',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
215 'identifier' => 'searcher',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
216 'default hook' => 'solrsearch_search_default_searchers',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
217 'status' => 'solrsearch_search_page_status',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
218 'api' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
219 'owner' => 'solrsearch_search',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
220 'api' => 'solrsearch_search_defaults',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
221 'minimum_version' => 3,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
222 'current_version' => 3,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
223 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
224 'export callback' => 'solrsearch_search_page_settings_export',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
225 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
226 'fields' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
227 'page_id' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
228 'description' => 'The machine readable name of the search page.',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
229 'type' => 'varchar',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
230 'length' => 32,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
231 'not null' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
232 'default' => '',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
233 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
234 'label' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
235 'description' => 'The human readable name of the search page.',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
236 'type' => 'varchar',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
237 'length' => 32,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
238 'not null' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
239 'default' => '',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
240 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
241 'description' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
242 'description' => 'The description of the search page.',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
243 'type' => 'varchar',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
244 'length' => 255,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
245 'not null' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
246 'default' => '',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
247 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
248 'search_path' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
249 'description' => 'The path to the search page.',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
250 'type' => 'varchar',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
251 'length' => 255,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
252 'not null' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
253 'default' => '',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
254 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
255 'page_title' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
256 'description' => 'The title of the search page.',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
257 'type' => 'varchar',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
258 'length' => 255,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
259 'not null' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
260 'default' => '',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
261 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
262 'env_id' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
263 'description' => 'The machine name of the search environment.',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
264 'type' => 'varchar',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
265 'length' => 32,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
266 'not null' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
267 'default' => '',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
268 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
269 'settings' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
270 'description' => 'Serialized storage of general settings.',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
271 'type' => 'text',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
272 'serialize' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
273 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
274 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
275 'primary key' => array('page_id'),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
276 'indexes' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
277 'env_id' => array('env_id'),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
278 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
279 );
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
280 if (db_table_exists('solrsearch_search_page')) {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
281 // Just in case you are chasing HEAD.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
282 db_drop_table('solrsearch_search_page');
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
283 }
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
284 db_create_table('solrsearch_search_page', $schema['solrsearch_search_page']);
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
285 }
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
286
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
287
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
288 /**
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
289 * Delete all Apache Solr Search blocks - they moved to Facet API.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
290 */
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
291 function solrsearch_search_update_7003() {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
292 // Remove blocks.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
293 db_delete('block')->condition('module', 'solrsearch_search')->execute();
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
294 }
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
295
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
296 /**
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
297 * Add a default search page for core
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
298 * Add a taxonomy page if the taxonomy module was ever active
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
299 */
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
300 function solrsearch_search_update_7004() {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
301 // Add Default search page (core search)
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
302 $settings = array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
303 'solrsearch_search_search_type' => 'custom',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
304 'solrsearch_search_per_page' => variable_get('solrsearch_rows', 10),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
305 'solrsearch_search_browse' => variable_get('solrsearch_search_browse', 'browse'),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
306 'solrsearch_search_spellcheck' => variable_get('solrsearch_search_spellcheck', TRUE),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
307 'solrsearch_search_not_removable' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
308 'solrsearch_search_search_box' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
309 );
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
310 $settings = serialize($settings);
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
311
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
312 $fields = array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
313
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
314 'page_id' => 'core_solr_search',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
315 'label' => 'Core Solr Search',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
316 'description' => 'Core SolrSearch',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
317 'search_path' => 'solrsearch/site',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
318 'env_id' => 'searchecho',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
319 'page_title' => 'echo',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
320 'settings' => $settings,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
321 );
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
322 db_insert('solrsearch_search_page')->fields($fields)->execute();
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
323 // Remove variables.
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
324 variable_del('solrsearch_search_spellcheck');
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
325 variable_del('solrsearch_search_browse');
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
326
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
327 // Add this taxonomy search page to the database
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
328 $settings = array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
329 'solrsearch_search_search_type' => 'tid',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
330 'solrsearch_search_per_page' => 10,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
331 'solrsearch_search_browse' => 'results',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
332 'solrsearch_search_spellcheck' => FALSE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
333 'solrsearch_search_search_box' => FALSE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
334 );
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
335 $settings = serialize($settings);
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
336
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
337 $fields = array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
338 'page_id' => 'taxonomy_search',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
339 'label' => 'Taxonomy Search',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
340 'description' => 'Search all items with given term',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
341 'search_path' => 'taxonomy/term/%',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
342 'env_id' => '',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
343 'page_title' => '%value',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
344 'settings' => $settings,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
345 );
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
346 db_insert('solrsearch_search_page')->fields($fields)->execute();
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
347
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
348 // Check if the taxonomy module was ever present
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
349 $status = db_query("SELECT 1 FROM {system} WHERE name = 'solrsearch_taxonomy'")->fetchField();
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
350 if ($status) {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
351 $message = t('If you had the solrsearch_taxonomy module enabled please go to the !link and enable the Taxonomy Term page', array('!link' => l('Apache Solr custom pages', 'admin/config/search/solrsearch/search-pages')));
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
352 drupal_set_message($message, 'warning');
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
353 }
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
354 }
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
355
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
356 /**
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
357 * Make the env_id length on the solrsearch_search_page table 64 characters
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
358 * to match the length of the env_id on all other tables
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
359 */
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
360 function solrsearch_search_update_7005(&$sandbox) {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
361 db_drop_index('solrsearch_search_page', 'env_id');
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
362 db_change_field('solrsearch_search_page', 'env_id', 'env_id',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
363 array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
364 'description' => 'The machine name of the search environment.',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
365 'type' => 'varchar',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
366 'length' => 64,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
367 'not null' => TRUE,
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
368 'default' => '',
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
369 ),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
370 array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
371 'indexes' => array(
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
372 'env_id' => array('env_id'),
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
373 )
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
374 )
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
375 );
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
376 }
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
377
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
378 /**
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
379 * Remove all solrsearch_search env variables for show_facets if it is zero
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
380 */
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
381 function solrsearch_search_update_7006() {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
382 module_load_include('module', 'solrsearch');
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
383 $environments = solrsearch_load_all_environments();
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
384 foreach ($environments as $environment) {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
385 $show_facets = solrsearch_environment_variable_get($environment['env_id'], 'solrsearch_search_show_facets', 0);
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
386 if ($show_facets === 0) {
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
387 solrsearch_environment_variable_del($environment['env_id'], 'solrsearch_search_show_facets');
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
388 }
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
389 }
a2b4f67e73dc initial
Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
parents:
diff changeset
390 }