DarkFell 0 Опубликовано: 11 февраля 2008 Рассказать Опубликовано: 11 февраля 2008 Уважаемые гуру 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> Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 11 февраля 2008 Рассказать Опубликовано: 11 февраля 2008 конечно можно. в init.php подключаете файл menu.php где в переменную $menu записываете код меню с отмеченным пунктом "где мы сейчас" в index.php пишете что-то типа$tpl->set('{menu}',$menu); Ссылка на сообщение Поделиться на других сайтах
DarkFell 0 Опубликовано: 11 февраля 2008 Рассказать Опубликовано: 11 февраля 2008 Автор Я не понял)) Что надо написать файле menu.php? Мне надо сделать выделение ссылки каогда пользователь в ней, я не силен в пхп, так что можешь объяснить подробнее: что и как сделать? Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 11 февраля 2008 Рассказать Опубликовано: 11 февраля 2008 приведу пример своего 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 0 Опубликовано: 11 февраля 2008 Рассказать Опубликовано: 11 февраля 2008 Автор А эту переменную $do, надо как-то задать или прописать где-то? Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 11 февраля 2008 Рассказать Опубликовано: 11 февраля 2008 DarkFell, для начала покажите мне ваши пункты меню и куда они ведут (ссылки проще говоря) Ссылка на сообщение Поделиться на других сайтах
DarkFell 0 Опубликовано: 11 февраля 2008 Рассказать Опубликовано: 11 февраля 2008 Автор Сайт termokomplekt.ru, ссылки пока не созданы, только тестовые Сайт пока тестовый, так что строго не суди Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 11 февраля 2008 Рассказать Опубликовано: 11 февраля 2008 Сайт пока тестовый, так что строго не судив этом разделе этим не занимаются) 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>'; Ссылка на сообщение Поделиться на других сайтах
DarkFell 0 Опубликовано: 12 февраля 2008 Рассказать Опубликовано: 12 февраля 2008 Автор Да, я про верхнее меню говорил...а для левого придется создавать отдельный файл массива или же просто дописать требуемые пункты меню? И просто подключаем в index и init этот файл? вы как будто специально уклончиво отвечаете на поставленные вопросы, когда как ясно что я задам ещё вопрос Не уклончиво, просто туго соображал... тяжелый вчера день был)) Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 12 февраля 2008 Рассказать Опубликовано: 12 февраля 2008 а для левого придется создавать отдельный файл массива или же просто дописать требуемые пункты меню?что значит отдельный файл массива? Для бокового тот же код, но с другими пунктами меню и другие там классы будут у контейнера. КОнечно можно написать мега универсальную функцию, которой кормить имя класса и массив пунктов и она на выходе будет отдавать готовое меню =) И просто подключаем в index и init этот файл?в init.php подключаем, в index.php делаем замену $tpl->set('{menu}',$menu);, соответственно в шаблоне где то должен быть {menu} Ссылка на сообщение Поделиться на других сайтах
DarkFell 0 Опубликовано: 13 февраля 2008 Рассказать Опубликовано: 13 февраля 2008 Автор Почему-то не пашет, ошибку выводит из первых строчек файла menu до изменения на класс current Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 13 февраля 2008 Рассказать Опубликовано: 13 февраля 2008 Почему-то не пашет, ошибку выводит из первых строчек файла menu до изменения на класс currentя что - телепат? ясно что я задам ещё вопросКакая ошибка? Ссылка на сообщение Поделиться на других сайтах
DarkFell 0 Опубликовано: 13 февраля 2008 Рассказать Опубликовано: 13 февраля 2008 Автор Вот начало файла и пишет $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 .= ''; и причем меню после этого вообще не работает(( Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 13 февраля 2008 Рассказать Опубликовано: 13 февраля 2008 DarkFell, для того, чтобы вставить код пользуйтесб кнопкой "Код" или комбинацией Ссылка на сообщение Поделиться на других сайтах
DarkFell 0 Опубликовано: 14 февраля 2008 Рассказать Опубликовано: 14 февраля 2008 Автор Ну и как мне исправить? Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 14 февраля 2008 Рассказать Опубликовано: 14 февраля 2008 так, ещё раз. 1. какую ошибку пишет? 2. Что в файле menu.php? Ссылка на сообщение Поделиться на других сайтах
DarkFell 0 Опубликовано: 15 февраля 2008 Рассказать Опубликовано: 15 февраля 2008 Автор В файле то, что ты написал...я только оставил для теста 2 категории, создал на сайте меню, кинул файл в папку, прописал в init и index, и добавил в mail.tpl {menu}...вот и все Ссылка на сообщение Поделиться на других сайтах
EzS 2 Опубликовано: 18 апреля 2008 Рассказать Опубликовано: 18 апреля 2008 Как это я тему такую интересную просмотрел?-) Вообще, попробовал, ни фига не получилось-) lifestar, расскажи по пунктам P.S. Вот кстати ссылка: http://www.design-news.ru/css-style/Dinami...igacija-na-PHP/, про текст которой говорил топикстартер. Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 18 апреля 2008 Рассказать Опубликовано: 18 апреля 2008 DarkFell, EzS, конкретно напишите Что в файле menu.php? Вообще, попробовал, ни фига не получилось-)что попробывал?)) Ссылка на сообщение Поделиться на других сайтах
EzS 2 Опубликовано: 18 апреля 2008 Рассказать Опубликовано: 18 апреля 2008 Все снес уже, но: в меню.пхп был вышепреведенный код Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 18 апреля 2008 Рассказать Опубликовано: 18 апреля 2008 если файл 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>';конечно он не будет работать! Ссылка на сообщение Поделиться на других сайтах
EzS 2 Опубликовано: 18 апреля 2008 Рассказать Опубликовано: 18 апреля 2008 вот я и спрашивал по пунктам-) черт, не на тот пост линк указан. http://forum.dle-news.ru/index.php?showtop...st&p=171198 этот верный Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 18 апреля 2008 Рассказать Опубликовано: 18 апреля 2008 1. подключить menu.php в init.php 2. $tpl->set('{menu}',$menu); в Index.php 3. в шаблон {menu} Ссылка на сообщение Поделиться на других сайтах
EzS 2 Опубликовано: 20 мая 2008 Рассказать Опубликовано: 20 мая 2008 Скажи, уважаемый, я не пойму: у меня работают статические страницы, но категории не работают. Почему? Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 20 мая 2008 Рассказать Опубликовано: 20 мая 2008 у меня работают статические страницы, но категории не работаючто ты мне на словах - код показывай Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Архивировано
Эта тема находится в архиве и закрыта для публикации сообщений.