Сделаем менюшку на PHP7:
Класс menu.php:
Код:
<?php
class Menu {
private $str_id;
private $arr_items;
private $int_count;
public function __construct($str_id) {
$this->str_id = $str_id;
$this->arr_items = array();
$this->int_count = 0;
}
public function add_item($str_text, $str_url) {
$this->arr_items[$this->int_count] = array('text' => $str_text, 'url' => $str_url);
$this->int_count++;
}
public function render($arr_params = NULL) {
$str_class_nav = '';
$str_class_menu = '';
$str_class_menu_item = '';
$str_class_menu_anchor = '';
if(is_array($arr_params)) {
if(isset($arr_params['class_nav']))
$str_class_nav = ' class="' . $arr_params['class_nav'] . '" ';
if(isset($arr_params['class_menu']))
$str_class_menu = ' class="' . $arr_params['class_menu'] . '" ';
if(isset($arr_params['class_menu_item']))
$str_class_menu_item = ' class="' . $arr_params['class_menu_item'] . '" ';
if(isset($arr_params['class_menu_anchor']))
$str_class_menu_anchor = ' class="' . $arr_params['class_menu_anchor'] . '" ';
}
$str_result = '<nav ' . $str_class_nav . 'id="' . $this->str_id . '"><ul' . $str_class_menu . '>';
foreach($this->arr_items as $arr_item)
$str_result .= sprintf('<li' . $str_class_menu_item . '><a '. $str_class_menu_anchor . 'href="%s">%s</a></li>', $arr_item['url'], $arr_item['text']);
$str_result .= '</ul>';
return $str_result;
}
}
?>Код index.php:
Код:
<?php
require_once('menu.php');
$mnu = new Menu('menu');
$mnu->add_item('Стартовая страница', 'index.php');
$mnu->add_item('Продукты', 'product.php');
$mnu->add_item('Контакт', 'contact.php');
$mnu->add_item('О нас', 'about.php');
?>
<!DOCTYPE html>
<html>
<head>
<title>Menu Demo</title>
<style>
.nav { background-color:blue; }
.menu { list-style-type:none; margin:0; padding:0; overflow:hidden; }
.menuitem { float:left; }
.menuitem a { display:block; color:white; text-align: center; padding:10px 7px; text-decoration:none; border:1px solid blue;}
.menuitem a:hover { background-color:white; color:blue; border:1px solid yellow;}
</style>
</head>
<body>
<?=$mnu->render(array('class_nav' => 'nav',
'class_menu' => 'menu',
'class_menu_item' => 'menuitem'));
?>
</body>
</html>Результат: