Vylepšení usnadnění práce při údržbě stránek
Úvod do problému
Při úpravách stránek podle předešlého návodu jsem přišel na to, že definovat pozici stránky v menu prostřednictvím proměnné $menuID v každé stránce není dobrá metoda, protože při potřebě přeskupení menu, vznikala potřeba úpravy všech stránek tak, aby byla hodnota zmíněné proměnné správně nastavena.
Řešení problému
Provedl jsem tedy menší zásah do souboru menu.php, takže již není vyžadováno, aby každá stránka obsahovala proměnnou $menuID. Ta se nastavuje přímo v souboru menu.php podle hodnoty proměnné $pgTitle a její pozice v poli $aMenuNames.
Použijte kód z předchozího návodu a přidejte do něj následující řádky:
// před řádek $menuCnt = 5; vložte kód:
$menuID = 0;
// tady zůstane definice počtu položek menu a polí $aMenuNames a $aMenuLinks
// za definici pole $aMenuLinks vložte kód:
for ($krok = 1; $krok <= $menuCnt; $krok++)
{
if ($aMenuNames[$krok]==$pgTitle) {$menuID = $krok; Break;};
};
// zbytek kódu zůstane nezměněný
Jak to funguje
Na začátku nastavíme hodnotu proměnné $menuID na nulu. Pak procházíme pole $aMenuNames v cyklu od jedné do počtu položek a kontrolujeme, zda se hodnoda daného prvku pole rovná hodnotě proměnné $pgTitle. Pokud se rovnají, nastavíme hodnotu proměnné $menuID a vyskočíme z cyklu.
Jedinou nevýhodou je to, že se musí hodnoty v poli $aMenuNames shodovat s hodnotou proměnné $pgTitle, ale vzhledem k tomu, že je proměnná $pgTitle používána pro název hlavního odstavce, který jsme se rozhodli pojmenovávat stejně jako položku v nabídce, tak to nevadí.
Toto řešení se samozřejmě nebude dát použít při potřebě odlišení názvu hlavního odstavce od názvu položky v nabídce. Taková úpravy by vyžadovala zavedení další proměnné, ale o tom snad někdy příště.
K čemu je to dobré?
Touto úpravou získáme možnost definovat pořadí položek v nabídce jen úpravou pořadí položek v poli $aMenuNames (a samozřejmě pak i v poli $aMenuLinks). Nemusí se pak již upravovat všechny stránky, ve kterých by se musela opravovat hodnota proměnné $menuID.
Výsledek
Na výsledek našeho snažení se můžete podívat nebo si stáhnout celý projekt (soubor usnadneni2.zip).