| 
<?php
//////////////////////////////////////////////////////////////////////////////
 // Class: htRoundedMenus
 //
 // Make sure you get the GIFs for the corners and the 1x1 transparent pixel.
 // Otherwise, the menus won't look right.
 // The GIFs, this file, and example usage are available at:
 //    http://www.harrytravis.com/htRoundedMenus/htRoundedMenus.zip
 //
 // Add menus with rounded corners to your web page.
 // See rounded.php for example usage.
 // This is fairly procedural instead of OO, but some things should be...
 //
 // This is absolutely free.
 // Use it at your own risk.
 // Do whatever you want with it.
 //
 // I'd be interested to hear if you find it useful.
 //
 // Author: Harry Travis, [email protected]
 //////////////////////////////////////////////////////////////////////////////
 class htRoundedMenus
 {
 ///////////////////////////////////////////////////////////////////////////
 // Instantiate one htRoundedMenus object per page.
 function htRoundedMenus()
 {
 // overwrite these values to customize your menus
 $this->background_color = "99CCCC";
 $this->foreground_color = "FFFF99";
 $this->title_font_style = "color:ffff99; text-decoration:none; font-weight:bold; font-size:12pt; font-family:trebuchet,trebuchet MS,arial,sans-serif;";
 $this->option_font_style = "color:99cccc; text-decoration:none; font-size:12pt; font-family:trebuchet,trebuchet MS,arial,sans-serif;";
 
 // width of the menu (pixels)
 $this->menu_width = 150;
 
 // space between menus
 $this->menu_padding = 3;
 
 // URLs for left and right rounded corners
 $this->left_corner = "left_corner.gif";
 $this->right_corner = "right_corner.gif";
 $this->one_by_one = "1x1.gif";
 }
 
 ///////////////////////////////////////////////////////////////////////////
 // For each menu on your page, call this method.
 // URL is optional.
 function NewMenu($title_text,$title_url="")
 {
 $this->title_text = $title_text;
 $this->title_url = $title_url;
 $this->options = array();
 $this->inner_html = "";
 }
 
 ///////////////////////////////////////////////////////////////////////////
 // For each option on a menu, call this method.
 // URL is optional.
 // Do not add two options with same title to a menu.
 function AddOption($text,$url="")
 {
 $this->options[$text] = $url;
 }
 
 ///////////////////////////////////////////////////////////////////////////
 // Setting inner HTML replaces all options.
 // Options and inner HTML are mutually exclusive.
 function SetInnerHTML($html)
 {
 $this->inner_html = $html;
 }
 
 ///////////////////////////////////////////////////////////////////////////
 function OpenMenu()
 {
 if ( $this->title_url )
 {
 $title = "<a style='".$this->title_font_style."' ".
 "href='".$this->title_url."'>".$this->title_text."</a>";
 }
 else
 {
 $title = "<font style='".$this->title_font_style."'>".
 $this->title_text."</font>";
 }
 ?>
 <table border=0 cellpadding=0 cellspacing=0 bgcolor="<?=$this->background_color?>">
 <tr>
 <?php // each corner is 4 pixels wide, so subtract 8 from menu width for title cell ?>
 <td><img src="<?=$this->left_corner?>" width=4 height=25 border=0></td>
 <td width="<?=$this->menu_width-8?>" style="<?=$this->title_font_style?>" valign="middle">
 <?=$title?>
 </td>
 <td><img src="<?=$this->right_corner?>" width=4 height=25 border=0></td>
 </tr>
 <?php
 }
 
 ///////////////////////////////////////////////////////////////////////////
 function CloseMenu()
 {
 // the height of this img sets the spacing between menus
 ?>
 <tr><td colspan=3><img src="<?=$this->one_by_one?>" width="<?=$this->menu_width?>" height="<?=$this->menu_padding?>" border=0></td></tr>
 </table>
 <?php
 }
 
 ///////////////////////////////////////////////////////////////////////////
 function WriteMenuBody()
 {
 // do nothing if no options and no HTML
 if ( !$this->inner_html && count($this->options) == 0 )
 {
 return;
 }
 
 // open menu body
 ?>
 <tr>
 <td colspan=3>
 <table bordercolor="<?=$this->background_color?>" bgcolor="<?=$this->foreground_color?>" border=1 borderstyle="solid" cellpadding=3 cellspacing=0 width="100%">
 <tr><td>
 <?php
 
 // write inner HTML
 if ( $this->inner_html )
 {
 echo "<font style='".$this->option_font_style."'>";
 echo $this->inner_html;
 echo "</font>\n";
 }
 // write options
 else if ( count($this->options) > 0 )
 {
 foreach ($this->options as $text => $url )
 {
 if ( $url )
 {
 $op = "<a style='".$this->option_font_style."' href='$url'>$text</a>\n";
 }
 else
 {
 $op  = "<font style='".$this->option_font_style."'>$text</font>";
 }
 echo " $op<br>";
 }
 }
 
 // close menu body
 ?>
 </td></tr>
 </table>
 </td>
 </tr>
 <?php
 }
 
 ///////////////////////////////////////////////////////////////////////////
 // After all options have been added to a menu, call this method.
 // It prints out the HTML for the menu.
 function WriteMenu()
 {
 $this->OpenMenu();
 $this->WriteMenuBody();
 $this->CloseMenu();
 return;
 }
 }
 ?>
 |