|
|
|
|
|
для: Boris
(26.04.2005 в 15:19)
| | Да вы можете выделить меню в отдельный файл menu.php
<?php
// Если я правильно понял, то вот этот
var $main_buttons =
array( 'Главная' => 'index',
'О компании' => 'o_komp',
'Продукция' => 'prod_main',
'Производство' => 'proiz_main',
'Испытания' => 'isp_main',
'Система качества' => 'sq_main',
'Контакты' => 'kontakt',
'Новости, статьи' => 'news_main',
'Сертификаты, лицензии' => 'sert_main');
?>
|
и включать его при помощи инструкции include
<?php
class IndexPage extends WebPage
{
include "menu.php";
/// Выдергиваем из класса WebPage ф-ю, которая строит разметку под
/// меню и изменяем ее:
/// Не обращайте внимание на теги HTML и BODY, потом, когда этот
/// модуль отладится,
/// он будет существовать ввиде отдельной таблицы.
?>
|
| |
|
|
|
|
|
|
| Всем привет!
Буду краток как В.В. Путин.
Имеется проблема:
Есть файл WebPage.inc в котором создан класс WebPage, описывающий поведение страници моего сайта (на намом деле до этого еще далеко, но я решил идти до конца).
Создаю страницу, например index.php на основе этого класса:
все наследуется без изменений, кроме функции DisplayMenu(), создающей разметку под меню:
<?php
require('WebPage.inc');
require('menu_26_04.inc');
class IndexPage extends WebPage
{
var $main_buttons =
array( 'Главная' => 'index',
'О компании' => 'o_komp',
'Продукция' => 'prod_main',
'Производство' => 'proiz_main',
'Испытания' => 'isp_main',
'Система качества' => 'sq_main',
'Контакты' => 'kontakt',
'Новости, статьи' => 'news_main',
'Сертификаты, лицензии' => 'sert_main');
/// Выдергиваем из класса WebPage ф-ю, которая строит разметку под
/// меню и изменяем ее:
/// Не обращайте внимание на теги HTML и BODY, потом, когда этот
/// модуль отладится,
/// он будет существовать ввиде отдельной таблицы.
function DisplayMenu()
{ ?>
<html>
<HEAD>
<body>
<TABLE>
<TR>
<TD> <!-- Сюда может встать второстепенное меню
(из отдельного файла,
как ниже вставляется главное меню). --> </TD>
<TD><?php
$a = new Menu;
/// Эта функция задае тип страницы, чтобы отличать ее
/// от остальных, и подсветить именно эту ссылку в меню.
$a -> SetPageKind_1('index');
/// Эта ф-я строит главное меню.
$a -> DisplayMainMenu($this -> main_buttons);
?></TD>
</TR>
</TABLE>
</body>
</HEAD>
</html>
<?php
}
}
$b = new IndexPage;
$b -> DisplayMenu();
?>
|
Т.к. главное меню присутствует на всех страницах сайта, то на каждой создаваемой странице мне придется заново объявлять массив
$main_buttons, помещать его в родительский класс я не хочу, т.к. кроме него есть еше другие массивы различных подменю, которые будут бестолку грузиться когда они не нужны (например на главной странице). Можно ли как-нибудь этот массив выделить в виде отдельного файла и подключить в расположенный выше код?
Привожу код файла menu_26_04.inc из которого берется ф-я DisplayMainMenu():
<?php
class Menu
{
function DisplayMainMenu($main_buttons)
{ ?>
<TABLE width="130">
<TR>
<TD width="10" height="40" bgcolor="#666666"></TD>
<TD width="110" height="40" bgcolor="#cccccc"></TD>
</TR>
<?php while (list($name, $url) = each($main_buttons))
{
echo '<tr><td width="10" height="20" ';
echo $this -> getmenuimage_1("$url");
echo '>';
echo '<td width="110" height="20" bgcolor="#cccccc"><p class="nav1"><a class=';
echo $this -> getmenuclass_1("$url");
echo ' href="http://www.fenix88.nsk.su/';
echo "$url";
echo '.php">';
echo "$name";
echo '</p></a></td></tr>';
?>
<TR>
<TD width="10" height="1" bgcolor="#e6e6e6"></TD>
<TD width="10" height="1" bgcolor="#e6e6e6"></TD>
</TR>
<?php } ?>
<TR>
<TD width="10" height="40" bgcolor="#666666"></TD>
<TD width="110" height="40" bgcolor="#cccccc"></TD>
</TR>
</TABLE>
<?php
}
function SetPageKind_1($new_pagekind_1)
{
$this -> pagekind_1 = $new_pagekind_1;
}
function getmenuimage_1($kind)
{
if ($this -> pagekind_1==$kind)
{
return 'bgcolor="#000000"';
}
else
{
return 'bgcolor="#666666"';
}
}
function getmenuclass_1($kind)
{
if ($this -> pagekind_1==$kind)
{
return '"nav1_sel"';
}
else
{
return "nav1";
}
}
}
?>
|
P.S. Moby, когда я постигну это, я обязательно напишу тебе (и всем
остальным) как я это сделал.
Вот уже на протяжении нескольких дней я пытаюсь перевести
этот сайт http://www.fenix88.nsk.su на PHP.
Может кто что посоветует, а то напоминает игру в пятнашки,
где всегда нехватает чегото одного для того,
чтобы сложилась полная картина. | |
|
|
|
|