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, ссылки пока не созданы, только тестовые Сайт пока тестовый, так что строго не суди Изменено 11 февраля 2008 пользователем DarkFell Цитата Ссылка на сообщение Поделиться на других сайтах
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 .= ''; и причем меню после этого вообще не работает(( Изменено 13 февраля 2008 пользователем DarkFell Цитата Ссылка на сообщение Поделиться на других сайтах
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/, про текст которой говорил топикстартер. Изменено 18 апреля 2008 пользователем EzS Цитата Ссылка на сообщение Поделиться на других сайтах
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 этот верный Изменено 18 апреля 2008 пользователем EzS Цитата Ссылка на сообщение Поделиться на других сайтах
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 у меня работают статические страницы, но категории не работаючто ты мне на словах - код показывай Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.