PX : code

navbar.php3 by Dougal Campbell
Download this code


<?php
    
/*
      *  navbar.php3  --  Version  1.0,  98/07/24
      *  
      *  Dougal  Campbell  <dougal@gunters.org>
      *  http://www.gunters.org/~dougal/
      *
      *  Provides  a  common  navigation  bar  to  a  set  of  pages,  dynamically
      *  making  sure  that  the  link  to  the  current  page  isn't  hyperlinked.
      *
      *  Usage:
      *      In  each  file  which  will  display  the  navigation  bar:
      *          <?php  include  "navbar.php3";  ?>
      *
      *      Edit  $links_arr  to  contain  the  name  of  the  link  and  the  
      *      URL  for  link  (can  be  relative  or  absolute  URL).
      *  
      *  TODO:
      *      o    Read  array  from  a  flat  text  file
      *      o    Read  array  from  database
      *      o    Support  for  graphical  buttons  instead  of  just  text
      *      o    Support  for  frame  targets
      *
      */ 

    /*  User  configurable  variables  */ 

    
$links_arr  =  array(
        
"Test  Page  1"  =>  "/~dougal/test1.phtml",
        
"Test  Page  2"  =>  "/~dougal/test2.phtml",
        
"Test  Page  3"  =>  "/~dougal/test3.phtml"
    
);

    
$separator  =  "  |  ";  /*  Put  a  vertical  bar  between  links  */ 

    /*  Main  code  begins  here  */ 
    
    /*  Step  through  the  array....  */ 
    
for  (reset($links_arr);  $name  =  key($links_arr);  next($links_arr))  {

        
$hyper  =  1;  /*  Hyperlink  on  by  default  */ 

        /*
          *  If  the  current  page  URI  matches  the  current  array  element,  
          *  don't  add  the  <A  HREF....>  stuff.  Use  the  $hyper  var  to  flag  it.
          */ 
        
if  ($REQUEST_URI  ==  $links_arr[$name])  {
            
$hyper  =  0;  /*  Don't  hyperlink  a  page  to  itself  */ 
        
}

        
/*  Conditionally  do  the  <A  HREF...>  part  for  hyperlinks  */ 
        
if  ($hyper)  {
            print  
"<A  HREF=\""  .  $links_arr[$name]  .  "\">";
        }

        print  
$name;    /*  Print  the  name  of  the  link  */ 

        
if  ($hyper)  {  print  "</A>";  }  /*  Close  the  hyperlink  */ 

        /*  Do  fancy  tricks  to  print  separators  between  links  
          *  The  next/prev  stuff  keeps  it  from  putting  a  trailing  '|'
          *  at  the  end  of  the  list  by  testing  to  see  if  we  are  currently
          *  looking  at  the  last  element  of  the  $links_arr  array.
          */ 
        
if  (next($links_arr))    {  print  $separator;  prev($links_arr);  }  
    }
?>

Comments or questions?
PX is running PHP 5.2.17
Thanks to Miranda Productions for hosting and bandwidth.
Use of any code from PX is at your own risk.