public static function setupTables() { global $ilDB; if (!$ilDB->tableExists(self::$tbl_userconfig)) { $fields = array('usr_id' => array('type' => 'integer', 'notnull' => true, 'length' => 4), 'module' => array('type' => 'text', 'notnull' => true, 'length' => 100), 'channel' => array('type' => 'text', 'notnull' => true, 'length' => 100)); $ilDB->createTable(self::$tbl_userconfig, $fields); $ilDB->addPrimaryKey(self::$tbl_userconfig, array('usr_id', 'module', 'channel')); } if (!$ilDB->tableExists(self::$tbl_userlistener)) { $fields = array('usr_id' => array('type' => 'integer', 'notnull' => true, 'length' => 4), 'module' => array('type' => 'text', 'notnull' => true, 'length' => 100), 'sender_id' => array('type' => 'integer', 'notnull' => true, 'length' => 4), 'disabled' => array('type' => 'integer', 'notnull' => true, 'length' => 1)); $ilDB->createTable(self::$tbl_userlistener, $fields); $ilDB->addPrimaryKey(self::$tbl_userlistener, array('usr_id', 'module', 'sender_id')); } if (!$ilDB->tableExists(self::$tbl_notification_data)) { $fields = array('notification_id' => array('type' => 'integer', 'notnull' => true, 'length' => 4), 'serialized' => array('type' => 'text', 'notnull' => true, 'length' => 4000)); $ilDB->createTable(self::$tbl_notification_data, $fields); $ilDB->addPrimaryKey(self::$tbl_notification_data, array('notification_id')); $ilDB->createSequence(self::$tbl_notification_data); } if (!$ilDB->tableExists(self::$tbl_notification_queue)) { $fields = array('notification_id' => array('type' => 'integer', 'notnull' => true, 'length' => 4), 'usr_id' => array('type' => 'integer', 'notnull' => true, 'length' => 4), 'valid_until' => array('type' => 'integer', 'notnull' => true, 'length' => 4)); $ilDB->createTable(self::$tbl_notification_queue, $fields); #$ilDB->addPrimaryKey(self::$tbl_notification_queue, array('notification_id', 'usr_id', 'notification_channel')); $ilDB->addPrimaryKey(self::$tbl_notification_queue, array('notification_id', 'usr_id')); } if (!$ilDB->tableExists(self::$tbl_notification_osd_handler)) { $fields = array('notification_osd_id' => array('type' => 'integer', 'notnull' => true, 'length' => 4), 'usr_id' => array('type' => 'integer', 'notnull' => true, 'length' => 4), 'serialized' => array('type' => 'text', 'notnull' => true, 'length' => 4000), 'valid_until' => array('type' => 'integer', 'notnull' => true, 'length' => 4), 'time_added' => array('type' => 'integer', 'notnull' => true, 'length' => 4), 'type' => array('type' => 'text', 'notnull' => true, 'length' => 100)); $ilDB->createTable(self::$tbl_notification_osd_handler, $fields); $ilDB->addPrimaryKey(self::$tbl_notification_osd_handler, array('notification_osd_id')); /** * @todo hier wird ein fehler geworfen... */ #$ilDB->addIndex(self::$tbl_notification_osd_handler, array('usr_id', 'valid_until', 'time_added')); $ilDB->createSequence(self::$tbl_notification_osd_handler); } if (!$ilDB->tableExists(self::$tbl_notification_channels)) { $fields = array('channel_name' => array('type' => 'text', 'notnull' => true, 'length' => 100), 'title' => array('type' => 'text', 'notnull' => true, 'length' => 100), 'description' => array('type' => 'text', 'notnull' => true, 'length' => 4000), 'class' => array('type' => 'text', 'notnull' => true, 'length' => 100), 'include' => array('type' => 'text', 'notnull' => true, 'length' => 100), 'config_type' => array('type' => 'text', 'notnull' => true, 'length' => 30)); $ilDB->createTable(self::$tbl_notification_channels, $fields); $ilDB->addPrimaryKey(self::$tbl_notification_channels, array('channel_name')); ilNotificationSetupHelper::registerChannel('mail', 'mail', 'mail_desc', 'ilNotificationMailHandler', 'Services/Notifications/classes/class.ilNotificationMailHandler.php'); ilNotificationSetupHelper::registerChannel('osd', 'osd', 'osd_desc', 'ilNotificationOSDHandler', 'Services/Notifications/classes/class.ilNotificationOSDHandler.php'); } if (!$ilDB->tableExists(self::$tbl_notification_types)) { $fields = array('type_name' => array('type' => 'text', 'notnull' => true, 'length' => 100), 'title' => array('type' => 'text', 'notnull' => true, 'length' => 100), 'description' => array('type' => 'text', 'notnull' => true, 'length' => 100), 'notification_group' => array('type' => 'text', 'notnull' => true, 'length' => 100), 'config_type' => array('type' => 'text', 'notnull' => true, 'length' => 30)); $ilDB->createTable(self::$tbl_notification_types, $fields); $ilDB->addPrimaryKey(self::$tbl_notification_types, array('type_name')); ilNotificationSetupHelper::registerType('chat_invitation', 'chat_invitation', 'chat_invitation_description', 'chat'); //ilNotificationSetupHelper::registerType('adobe_connect_invitation', 'adobe_connect_invitation', 'adobe_connect_invitation_description', 'adobe_connect'); ilNotificationSetupHelper::registerType('osd_maint', 'osd_maint', 'osd_maint_description', 'osd_notification'); } }