Сообщений: 6 Откуда: Северодвинск Зарегистрирован: 24 Июля 2008, 22:35:26 Сказали спасибо 0 раз Статус: offline
ICQ статус
Опубликовано 28 Июля 2008, 08:14:19
Здравствуйте!!!
У меня давно капают слюнки по навигации такого плана. Правда, в IE и Opera функционал немного различается... это не суть...
В html-ле это делается проще:
<html>
<head>
<style type="text/css">
.menu {width: 200px;} /*Ширина меню*/
.menu A {
display: block; /*Ссылка, как блочный элемент*/
width: 198; /*Ссылка на всю ширину меню*/
padding: 5px; /*Поля вокруг надписи*/
border-left : 10рх solid #13694e; /*Линия слева*/
border-bottom: 1px solid silver ; /*Линия между пунктами*/
background: #74a18e; /*Исходный цвет фона меню*/
color : white;
font-family: Arial; /*Исходный цвет текста меню*/
text-decoration : none } /*Убираем подчеркивание у ссылок*/
.menu A:hover {
border-left-color : orange; /* Меняем цвет линии слева */
background: #a18e74; /* Новый цвет фона под ссылкой */
color: #ffffcc } /* Новый цвет ссылки */
</style>
Этот код отображается и в Опере и в IE более-менее одинаково. Но вот как его прикрутить к PhpFusion?
за менюшку "отвечает" файл navigation_panel.php
За вывод пунктов меню отвечают строки
выше идут некие проверки на наличие чего то там... (Линий раздела)... если честно, я в этих проверках немного запутался... так как в php ещё чайник (начал его изучение буквально недели две назад)
Если будет нетрудно, напишите хотябы комментарии к этим условиям... и куда можно вставить <div class=menu>( из html кода).
Можно просто комменты, с вставкой постараюсь разобраться сам.
Сообщений: 6 Откуда: Северодвинск Зарегистрирован: 24 Июля 2008, 22:35:26 Сказали спасибо 0 раз Статус: offline
ICQ статус
Опубликовано 29 Июля 2008, 00:03:11
Psc, спасибо!!! Более-менее разобрался...
как определить, на какой странице находится посетитель, и не отображать в меню ссылку на неё?
я конечно копну плагин КТО? ГДЕ? просто вдруг кто-то занимался таким
Сообщений: 6 Откуда: Северодвинск Зарегистрирован: 24 Июля 2008, 22:35:26 Сказали спасибо 0 раз Статус: offline
ICQ статус
Опубликовано 29 Июля 2008, 12:25:48
Вот это я и имел в виду...
Глянул модуль "КТО? ГДЕ?" Там если я не ошибаюсь, идёт запрос в БД, потом обрабатывается, итд...
Пока мысли такие:
1) Получить URL страницы, где находится пользователь(как? - буду читать учебник по PHP)
2) Выделить структуру типа домен.страница.php;
3) Проверить...
Сообщений: 2515 Откуда: As is Зарегистрирован: 10 Ноября 2007, 13:15:07 Сказали спасибо 353 раз Статус: offline
Опубликовано 29 Июля 2008, 12:46:46
Отлажено и сделано, можешь разобрать 2 строки кода:
$count_this_page = substr_count($_SERVER['REQUEST_URI'],$data['link_url'] );
if ($count_this_page != 1 ) { здесь код ссылки из навигации (я под панель делал)
}
Все работает, но могут быть недочеты - тести, смотри.
Сообщений: 6 Откуда: Северодвинск Зарегистрирован: 24 Июля 2008, 22:35:26 Сказали спасибо 0 раз Статус: offline
ICQ статус
Опубликовано 01 Августа 2008, 23:22:38
То, что хотел, то получил!!!
но возникла одна маленькая проблемка... и вопрос:
какой функцией определить путь к CMS ?
пока сайт находится на Denwer е, и путь к нему задаётся как localhost/fus/
так вот бы хотелось эту /fus/ и вычленить... зачем?
просто получается так, что если кроме основного index.php есть ещё и посторонние, скажем /plugins/index.php, то в результате работы функции
при нахождении юзера на страничке /plugins/index.php, при отображении меню в переменной $data['link_url'](а перебор идёт с начала), будет index.php, news.php, blablabla.php вплоть до /plugins/index.php
и стилем UserHere будут отражены два пункта меню. что, собственно и случилось у меня.
выход нашёлся - я "боролся" с Web статистикой, её URL - /fus/infusions/stats_info_panel/index.php
DrawItem и DrawHereItem - функции, отображающие соответственно пункт меню и посещаемый пункт меню.
флаг $menu_class - служит для корректного отображения тэгов <div class=Мой класс> </div> (без него исходный код полученной страницы был не очень корректный, но верный)
всё бы хорошо, да одно но. Появись ссылка типа /каталог/index.php, и данный код будет глючить.
поэтому я и хочу найти способ найти отобразить полный путь к папке с fusion (на некоторых хостингах он бывает довольно большой)...
и ещё... если я смогу узнать каталог установки fusion, смогу решить проблему вот такого захода на сайт
1) http://localhost/fus/
2) http://localhost/fus/index.php
и в том и другом случаях будет открыта index.php, только в последнем ссылка "Главная" будет неактивна
если кого заинтересует, могу выложить сам файл navigation_panel.php
----------
по ходу ещё спрошу: как прикрепить именно к моей теме ЭТОТ navigation_panel? как сделать ссылку из themes.php, чтобы грузить навигатион панел не из папки инфьжен, а из моей папки с темой?
Сообщений: 2515 Откуда: As is Зарегистрирован: 10 Ноября 2007, 13:15:07 Сказали спасибо 353 раз Статус: offline
Опубликовано 02 Августа 2008, 00:15:56
Отлично, найден буг
Возможный фикс:
$count_this_page = substr_count($_SERVER['REQUEST_URI'],$settings['siteurl'].$data['link_url'] );
if ($count_this_page != 1 ) {
здесь код ссылки из навигации (я под панель делал)
}
$settings['siteurl'] - берется из настроек (переменная получает значение кажись в maincore), тот самый /fus/ или что угодно. Еще есть вариант сделать полный путь с именем серва, но это если не получится этот.
Синтаксис правда не проверил - может не заработать
PS! Кстати об индексах! рекомендую их убрать , все равно по дефолту грузит index.php либо index.html (кто скажет что у него не так - будет глюпым )
выставить пути в навигации типа /ssaylko/.
PPS Проверил - синтаксис верный , более того работает как надо (вроде)
Сообщений: 13 Зарегистрирован: 09 Августа 2008, 16:25:36 Сказали спасибо 0 раз Статус: offline
Опубликовано 30 Августа 2008, 12:29:26
Что то у меня ничего хорошего не получается по иписанию выше. Может быть есть где скачать готовый набор файлов для оформления как на офсайте в первом посте?