Перейти к публикации

Текущая страница


Рекомендованные сообщения

Уважаемые гуру DLE!

Я наткнулся на такую проблему, как выделение текущей страницы на сайте с помощью каскадных стилей! Вроде интересная и полезная вещь для многих пользователей, и мне и вам наверное будет интересно кто и как сделал такую возможность на DLE!

Вот оригинал статью, где говорилось про то, как можно сделать это с помощью PHP. Это можно реализовать?

Функция PHP include() предоставляет удобный способ вызвать посторонний файл с сервера. Вам также придется добавлять уникальный идентификатор в верхнюю часть каждой страницы, которую будет распознавать PHP (лучше всего до HTML тэга). Для этого создайте переменную $thisPage и присвойте ей значение, которое описанием и уникально для каждой страницы.

<div id="navigation">

<ul>

<li<?php if ($thisPage=="Page One")

echo " id=\"currentpage\""; ?>>

<a href="#">Страница 1</a></li>

<li<?php if ($thisPage=="Page Two")

echo " id=\"currentpage\""; ?>>

<a href="#">Страница 2</a></li>

<li<?php if ($thisPage=="Page Three")

echo " id=\"currentpage\""; ?>>

<a href="#">Страница 3</a></li>

<li<?php if ($thisPage=="Page Four")

echo " id=\"currentpage\""; ?>>

<a href="#">Страница 4 </a> </li>

</ul>

</div>

Ссылка на сообщение
Поделиться на других сайтах

конечно можно. в init.php подключаете файл menu.php где в переменную $menu записываете код меню с отмеченным пунктом "где мы сейчас"

в index.php пишете что-то типа

$tpl->set('{menu}',$menu);

Ссылка на сообщение
Поделиться на других сайтах

Я не понял)) Что надо написать файле menu.php? Мне надо сделать выделение ссылки каогда пользователь в ней, я не силен в пхп, так что можешь объяснить подробнее: что и как сделать?

Ссылка на сообщение
Поделиться на других сайтах

приведу пример своего menu.php подсвечивающего ссылку в зависимости от переменной $do

$menu_current = array();

$menu_current[$do] = ' class="current"';


$menu =<<<HTML

		<ul class="ls_menu">

			<li><a href="http://lifestar.ru/news/"{$menu_current['news']}>Модные новости</a></li>

			<li><a href="http://lifestar.ru/soon/"{$menu_current['anons']}>Анонсы событий</a></li>

			<li><a href="http://lifestar.ru/photo/"{$menu_current['photo']}>Фото репортажи</a></li>

			<li><a href="http://lifestar.ru/video/"{$menu_current['video']}>Видео: модное TV</a></li>

		</ul>


HTML;

Ссылка на сообщение
Поделиться на других сайтах

Сайт пока тестовый, так что строго не суди
в этом разделе этим не занимаются)

DarkFell, вот вы как будто специально уклончиво отвечаете на поставленные вопросы, когда как ясно что я задам ещё вопрос. Потому что ответа не получил.

1. Вы верхнее меню имеете в виду?

2. Какие всё таки ссылки будут?

Пока писал, пришёл в голову "универсальный" метод:

$menu_ar = array(

'/index.php'			=>	'Главная',

'/catalog_term.html'	=>	'Термометры',

'/test.html'			=>	'Тест',

'/test2.html'			=>	'Тест2',

'/cat/test/'			=>	'Тест3'

);

$mc = array();

$mc[$_SERVER['REQUEST_URI']] = ' class="current"';

$menu = '<div id="container"><div id="nav"><ul>';

foreach ($menu_ar as $menu_link => $menu_name)

{

	$menu .= '<li><a'.$mc[$menu_link].' href="'.$menu_link.'">'.$menu_name.'</a></li>'."\n";

}

$menu .= '</ul></div></div>';

Ссылка на сообщение
Поделиться на других сайтах

Да, я про верхнее меню говорил...а для левого придется создавать отдельный файл массива или же просто дописать требуемые пункты меню?

И просто подключаем в index и init этот файл?

вы как будто специально уклончиво отвечаете на поставленные вопросы, когда как ясно что я задам ещё вопрос

Не уклончиво, просто туго соображал... тяжелый вчера день был))

Ссылка на сообщение
Поделиться на других сайтах

а для левого придется создавать отдельный файл массива или же просто дописать требуемые пункты меню?
что значит отдельный файл массива? Для бокового тот же код, но с другими пунктами меню и другие там классы будут у контейнера. КОнечно можно написать мега универсальную функцию, которой кормить имя класса и массив пунктов и она на выходе будет отдавать готовое меню =)

И просто подключаем в index и init этот файл?
в init.php подключаем, в index.php делаем замену
$tpl->set('{menu}',$menu);

, соответственно в шаблоне где то должен быть {menu}

Ссылка на сообщение
Поделиться на других сайтах

Почему-то не пашет, ошибку выводит из первых строчек файла menu до изменения на класс current
я что - телепат?

ясно что я задам ещё вопрос
Какая ошибка?
Ссылка на сообщение
Поделиться на других сайтах

Вот начало файла и пишет

$menu_ar = array( '/index.php' => 'Главная', '/about' => 'О фирме' ); $mc = array(); $mc[$_SERVER['REQUEST_URI']] = ' class="current"'; $menu = ''.$menu_name.'

'; foreach ($menu_ar as $menu_link => $menu_name) { $menu .= ''.$menu_name.''."\n"; } $menu .= '

'.$menu_name.'

'; foreach ($menu_ar as $menu_link => $menu_name) { $menu .= ''.$menu_name.''."\n"; } $menu .= '';

и причем меню после этого вообще не работает((

Ссылка на сообщение
Поделиться на других сайтах

В файле то, что ты написал...я только оставил для теста 2 категории, создал на сайте меню, кинул файл в папку, прописал в init и index, и добавил в mail.tpl {menu}...вот и все

Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...

Как это я тему такую интересную просмотрел?-)

Вообще, попробовал, ни фига не получилось-)

lifestar, расскажи по пунктам

P.S.

Вот кстати ссылка: http://www.design-news.ru/css-style/Dinami...igacija-na-PHP/, про текст которой говорил топикстартер.

Ссылка на сообщение
Поделиться на других сайтах

DarkFell,

EzS,

конкретно напишите

Что в файле menu.php?

Вообще, попробовал, ни фига не получилось-)
что попробывал?))
Ссылка на сообщение
Поделиться на других сайтах

если файл menu.php состоит лишь из

$menu_ar = array(

'/index.php'			=>	'Главная',

'/catalog_term.html'	=>	'Термометры',

'/test.html'			=>	'Тест',

'/test2.html'			=>	'Тест2',

'/cat/test/'			=>	'Тест3'

);

$mc = array();

$mc[$_SERVER['REQUEST_URI']] = ' class="current"';

$menu = '<div id="container"><div id="nav"><ul>';

foreach ($menu_ar as $menu_link => $menu_name)

{

	$menu .= '<li><a'.$mc[$menu_link].' href="'.$menu_link.'">'.$menu_name.'</a></li>'."\n";

}

$menu .= '</ul></div></div>';

конечно он не будет работать!

Ссылка на сообщение
Поделиться на других сайтах

вот я и спрашивал по пунктам-)

черт, не на тот пост линк указан. http://forum.dle-news.ru/index.php?showtop...st&p=171198 этот верный

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

Скажи, уважаемый, я не пойму: у меня работают статические страницы, но категории не работают. Почему?

Ссылка на сообщение
Поделиться на других сайтах

Архивировано

Эта тема находится в архиве и закрыта для публикации сообщений.

×
×
  • Создать...