3 require_once
'Services/Notifications/classes/class.ilNotificationDatabaseHelper.php';
18 if (!$ilDB->tableExists(self::$tbl_userconfig)) {
20 'usr_id' => array(
'type' =>
'integer',
'notnull' =>
true,
'length' => 4),
21 'module' => array(
'type' =>
'text' ,
'notnull' =>
true,
'length' => 100),
22 'channel' => array(
'type' =>
'text' ,
'notnull' =>
true,
'length' => 100),
24 $ilDB->createTable(self::$tbl_userconfig, $fields);
25 $ilDB->addPrimaryKey(self::$tbl_userconfig, array(
'usr_id',
'module',
'channel'));
28 if (!$ilDB->tableExists(self::$tbl_userlistener)) {
30 'usr_id' => array(
'type' =>
'integer',
'notnull' =>
true,
'length' => 4),
31 'module' => array(
'type' =>
'text' ,
'notnull' =>
true,
'length' => 100),
32 'sender_id' => array(
'type' =>
'integer',
'notnull' =>
true,
'length' => 4),
33 'disabled' => array(
'type' =>
'integer',
'notnull' =>
true,
'length' => 1),
35 $ilDB->createTable(self::$tbl_userlistener, $fields);
36 $ilDB->addPrimaryKey(self::$tbl_userlistener, array(
'usr_id',
'module',
'sender_id'));
39 if (!$ilDB->tableExists(self::$tbl_notification_data)) {
41 'notification_id' => array(
'type' =>
'integer',
'notnull' =>
true,
'length' => 4),
42 'serialized' => array(
'type' =>
'text' ,
'notnull' =>
true,
'length' => 4000),
44 $ilDB->createTable(self::$tbl_notification_data, $fields);
45 $ilDB->addPrimaryKey(self::$tbl_notification_data, array(
'notification_id'));
47 $ilDB->createSequence(self::$tbl_notification_data);
50 if (!$ilDB->tableExists(self::$tbl_notification_queue)) {
52 'notification_id' => array(
'type' =>
'integer' ,
'notnull' =>
true,
'length' => 4),
53 'usr_id' => array(
'type' =>
'integer' ,
'notnull' =>
true,
'length' => 4),
54 #
'notification_channel' => array(
'type' =>
'text' ,
'notnull' =>
true,
'length' => 100),
55 'valid_until' => array(
'type' =>
'integer' ,
'notnull' =>
true,
'length' => 4),
57 $ilDB->createTable(self::$tbl_notification_queue, $fields);
58 #$ilDB->addPrimaryKey(self::$tbl_notification_queue, array('notification_id', 'usr_id', 'notification_channel'));
59 $ilDB->addPrimaryKey(self::$tbl_notification_queue, array(
'notification_id',
'usr_id'));
62 if (!$ilDB->tableExists(self::$tbl_notification_osd_handler)) {
64 'notification_osd_id' => array(
'type' =>
'integer' ,
'notnull' =>
true,
'length' => 4),
65 'usr_id' => array(
'type' =>
'integer' ,
'notnull' =>
true,
'length' => 4),
66 'serialized' => array(
'type' =>
'text' ,
'notnull' =>
true,
'length' => 4000),
67 'valid_until' => array(
'type' =>
'integer' ,
'notnull' =>
true,
'length' => 4),
68 'time_added' => array(
'type' =>
'integer' ,
'notnull' =>
true,
'length' => 4),
69 'type' => array(
'type' =>
'text' ,
'notnull' =>
true,
'length' => 100),
71 $ilDB->createTable(self::$tbl_notification_osd_handler, $fields);
73 $ilDB->addPrimaryKey(self::$tbl_notification_osd_handler, array(
'notification_osd_id'));
77 #$ilDB->addIndex(self::$tbl_notification_osd_handler, array('usr_id', 'valid_until', 'time_added'));
79 $ilDB->createSequence(self::$tbl_notification_osd_handler);
82 if(!$ilDB->tableExists(self::$tbl_notification_channels)) {
84 'channel_name'=> array(
'type' =>
'text',
'notnull' =>
true,
'length' => 100),
85 'title' => array(
'type' =>
'text',
'notnull' =>
true,
'length' => 100),
86 'description'=> array(
'type' =>
'text',
'notnull' =>
true,
'length' => 4000),
87 'class' => array(
'type' =>
'text',
'notnull' =>
true,
'length' => 100),
88 'include' => array(
'type' =>
'text',
'notnull' =>
true,
'length' => 100),
89 'config_type' => array(
'type' =>
'text',
'notnull' =>
true,
'length' => 30),
91 $ilDB->createTable(self::$tbl_notification_channels, $fields);
93 $ilDB->addPrimaryKey(self::$tbl_notification_channels, array(
'channel_name'));
99 if(!$ilDB->tableExists(self::$tbl_notification_types)) {
101 'type_name'=> array(
'type' =>
'text',
'notnull' =>
true,
'length' => 100),
102 'title' => array(
'type' =>
'text',
'notnull' =>
true,
'length' => 100),
103 'description' => array(
'type' =>
'text',
'notnull' =>
true,
'length' => 100),
104 'notification_group' => array(
'type' =>
'text',
'notnull' =>
true,
'length' => 100),
105 'config_type' => array(
'type' =>
'text',
'notnull' =>
true,
'length' => 30),
107 $ilDB->createTable(self::$tbl_notification_types, $fields);
108 $ilDB->addPrimaryKey(self::$tbl_notification_types, array(
'type_name'));
117 public static function registerChannel($name,
$title, $description, $class, $classfile, $config_type =
'set_by_user') {
121 public static function registerType($name,
$title, $description, $notification_group, $config_type =
'set_by_user') {