]> git.mjollnir.org Git - moodle.git/commitdiff
Fix for subscription and tracking buttons to remove links and improve accessibility...
authormoodler <moodler>
Fri, 21 Sep 2007 02:52:51 +0000 (02:52 +0000)
committermoodler <moodler>
Fri, 21 Sep 2007 02:52:51 +0000 (02:52 +0000)
mod/forum/index.php
mod/forum/lib.php
mod/forum/view.php

index 2c4c969bf8f47ba00191663f529f6f669bb8d36b..d54fc86998805bcf87cbcd76c7f9087c321dd686 100644 (file)
 
 
                     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);
                 }
             }
 
             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
                             $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);
                     }
                 }
 
                 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
index 30a64099e3560da8234fd7c50da7cb53736ba1af..36915c0918eb33ee041f665ac241034cb26a6fb1 100644 (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;  
+}
+
+
+
 /**
  * 
  */
index e08505bcddd4bc2166842e1c00156125bd08c47a..e417684d046d4f8f8f4854d7c6d3e9243c84ad0b 100644 (file)
             } else {
                 echo $streveryoneisnowsubscribed;
             }
-            echo '</span>';
+            echo '</span><br />';
 
         } else if ($forum->forcesubscribe == FORUM_DISALLOWSUBSCRIBE) {
             $strsubscriptionsoff = get_string('disallowsubscribe','forum');
                 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';
         }
 
     }