-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlibhours.install
232 lines (212 loc) · 6.07 KB
/
libhours.install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
<?php
// $Id$
/**
* @file
* Install, Uninstalls Schema for lib hours module
*
* @author Parth Shah <parth.shah@ucdenver.edu>
*
*/
/**
* Implements hook_install()
*/
function libhours_install(){
/* pre-populate the semesters and type tables.
need to check if the table already has something in there to avoid overwrites or duplicates
that can happen when enabling/disabling the module.
*/
$has_rows_semesters = (bool) db_query_range('SELECT name FROM {libhours_semesters}', 0, 1) -> fetchField();
if(!$has_rows_semesters) {
$insert_id = db_insert('libhours_semesters') ->fields(array('name' => 'Default Semester')) -> execute();
}
$has_rows_type = (bool) db_query_range('SELECT name FROM {libhours_type}', 0, 1) -> fetchField();
if(!$has_rows_type) {
$insert_id = db_insert('libhours_type') ->fields(array('name' => 'Holiday')) -> execute();
$insert_id = db_insert('libhours_type') ->fields(array('name' => 'Emergency')) -> execute();
$insert_id = db_insert('libhours_type') ->fields(array('name' => 'Unexpected')) -> execute();
}
}
/**
* Implements hook_uninstall()
*/
function libhours_uninstall() {
drupal_uninstall_schema('libhours');
}
/**
* Implements hook_schema()
*/
function libhours_schema() {
$schema['libhours_locations'] = array(
'description' => 'Library Locations',
'fields' => array(
'lid' => array(
'description' => 'unique identifier for locations',
'type' => 'serial',
'not null' => true,
'unsigned' => true),
'name' => array(
'description' => 'name of location',
'type' => 'varchar',
'length' => 100,
'not null' => true,
'default' => ''),
'description' => array(
'description' => 'location description text',
'type' => 'varchar',
'length' => 500,
'not null' => true,
'default' => ''),
'parent' => array(
'description' => 'parent location lid identifier',
'type' => 'int',
'not null' => true,
'unsigned' => true,
'default' => 0)
),
'primary key' => array('lid')
);
$schema['libhours_periods'] = array(
'description' => 'Location periods',
'fields' => array(
'pid' => array(
'description' => 'unique identifier for periods',
'type' => 'serial',
'not null' => true,
'unsigned' => true),
'lid' => array(
'description' => 'foreign key to locations identifier',
'type' => 'int',
'not null' => true,
'unsigned' => true),
'sid' => array(
'description' => 'foreign key to semester identifier',
'type' => 'int',
'not null' => true,
'unsigned' => true),
'from_date' => array(
'description' => 'periods start date',
'type' => 'int',
'not null' => FALSE,
'unsigned' => true),
'to_date' => array(
'description' => 'periods end date',
'type' => 'int',
'not null' => FALSE,
'unsigned' => true),
),
'primary key' => array('pid')
);
$schema['libhours_semesters'] = array(
'description' => 'Semesters for a period',
'fields' => array(
'sid' => array(
'description' => 'unique identifier for semesters',
'type' => 'serial',
'not null' => true,
'unsigned' => true),
'name' => array(
'description' => 'semester name',
'type' => 'varchar',
'length' => 100,
'not null' => true,
'default' => '')
),
'primary key' => array('sid')
);
$schema['libhours_hours'] = array(
'description' => 'Period hours of operation',
'fields' => array(
'hid' => array(
'description' => 'unique identifier for hours',
'type' => 'serial',
'not null' => true,
'unsigned' => true),
'pid' => array(
'description' => 'foreign key to periods identifier',
'type' => 'int',
'not null' => true,
'unsigned' => true),
'dow' => array(
'description' => 'Days of week binary string',
'type' => 'varchar',
'length' => 7,
'not null' => true,
'default' => '1111111'),
'open' => array(
'description' => 'The hour the location opens. Open 24hours is when open is 0 and close is 2400. Close 24hours is when open and close are 0',
'type' => 'int',
'not null' => FALSE,
'unsigned' => true),
'close' => array(
'description' => 'The hour the location closes',
'type' => 'int',
'not null' => FALSE,
'unsigned' => true)
),
'primary key' => array('hid')
);
$schema['libhours_exceptions'] = array(
'description' => 'Exceptions for locations',
'fields' => array(
'eid' => array(
'description' => 'unique identifier for exceptions',
'type' => 'serial',
'not null' => true,
'unsigned' => true),
'lid' => array(
'description' => 'foreign key to location identifier',
'type' => 'int',
'not null' => true,
'unsigned' => true),
'tid' => array(
'description' => 'foreign key to type identifier',
'type' => 'int',
'not null' => true,
'unsigned' => true),
'label' => array(
'description' => 'exception description label',
'type' => 'varchar',
'length' => 500,
'not null' => true,
'default' => ''),
'from_date' => array(
'description' => 'exception start date',
'type' => 'int',
'not null' => FALSE,
'unsigned' => true),
'to_date' => array(
'description' => 'exception end date',
'type' => 'int',
'not null' => FALSE,
'unsigned' => true),
'open' => array(
'description' => 'The hour the location opens. Open 24hours is when open is 0 and close is 2400. Close 24hours is when open and close are 0',
'type' => 'int',
'not null' => FALSE,
'unsigned' => true),
'close' => array(
'description' => 'The hour the location closes',
'type' => 'int',
'not null' => FALSE,
'unsigned' => true)
),
'primary key' => array('eid')
);
$schema['libhours_type'] = array(
'description' => 'Exception type identifier',
'fields' => array(
'tid' => array(
'description' => 'unique identifier for exception type',
'type' => 'serial',
'not null' => true,
'unsigned' => true),
'name' => array(
'description' => 'type name',
'type' => 'varchar',
'length' => 100,
'default' => ''),
),
'primary key' => array('tid')
);
return $schema;
}