27. oktober 2005 - 12:16Der er
13 kommentarer og 1 løsning
Dynamisk menu ud fra filer i en mappe
Udfordring! JEg har tænkt på noget smart - men ved ikke hvordan jeg liiiiiiige skal skrue det sammen. Jeg vil gerne smide en masse point i i boksen for at få det løst.
Jeg vil gerne følgende:
menu 1 består af 4 punkter: punkt1 - punkt2 - punkt3 - punkt4
"Menu2" skal genereres ud fra filnavne i en mappe.
Altså, når man klikker på "punkt1" i menu 1 kigger systemet ned i mappen (som er oprettet) "mappe_til_punkt1" og der ligger der, lad os sige, 3 filer. De hedder "underpunkt1.htm" - "underpunkt2.htm" - "underpunkt3.htm".
Ud fra hvad filerne hedder skal der så laves indholdet til "Menu 2" (som er en undermenu til .
Dvs. sige den skal putte filnavnene i et array og slette ".htm" og derefter levere resultatet som menu punkter.
Gav det mening? Det håber jeg eller så sig lige til - Hvis nogen kan lave et eksempel ville det være SUPER - Er slet ikke en ørn til php.
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
//Finder stien til på det dir hvori filen lægges. $dir = getcwd(); $menu = "/";
//Hvis menu er sat og starter med et bogstav,tal,- eller_ if(isset($_GET["menu"]) && preg_match('/^[a-z0-9_-]/im', $_GET["menu"])) { $menu .= $_GET["menu"] . "/"; }
//Er det et dir vi har fat i? if (is_dir($dir . $menu)) { //Vi åbner dir if ($dh = opendir($dir . $menu)) { //Så længe vi læser en fil køre vi på while (($file = readdir($dh)) !== false) { //Hvis fil er anderledes end . og .. if($file != "." && $file != "..") { //Er det et dir. if(is_dir($dir . $menu . $file)) { //Vi laver et link som så bliver åbner som dir echo "<a href=\"".$_SERVER["PHP_SELF"]."?menu=".$file."\">".$file."</a><br>"; } //Eller er det ikke er dir else { //Vi laver et direkte link til filen. echo "<a href=\"".$_SERVER["PHP_SELF"]."\">".$file."</a><br>"; } } } //Luk dir closedir($dh); } }
Jeg har en webside med en menu på, når jeg trykker på en menu punkt (index.php?id=3) loader siden med den variabel. (id=3) jeg bruger så en switch til at bestemme hvilket indhold der skal includes på siden. Det kunne se således ud:
switch ($id) {
//Hvilken side skal includes //hvis id = 2... case "2": include ('oversigt.htm'); break;
//hvis id = 3... case "3": include ('priser.htm'); break;
etc etc.
Men nu ved jeg jo ikke i forvejen hvad variablen hedder da den bliver i "din" nye menu. SÅ der kan være at det ser således ud index.php?id=priser.htm (index.php?id=$indholdet_fra_mappen) og så skal min switch jo også sige:
switch ($id) {
//Hvilken side skal includes //hvis id = 1. fil i mappen... case "$indholdet_fra_mappen": include ('oversigt.htm'); break;
//hvis id = 2. fil i mappen... case "$indholdet_fra_mappen": include ('priser.htm'); break;
Ja, men hvad er det du ønsker nu? Først snakker du om at lave menu ud fra en mappe og filer. Nu snakker du om at lave en switch case! Hvad er det helt præcist du vil have? :o)
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.