message MDL-18977 made the message preference default setting code a little more sophisticated to accomodate some requests

This commit is contained in:
Andrew Davis
2010-10-27 02:14:26 +00:00
parent ea738b890d
commit 69554090c7
+20 -4
View File
@@ -283,18 +283,34 @@ function message_uninstall($component) {
function message_set_default_message_preferences($user) {
global $DB;
$onlineprocessor = 'email';
$defaultonlineprocessor = 'email';
$defaultofflineprocessor = 'email';
$offlineprocessortouse = $onlineprocessortouse = null;
//look for the pre-2.0 preference if it exists
$oldpreference = get_user_preferences('message_showmessagewindow', 0, $user->id);
if (!empty($oldpreference)) {
$onlineprocessor = 'popup';
$defaultonlineprocessor = 'popup';
}
$providers = $DB->get_records('message_providers');
$preferences = array();
foreach ($providers as $providerid => $provider) {
$preferences['message_provider_'.$provider->component.'_'.$provider->name.'_loggedin'] = $onlineprocessor;
$preferences['message_provider_'.$provider->component.'_'.$provider->name.'_loggedoff'] = 'email';
//force some specific defaults for some types of message
if ($provider->name=='instantmessage') {
$onlineprocessortouse = 'popup';
$offlineprocessortouse = 'email,popup';
} else if ($provider->name=='posts') { //forum posts
$offlineprocessortouse = $onlineprocessortouse = 'email';
} else {
$onlineprocessortouse = $defaultonlineprocessor;
$offlineprocessortouse = $defaultofflineprocessor;
}
$preferences['message_provider_'.$provider->component.'_'.$provider->name.'_loggedin'] = $onlineprocessortouse;
$preferences['message_provider_'.$provider->component.'_'.$provider->name.'_loggedoff'] = $offlineprocessortouse;
}
return set_user_preferences($preferences, $user->id);
}