diff --git a/mod/forum/index.php b/mod/forum/index.php index 2c4c969bf8f..d54fc869988 100644 --- a/mod/forum/index.php +++ b/mod/forum/index.php @@ -195,16 +195,14 @@ if ($forum->trackingtype == FORUM_TRACKING_OPTIONAL) { - $trackedlink = ''.$stryes.''; + $trackedlink = print_single_button($CFG->wwwroot . '/mod/forum/settracking.php?id=' . $forum->id, '', $stryes, 'post', '_self', true, $strnotrackforum); } else { $trackedlink = $stryes; } } else { $unreadlink = '-'; - $trackedlink = ''.$strno.''; + $trackedlink = print_single_button($CFG->wwwroot . '/mod/forum/settracking.php?id=' . $forum->id, '', $strno, 'post', '_self', true, $strtrackforum); } } @@ -234,7 +232,7 @@ if ($can_subscribe) { $row[] = forum_get_subscribe_link($forum, $context, array('subscribed' => $stryes, 'unsubscribed' => $strno, 'forcesubscribed' => $stryes, - 'cantsubscribe' => '-'), $cantaccessagroup); + 'cantsubscribe' => '-'), $cantaccessagroup, false); } //If this forum has RSS activated, calculate it @@ -334,12 +332,11 @@ $unreadlink = ''.$unread.''; } if ($forum->trackingtype == FORUM_TRACKING_OPTIONAL) { - $trackedlink = ''.$stryes.''; + $trackedlink = print_single_button($CFG->wwwroot . '/mod/forum/settracking.php?id=' . $forum->id, '', $stryes, 'post', '_self', true, $strnotrackforum); } } else { $unreadlink = '-'; - $trackedlink = ''.$strno.''; + $trackedlink = print_single_button($CFG->wwwroot . '/mod/forum/settracking.php?id=' . $forum->id, '', $strno, 'post', '_self', true, $strtrackforum); } } @@ -379,7 +376,7 @@ if ($can_subscribe) { $row[] = forum_get_subscribe_link($forum, $context, array('subscribed' => $stryes, 'unsubscribed' => $strno, 'forcesubscribed' => $stryes, - 'cantsubscribe' => '-'), $cantaccessagroup); + 'cantsubscribe' => '-'), $cantaccessagroup, false); } //If this forum has RSS activated, calculate it diff --git a/mod/forum/lib.php b/mod/forum/lib.php index 30a64099e35..36915c0918e 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -3255,7 +3255,7 @@ function forum_post_subscription($post) { * at the top of the function. * @param */ -function forum_get_subscribe_link($forum, $context, $messages = array(), $cantaccessagroup = false) { +function forum_get_subscribe_link($forum, $context, $messages = array(), $cantaccessagroup = false, $fakelink=true) { global $CFG, $USER; $defaultmessages = array( 'subscribed' => get_string('unsubscribe', 'forum'), @@ -3281,20 +3281,80 @@ function forum_get_subscribe_link($forum, $context, $messages = array(), $cantac $linktitle = get_string('subscribestart', 'forum'); } - $link = ''; - // use to print button in case javascript is not enabled - $link .= ''; + $link = ''; + if ($fakelink) { + $link .= ''; + // use to print button in case javascript is not enabled + $link .= ''; + } $link .= print_single_button($CFG->wwwroot . '/mod/forum/subscribe.php?id=' . $forum->id, '', $linktext, 'post', '_self', true, $linktitle); - $link .= ''; + if ($fakelink) { + $link .= ''; + } return $link; } } + +/** + * Generate and return the track or no track link for a forum. + * @param object $forum the forum. Fields used are $forum->id and $forum->forcesubscribe. + */ +function forum_get_tracking_link($forum, $messages=array(), $fakelink=true) { + global $CFG, $USER; + + static $strnotrackforum, $strtrackforum; + + if (isset($messages['trackforum'])) { + $strtrackforum = $messages['trackforum']; + } + if (isset($messages['notrackforum'])) { + $strnotrackforum = $messages['notrackforum']; + } + if (empty($strtrackforum)) { + $strtrackforum = get_string('trackforum', 'forum'); + } + if (empty($strnotrackforum)) { + $strnotrackforum = get_string('notrackforum', 'forum'); + } + + if (forum_tp_is_tracked($forum, $USER->id)) { + $linktitle = $strnotrackforum; + $linktext = $strtrackforum; + } else { + $linktitle = $strtrackforum; + $linktext = $strnotrackforum; + } + + $link = ''; + if ($fakelink) { + $link .= ''; + // use to print button in case javascript is not enabled + $link .= ''; + } + $link .= print_single_button($CFG->wwwroot . '/mod/forum/settracking.php?id=' . $forum->id, + '', $linktext, 'post', '_self', true, $linktitle); + if ($fakelink) { + $link .= ''; + } + + return $link; +} + + + /** * */ diff --git a/mod/forum/view.php b/mod/forum/view.php index e08505bcddd..e417684d046 100644 --- a/mod/forum/view.php +++ b/mod/forum/view.php @@ -134,7 +134,7 @@ } else { echo $streveryoneisnowsubscribed; } - echo ''; + echo ''; } else if ($forum->forcesubscribe == FORUM_DISALLOWSUBSCRIBE) { $strsubscriptionsoff = get_string('disallowsubscribe','forum'); @@ -155,22 +155,12 @@ echo ''.$streveryonecannowchoose.''; } - echo '', forum_get_subscribe_link($forum, $context, - array('forcesubscribed' => '', 'cantsubscribe' => '')), ''; + echo '', forum_get_subscribe_link($forum, $context, + array('forcesubscribed' => '', 'cantsubscribe' => '')), ''; } - if (forum_tp_can_track_forums($forum) && ($forum->trackingtype == FORUM_TRACKING_OPTIONAL)) { - if (forum_tp_is_tracked($forum, $USER->id)) { - $trtitle = get_string('notrackforum', 'forum'); - $trackedlink = ''.get_string('forumtracked', 'forum').''; - } else { - $trtitle = get_string('trackforum', 'forum'); - $trackedlink = ''.get_string('forumtrackednot', 'forum').''; - } - echo ''; - echo "$trackedlink"; + if (($forum->trackingtype == FORUM_TRACKING_OPTIONAL) && forum_tp_can_track_forums($forum)) { + echo ''. forum_get_tracking_link($forum). '