Class "currentpage" is now added to all internal links, including sidebar buttons, if the link points to the current page.
authorDan
Wed, 27 May 2009 09:44:07 -0400 (2009-05-27)
changeset 1003 28e2f75d66fd
parent 1002 4d1bb8deee88
child 1004 e01c51cc1b35
Class "currentpage" is now added to all internal links, including sidebar buttons, if the link points to the current page.
includes/render.php
includes/template.php
--- a/includes/render.php	Wed May 27 09:12:59 2009 -0400
+++ b/includes/render.php	Wed May 27 09:44:07 2009 -0400
@@ -574,10 +574,12 @@
    * @param string Text to process
    * @param string Optional. If included will be used as a template instead of using the default syntax.
    * @param bool If false, does not add wikilink-nonexistent or check for exsistence of pages. Can reduce DB queries; defualts to true.
+   * @param string Page ID. If specified, class="currentpage" will be added to links if they match the given page ID and namespace
+   * @param string Namespace. If specified, class="currentpage" will be added to links if they match the given page ID and namespace
    * @return string
    */
   
-  public static function parse_internal_links($text, $tplcode = false, $do_exist_check = true)
+  public static function parse_internal_links($text, $tplcode = false, $do_exist_check = true, $match_page_id = false, $match_namespace = false)
   {
     global $db, $session, $paths, $template, $plugins; // Common objects
     
@@ -607,6 +609,9 @@
       $quot = '"';
       $exists = ( ($do_exist_check && isPage($pid_clean)) || !$do_exist_check ) ? '' : ' class="wikilink-nonexistent"';
       
+      if ( $match_page_id && $match_namespace && $pid_clean === $paths->get_pathskey($match_page_id, $match_namespace) )
+        $exists .= ' class="currentpage"';
+      
       if ( $tplcode )
       {
         $parser->assign_vars(array(
@@ -637,6 +642,9 @@
       $quot = '"';
       $exists = ( ($do_exist_check && isPage($pid_clean)) || !$do_exist_check ) ? '' : ' class="wikilink-nonexistent"';
       
+      if ( $match_page_id && $match_namespace && $pid_clean === $paths->get_pathskey($match_page_id, $match_namespace) )
+        $exists .= ' class="currentpage"';
+      
       if ( $tplcode )
       {
         $parser->assign_vars(array(
--- a/includes/template.php	Wed May 27 09:12:59 2009 -0400
+++ b/includes/template.php	Wed May 27 09:44:07 2009 -0400
@@ -1090,7 +1090,7 @@
     
     $parser->assign_vars(Array(
         'HREF'=>makeUrlNS('Special', 'Login/' . $local_page),
-        'FLAGS'=>'onclick="if ( !KILL_SWITCH ) { ajaxStartLogin(); return false; }"',
+        'FLAGS'=>'onclick="if ( !KILL_SWITCH ) { ajaxStartLogin(); return false; }"' . ( $local_page_id == 'Login' && $local_namespace == 'Special' ? ' class="currentpage"' : '' ),
         'TEXT'=>$lang->get('sidebar_btn_login'),
       ));
     
@@ -1098,7 +1098,7 @@
     
     $parser->assign_vars(Array(
         'HREF'=>makeUrlNS('Special', 'ChangeStyle/'.$local_page),
-        'FLAGS'=>'onclick="if ( !KILL_SWITCH ) { ajaxChangeStyle(); return false; }"',
+        'FLAGS'=>'onclick="if ( !KILL_SWITCH ) { ajaxChangeStyle(); return false; }"' . ( $local_page_id == 'ChangeStyle' && $local_namespace == 'Special' ? ' class="currentpage"' : '' ),
         'TEXT'=>$lang->get('sidebar_btn_changestyle'),
       ));
     
@@ -1826,7 +1826,7 @@
     $message = RenderMan::process_imgtags_stage2($message, $taglist);
     
     // Internal links
-    $message = RenderMan::parse_internal_links($message, $tplvars['sidebar_button'], false);
+    $message = RenderMan::parse_internal_links($message, $tplvars['sidebar_button'], false, $this->page_id, $this->namespace);
     
     // External links