Jestliže tvoříte nějaké rozsáhlejší stránky, které budou mít dvacet a více stránek, doporučuji si rozkouskovat šablonu Vaší stránky na různé části.
Když jsem já jednou dělal stránky, které měly třeba padesát podstránek a potom bylo potřeba v patičce všech stránek změnit datum, nebo třeba trošku pozměnit strukturu a pořadí odkazů v menu, byla opravdu hrooozně velká otrava všechny ty stránky (jednu po druhé) měnit.
Proto doporučuji si stránky rozkouskovat. Vytvořme si nějakou základní kostru webové šablony, třeba takhle:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Webová stránka | Název webu</title>
</head>
<body>
<div id="hlavicka">
<div id="logo">
<h1>Nadpis webu</h1>
</div>
<div id="menu">
<ul>
<li><a href="prvni">První</a></li>
<li><a href="druhy">Druhý</a></li>
<li><a href="treti">Třetí</a></li>
<li><a href="ctvrty">Čtvrtý</a></li>
<ul>
</div>
</div>
<div id="sloupecek">
<p>Aktuální novinky...</p>
</div>
<div id="obsah">
<p>Lorem ipsum, dolor sit amet...</p>
</div>
<div id="paticka">
© 2015 Název webu.
</div>
</body>
</html>
A co kdybych Vám naservíroval třeba takovýhle zdrojový kód? Není to jednodušší?
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Webová stránka | Název webu</title>
</head>
<body>
<div id="hlavicka">
<div id="logo">
<?php include "logo.php" ?>
</div>
<div id="menu">
<?php include "menu.php" ?>
</div>
</div>
<div id="sloupecek">
<?php include "sloupecek.php" ?>
</div>
<div id="obsah">
<p>Lorem ipsum, dolor sit amet...</p>
</div>
<div id="paticka">
<?php include "paticka.php" ?>
</div>
</body>
</html>
Hlavičku bychom mohli klidně ještě rozdělit na soubor menu.php, ale to je jen takové vylepšení.
A teď se konečně dostáváme k tomu dobrému využití, k čemu jde PHP include využít. Řekněme, že chci v patičce každé stránky webu mít tohle:
© 2015 Název webu. Všechna práva vyhrazena.
Změna je v té větě „Všechna práva vyhrazena“. Kdybych byl neznalý správce webových stránek, používající HTML a CSS, tak si normálně otevřu editor a budu upravovat jednu stránku za druhou. Stránka s aktualitami, stránka s ceníkem, stránka s blogem, stránka s kontakty… Ach joo, už mě to nebaví.
Jenže já jsem znalý správce webových stránek (což jste i Vy!), takže jsem webové stránky už na jejich počátku navrhnul tak, aby pro části, které se budou často měnit existoval jenom jeden soubor a ten se postupně do těch ostatních podstránek webu includoval (čti vkládal). Ano, přesně tak, jak jste mohli vidět výše.
První použití INCLUDE
PHP include lze používat pouze pro relativní cestu! Nelze volat soubor s absolutní cestou:
<?php include "http://mujskript.cz/soubor.php" ?>
Vždy se musí volat soubor s cestou relativní:
<?php include "soubor.php" ?>
Takže postup a fungování funkce include je takový:
- Do všech stránek (např. index.php a kontakt.php), kde chci mít stejný obsah, např. menu vložím <?php include „menu.html“ ?>
- Do souboru menu.html (klidně i menu.php – přípona je na Vás) vložím menu, prostě to, co by normálně bylo na stránek, místo include
- Takže v souborech index.php a kontakt.php budu mít v editoru tento kód (např.):
- <html>
<body>
<div id=“menu“>
<?php include „menu.php“ ?>
</div>
… <!– pokračování kódu, nebudu ho sem vypisovat… –>
- <html>
- A obsah souboru menu.php bude:
- <ul>
<li><a href=“prvni“>První položka menu</a></li>
<li><a href=“druha“>Druhá položka menu</a></li>
</ul>
- <ul>
- Když toto všechno nahrajeme na hosting s podporou PHP, tak jako uživateli se ukáže:
- <html>
<body>
<div id=“menu“>
<ul>
<li><a href=“prvni“>První položka menu</a></li>
<li><a href=“druha“>Druhá položka menu</a></li>
</ul>
</div>
… <!– pokračování kódu, opět Vám ho sem nebudu vypisovat… –>
- <html>
Takže vidíme, že tento způsob práce nám může výrazně ulehčit práci. Je možné, že někteří z Vás to stále nechápou. Nebojte, já to také nemohl hned pochopit 😉 Proto jsem pro Vás připravil jednoduchou ukázku v .zipu, kterou si můžete stáhnout a vyzkoušet (funguje to jen na hostingu (nebo localhostu), kde je podpora PHP).
Zobrazit ukázku (stejná jako v include.zip) – otevřete si i soubor menu.php
Těšte se na další díly! Pokud máte dotazy, nebojte se využít komentáře níže: