Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Активная кнопка меню
Форумы портала PHP.SU » Клиентская разработка » HTML, Дизайн & CSS » Активная кнопка меню

Страниц (2): [1] 2 »
 

1. RayOfLight - 07 Февраля, 2009 - 20:38:36 - перейти к сообщению
Как сделать так, чтобы кнопка меню, соответсвующая активной странице, выделялась по-другому? Т.е. если открыта страница "Главная", то в меню кнопка "Главная", например, не красная, а синяя? Однако
2. vitaliy_mad - 07 Февраля, 2009 - 21:55:04 - перейти к сообщению
< a href=... style="color:blue">blue link</a>
3. CodeWarrior - 07 Февраля, 2009 - 22:14:55 - перейти к сообщению
vitaliy_mad пишет:
< a href=... style="color:blue">blue link</a>

Да неее... Он хочет чтобы при переходе по ссылке - меню ПРОДОЛЖАЛО быть отличным от других пунктов. Я ищу как раз этот материал в интернете. Как найду поделюсь.
4. vitaliy_mad - 07 Февраля, 2009 - 22:22:10 - перейти к сообщению
в смысле выделялось? активный пункт меню? тогда все правильно.. в зависимости от реализации меню... активной кнопке(ссылке) присваиваем стиль...
(Добавление)
например:
$menus - список пунктов меню
$actm - текущая страница

тогда вывод меню
CODE (text):
скопировать код в буфер обмена
  1. for ($i=0;$i<count($menus);$i++)
  2. {
  3.   echo "<a href=$links[$i]".(($actm===$menus[$i])?(" style='color:blue;'"):("")).">$menus[$i]."</a><br>";
  4. }
5. CodeWarrior - 07 Февраля, 2009 - 22:33:29 - перейти к сообщению
Во! Точно. Ща пойду и посмотрю.
6. RayOfLight - 07 Февраля, 2009 - 23:16:35 - перейти к сообщению
Ммм... а если у меня меню в отдельном файле menu.php и присоединяется include'ом ?
7. Гость - 07 Февраля, 2009 - 23:23:18 - перейти к сообщению
в разном случае по разному.

мона вот так
articles.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $menu='articles.php';
  4. include('main.ph');
  5. ?>
  6.  


main.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $colors = array('index' => 'blue', 'articles' => 'blue');
  4. $colors[$menu] = red; //присваиваем цвет текущей странице
  5. echo "<A href=....><font color=$colors['index']главная</a>";
  6. echo "<a href=....><font color=$colors['articles']статьи</a>";
  7. ?>
  8.  

Думаю код понятен и ненуждатся в коментах
8. vitaliy_mad - 08 Февраля, 2009 - 00:10:06 - перейти к сообщению
RayOfLight
выложи скрипт вывода меню поменяем...
9. Champion - 08 Февраля, 2009 - 08:30:11 - перейти к сообщению
RayOfLight пишет:
Ммм... а если у меня меню в отдельном файле menu.php и присоединяется include'ом ?
А что мешает определить переменную, которая хранит какой-нибудь идентификатор активного меню и использовать ее в подключаемом файле, как vitaliy_mad написал?
Krist_ALL, использовать ассоц.массив тут нехорошо, потому, что медленно. Всего 2 цвета, а пунктов меню много. Если бы цветов тоже много было, тогда это удобно, а так - нет
10. RayOfLight - 08 Февраля, 2009 - 21:00:43 - перейти к сообщению
vitaliy_mad

Меню у меня статичное - вот такое:

PHP:
скопировать код в буфер обмена
  1.  
  2. <div id="menu">
  3. <a href="index.php">Главная</a>
  4. <a href="news.php">Новости</a>
  5. <a href="cats.php">Кошки</a>
  6. <a href="malecat.php">Кот</a>
  7. <a href="kitten.php">Котята</a>
  8. <a href="career.php">Карьера</a>
  9. <a href="gallery.php">Галерея</a>
  10. <a href="descendants.php">Потомки</a>
  11. </div>
  12.  
11. vitaliy_mad - 08 Февраля, 2009 - 21:36:32 - перейти к сообщению
Замени на:
PHP:
скопировать код в буфер обмена
  1. <div id="menu">
  2. <?PHP
  3. $menu=array("Главная"=>"index.php","Новости"=>"news.php","Кошки"=>"cats.php","Кот"=>"malecat.php","Котята"=>"kitten.php","Карьера"=>"career.php","Галерея"=>"gallery.php","Потомки"=>"Потомки");
  4. foreach($menu as $key=>$value)
  5. {
  6. echo "<a href='$value' ".((preg_match("/$value/",$_SERVER['PHP_SELF'])?" style='color:blue'":"").">$key</a>";
  7. }
  8. ?>
  9. </div>
12. RayOfLight - 08 Февраля, 2009 - 22:04:57 - перейти к сообщению
vitaliy_mad
Parse error: syntax error, unexpected ';' in S:\home\localhost\www\raincat\menu.php on line 15

Ошибка в строке echo "....................
13. vitaliy_mad - 08 Февраля, 2009 - 22:08:21 - перейти к сообщению
CODE (text):
скопировать код в буфер обмена
  1. echo "<a href='$value' ".((preg_match("/$value/",$_SERVER['PHP_SELF']))?" style='color:blue'":"").">$key</a>";

поменяй
14. RayOfLight - 08 Февраля, 2009 - 22:15:14 - перейти к сообщению
vitaliy_mad
Спасибо. Теперь работает.
15. Arkady - 09 Февраля, 2009 - 15:54:31 - перейти к сообщению
Думаю c помощью CSS было бы проще... Улыбка

 

Powered by ExBB FM 1.0 RC1