Toto není dotaz, naopak všeobecná rada na otázku "Ako spraviť prepínanie stránok na webe, aby som v nich nemusel opakovat obsah - menu, hlavička atd?" Kedysi sa na to používali rámy, dnes sa používá php funkcia include. Jej použitie je tak jednoduché, že sa toho nemusí báť ani niekto bez znalosti php.
Dajme tomu ze chcem niaku takúto stránku:
Potrebujem záhlavie, menu, obsah a pätu to by sa vyriešilo veľmi ľahko:
Kód:
<html>
<head>
<title>Titulok</title>
</head>
<body>
<div id="Zahlavie">
--- Záhlavie ---
</div>
<div id="menu">
--- Menu ---
</div>
<div id="obsah">
--- Obsah ---
</div>
<div id="pata">
--- Päta ---
</div>
</body>
</html>
Do obsahu dam funkciu include() cize by to malo byt niako takto:
Kód:
<html>
<head>
<title>Titulok</title>
</head>
<body>
<div id="Zahlavie">
--- Záhlavie ---
</div>
<div id="menu">
--- Menu ---
</div>
<div id="obsah">
<?php include("stranka.html"); ?>
</div>
<div id="pata">
--- Päta ---
</div>
</body>
</html>
Do stranka.html dam iba to co sa ma zobrazit v obsahu.
Dalej odkazy v menu budu nasledovne:
Kód:
<a href="?odkaz=1">Odkaz 1</a>
<a href="?odkaz=2">Odkaz 2</a>
<a href="?odkaz=3">Odkaz 3</a>
<a href="?odkaz=4">Odkaz 4</a>
<a href="?odkaz=5">Odkaz 5</a>
A aby sme tomu vyhoveli kod by mal byt niaky takyto:
Kód:
<html>
<head>
<title>Titulok</title>
</head>
<body>
<div id="Zahlavie">
--- Záhlavie ---
</div>
<div id="menu">
<a href="?odkaz=1">Odkaz 1</a>
<a href="?odkaz=2">Odkaz 2</a>
<a href="?odkaz=3">Odkaz 3</a>
<a href="?odkaz=4">Odkaz 4</a>
<a href="?odkaz=5">Odkaz 5</a>
</div>
<div id="obsah">
<?php
$odkaz = $_GET['odkaz']; // $odkaz = ?odkaz
if(empty($_GET) OR empty($odkaz))
{
include("uvod.html"); // Inkludni uvod.html do obsahu
} else {
if(isset($odkaz)) // $odkaz bol definovany
{
include($odkaz.".html") or die("Chyba 404 !"); /* [bodka] znazornuje + cize ak by bol teraz odkaz 1 napr. index.php?odkaz=1 inkludlo by 1.html. Ak includovany subor neexistuje alebo prislu k poruche vytlaci chybu a skoci sa cele parsovanie skriptu. */
}
}
?>
</div>
<div id="pata">
--- Päta ---
</div>
</body>
</html>
No to by bolo. Ale aj tak vacsina ludi tvrdi ze sa nebude menit title. Aj pri frames sa nemenilo ale ja som sa vynasiel a je to velmi lahke aby sa title menilo, tu je uz definitivny kod:
Kód:
<html>
<head>
<?php
$title = $_GET['odkaz'];
$title = str_replace("1", "- O mne", $title);
$title = str_replace("2", "- Kontakt", $title);
echo <<< HTML
<title>Moj web $title</title>
HTML;
?>
</head>
<body>
<div id="Zahlavie">
--- Záhlavie ---
</div>
<div id="menu">
<?php include("menu.html"); // Inkludni menu s odkazmi ?>
</div>
<div id="obsah">
<?php
$odkaz = $_GET[''odkaz']; // $odkaz = ?odkaz
if(empty($_GET) OR empty($odkaz))
{
include("uvod.html"); // Inkludni uvod.html do obsahu
} else {
if(isset($odkaz) AND File_Exists($odkaz."html")) // $odkaz bol definovany a uvedeny subor existuje
{
include($odkaz.".html"); /* [bodka] znazornuje + cize ak by bol teraz odkaz 1 napr. index.php?odkaz=1 inkludlo by 1.html. */
} else
{
include("404.html"); // Inkludni error 404
}
}
?>
</div>
<div id="pata">
--- Päta ---
</div>
</body>
</html>
Miesto odkaz=1 atd.. mozem byt aj odkaz=o-mne.
Samozrejme kazdy si ho este musi upravit tak ako mu vyhovuje ...
Zhrnutie clanku:
Naco budem robit vela dokumentov napr. index.html, o-mne.html atd. ?
Ked chcem nieco zmenit v menu alebo zahlavie alebo nieco ine moze ma aj urvat kym to vo vsetkych dokumentoch spravim. Niekedy sa proti tomuto pracovalo s frames ktore menili tak ako includes len urcitu cast. Bolo to ale nedostacujuce. Teraz je modernejsia moda a s nou aj jazyk php a jeho funkcia include(). Vsetko co frames nemaju to include() rozhodne ma ; a je tak lahka a jednocuha,ze sa jej nemusi bat ani programator bez nalosti php.