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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ссылки

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Cyrax123
Отправлено: 26 Августа, 2008 - 15:07:01
Post Id


Гость


Покинул форум
Сообщений всего: 68
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




Всем привет. У меня такая проблема. Страницы сайта собраны при помощи include. Мне нужно сделать что например, если юзер на странице index.php, то ссілка на index.php не активна, а если переходит на другую страницу, то она активна.. и так далее... SSI это делается так, мне нужно также, только на php
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <!--#if expr="$DOCUMENT_URI=/^\/index.html/" -->
  3. <span class="bold">Главная</span>
  4. <!--#else -->
  5. <a  class="menu" href="/index.html">Главная</a>
  6. <!--#endif -->
  7. <!--#if expr="$DOCUMENT_URI=/^\/html\/index.html/" -->
  8. <span class="bold">HTML</span>
  9. <!--#else -->
  10. <a  class="menu" href="/html/index.html">HTML</a>
  11. <!--#endif -->
  12.  
 
 Top
pifon1989
Отправлено: 26 Августа, 2008 - 16:02:11
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Через вызов переменной на странице или сравнение текущего url с базовым.
PHP может только возвратить какие-то данные, дизайн, отмечающий разницу между активными и неактивными ссылками через него делать не стоит.
Самый простой метод:
Где-нибудь на вершине страницы (главное, чтобы над меню) пишете:

Тэги элемента заключаете в скрипт:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP if ($active != "index.php") echo '<a href = "index.php">'; ?>
  3. Главная
  4. <?PHP if ($active != "index.php") echo '</a>'; ?>
  5.  

В результате обработки интерпретатор вам вернёт простую строчку и тэги не загрузятся.

(Отредактировано автором: 26 Августа, 2008 - 16:06:05)



-----
Ассемблер для Чайников
Всем любителям Pascal посвящается:
function writeln($text) {echo '<br>'.$text};
 
 Top
Вездеход
Отправлено: 26 Августа, 2008 - 16:28:55
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




ага. а как быть если он не работает с $active? =)
не будет же он указывать в каждом скрипте название текущщего скрипта

если делать все как написал автор - то это надо сделать кактотак:

PHP:
скопировать код в буфер обмена
  1. <?PHP  
  2. $active = $_SERVER[SCRIPT_NAME];  // как раз получаем название текущщей странички. например "index.php"
  3. ?>

а дальше например так:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $menuarray=array();  / / массивчег с нашим меню.
  4. $menuarray['/index.php']="Главная страницы";
  5. $menuarray['/test/index.php']="Тест работы";
  6.  
  7. /*  
  8. ...
  9. ваш код, текст и т.д.  
  10. ...
  11. */
  12.  
  13. foreach($menuarray as $key=>$val)  // обрабатываем наши данные из массива для вывода меню
  14. {
  15. if ($active == $key) { echo "<a href = \"$key\">$val</a>";}
  16. else  { echo "<b>$val</b>"; }
  17. }
  18.  
ну или как в вышенаписанном примере... эт уже как угодно

(Отредактировано автором: 26 Августа, 2008 - 16:31:08)



-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
pifon1989
Отправлено: 26 Августа, 2008 - 16:44:55
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Вездеход пишет:
ага. а как быть если он не работает с $active? =)

Тогда заработает с $ac, $act, $acti. Улыбка


-----
Ассемблер для Чайников
Всем любителям Pascal посвящается:
function writeln($text) {echo '<br>'.$text};
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB