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



 

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

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

Открыть тему
Тема закрыта
> Проверка названия текущей страницы
magestro
magestro
Topic Starter сообщение 26.6.2012, 23:48; Ответить: magestro
Сообщение #1


Всем доброго времени суток!
Заранее извиняюсь за вопрос, так как понимаю что это похоже на "НАПИШИТЕ ЗА МЕНЯ КОД".
И, скорее всего, похожие темы уже понимались, но кривизна моих рук слишком велика для решения подобием.

Сабж:

Если страницы index.php, news.php, rolls.php.... и т.д.
Есть менюшка с ссылками: Главная, Новости, Роллы,и т.д.соответсвенно.
В зависимости от того, на какой странице находишься менялся бэкграунд ссылки на эту страницу(появлялась зелёная лампочка). При наведении на какую-либо ссылку появляется всё та же зелёная лампочка.

Реализовывалось всё при помощи ксс: a:hover{background url(..)}//изменялся БГ при наведении на ссылку
#menu .current_page_item a {
background: url(....) no-repeat center top }//у каждой страницы у ссылки на саму себя в блоке стоял класс current_page_item

Появилась необходимость делать менюшку с помощью require(для удобства). Напомню, эта функция позволяет вставить html код || php скрипт в любое место страницы.

Но необходимость в том, что бы на каждой странице подсвечивалась своя ссылка осталась.
Как я планирую это реализовать? В файле menu.php, который подключается require сделать примерно так:
<li *Если* Page_name=="index.php" *то* 'class="current_page_item" ' == *читается*><a href="Index.php">Домашняя</a </li>

<li *Если* Page_name=="news.php" *то* 'class="current_page_item" ' == *читается*><a href="news.php">Новости</a></li>
<li *Если* Page_name=="rolls.php" *то* 'class="current_page_item" ' == *читается*><a href="rolls.php">Роллы</a></li>

Вопрос: как это сделать.

И есть ещё один вопрос, почитать чтонибудь для нуба в пхп, но не нуба в ООП, с условием на то, что в книге должно быть примеров больше чем теории(из теории хватит списка команд и их краткого описания) и чем меньше страниц, тем лучше?

Заранее спасибо за ответ, надеюсь на понимание к халявщику.(к слову гугл я порыл на эту тему, но правильно воспринять информацию не смог)

PS
Напоминаю, что в PHP я полный профан.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
сообщение 26.6.2012, 23:54; Ответить: sc2r2bey
Сообщение #2


может это будет интересно? http://www.softtime.ru/article/index.php?id_article=69


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
magestro
magestro
Topic Starter сообщение 27.6.2012, 0:12; Ответить: magestro
Сообщение #3


Если что-то не так с цветом, то опять же извиняюсь,пытался сделать максимально читабельным.

может это будет интересно? http://www.softtime....p?id_article=69

Отлично! Функция
$_SERVER['PHP_SELF']

возращает название страницы(точнее адрес). Теперь следующие шани:
1)как выделить из адреса текст до слэша.
2)Как сделать проверку(хотя ладно, это сам найду)
3)Как сделать так, чтобы в случае фолс браузер не читал(не воспринимал) часть кода?

Если что-то не так с цветом, то опять же извиняюсь,пытался сделать максимально читабельным.


Отлично! Функция
$_SERVER['PHP_SELF']

возращает название страницы(точнее адрес). Теперь следующие шани:
1)как выделить из адреса текст до слэша.
2)Как сделать проверку(хотя ладно, это сам найду)
3)Как сделать так, чтобы в случае фолс браузер не читал(не воспринимал) часть кода?


По третьему пункту:
как сделать что-то такого типа:
<li *Если* $_SERVER['PHP_SELF']=="index.php" *то* 'class="current_page_item" ' == *читается*><a href="Index.php">Домашняя</a </li>

<li *Если* $_SERVER['PHP_SELF']=="news.php" *то* 'class="current_page_item" ' == *читается*><a href="news.php">Новости</a></li>
<li *Если* $_SERVER['PHP_SELF']=="rolls.php" *то* 'class="current_page_item" ' == *читается*><a href="rolls.php">Роллы</a></li>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 27.6.2012, 1:25; Ответить: yury_mw
Сообщение #4


Как-то так:
<?php
/*складываем ссылки и заголовки пунктов меню в массив, чтобы потом удобно было выводить менюшку циклом */
$menu_item = array(
    'index.php' => 'Домашняя',
    'news.php' => 'Новости',
    'rolls.php' => 'Роллы'
);

/*получаем имя текущей страницы*/
$current_file_name = basename($_SERVER['PHP_SELF']);
/*выводим на экран меню и текущему пункту присваиваем класс "current"*/
echo "<ul>n";
foreach ($menu_item as $link=>$name){
    echo "t<li", ($link == $current_file_name ? ' class="current"' : ''), '><a href="', $link, '">', $name, "</a></li>n";
}
echo "</ul>n";
?>

Типа выводим менюшку, причем пункту меню со ссылкой на текущую страницу даем класс "current".
Например, для страницы news.php будет так:
<li><a href="index.php">Домашняя</a></li>
<li class="current"><a href="news.php">Новости</a></li>
<li><a href="rolls.php">Роллы</a></li>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
magestro
magestro
Topic Starter сообщение 27.6.2012, 1:52; Ответить: magestro
Сообщение #5


Как ни странно, но оно работает, хотя я ещё два часа буду разбираться как именно)
Большое спасибо, Вы мне очень помогли!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 27.6.2012, 1:55; Ответить: yury_mw
Сообщение #6


На здоровье. Только зачем 2 часа разбираться? :) Спрашивайте, которое место неясно?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
magestro
magestro
Topic Starter сообщение 27.6.2012, 2:05; Ответить: magestro
Сообщение #7


Чёрт возьми, оно реально работает! Ещё раз большое спасибо!

На здоровье. Только зачем 2 часа разбираться? :) Спрашивайте, которое место неясно?

Не ясен синтаксис) Просто не знаю PHP. Но следующие вопросы будут уж точно слишком глупыми и очевидными. Что значит, допустим, $ или array и как именно они работают я найду в гугле.
Ну, точнее принцип работы скрипта я понял, Меню айтем - это и есть сама менюшка, точнее ссылки на неё. А функция foreach соответсвенно уже задаёт параметры для ссылок, причём задаёт таким образом, что параметр класс зависит от названия страницы. Иное дело, что для того чтобы это хорошо понять и, главное, суметь повторить мне потребуется некоторое время. Большая часть из которого уйдёт на заварку чая/кофе и поис инфы по функциям.
Но тут уже я справлюсь)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 27.6.2012, 2:23; Ответить: yury_mw
Сообщение #8


Что значит, допустим, $ или array и как именно они работают я найду в гугле.

$ — это обозначение переменной, т.е. в моем коде
$menu_item
$current_file_name
$link
$name — это все переменные, т.е. поименованные ячейки для хранения различных данных.
array — это обозначение одного из типов переменных, а именно массива, т.е. кусок кода:

$menu_item = array(
    'index.php' => 'Домашняя',
    'news.php' => 'Новости',
    'rolls.php' => 'Роллы'
);

описывает объявление массива $menu_item, в который сразу после его объявления мы кладем пары связанных значений 'index.php' => 'Домашняя', 'news.php' => 'Новости', 'rolls.php' => 'Роллы'
foreach — это не функция, а оператор цикла, в котором последовательно перебираются все элементы нашего массива ($menu_item), причем конструкция в скобочках после слова foreach — ($menu_item as $link=>$name) обозначает, что на каждом этапе цикла, мы кладем наши парные элементы массива во временные переменные $link и $name, чтобы потом использовать их в теле цикла.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
magestro
magestro
Topic Starter сообщение 27.6.2012, 2:42; Ответить: magestro
Сообщение #9


Я как раз успел заварить чай)
Ещё раз спасибо, во всём разобрался)

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


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Проверка позиций сайтов в поисковых системах с помощью Positon.ru
Мониторинг продвижения сайтов
183 Positon 179471 12.4.2024, 8:32
автор: Positon
Открытая тема (нет новых ответов) Нужно ли закрывать ненужные страницы тегом noindex, follow?
8 noviktamw 2906 2.3.2024, 12:53
автор: toplinks
Открытая тема (нет новых ответов) Вытащить страницы из кэша Яндекса
2 VostrVL 1959 11.1.2024, 23:07
автор: ЛаврионСергеевич
Открытая тема (нет новых ответов) Сверстать страницы из figma
нужно сделать страницы для веб приложения
1 bluestorm 1296 7.6.2022, 18:11
автор: doharddocode
Открытая тема (нет новых ответов) Подобрать группы и страницы и разместить ссылку
4 Lacomka 3410 21.2.2022, 8:43
автор: АлексейWEB


 



RSS Текстовая версия Сейчас: 19.4.2024, 21:35
Дизайн