X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Упрощение...
forest69
forest69
Topic Starter сообщение 13.3.2010, 15:11; Ответить: forest69
Сообщение #1


Есть вертикальное меню, состоящее из таких блоков:

<div class="slide_block">
<p class="menu_text" onmouseover="this.style.color='#CDC170'"; onmouseout="this.style.color='#FFF'">О нас</p>
</div>
<div class="sub_menu">
<ul>
<li><a href="./history.php">История</a></li>
<li><a href="./vipusk.php">Выпускники</a></li>
<li>Сотрудники</li>
<li>Награды</li>
<li>Дисциплины</li>
<li>Труды</li>
<li>Доктора и кандидаты наук</li>
</ul>
</div>


Я на страничках сайта показываю навигацию с какой страницы пришел пользователь, использую сессии.
Для этого в на 1 строке странички пишу так:

[PHP]
<?php $thisPage="История";
include('php/create_session.php');
?>
[/PHP]

На той страничке, где показывается навигация вставляю такой код:

<div id="nav">
<a href="./index.php" target="_self">Главная</a> / <?php include('php/insert_session.php'); ?>
</div>


Вот так выглядит файл insert_session.php:

[PHP]
<?php
session_start();
if ($page == 'История' || $page == 'Выпускники' || $page == 'Сотрудники' || $page == 'Награды' || $page == 'Дисциплины' || $page == 'Труды' || $page == 'Доктора и кандидаты наук')
{
echo('О нас / '.$page);
}
?>
[/PHP]

А теперь вопрос:
Можно ли как-то упростить использование условного оператора if?
А то ведь количество пунктов меню и подменю может меняться, тогда пришлось бы везде все в ручную дописывать.

У меня возникла идея упростить файл insert_session.php до какого-то такого вида, типа:

[PHP]
<?php
session_start();
if ($page == 'одному из пунктов подменю')
{
echo('$пункт_меню/ '.$page);
}
?>
[/PHP]

Но только не пойму что нужно использовать...
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 13.3.2010, 15:19; Ответить: ZhukV
Сообщение #2


Да можна.
Тули все это в массив, типа:

[PHP]
$ar=array('page1','page2','page3');//и т.д.
[/PHP]
А потом просто проверь, есть ли такое значение в массиве. За это отвечает in_array();
[PHP]
if(in_array($page,$ar))echo '';
[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
forest69
forest69
Topic Starter сообщение 13.3.2010, 15:23; Ответить: forest69
Сообщение #3


еще такой вопрос, можно ли сделать так, чтобы я из этого массива вставлял эти подпункты прямо в меню, причем еще и с соответствующими ссылками? тогда получится, что нужно будет только поменять колличество подменю в 1 месте(в массиве), а не в нескольких
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 13.3.2010, 15:26; Ответить: ZhukV
Сообщение #4


Да, можна, двумя вариантами.
Создвать два массива, 1 - название 2 - адрес

ЛИБО

Создать один массив, в которм индекс, это адрес, а ключ - название
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
forest69
forest69
Topic Starter сообщение 13.3.2010, 15:32; Ответить: forest69
Сообщение #5


а выводить в меню тогда циклом for?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 13.3.2010, 15:33; Ответить: ZhukV
Сообщение #6


можна for а можна foreach

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 20.4.2024, 18:26
Дизайн