0

Writing a New Class

I have been writing and testing a new PHP class today to make me easier to create my new site menu bar called menu class. It contains a nested unordered list and a for loop to create the sub-menus. I wrote a couple of variables that use explode function to convert the input values to arrays. Here is the code I have written so far:

<?php
class menu {
    function  __construct() {
            // Output the menu
        echo "<div id='nav'>n";
        echo "<ul>n";

        $this->item("Home", "/");

        $this->item("Blog", "blog");

        $this->item("Portfolio", "portfolio",
                "Resume=>resume,
                 About Me=>about");

        $this->item("Projects", "projects",
                "ICAP<br />Interagency Coalition on Adolescent Pregnancy=>icap");

        $this->item("School Assignments", "assignments",
                "CA 272<br />Pro Website Dev=>ca272,
                 CA 282<br />PHP & MySQL=>ca282,
                 CA 288<br />Adv ColdFusion=>ca288,
                 CS 110<br />Computer Concepts=>cs110");

        echo "</ul>n";
        echo "</div>n";
    }

    function item($menuItem, $linkLocation, $subItems="") {
        echo "<li>n";
        echo "<a href='{$linkLocation}' title='{$menuItem}'>$menuItem</a>n";
            // Insert the sub-menu items if there is one
        if (!empty($subItems)) {
            $this->submenu($subItems);
        }
        echo "</li>n";
    }

    function submenu($itemaLink) {
        $itemaLinks = explode(",", $itemaLink);
        echo "<div class='submenu'>n";
        echo "<ul>n";
        for ($i=0; $i", $itemaLinks[$i]);
                    // This is used for my courses names
                $title = explode("<br />", $itemLink[0]);
                if(sizeof($title) == 1) {
                    $title[1] = $itemLink[1];
                }
                echo "<li>n";
                echo "<a href='{$itemLink[1]}' title='{$title[1]}'>{$itemLink[0]}</a>n";
                echo "</li>n";
            }
        }
        echo "</ul>n";
        echo "</div>n";
    }
}
?>

Note the $itemLink variable from the code above. This is based on the array format. Equal greater than (=>) symbol is variable and value connector in an array. This makes me easier to remember to add a link to the corresponding item. I also added $title array later in the process to differentiate between course title (e.x. CA 288) and course name (e.x. Advanced ColdFusion Development). You can see the example on my beta site. Note that I have not added any JavaScript to animate the menu. I will add MooTools-based animation later after I complete writing this menu class.