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).


Přeskočit na obsah


Navigace