From c8d061208d5b0d4d3bd4f8ef36190a8d8bfcecb2 Mon Sep 17 00:00:00 2001 From: Andrew Davis Date: Fri, 22 Feb 2013 10:37:57 +0800 Subject: [PATCH] MDL-43188 core_message:reimplemented the beep on new message functionality from 1.9 --- lang/en/message.php | 2 +- lib/moodlelib.php | 19 ++++++++++++++++--- message/bell.mp3 | Bin 0 -> 5432 bytes message/bell.ogg | Bin 0 -> 4864 bytes message/edit.php | 4 ++-- message/renderer.php | 5 +++++ 6 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 message/bell.mp3 create mode 100644 message/bell.ogg diff --git a/lang/en/message.php b/lang/en/message.php index 6c8ae809c0e..aef3cfa7d09 100644 --- a/lang/en/message.php +++ b/lang/en/message.php @@ -32,7 +32,7 @@ $string['allmine'] = 'All messages to me or from me'; $string['allstudents'] = 'All messages between students in course'; $string['allusers'] = 'All messages from all users'; $string['backupmessageshelp'] = 'If enabled, then instant messages will be included in SITE automated backups'; -$string['beepnewmessage'] = 'Beep on new message'; +$string['beepnewmessage'] = 'Beep when popup notification is displayed'; $string['blockcontact'] = 'Block contact'; $string['blockedmessages'] = '{$a} message(s) to/from blocked users'; $string['blockedusers'] = 'Blocked users ({$a})'; diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 2b3b80bf45a..36178f77d86 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -10358,15 +10358,28 @@ function message_popup_window() { $strgomessage = get_string('gotomessages', 'message'); $strstaymessage = get_string('ignore','admin'); + $notificationsound = null; + $beep = get_user_preferences('message_beepnewmessage', ''); + if (!empty($beep)) { + // Browsers will work down this list until they find something they support. + $sourcetags = html_writer::empty_tag('source', array('src' => $CFG->wwwroot.'/message/bell.wav', 'type' => 'audio/wav')); + $sourcetags .= html_writer::empty_tag('source', array('src' => $CFG->wwwroot.'/message/bell.ogg', 'type' => 'audio/ogg')); + $sourcetags .= html_writer::empty_tag('source', array('src' => $CFG->wwwroot.'/message/bell.mp3', 'type' => 'audio/mpeg')); + $sourcetags .= html_writer::empty_tag('embed', array('src' => $CFG->wwwroot.'/message/bell.wav', 'autostart' => 'true', 'hidden' => 'true')); + + $notificationsound = html_writer::tag('audio', $sourcetags, array('preload' => 'auto', 'autoplay' => 'autoplay')); + } + $url = $CFG->wwwroot.'/message/index.php'; $content = html_writer::start_tag('div', array('id'=>'newmessageoverlay','class'=>'mdl-align')). html_writer::start_tag('div', array('id'=>'newmessagetext')). $strmessages. html_writer::end_tag('div'). - html_writer::start_tag('div', array('id'=>'newmessagelinks')). - html_writer::link($url, $strgomessage, array('id'=>'notificationyes')).'   '. - html_writer::link('', $strstaymessage, array('id'=>'notificationno')). + $notificationsound. + html_writer::start_tag('div', array('id' => 'newmessagelinks')). + html_writer::link($url, $strgomessage, array('id' => 'notificationyes')).'   '. + html_writer::link('', $strstaymessage, array('id' => 'notificationno')). html_writer::end_tag('div'); html_writer::end_tag('div'); diff --git a/message/bell.mp3 b/message/bell.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..1aacdb82eaf72d4506d9755f9711e081fbc1b3d5 GIT binary patch literal 5432 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 F{{S*zY%Kr) literal 0 HcmV?d00001 diff --git a/message/bell.ogg b/message/bell.ogg new file mode 100644 index 0000000000000000000000000000000000000000..e3f1a5e2d1e76b336f9b0002bfd4a0ee59cf6406 GIT binary patch literal 4864 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 literal 0 HcmV?d00001 diff --git a/message/edit.php b/message/edit.php index 89c437357f8..394058aea03 100644 --- a/message/edit.php +++ b/message/edit.php @@ -117,7 +117,7 @@ if (($form = data_submitted()) && confirm_sesskey()) { //process general messaging preferences $preferences['message_blocknoncontacts'] = !empty($form->blocknoncontacts)?1:0; - //$preferences['message_beepnewmessage'] = !empty($form->beepnewmessage)?1:0; + $preferences['message_beepnewmessage'] = !empty($form->beepnewmessage)?1:0; // Save all the new preferences to the database if (!set_user_preferences($preferences, $user->id)) { @@ -155,7 +155,7 @@ foreach ($processors as $processor) { //load general messaging preferences $preferences->blocknoncontacts = get_user_preferences( 'message_blocknoncontacts', '', $user->id); -//$preferences->beepnewmessage = get_user_preferences( 'message_beepnewmessage', '', $user->id); +$preferences->beepnewmessage = get_user_preferences( 'message_beepnewmessage', '', $user->id); /// Display page header $strmessaging = get_string('messaging', 'message'); diff --git a/message/renderer.php b/message/renderer.php index 9cc07af4188..4a7be2e260d 100644 --- a/message/renderer.php +++ b/message/renderer.php @@ -352,6 +352,10 @@ class core_message_renderer extends plugin_renderer_base { $output .= html_writer::start_tag('fieldset', array('id' => 'messageprocessor_general', 'class' => 'clearfix')); $output .= html_writer::nonempty_tag('legend', get_string('generalsettings','admin'), array('class' => 'ftoggler')); + $output .= html_writer::start_tag('div'); + $output .= html_writer::checkbox('beepnewmessage', 1, $preferences->beepnewmessage, get_string('beepnewmessage', 'message')); + $output .= html_writer::end_tag('div'); + $output .= html_writer::start_tag('div'); $output .= html_writer::checkbox('blocknoncontacts', 1, $preferences->blocknoncontacts, get_string('blocknoncontacts', 'message')); $output .= html_writer::end_tag('div'); @@ -364,6 +368,7 @@ class core_message_renderer extends plugin_renderer_base { $output .= html_writer::start_tag('div', array('class' => 'mdl-align')); $output .= html_writer::empty_tag('input', array('type' => 'submit', 'value' => get_string('updatemyprofile'), 'class' => 'form-submit')); $output .= html_writer::end_tag('div'); + $output .= html_writer::end_tag('form'); return $output; }