Я пытаюсь очистить свой код на своих веб-страницах php, включив файлы для консолидации кода каждой страницы:
Файл: head.php
<!DOCTYPE html> <html> <head> <title> *Dynamic Page Title* </title> <meta name"description" "Dynamic Description"> <link href="#"> </head>
Файл: footer.php
<footer> <ul> <a href="#"><li>Home</li></a> <a href="#"><li>Page 1</li></a> <a href="#"><li>Page 2</li></a> </ul> </footer> <script src="#"> </body> </html>
Файл: navbar.php
<header class="navbar navbar-default navbar-static-top"> <div class="container-fluid"> <div class="navbar-header"> <a href="#" class="navbar-brand"></a> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"><i class="fa fa-bars"></i></button> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav navbar-right"> <li class="active"><a href="index">Home</a></li> <li><a href="#">Page 1</a></li> <li><a href="#">Page 2</a></li> <li><a href="#">FAQ</a></li> <li><a href="#">Blog</a></li> <li><a href="#">Contact Us</a></li> </ul> </div> </div> </header>
Файл: index.php
<?php include('head.php'); ?> <?php include('nav-bar.php'); ?> <body> Index Page, Home has an active class <?php include('footer.php'); ?>
Файл: Страница-1.php
<?php include('head.php'); ?> <?php include('nav-bar.php'); ?> <body> Index Page, Page 1 in nav-bar has an active class <?php include('footer.php'); ?>
Вы, ребята, получаете основную идею. Мне бы хотелось получить советы о том, как добавлять активные классы на разные страницы в навигационной панели и как добавлять разные заголовки и метатеги на каждую страницу.
Любая помощь?
Вы можете определить переменные в ваших файлах:
index.php
:
<?php $title = 'Home'; ?> <?php $metaTags = 'tag1 tag2'; ?> <?php $currentPage = 'index'; ?> <?php include('head.php'); ?> <?php include('nav-bar.php'); ?> <body> Index Page, Home has an active class <?php include('footer.php'); ?>
Затем используйте эти переменные во включенном файле:
head.php
:
<!DOCTYPE html> <html> <head> <title><?php echo($title); ?></title> <meta name"description" "<?php echo($metaTags); ?>"><!-- note that this code is wrong --> <link href="#"> </head>
navbar.php
:
<header class="navbar navbar-default navbar-static-top"> <div class="container-fluid"> <div class="navbar-header"> <a href="#" class="navbar-brand"></a> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"><i class="fa fa-bars"></i></button> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav navbar-right"> <li <?php if ($currentPage === 'Home') {echo 'class="active"';} ?>><a href="index">Home</a></li> <li><a href="#">Page 1</a></li> <li><a href="#">Page 2</a></li> <li><a href="#">FAQ</a></li> <li><a href="#">Blog</a></li> <li><a href="#">Contact Us</a></li> </ul> </div> </div> </header>
В этой последней части проще использовать массив вместо повторения одного и того же кода для каждой строки:
<ul class="nav navbar-nav navbar-right"> <?php // Define each name associated with an URL $urls = array( 'Home' => '/', 'Page 1' => '/page1', // … ); foreach ($urls as $name => $url) { print '<li '.(($currentPage === $name) ? ' class="active" ': ''). '><a href="'.$url.'">'.$name.'</a></li>'; } ?> </ul>