Сайтостроительство (8)

PHP-кодинг (25)

Веб-дизайн (9)

DHTML/JavaScript (8)

Подкастинг (1)

Безопасность в PHP (3)

Секретный раздел

Карта блога

Регистрация пользователей на PHP+MySQL

Скрипт гостевой книги с красивым дизайном

Галерея на jQuery

Простая система регистрации пользователей на сессиях

Галерея на php+jquery

Форма обратной связи с защитой типа капча

Шаблоны запросов и placeholders

Быстрое перенаправление средствами php

Flash плеер для вашего сайта

Сортировка столбцов в таблице на php+mysql

Каскадные листы стилей

Кэширование страничек на стороне сервера

Исправляем 2 CSS-бага в IE6.0 c помощью fix-заплаток

История развития Всемирной паутины

Сортировка столбцов в таблице на php+mysql

За весь период

За 2010-11

За 2009-06

За 2009-05

За 2009-04

За 2009-03

За 2009-02

За 2008-08

Бегун контекстная реклама

Ruseller видеоуроки

Letitbit файлообменник

Tak.Ru $$$ вебмастеру

WMmail почтовые рассылки

WMlink продажа трафика

Sape.Ru продажа ссылок

Главная » PHP-кодинг

РНР и CSS: динамическое оформление меню

Допустим, на всех страницах сайта необходимо разместить меню, содержание которого не зависит от текущей страницы. Выбранный пункт меню необходимо выделить другим стилем для обеспечения комфортной навигации по сайту.Кроме этого, желательно обеспечить легкое внесение изменений в меню(добавление новых пунктов) без необходимости изменения кода.
Список пунктов меню обычно выделяют в отдельный файл, например, menu.php.


<a class=normal href="page1.php">0 компапии</a><br> 
<a class=normal href="paqe2.рhр">Продукция</a><br> 
<a class=normal href-"page3.рhр">Контакты</a><br> 
<a class=normal href="page4.рhр">Документы</a><br>
<a class=normal href="page5.php">Kapтa сайта</a><br>

Указанный файл (menu.php) подключается на каждой странице с помощью конструкции require_once("menu.php"). Во избежание случайного повторного включения файла следует использовать оператор require_once вместо require или include.

Для оформления меню используются таблицы стилей CSS. Всем ссылкам присваивается класс CSS с именем normal (class=normal). При этом выбранный в данный момент пункт меню необходимо выделить, определив для него класс CSS c bменем active (class=active). На каждой странице перед подключением меню (menu.php) определяем переменную с номером пункта меню, который необходимо выделить, как это продемонстрировано в листинге ниже


<? 
// выделим пункт 3 меню (Контакты) 
$id_menu = 3; 
require_once("menu.php"); 
?>

И вот пример динамического оформления меню:


<?
eval("\$active$id_menu = 1;"); 
function stylemenu($activemenu) 
{
	if (isset($activemenu)) 
 	{return "class=active";}
        else {return "class=normal";}
}
?>
<a <?=stylemenu($active1)?>href="page1.php">O компании</a><br>
<a <?=stylemenu($active2)?>href="page2.php">Продукция</a><br>
<a <?=stylemenu($active3)?>href="page3.php">Контакты</a><br>
<a <?=stylemenu($active4)?>href="page4,php">Документы</a><br>
<a <?=stylemenu($active5)?>href="page5.php">Kapтa сайта</a><br> 

Переменная выбранного пункта меню инициализируется при помощи функции eval:
eval("\$active$id_menu = 1;")
К примеру, для третьего пункта ($id_menu = 3) меню эта конструкция инициализирует переменную $active3 = 1. Переменные для других пунктов останутся неинициализированными. В каждом пункте меню для динамического определения стиля вызывается ФУНКЦИЯ stylemenu:
<a <? echo stylemenu($active1)?> href="page1.php">O компании</a><br>
Функция stylemenu проверяет, инициализирована ли переменная, и в зависимости от этого определяет стиль (active либо normal). В качестве параметра функция styiemenu принимает переменную $activemenu. Если переменная инициализирована, то функция возвращает строку "class = active" (активные пункты меню). Для неинициализированных переменных будет возвращена строка "class = normal" (неактивные пункты меню). Таким образом, оформление отделено от кода. Содержание меню отделено от содержания страницы. При этом создание дополнительных страниц и пунктов меню требует минимальных усилий.

Комментировать

Автор: admin | Добавлена: 19.03.2009 | Просмотров: 7242
Рейтинг: 11 | Голосов: 3

Оцените заметку: 1 2 3 4 5

Последние обновления в категории: PHP-кодинг

Комментарии (0)

Комментариев пока нет!

Только авторизованные пользователи могут добавлять комментарии. Зарегистрироваться.

Логин:
Пароль:
 

Регистрация

: Тема:

Заметок в базе: 56
Комментариев: 0
Всего юзеров: 114
Сейчас онлайн: 2