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: