Ответов: 122 Просмотров: 131394
|
Ни как не могу разобраться в концепции одной точки входа, и как ее реализовать.
Скажем у меня есть index.php.К нему я подключаю шаблон своего сайта.Шапка,футер,меню не меняются.Меняется контент в зависимости от выбранного пункта меню.В одном например будут статьи которые выводятся из базы списком и при выборе статьи открывается полная статья которая например должна иметь адрес http://sitename/articles/122 .В другом пункте меню картинки и т.д. и т.п.
Как это реализовать с помощью концепции описанной в этой теме?
Самое умное до чего доехал это switch(ЧПУ как я понял придется прописывать в ручную для каждой URL). В общем как то так:
Есть функция вывода меню из масива
PHP:
скопировать код в буфер обмена
/* Функция вызова меню */ function mainMenu($menu) { echo '<ul id="menu">'; foreach ($menu as $link=>$href) { echo "<li><a href=\"$href\">", $link, '</a></li>'; } echo '</ul>'; }
Далее в index.php есть шаблон в котором есть массив меню, его вывод и его роутер(switch)который расположен в части контента и подключает разный контент из файлов в зависимости от GET параметра:
PHP:
скопировать код в буфер обмена
/* Массив и вызов меню */ "Главная" => "index.php?id=home", "Страница1" => "index.php?id=page1", "Страница2" => "index.php?id=page2", "Страница3" => "index.php?id=page3", "Страница4" => "index.php?id=page4", "Страница5" => "index.php?id=page5"); mainMenu($menu); /* switch расположенный в части контента в шаблоне. N_ROOT - Физический путь до файла */ switch($id) { case "page1": include N_ROOT . '/mainlinks/page1.php'; break; case "page2": include N_ROOT . '/mainlinks/page2.php'; break; case "page3": include N_ROOT . '/mainlinks/page3.php'; break; case "page4": nclude N_ROOT . '/mainlinks/page4.php'; break; case "page5": include N_ROOT . '/mainlinks/page5.php'; break; case "home": default: include N_ROOT . '/mainlinks/home.php'; }
Если у кого то есть нервы объяснить на пальцах.Буду очень признателен. |