Usnadnění práce při údržbě stránek
Úvod do problému
Při mé amatérské tvorbě stránek (amatérské proto, protože se tím nezabývám profesionálně a ni nemám takové ambice) vždy narážím na problém s údržbou stránek (zvláště, pokud je jich víc). Zatím jsem tedy vždy pracoval jen na stránkách, které byly více méně statické (žádné obchodní domy nebo takového něco). Vesměs se jednalo o jednoduché firemní prezentace s počtem přibližně od 10 do 50 stránek (pokud nepočítám můj web, kde jen seznam CD obsahuje cca 190 stránek). Níže popíšu postup, který můžete použít při udržování Vašich stránek. Všechny uvedené kódy můžete volně používat a modifikovat podle Vašich představ.
Původní problém byl takový, že jsem měl vytvořenu šablonu HTML, která obsahovala základní strukturu stránky včetně menu a tu jsem vždy jen nakopíroval do nového souboru a poté upravoval. Nebyla to ale dobrá metoda, protože když jsem byl nucen změnit položky v menu (přidat, ubrat, přejmenovat, upravit odkazy, atd.), tak jsem pak musel upravovat všechny již vytvořené stránky, což bylo velice pracné a nepraktické.
Rozhodl jsem se tedy, že změním svoji strategii a že k tomu využiji možnosti PHP. Sice existují i jiné metody (externí programy apod.), ale tohle řešení nevyžaduje žádnou instalaci dalšího programu. Stačí jen umět editovat HTML kód a případně trošičku programovat (to není nezbytné).
Postup práce
Postup je takový, že opakující se údaje, tedy hlavička, menu, ukončení stránky, atd. mohou být v samostatných souborech, které se pak prostředky PHP (konkrétně funkcí require) vloží do výsledné stránky.
Vytvoříme tedy soubory hdr.php, menu.php, end.php a šablonu kostra.php. Šablona bude udělána tak, aby předchozí tři soubory linkovala na správné místo.
Obsah souboru kostra.php
<?php
$pgTitle = "Úvod";
$menuID = 1;
require "./hdr.php";
?>
<div class="hlavni">
<div class="obsah">
<h2>Nadpis</h2>
<p>Obsah stránky</p>
<p>...</p>
</div>
</div>
<?php
require "./menu.php";
require "./end.php";
?>
Každá stránka tedy deklaruje dvě proměnné:
- $pgTitle
- definuje obsah titulku stránky a zároveň obsah hlavního nadpisu.
- $menuID
- definuje index stránky ve struktuře menu (viz popis souboru menu.php).
Popis struktury vkládaných souborů
Výsledek
Na výsledek našeho snažení se můžete podívat nebo si stáhnout celý projekt (soubor usnadneni1.zip).