Навигация по сайту

klep

Новичок
Навигация по сайту

Доброго времени суток тебе алл.

У меня вопрос к людям (которые в отличие от меня не первый сайт пишут).

У меня есть сайт и изначально он проектировался без учета резкого темпа равзития.
Написан на php ( основной движек на ООП ) с html работаем через шаблоны.
Основной файл один = main.php он подключает разные классы, которые находятся в inc и работает с ними.
Проблема такая.

Код:
$mode='';
$mode=$_GET["mode"];
switch($mode)
{

....
                $tpl3->tplSetNested('if_inv/inv_td');
                $tpl3->tplParse($rcaption_name[$mode],'if_inv');
		break;

   case "photo":

                PostPreview("if_photo/photo_td",Depart_Photo);
                $tpl3->tplSetNested('if_photo/photo_td');
                $tpl3->tplParse($rcaption_name[$mode],'if_photo');
 		break;

   case "myroads":                     
                PostPreview("if_myroads/myroads_td",Depart_MyRoads);
                $tpl3->tplSetNested('if_myroads/myroads_td');
                $tpl3->tplParse($rcaption_name[$mode],'if_myroads');
		break;

   case "friends":

                FriendPreview("if_friends/if_friend",20);
                $tpl3->tplSetNested('if_friends/if_friend');

  	        TextPreview("if_friends/if_text",Depart_Frd);
                $tpl3->tplSetNested('if_friends/if_text');


                $tpl3->tplParse($rcaption_name[$mode],'if_friends');
		break;

   case "team":
                $tpl3->tplParse($rcaption_name[$mode],'if_team');
		break;

   case "weekend":
                PostPreview("if_weekend/weekend_td",Depart_WeekEnd);
                $tpl3->tplSetNested('if_weekend/weekend_td');
                $tpl3->tplParse($rcaption_name[$mode],'if_weekend');
		break;

.....
}
Вот часть кода, вся навигация на данный момент обходилась одной переменной mode= ....
А вот теперь появилась необходимость в подразделах.

Все эта конструкция увеличивается и раздражает меня, как можно структурировать это ?

Или кто как делает ?
 

Gas

может по одной?
Как вариант:
код каждого кейса выносится в отдельный файл.
Создаётся массив (xml или данные в БД ложатся) в котором ключ - это значение переменной mode, а значение - путь к файлу с соот. кодом.

В index файле проверяешь если ли ключ $modе в массиве, если есть то инклудишь нужный файл, иначе page not found

Как именно у тебя будет описываться структура:
- многомерный массив
- xml
- nested sets (вариант vladax) или nested trees
это тебе уже самому решать
 

klep

Новичок
Originally posted by Gas
Как вариант:
код каждого кейса выносится в отдельный файл.
Создаётся массив (xml или данные в БД ложатся) в котором ключ - это значение переменной mode, а значение - путь к файлу с соот. кодом.

В index файле проверяешь если ли ключ $modе в массиве, если есть то инклудишь нужный файл, иначе page not found

Как именно у тебя будет описываться структура:
- многомерный массив
- xml
- nested sets (вариант vladax) или nested trees
это тебе уже самому решать
Спасибо за подсказку.
Я делаю дерево разделов и подразделов в массиве (думая не буду усложнять для начала), а потом исходя из выбранного раздела, подгружаю необходимый объект (который будет отоброжать раздел и производит действие с ним).
 

Pauliceman

Новичок
Все сайты создавались мной по такой схеме:
1).Есть таблица в которой хранится структура всего сайта в древовидной форме. Каждой странице соответствует конкретный узел дерева. При этом очень быстро и удобно менять структуру сайта.
 

Дионис

Guest
А если каждый раздел хранить в отдельной директории, а подраздел в соответствующей директории, в каждой директории index, отвечающий за вывод раздела, и т. д.?
Так нормально делать, или все таки лучше хранить всю структуру сайта в БД и один index на все про все?
 

klep

Новичок
Originally posted by Дионис
А если каждый раздел хранить в отдельной директории, а подраздел в соответствующей директории, в каждой директории index, отвечающий за вывод раздела, и т. д.?
Так нормально делать, или все таки лучше хранить всю структуру сайта в БД и один index на все про все?
Меня тоже интересует этот вопрос, разговаривал не давно с знакомыми веб-программистами и меня убеждали, что такая система оптимальная по простоте и функциональности.

Какое ваше мнение ?
 

Дионис

Guest
Мне кажется удобным, если не будет слишком много разделов, подразделов, разделов подразделов и т.д. Но все таки, что скажут профи?
 

antiportal

Guest
Еще вариант простой флэт-файловой БД:
структура - в массиве
все материалы в одной директории с форматом файлов:
../
index
node
node.subnode
node.subnode.subsubnode
 

vladax

Новичок
А если каждый раздел хранить в отдельной директории, а подраздел в соответствующей директории, в каждой директории index, отвечающий за вывод раздела, и т. д.?
Может лучше FrontPage? :)
 

antiportal

Guest
vladax
Неее DW + Contribute -- вот выбор настоящего профессионала!
 
Сверху