Fix for subscription and tracking buttons to remove links and improve accessibility and reduce crawler problems http://tracker.moodle.org/browse/MDLSITE-263

This commit is contained in:
moodler
2007-09-21 02:52:51 +00:00
parent c033e37f16
commit a365ee56cf
3 changed files with 79 additions and 32 deletions
+6 -9
View File
@@ -195,16 +195,14 @@
if ($forum->trackingtype == FORUM_TRACKING_OPTIONAL) {
$trackedlink = '<a title="'.$strnotrackforum.'" href="settracking.php?id='.
$forum->id.'">'.$stryes.'</a>';
$trackedlink = print_single_button($CFG->wwwroot . '/mod/forum/settracking.php?id=' . $forum->id, '', $stryes, 'post', '_self', true, $strnotrackforum);
}
else {
$trackedlink = $stryes;
}
} else {
$unreadlink = '-';
$trackedlink = '<a title="'.$strtrackforum.'" href="settracking.php?id='.
$forum->id.'">'.$strno.'</a>';
$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 = '<span class="read"><a href="view.php?f='.$forum->id.'">'.$unread.'</a></span>';
}
if ($forum->trackingtype == FORUM_TRACKING_OPTIONAL) {
$trackedlink = '<a title="'.$strnotrackforum.'" href="settracking.php?id='.
$forum->id.'">'.$stryes.'</a>';
$trackedlink = print_single_button($CFG->wwwroot . '/mod/forum/settracking.php?id=' . $forum->id, '', $stryes, 'post', '_self', true, $strnotrackforum);
}
} else {
$unreadlink = '-';
$trackedlink = '<a title="'.$strtrackforum.'" href="settracking.php?id='.$forum->id.'">'.$strno.'</a>';
$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
+68 -8
View File
@@ -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 = '<script type="text/javascript">';
$link .= 'document.getElementById("subscriptionlink").innerHTML = "<a title=\"' . $linktitle . '\" href=\"' . $CFG->wwwroot .
'/mod/forum/subscribe.php?id=' . $forum->id . '\">' . $linktext . '</a>";';
$link .= '</script>';
// use <noscript> to print button in case javascript is not enabled
$link .= '<noscript>';
$link = '';
if ($fakelink) {
$link .= '<script type="text/javascript">';
$link .= '//<![CDATA['."\n";
$link .= 'document.getElementById("subscriptionlink").innerHTML = "<a title=\"' . $linktitle . '\" href=\"' . $CFG->wwwroot .
'/mod/forum/subscribe.php?id=' . $forum->id . '\">' . $linktext . '<\/a>";';
$link .= '//]]>';
$link .= '</script>';
// use <noscript> to print button in case javascript is not enabled
$link .= '<noscript>';
}
$link .= print_single_button($CFG->wwwroot . '/mod/forum/subscribe.php?id=' . $forum->id,
'', $linktext, 'post', '_self', true, $linktitle);
$link .= '</noscript>';
if ($fakelink) {
$link .= '</noscript>';
}
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 .= '<script type="text/javascript">';
$link .= '//<![CDATA['."\n";
$link .= 'document.getElementById("trackinglink").innerHTML = "<a title=\"' . $linktitle . '\" href=\"' . $CFG->wwwroot .
'/mod/forum/settracking.php?id=' . $forum->id . '\">' . $linktext . '<\/a>";'."\n";
$link .= '//]]>'."\n";
$link .= '</script>';
// use <noscript> to print button in case javascript is not enabled
$link .= '<noscript>';
}
$link .= print_single_button($CFG->wwwroot . '/mod/forum/settracking.php?id=' . $forum->id,
'', $linktext, 'post', '_self', true, $linktitle);
if ($fakelink) {
$link .= '</noscript>';
}
return $link;
}
/**
*
*/
+5 -15
View File
@@ -134,7 +134,7 @@
} else {
echo $streveryoneisnowsubscribed;
}
echo '</span>';
echo '</span><br />';
} else if ($forum->forcesubscribe == FORUM_DISALLOWSUBSCRIBE) {
$strsubscriptionsoff = get_string('disallowsubscribe','forum');
@@ -155,22 +155,12 @@
echo '<span class="helplink">'.$streveryonecannowchoose.'</span>';
}
echo '<br /><span class="helplink" id="subscriptionlink">', forum_get_subscribe_link($forum, $context,
array('forcesubscribed' => '', 'cantsubscribe' => '')), '</span>';
echo '<div class="helplink" id="subscriptionlink">', forum_get_subscribe_link($forum, $context,
array('forcesubscribed' => '', 'cantsubscribe' => '')), '</div>';
}
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 = '<a title="'.get_string('notrackforum', 'forum').'" href="settracking.php?id='.
$forum->id.'&amp;returnpage=view.php">'.get_string('forumtracked', 'forum').'</a>';
} else {
$trtitle = get_string('trackforum', 'forum');
$trackedlink = '<a title="'.get_string('trackforum', 'forum').'" href="settracking.php?id='.
$forum->id.'&amp;returnpage=view.php">'.get_string('forumtrackednot', 'forum').'</a>';
}
echo '<br />';
echo "<span class=\"helplink\">$trackedlink</span>";
if (($forum->trackingtype == FORUM_TRACKING_OPTIONAL) && forum_tp_can_track_forums($forum)) {
echo '<div class="helplink" id="trackinglink">'. forum_get_tracking_link($forum). '</div';
}
}