File:
0.00.3a/config/DD.php (
View as Code)
1: 2: /* -------------------------------------------------------------
3: This file is part of FreeDESK
4:
5: FreeDESK is (C) Copyright 2012 David Cutting
6:
7: FreeDESK is free software: you can redistribute it and/or modify
8: it under the terms of the GNU General Public License as published by
9: the Free Software Foundation, either version 3 of the License, or
10: (at your option) any later version.
11:
12: FreeDESK is distributed in the hope that it will be useful,
13: but WITHOUT ANY WARRANTY; without even the implied warranty of
14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15: GNU General Public License for more details.
16:
17: You should have received a copy of the GNU General Public License
18: along with FreeDESK. If not, see www.gnu.org/licenses
19:
20: For more information see www.purplepixie.org/freedesk/
21: -------------------------------------------------------------- */
22:
23: // NOTE: DO NOT EDIT THIS FILE DIRECTLY FOR CUSTOMISATIONS!
24: // RATHER USE A PLUGIN MODULE OR OTHER USER-SCRIPT TO ADD DD
25: // DATA!
26:
27: // Of course you are free to change this file - this is open-source
28: // after all but if you do not only will it be overwritten but you
29: // could well break your install... You have been warned!
30:
31: /**
32: * FreeDESK Main Core Data Dictionary Definitions - do not edit as will be overwritten on upgrade
33: **/
34: class FreeDESK_DD
35: {
36: /**
37: * Static exec function will setup the core data dictionary
38: * @param mixed $DESK Instance of FreeDESK
39: **/
40: static function Exec(&$DESK)
41: {
42: // System Log (syslog)
43:
44: $syslog = new DD_Table();
45: $syslog->name = "SysLog";
46: $syslog->entity = "syslog";
47: $syslog->editable = true;
48:
49: $event_id = new DD_Field();
50: $event_id->name = "Event ID";
51: $event_id->field = "event_id";
52: $event_id->type = DD_FieldType::Int;
53: $event_id->searchable = true;
54: $event_id->keyfield = true;
55: $event_id->display = true;
56: $syslog->Add($event_id);
57:
58: $event_dt = new DD_Field();
59: $event_dt->name = "Event DateTime";
60: $event_dt->field = "event_dt";
61: $event_dt->type = DD_FieldType::DateTime;
62: $event_dt->searchable = true;
63: $event_dt->display = true;
64: $syslog->Add($event_dt);
65:
66: $event = new DD_Field();
67: $event->name="Event";
68: $event->field="event";
69: $event->type=DD_FieldType::Char;
70: $event->size=254;
71: $event->searchable = true;
72: $event->display = true;
73: $syslog->Add($event);
74:
75: $event_class = new DD_Field();
76: $event_class->name="Event Class";
77: $event_class->field="event_class";
78: $event_class->type=DD_FieldType::Char;
79: $event_class->size=128;
80: $event_class->searchable = true;
81: $event_class->display = true;
82: $syslog->Add($event_class);
83:
84: $event_type = new DD_Field();
85: $event_type->name="Event Type";
86: $event_type->field="event_type";
87: $event_type->type=DD_FieldType::Char;
88: $event_type->size=128;
89: $event_type->searchable = true;
90: $event_type->display = true;
91: $syslog->Add($event_type);
92:
93: $event_level = new DD_Field();
94: $event_level->name="Event Level";
95: $event_level->field="event_level";
96: $event_level->type=DD_FieldType::Int;
97: $event_level->searchable = true;
98: $event_level->display = true;
99: $syslog->Add($event_level);
100:
101: $DESK->DataDictionary->AddTable($syslog);
102:
103: // System Configuration (sysconfig)
104:
105: $sysconfig = new DD_Table();
106: $sysconfig->name="SysConfig";
107: $sysconfig->entity="sysconfig";
108:
109: $sc_option = new DD_Field();
110: $sc_option->name="SC Option";
111: $sc_option->field="sc_option";
112: $sc_option->type=DD_FieldType::Char;
113: $sc_option->size=254;
114: $sc_option->searchable=true;
115: $sc_option->display=true;
116: $sysconfig->Add($sc_option);
117:
118: $sc_value = new DD_Field();
119: $sc_value->name="SC Value";
120: $sc_value->field="sc_value";
121: $sc_value->type=DD_FieldType::Char;
122: $sc_value->size=254;
123: $sc_value->searchable=true;
124: $sc_value->display=true;
125: $sysconfig->Add($sc_value);
126:
127: $DESK->DataDictionary->AddTable($sysconfig);
128:
129: // User Data
130: $user = new DD_Table();
131: $user->name="Users";
132: $user->entity="user";
133:
134: $f = new DD_Field();
135: $f->name="Username";
136: $f->field="username";
137: $f->type=DD_FieldType::Char;
138: $f->size=254;
139: $f->searchable=true;
140: $f->display=true;
141: $f->keyfield=true;
142: $user->Add($f);
143:
144: $f = new DD_Field();
145: $f->name="Password";
146: $f->field="password";
147: $f->type=DD_FieldType::Char;
148: $f->size=254;
149: $f->searchable=false;
150: $f->display=false;
151: $user->Add($f);
152:
153: $f = new DD_Field();
154: $f->name="Real Name";
155: $f->field="realname";
156: $f->type=DD_FieldType::Char;
157: $f->size=254;
158: $f->searchable=true;
159: $f->display=true;
160: $user->Add($f);
161:
162: $f = new DD_Field();
163: $f->name="Email";
164: $f->field="email";
165: $f->type=DD_FieldType::Char;
166: $f->size=254;
167: $f->searchable=true;
168: $f->display=true;
169: $user->Add($f);
170:
171: $f = new DD_Field();
172: $f->name="Auth Type";
173: $f->field="authtype";
174: $f->type=DD_FieldType::Char;
175: $f->size=254;
176: $f->searchable=false;
177: $f->display=false;
178: $user->Add($f);
179:
180: for ($i=0; $i<10; ++$i)
181: {
182: $f = new DD_Field();
183: $f->name="Spare Field ".$i;
184: $f->field="sparefield".$i;
185: $f->type=DD_FieldType::Char;
186: $f->size=254;
187: $f->searchable=true;
188: $f->display=true;
189: $user->Add($f);
190: }
191:
192: $DESK->DataDictionary->AddTable($user);
193:
194: // Session
195: $session = new DD_Table();
196: $session->name="Session";
197: $session->entity="session";
198:
199: $f = new DD_Field();
200: $f->name="Session ID";
201: $f->field="session_id";
202: $f->type=DD_FieldType::Char;
203: $f->size=254;
204: $f->keyfield=true;
205: $f->seachable=true;
206: $f->display=true;
207: $session->Add($f);
208:
209: $f = new DD_Field();
210: $f->name="Username";
211: $f->field="username";
212: $f->type=DD_FieldType::Char;
213: $f->size=254;
214: $f->searchable=true;
215: $f->display=true;
216: $f->foreignkey=true; // n.b. also FK for customer but user just linked internally
217: $f->foreignentity="user"; // not that it matters as this isn't handled through entity model
218: $f->foreignfield="username";// but will create OTM link as a DD_Relationship
219: $session->Add($f);
220:
221: $f = new DD_Field();
222: $f->name="Session Type";
223: $f->field="sessiontype";
224: $f->type=DD_FieldType::Int;
225: $f->searchable=false;
226: $f->display=false;
227: $session->Add($f);
228:
229: $f = new DD_Field();
230: $f->name="Created DateTime";
231: $f->field="created_dt";
232: $f->type=DD_FieldType::DateTime;
233: $f->searchable=true;
234: $f->display=true;
235: $session->Add($f);
236:
237: $f = new DD_Field();
238: $f->name="Updated DateTime";
239: $f->field="updated_dt";
240: $f->type=DD_FieldType::DateTime;
241: $f->searchable=true;
242: $f->display=true;
243: $session->Add($f);
244:
245: $f = new DD_Field();
246: $f->name="Expires DateTime";
247: $f->field="expires_dt";
248: $f->type=DD_FieldType::DateTime;
249: $f->searchable=true;
250: $f->display=true;
251: $session->Add($f);
252:
253: $DESK->DataDictionary->AddTable($session);
254:
255: $sessionuser = new DD_Relationship();
256: $sessionuser->type=DD_RelationshipType::OTM;
257: $sessionuser->firstentity = "user";
258: $sessionuser->firstfield = "username";
259: $sessionuser->secondentity = "session";
260: $sessionuser->secondfield = "username";
261:
262: $DESK->DataDictionary->AddRelationship($sessionuser);
263:
264: // Customer
265:
266: $customer = new DD_Table();
267: $customer->name="Customer";
268: $customer->entity="customer";
269: $customer->editable=true;
270:
271: $f = new DD_Field();
272: $f->name="Customer ID";
273: $f->field="customerid";
274: $f->type=DD_FieldType::Int;
275: $f->searchable=true;
276: $f->readonly=true;
277: $f->display=true;
278: $f->keyfield=true;
279: $customer->Add($f);
280:
281: $f = new DD_Field();
282: $f->name="First Name";
283: $f->field="firstname";
284: $f->type=DD_FieldType::Char;
285: $f->size=254;
286: $f->searchable=true;
287: $f->display=true;
288: $customer->Add($f);
289:
290: $f = new DD_Field();
291: $f->name="Last Name";
292: $f->field="lastname";
293: $f->type=DD_FieldType::Char;
294: $f->size=254;
295: $f->searchable=true;
296: $f->display=true;
297: $customer->Add($f);
298:
299: $f = new DD_Field();
300: $f->name="Email";
301: $f->field="email";
302: $f->type=DD_FieldType::Char;
303: $f->size=254;
304: $f->searchable=true;
305: $f->display=true;
306: $customer->Add($f);
307:
308: $f = new DD_Field();
309: $f->name="Username";
310: $f->field="username";
311: $f->type=DD_FieldType::Char;
312: $f->size=254;
313: $f->searchable=true;
314: $f->display=true;
315: $customer->Add($f);
316:
317: $f = new DD_Field();
318: $f->name="Password";
319: $f->field="password";
320: $f->type=DD_FieldType::Password;
321: $f->size=254;
322: $f->searchable=true;
323: $f->display=true;
324: $customer->Add($f);
325:
326: $DESK->DataDictionary->AddTable($customer);
327: }
328:
329: }
330:
331: ?>
332: