2013-08-28 23:08:41 +00:00
< ?
class NotificationsManagerView {
private static $Settings ;
2013-10-07 08:01:03 +00:00
public static function load_js () {
?>
< script type = " text/javascript " src = " <?=STATIC_SERVER?>functions/noty/noty.js " ></ script >
< script type = " text/javascript " src = " <?=STATIC_SERVER?>functions/noty/layouts/bottomRight.js " ></ script >
< script type = " text/javascript " src = " <?=STATIC_SERVER?>functions/noty/themes/default.js " ></ script >
< script type = " text/javascript " src = " <?=STATIC_SERVER?>functions/user_notifications.js " ></ script >
2013-08-28 23:08:41 +00:00
< ?
}
public static function render_settings ( $Settings ) {
self :: $Settings = $Settings ;
?>
< tr >
2013-10-07 08:01:03 +00:00
< td class = " label " >
2013-08-28 23:08:41 +00:00
< strong > News announcements </ strong >
</ td >
< td >
< ? self :: render_checkbox ( NotificationsManager :: NEWS ); ?>
</ td >
</ tr >
< tr >
2013-10-07 08:01:03 +00:00
< td class = " label " >
2013-08-28 23:08:41 +00:00
< strong > Blog announcements </ strong >
</ td >
< td >
< ? self :: render_checkbox ( NotificationsManager :: BLOG ); ?>
</ td >
</ tr >
< tr >
2013-10-07 08:01:03 +00:00
< td class = " label " >
2013-08-28 23:08:41 +00:00
< strong > Inbox messages </ strong >
</ td >
< td >
< ? self :: render_checkbox ( NotificationsManager :: INBOX , true ); ?>
</ td >
</ tr >
< tr >
< td class = " label tooltip " title = " Enabling this will give you a notification when you receive a new private message from a member of the <?=SITE_NAME?> staff. " >
< strong > Staff messages </ strong >
</ td >
< td >
< ? self :: render_checkbox ( NotificationsManager :: STAFFPM ); ?>
</ td >
</ tr >
< tr >
2013-10-07 08:01:03 +00:00
< td class = " label " >
2013-08-28 23:08:41 +00:00
< strong > Thread subscriptions </ strong >
</ td >
< td >
< ? self :: render_checkbox ( NotificationsManager :: SUBSCRIPTIONS ); ?>
</ td >
</ tr >
< tr >
< td class = " label tooltip " title = " Enabling this will give you a notification whenever someone quotes you in the forums. " >
< strong > Quote notifications </ strong >
</ td >
< td >
< ? self :: render_checkbox ( NotificationsManager :: QUOTES ); ?>
</ td >
</ tr >
< ? if ( check_perms ( 'site_torrents_notify' )) { ?>
< tr >
< td class = " label tooltip " title = " Enabling this will give you a notification when the torrent notification filters you have established are triggered. " >
< strong > Torrent notifications </ strong >
</ td >
< td >
< ? self :: render_checkbox ( NotificationsManager :: TORRENTS , true ); ?>
</ td >
</ tr >
< ? } ?>
< tr >
< td class = " label tooltip " title = " Enabling this will give you a notification when a torrent is added to a collage you are subscribed to. " >
< strong > Collage subscriptions </ strong >
</ td >
< td >
< ? self :: render_checkbox ( NotificationsManager :: COLLAGES ); ?>
</ td >
</ tr >
< ? /**
< tr >
< td class = " label tooltip " title = " " >
< strong > Site alerts </ strong >
</ td >
< td >
< ? self :: render_checkbox ( NotificationsManager :: SITEALERTS ); ?>
</ td >
</ tr >
< tr >
< td class = " label tooltip " title = " " >
< strong > Forum alerts </ strong >
</ td >
< td >
< ? self :: render_checkbox ( NotificationsManager :: FORUMALERTS ); ?>
</ td >
</ tr >
< tr >
< td class = " label tooltip " title = " " >
< strong > Request alerts </ strong >
</ td >
< td >
< ? self :: render_checkbox ( NotificationsManager :: REQUESTALERTS ); ?>
</ td >
</ tr >
< tr >
< td class = " label tooltip " title = " " >
< strong > Collage alerts </ strong >
</ td >
< td >
< ? self :: render_checkbox ( NotificationsManager :: COLLAGEALERTS ); ?>
</ td >
</ tr >
< tr >
< td class = " label tooltip " title = " " >
< strong > Torrent alerts </ strong >
</ td >
< td >
< ? self :: render_checkbox ( NotificationsManager :: TORRENTALERTS ); ?>
</ td >
</ tr >
< ? **/
}
/*
* FIXME : The use of radio buttons with different " name " attributes is an ugly
* workaround for how NotificationsManager :: save_settings () is coded .
*/
private static function render_checkbox ( $Name , $Both = false ) {
$Checked = self :: $Settings [ $Name ];
if ( $Both ) {
$IsChecked = $Checked == 2 ? ' checked="checked"' : '' ;
?>
< input type = " radio " value = " 1 " name = " notifications_<?= $Name ?>_traditional " id = " notifications_<?= $Name ?>_traditional " < ? = $IsChecked ?> />
< label for = " notifications_<?= $Name ?>_traditional " > Traditional </ label >
< ?
}
$IsChecked = $Checked == 1 || ! isset ( $Checked ) ? ' checked="checked"' : '' ;
?>
2013-10-07 08:01:03 +00:00
< input < ? = $Both ? ' type="radio" value="1"' : ' type="checkbox"' ?> name="notifications_<?=$Name?>_popup" id="notifications_<?=$Name?>_popup"<?=$IsChecked?> />
2013-08-28 23:08:41 +00:00
< label for = " notifications_<?= $Name ?>_popup " > Pop - up </ label >
< ?
}
public static function format_traditional ( $Contents ) {
return '<a href="' . $Contents [ 'url' ] . '">' . $Contents [ 'message' ] . '</a>' ;
}
}