Hey..
Jeg er ved at opbygge en side hvor der skal være dynamiske undermenuer på.
Mit design ligger i en fil kaldet skin_global, med en håndfuld funktioner, der indeholder dele af mit design.
Udover det har jeg en fil der hedder class_skin.php. Den samler alle funktionerne fra skin_global.php og ligger et output ind imellem:
print $this->html->tophead($this->module_title, $this->get_css());
print $this->html->body();
print $this->html->menu()
print $this->submenu;
print $this->html->mid();
print $this->output;
print $this->html->footer();
Mit problem er så nu at jeg skal have lavet en undermenu til hver enkelt side.
Denne skal stå der hvor der nu står "print $this->submenu;".
Filen hedder submenu.php, men mit problem er hvordan den skal se ud?
Min database struktur er at hvert hovedmenu punkt har en tabel hvori der så er
id, content, submenu_id, submenu_navn.
Det skal gerne ende med at blive sådan at når man f.eks. trykker på hovedmenu punktet "info" skal index.php?page=info vises, sammen med undermenuerne til den pågældende side. Når man så trykker på et af de undermenu punkter skal index.php?page=info&submenu_id=1(eller et andet tal afhængigt af hvilket punkt man har valgt) vises.
Jeg har lavet følgende struktur over submenu.php:
//------------------------------------------------
// Definere at denne side ikke må åbnes direkte
//------------------------------------------------
if ( ! defined( "DIRECT" ) )
{ die("<h1>Adgang nægtet</h1>Du har ikke tilladelse til at åbne denne side direkte.");
}
//----------------------------
// Starter klassen "submenu"
//----------------------------
class submenu {
//---------------------------------
// Definerer de forskellige sider
//---------------------------------
function pages()
{
$this->html = $skin->load('skin_blocks');
$menu = !empty($_GET['page']) ? $_GET['page'] : FALSE;
switch ($menu)
{
case "news":
$this->news_submenu();
break;
case "info":
$this->info_submenu();
break;
case "events":
$this->events_submenu();
break;
case "crew":
$this->crew_submenu();
break;
case "gallery":
$this->gallery_submenu();
break;
case "contacts":
$this->contact_submenu();
break;
}
$skin->do_output("$this->output");
}
//----------------------------------
//Henter submenuen til news siden
//----------------------------------
function news_submenu(); {
}
//----------------------------------
//Henter submenuen til info siden
//----------------------------------
function info_submenu(); {
}
//-------------------------------------------
//Henter submenuen til arrangementer siden
//-------------------------------------------
function events_submenu(); {
}
//----------------------------------
//Henter submenuen til crew siden
//----------------------------------
function crew_submenu(); {
}
//-------------------------------------
//Henter submenuen til galleri siden
//-------------------------------------
function gallery_submenu(); {
}
//-------------------------------------
//Henter submenuen til contact siden
//-------------------------------------
function contact_submenu(); {
}
}
}
Så det eneste der driller er faktisk bare at få fyldt de forskellige funktioner ud.