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;"); } }
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;'); } }
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; }
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;'); } }