PDA

Просмотр полной версии : Организация навигации на сайте...



vitpanov
24.09.2005, 19:59
Народ!Подскажите как лучше устроить навигацию на сайте :? .

Oscar
24.09.2005, 20:36
vitpanov,
Во-первых, навигация должна быть "user friendly". То есть поставь себя на место пользователя и подумай, где бы ты хотел её видеть, и как тебе было бы удобнее "проходить" по своему сайту.

Во-вторых, навигация - это меню, насколько я понимаю.
Пихаешь его слева, справа, или вверху от основного контента (куда лучше - посмотри по дизайну).

Дальше, в каждом пункте меню должно быть максимум 6-7 подпунктов (это касается и верхнего уровня),
поскольку среднестатический человек не воспринимает больше информации одновременно.

Ну а техническая сторона ...
1. Делаешь меню статическим (HTML)
2. Делаешь меню динамическим (JavaScript)

+. Можешь хранить пунткы в файле или в БД, и формировать меню при помощи PHP (тогда его проще будет редактировать)

Что именно ТЕБЕ надо, - тебе решать.
Какой уровень сложности тебе нужен, на что хватит твоих знаний/умений, насколько это подходит к остальным частям сайта и т.д.

vitpanov
26.09.2005, 20:57
Мой метод с навигацией это

index.php?dir=DIRECTORY&page=1
где dir-директория, а page-номер txt файла...
Это не совсем удобно что можно заменить на более удобный :?:
Видел типа index.php?x=index2

vitpanov
26.09.2005, 20:58
Oscar, объясни что эт такое...:!:

Oscar
26.09.2005, 23:21
vitpanov,

А где волшебное слово? :-)


Сайтостроение я учил на пальцах и не имею ни малейшего понятия, насколько "правильным" является то, что я делаю.

Я сделал три, похожих между собой, типа навигации.

1. http://www.pe.mw.tu-muenchen.de/index.php?inhalt=news
news - это поле в Базе Данных, с которым связан путь (директории/php_файл), который подключается (include) в index.php, а так же пункт меню, который становится активным

2. http://www.mw.tum.de/index.php?inhalt=3_2_1
Нужно было сделать быстро, и я обломался, и скинул все файлы в корневую директорию.
В index.php просто инклудится файл 3_2_1.php
Ненадёжно? Кто сломает - расскажите, как.

Во время инклуда я проверяю, существует ли файл на сервере, потому сделать include('http://server/HACKpage.php') - не возможно.
Кроме того, я добавляю к переменной $_GET['inhalt'] окончание ".php", то есть другие файлы с сервера показать нельзя!

3. http://www.sus-n.org/newweb/?p=2.1
(из недоделаного, в процессе, так сказать)

p - сокращение от page, на самом деле это уровни в меню
$level1 = 2
$level2 = 1
$level3 = 0

По этим уровням (опять же из БД) вытягивается содержание.
Поскольку страницу оОочень хотят видеть с контент-менеджментом, "XXX.txt" или "XXX.inc.php" файлов в этом случае нету и подавно.

Опять же таки:
По первому уровню активируется первый пункт меню (создаётся из БД),
по второму - второй (там же, учитывая, что выбрано первым) и настраивается содержание.


------

Кроме того. У меня всё как-то руки не доходили, но я знаю, что можно побалываться настройками сервера (у меня они - Апаче).
А точнее директивой "mod_rewrite".

И можно настроить его таким образом, чтобы адрес был:
http://www.sus-n.org/de/2.1/
или
http://www.sus-n.org/ua/3.1.2/

А файлы читались, как:
http://www.sus-n.org/index.php?lang=de&page=2.1
http://www.sus-n.org/index.php?lang=ua&page=3.1.2

Jevgenij
27.09.2005, 18:03
Можно просто на инклудах, каждый раз передавая в виде параметра, какой файл включать. В командной строке у тебя будет аоказываться всегда www.mysite.ru/index.php?actio=xxxxxxx , где ххххххх - параметр, по которому ты определяешь, какой файл инклудить.

vitpanov
30.09.2005, 16:36
Oscar, Вот что есть.
Ссылка index.php?janr=1 по этой ссылке переменной janr присваивается значение 1.
Ну и есть масса других похожих ссылок только различающихся конечной цифрой.
Как сделать такую вещь: чтобы опираясь на значение переменной $janr другой переменной присваивалось особое значение...

BelkaJul
04.05.2006, 14:14
Помогите новичку (в РНР) пожалуйста.
Хочется подключить меню в каждой странице. Чтобы при изменении инфы в меню - сделать это один раз в файле "menu.php"

Что есть на данный момент:
файл menu.php

<?
function Left_menu()
{
$str_menu=<<<DOCNAME_menu
<html>
<body topmargin="0" leftmargin="0">
<table border="1">
.......теги меню

</body>
</html>

DOCNAME_menu;
echo $str_menu;
}
?>

пытаюсь подключить меню в файле Index_2.php:

<?
[b]include "menu.php";[/b]?>

<html>
<head>
<title>Добро пожаловать на пробный сайт</title>
</head>
<body topmargin="0" leftmargin="0">

<table border="0" width="99%" height="814">
<tr>
<td width="23%" rowspan="19" height="814">
<? Left_menu(); ?>
<td colspan="3" height="219">
.........

</tr>
</table>

</body>
</html>

Что я делаю не так?

Oscar
04.05.2006, 15:00
menu.inc

menu1 (#)

menu2 (#)

menu3 (#)

menu4 (#)


index.php

<table style="width: 100%; height: 100%;" border="1">
<tr>
<td style="width: 200px; vertical-align: top;">
<?=implode('', file ('menu.inc'));?>
</td>
<td style="vertical-align: top;">
content
</td>
</tr>
</table>