Avatar billede moreless Nybegynder
27. marts 2003 - 14:34 Der er 8 kommentarer og
2 løsninger

smart array menu

Jeg skal lave en menu som gennererer punkter ud fra et array.

eks.
menu.php?punkt=dyre_menu

Dyr (overskrift) > dyre_menu
- hamster > hamster.php
- hest > hest.php
- æsel > æsel.php
- stær > stær.php

Spiser (overskrift) > dyre_menu
- græs > graes.php
- æg > æg.php
- sukker > sukker.php
- ost > ost.php

blot for at give et indblik.. jeg skal så have forskellige menuer f.eks tv_menu osv

hvordan stiller jeg det smart op i et array?
Avatar billede moreless Nybegynder
27. marts 2003 - 15:08 #1
ingen med et bud?
Avatar billede fojensen Nybegynder
29. marts 2003 - 08:46 #2
Jeg har et bud på det - hvis det stadig er aktuelt - men jer er på arbejde nu.

Jeg skal gerne vende tilbage når jeg er hjemme igen i eftermiddag eller i aften.

mvh. Folmer
Avatar billede moreless Nybegynder
29. marts 2003 - 11:26 #3
det er stadig aktuelt
Avatar billede fojensen Nybegynder
29. marts 2003 - 16:47 #4
herunder kommer en masse kode, hvor jeg har forsøgt at kommentere hele vejen, og et levende eksempel kan ses på www.vindehelsinge.dk

koden indeholder et array der indeholder nogle arrays, så bare hold tungen lige i munden, så håber jeg du kan se systemet.
----- kode -----

<?php

$urlfil = $HTTP_SERVER_VARS[PHP_SELF];
$splitsti = split('/', $urlfil); // splitter url-linien op
$urlfil = $splitsti[count($splitsti)-1]; // tager det bageste af url-linien (filnavnet)

if (!isset($mappe)) { // hvis $mappe ikke er sat manuelt med en variabel så tager den det fra url'en  - på min side sætter jeg dem manuelt med en variabel

$mappe = $splitsti[count($splitsti)-2];  // tager det næst-bageste af url-linien (mappenavnet)
}

function menu($mappe, $punkt) { // function starter

$mappearray = array(
'www',
'opslagstavle',
'gymnastik',
'friluftsliv',
'dilettant',
'bestyrelse'
); // her en liste over de mapper der kan forekomme

$hovedmenuarray = array(
'hovedmenu.gif',
'opslagshovedmenu.gif',
'gymnastikhovedmenu.gif',
'friluftslivhovedmenu.gif',
'dilettanthovedmenu.gif',
'bestyrelsehovedmenu.gif'
); // her fik den en liste over hovedmenubillederne

$menufil[gymnastik] = array(
'gymnastik.php',
'gymhold.php',
'gyminstr.php',
'gymnastikfoto.php'
); // her fik den en liste over filnavne under gymnastikafdelingen

$menutekst[gymnastik] = array(
'Gymnastik-forside',
'Gymnastikprogram',
'Gymnastik-instruktører',
'Billedgalleri'
); // her fik den en liste over link-tekster under gymnastikafdelingen

$menufil[friluftsliv] = array(
'friluftsliv.php',
'hvaderfriluftslaug.php',
'turprogramdb.php',
'ture03.php',
'ture02.php',
'ture01.php',
'ture00.php',
'ture99.php',
'friluftsfoto.php'
); // her fik den en liste over filnavne under friluftsliv

$menutekst[friluftsliv] = array(
'Friluftsliv-forside',
'Hvad er friluftslauget',
'Turprogram',
'Turfortællinger 2003',
'Turfortællinger 2002',
'Turfortællinger 2001',
'Turfortællinger 2000',
'Turfortællinger 1999',
'Billedgalleri'
); // her fik den en liste over link-tekster under friluftsliv

$menufil[dilettant] = array(
'dilettant.php',
'dilettantfoto.php'
);

$menutekst[dilettant] = array(
'Dilettant-forside',
'Billedgalleri'
);

$menufil[bestyrelse] = array(
'bestyrelse.php',
'generalforsamling2002.php',
'bestyrelsesliste.php',
'prisliste.php',
'bestyrelsefoto.php',
);

$menutekst[bestyrelse] = array(
'Bestyrelses-forside',
'Generalforsamling 2002',
'Hvem er bestyrelsen',
'Priser og kontingenter',
'Billedgalleri'
);

// vi skal sætte en pil eller ikke et klart billede
$clear = "<IMG SRC=\"clear.gif\" BORDER=\"0\" WIDTH=\"10\" HEIGHT=\"1\" ALT=\"\">";
$pil = "<IMG SRC=\"pil.gif\" BORDER=\"0\" WIDTH=\"10\" HEIGHT=\"10\" ALT=\"\">";

// sørger for at de to outputs sættes globalt
global $menu; 
global $menuimage;

    for($i=0;$i<count($mappearray);$i++) { // tæller igennem mappearray og sætter det rigtige hovedmenu-billede
        if ($mappearray[$i] == $mappe) {
    $menuimage = "$hovedmenuarray[$i]";
        }
    }

$menu .= "<FONT>";
    for($i=0;$i<count($menufil[$mappe]);$i++) { // tæller igennem filerne og produserer links af filænavne og link-tekster
        if ($menufil[$mappe][$i]==$punkt) {
    $menu .= "$pil"; }
        else {
    $menu .= "$clear";
        }
    $menu .= "[ <A HREF=\"". $menufil[$mappe][$i] ."\">". $menutekst[$mappe][$i] ."</A> ]<BR>";
    }
$menu .= "</FONT>";

} // function slutter


menu($mappe,$urlfil); // vi kalder funktionen med de to inputs: mappenavn og filnavn

echo $menuimage; // skriver filnavnet 'friluftslivhovedmenu.gif', hvis brugeren er i mappen 'friluftsliv'

echo $menu;  // skriver hele friluftslivmenuen, hvis brugeren er i mappen 'friluftsliv'

?>
----- /kode -----

mvh Folmer
Avatar billede fojensen Nybegynder
29. marts 2003 - 16:50 #5
Jeg skal måske lige forklare at jeg har to mapper 'index' og 'opslagstavle' som jeg ikke har nogen undermenu til, men her skriver den bare ikke nogen menu, kun filnavnet på hovedmenubilledet.
Avatar billede moreless Nybegynder
30. marts 2003 - 22:52 #6
kan du lave den lidt mere tilpasset? så den passer til det jeg skal bruge?
Avatar billede fojensen Nybegynder
30. marts 2003 - 23:34 #7
Jeg vil da hellere at du sætter dig ned og finder ud af systemet i det, og ud fra det sætter dit eget sammen. Hvis du ender med at bruge det på din side så skal du da også helst forstå sammenhængen.

Hvis du mener med de punkter du beskriver øverst, så er det da bare at forsøge og sætte dem ind, og se hvad der kommer ud.

Jeg vil hellere ha' at du spørger om det du ikke forstår, end lave koden færdig til din side.

Mvh. Folmer
Avatar billede moreless Nybegynder
30. marts 2003 - 23:38 #8
hvis du laver koden tilpasset, kan jeg nok bedre forstå sammenhængen så gør det!
Avatar billede moreless Nybegynder
24. april 2003 - 20:49 #9
deler points
Avatar billede moreless Nybegynder
24. april 2003 - 20:50 #10
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester