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

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

Уважаемые гуру 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, для начала покажите мне ваши пункты меню и куда они ведут (ссылки проще говоря)

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

Сайт termokomplekt.ru, ссылки пока не созданы, только тестовые

Сайт пока тестовый, так что строго не суди

Изменено пользователем DarkFell
Ссылка на сообщение
Поделиться на других сайтах

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

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 .= '';

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

Изменено пользователем DarkFell
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

P.S.

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

Изменено пользователем EzS
Ссылка на сообщение
Поделиться на других сайтах

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 этот верный

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

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

Ссылка на сообщение
Поделиться на других сайтах
у меня работают статические страницы, но категории не работаю
что ты мне на словах - код показывай ;)
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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