#php
#php
Вопрос:
Я перехожу по этой ссылке, чтобы понять базовую структуру веб-приложения PHP, но я не могу понять, как я могу переключаться между различными макетами (статьи, портфолио) через панель навигации?
Ответ №1:
Все разные макеты должны быть похожи index.php .
Изображение, которое у вас есть articles.php и portfolio.php . Там содержимое будет похоже:
Articles.php:
<?php
// load up your config file
require_once("/path/to/resources/config.php");
require_once(TEMPLATES_PATH . "/header.php");
?>
<div id="container">
<div id="content">
<!-- Your article content here!!! -->
</div>
<?php
require_once(TEMPLATES_PATH . "/rightPanel.php");
?>
</div>
<?php
require_once(TEMPLATES_PATH . "/footer.php");
?>
и portfolio.php:
<?php
// load up your config file
require_once("/path/to/resources/config.php");
require_once(TEMPLATES_PATH . "/header.php");
?>
<div id="container">
<div id="content">
<!-- Your portfolio content here!!! -->
</div>
<?php
require_once(TEMPLATES_PATH . "/rightPanel.php");
?>
</div>
<?php
require_once(TEMPLATES_PATH . "/footer.php");
?>
Но каждый раз, когда вы добавляете новую страницу, вы должны обновлять свой header.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Simple Site</title>
</head>
<body>
<div id="header">
<h1>Simple Site</h1>
<ul class="nav global">
<li><a href="path_to_index.php">Home</a></li>
<li><a href="path_to_article.php">Articles</a></li>
<li><a href="path_to_portfolio.php">Portfolio</a></li>
<li><a href="path_to_any_other_page.php">Any other page</a></li>
</ul>
</div>
Комментарии:
1. Разве мы не можем просто вызвать index.php при каждой навигации нажимайте и передавайте любую переменную из них (из статьи, portfolio.php ) к индексу, чтобы он мог отображать макет в соответствии с переменной, которую он получает?
2. используя php, вы могли бы. Вы меняете свою ссылку следующим образом: <li><a href=»path_to_index.php?page=article»>Статья</a></li> и на вашей индексной странице: <div id=»content»> if(//страница = статья){//содержимое статьи}else {//содержимое индекса} </div>
Ответ №2:
Это то, чего на самом деле я хотел достичь
<nav>
<ul>
<li><a href="index.php?page=home">Home</a></li>
<li><a href="index.php?page=projects">Projects</a></li>
<li><a href="index.php?page=calculator">Calculator</a></li>
<li><a href="index.php?page=blog">Blog</a></li>
<li><a href="index.php?page=About">About</a></li>
</ul>
</nav>
Я отправляю переменную страницы в индекс, а затем она соответствующим образом отображает макет таким образом.
if (isset($_GET["page"])){
$page=$_GET["page"];
}
else {
$page = "home";
}
renderLayoutWithContentFile($page .".php", $variables);