PX : code

Menu Bar by Rob Fisher
Download this code


<?php

/*      Menu Bar v.1.0 by Rob Fisher
        24 August 1998

        This script is designed to be included in a file. Every time
        it is called, it scans the parent file's directory for other
        html/phtml pages and prints a bar of links to those pages. The
        displayed name of the link is taken from that page's <TITLE>
        tag. If no such tag is found, then the link is not printed.

        The first and last elements in the bar are default links,
        perhaps to the top of your document tree and the top of
        the current area. The second element, titled "up" just links
        to the parent directory.

        I use this script in our internal pages, and it works nicely
        and safely for me, though I can't guarantee absolutely that
        you'll be so lucky. Feel free to hack it about however you
        like.

        Have fun, and feel free to contact me at r.d.fisher@hud.ac.uk
*/

        
*/ Firstcreate a function to print the links themselvesThis
        makes it easy to change the look of the whole bar in one go
.

        If 
you want to display the bar more than once in a single page,
        
you'll have to move echo_link() out of this file or you'll get
        an error 
for trying to declare the same function twice.  */

        function 
echo_link($col$link$text) {
                echo 
"<TD BGCOLOR=\"$col\" ALIGN=CENTER VALIGN=MIDDLE>\r";
                echo 
"<A ";

                
/* by default, inline style is used to print the links in
                a small, white, sans-serif font with no underline */

                
echo "STYLE=\"text-decoration: none; font-weight: bold; ";
                echo 
"font-family: ariel, helvetica, sans-serif; ";
                echo 
"color: #FFFFFF; font-size: small\" ";

                echo 
"HREF=\"$link\">$text</A></SMALL></TD>\r";
        }

        
// Okay, let's open the TABLE and print the first default link

        
echo "<TABLE WIDTH=\"100%\"><TR>\r";
        
echo_link("#114711""/index.phtml""home");

        
// Now, the "up" link

        
echo_link("#111146""../""up");

        
/* If you're including this script from a function, you'll need
        to make $SCRIPT_FILENAME a global variable. */

        
if (!$SCRIPT_FILENAME)
                global 
$SCRIPT_FILENAME;

        
// We'll have to loop through all the files in the current directory

        
$d dir(dirname($SCRIPT_FILENAME));
        while(
$file=$d->read()):

        
/* we don't want this file or any directories, but we do want all
        .html and .phtml files */

                
if (($file != basename($SCRIPT_FILENAME)) && (is_file($file))
                && 
eregi("html$"$file)):
                        
$fp fopen("$file""r");

                        
$build "";
                        
$flag 0;

                        for (
$i 0; !feof($fp); $i++) {
                                
$line fgets($fp1024);

                                
/* The <TITLE> tag MUST be opened at the
                                beginning of a new line */

                                
if (ereg("^<TITLE>"$line))
                                        
$flag 1;

                                if (
$flag == 1)
                                        
$build $build.$line;

                                if (
ereg("</TITLE>"$line))
                                        
$flag 0;
                        }

                        if (
$build ""):
                                
$build ereg_replace("<TITLE>"""$build);
                                
$build ereg_replace("</TITLE>"""$build);
                                
$build trim($build);
                                
echo_link("#111111"$file$build);
                        endif;
                endif;

        endwhile;

        
// To finish off the bar, the other fixed link

        
echo_link("#114711""/intranet/index.phtml""intranet");
        echo 
"</TR></TABLE>";

        
// and finally, close the directory

        
$d->close();
?>

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.