Ejemplo n.º 1
0
 public static function set_quota_triggers()
 {
     set_config_plugin('artefact', 'file', 'quotanotifylimit', 80);
     set_config_plugin('artefact', 'file', 'quotanotifyadmin', false);
     // Create triggers to reset the quota notification flag
     if (is_postgres()) {
         $sql = "DROP FUNCTION IF EXISTS {unmark_quota_exeed_upd_set}() CASCADE;";
         execute_sql($sql);
         db_create_trigger('unmark_quota_exceed_upd_usr_set', 'AFTER', 'UPDATE', 'usr', "\n                UPDATE {usr_account_preference}\n                SET value = 0 FROM {artefact_config}\n                WHERE {usr_account_preference}.field = 'quota_exceeded_notified'\n                AND {usr_account_preference}.usr = NEW.id\n                AND {artefact_config}.plugin = 'file'\n                AND {artefact_config}.field = 'quotanotifylimit'\n                AND CAST(NEW.quotaused AS float)/CAST(NEW.quota AS float) < CAST({artefact_config}.value AS float)/100;");
     } else {
         $sql = "DROP TRIGGER IF EXISTS {unmark_quota_exceed_upd_set}";
         execute_sql($sql);
         db_create_trigger('unmark_quota_exceed_upd_usr_set', 'AFTER', 'UPDATE', 'usr', "\n                UPDATE {usr_account_preference}, {artefact_config}\n                SET {usr_account_preference}.value = 0\n                WHERE {usr_account_preference}.field = 'quota_exceeded_notified'\n                AND {usr_account_preference}.usr = NEW.id\n                AND {artefact_config}.plugin = 'file'\n                AND {artefact_config}.field = 'quotanotifylimit'\n                AND NEW.quotaused/NEW.quota < {artefact_config}.value/100;");
     }
 }
Ejemplo n.º 2
0
 public static function postinst($prevversion)
 {
     if ($prevversion == 0) {
         // Add triggers to update user unread message count when updating
         // notification_internal_activity
         db_create_trigger('update_unread_insert', 'AFTER', 'INSERT', 'notification_internal_activity', '
             IF NEW.read = 0 THEN
                 UPDATE {usr} SET unread = unread + 1 WHERE id = NEW.usr;
             END IF;');
         db_create_trigger('update_unread_update', 'AFTER', 'UPDATE', 'notification_internal_activity', '
             IF OLD.read = 0 AND NEW.read = 1 THEN
                 UPDATE {usr} SET unread = unread - 1 WHERE id = NEW.usr;
             ELSEIF OLD.read = 1 AND NEW.read = 0 THEN
                 UPDATE {usr} SET unread = unread + 1 WHERE id = NEW.usr;
             END IF;');
         db_create_trigger('update_unread_delete', 'AFTER', 'DELETE', 'notification_internal_activity', '
             IF OLD.read = 0 THEN
                 UPDATE {usr} SET unread = unread - 1 WHERE id = OLD.usr;
             END IF;');
     }
 }
Ejemplo n.º 3
0
function xmldb_notification_internal_upgrade($oldversion = 0)
{
    if ($oldversion < 2011112300) {
        execute_sql("\n            UPDATE {notification_internal_activity}\n            SET url = REPLACE(url, ?, '')\n            WHERE url IS NOT NULL", array(get_config('wwwroot')));
    }
    if ($oldversion < 2012021000) {
        // Populate the unread count on the usr table
        if (is_postgres()) {
            execute_sql('
                UPDATE {usr} SET unread = n.unread FROM (
                    SELECT usr, SUM(1 - read) AS unread FROM {notification_internal_activity} GROUP BY usr
                ) n WHERE {usr}.id = n.usr;');
        } else {
            if (is_mysql()) {
                execute_sql('
                UPDATE {usr} u, (SELECT usr, SUM(1 - "read") AS unread FROM {notification_internal_activity} GROUP BY usr) n
                SET u.unread = n.unread
                WHERE u.id = n.usr');
            }
        }
        // Create triggers to maintain the unread count
        db_create_trigger('update_unread_insert', 'AFTER', 'INSERT', 'notification_internal_activity', '
            IF NEW.read = 0 THEN
                UPDATE {usr} SET unread = unread + 1 WHERE id = NEW.usr;
            END IF;');
        db_create_trigger('update_unread_update', 'AFTER', 'UPDATE', 'notification_internal_activity', '
            IF OLD.read = 0 AND NEW.read = 1 THEN
                UPDATE {usr} SET unread = unread - 1 WHERE id = NEW.usr;
            ELSEIF OLD.read = 1 AND NEW.read = 0 THEN
                UPDATE {usr} SET unread = unread + 1 WHERE id = NEW.usr;
            END IF;');
        db_create_trigger('update_unread_delete', 'AFTER', 'DELETE', 'notification_internal_activity', '
            IF OLD.read = 0 THEN
                UPDATE {usr} SET unread = unread - 1 WHERE id = OLD.usr;
            END IF;');
    }
    return true;
}
Ejemplo n.º 4
0
 public static function postinst($prevversion)
 {
     if ($prevversion < 20131010) {
         // Add triggers to update user unread message count when updating
         // module_multirecipient_userrelation
         db_create_trigger('update_unread_insert2', 'AFTER', 'INSERT', 'module_multirecipient_userrelation', '
             IF NEW.role = \'recipient\' AND NEW.read = \'0\' THEN
                 UPDATE {usr} SET unread = unread + 1 WHERE id = NEW.usr;
             END IF;');
         db_create_trigger('update_unread_update2', 'AFTER', 'UPDATE', 'module_multirecipient_userrelation', '
             IF OLD.read = \'0\' AND NEW.read = \'1\' AND NEW.role = \'recipient\' THEN
                 UPDATE {usr} SET unread = unread - 1 WHERE id = NEW.usr;
             ELSEIF OLD.read = \'1\' AND NEW.read = \'0\' AND NEW.role = \'recipient\' THEN
                 UPDATE {usr} SET unread = unread + 1 WHERE id = NEW.usr;
             END IF;');
         db_create_trigger('update_unread_delete2', 'AFTER', 'DELETE', 'module_multirecipient_userrelation', '
             IF OLD.read = \'0\' AND OLD.role = \'recipient\' THEN
                 UPDATE {usr} SET unread = unread - 1 WHERE id = OLD.usr;
             END IF;');
     }
 }