Avatar billede woowii Nybegynder
09. december 2005 - 14:55 Der er 9 kommentarer og
1 løsning

Menu - betingelser

Jeg har lavet en menu som kører via database, så den er let at holde vedlige osv. Admin delen er lavet og den virker helt fint. Menuen er "2-lags", altså først en række punkter som enten giver dropdown når du trykker eller giver dig en ny side - hvis det er drop down, er der en ny række punkter. Alt dette ligger i samme tabel i databasen og der skelnes efter hvilke felter der er udfyldt.

Der er 4 betingelser om punktet skal vises eller ej.
1. Punktet vises kun hvis du er logget ind
2. Punktet vises kun hvis du ikke er logget ind
3. Punktet vises kun hvis du er admin
4. Punktet vises kun hvis du er admin for en brugergruppe

- alle punkter som ikke har nogle af disse sat skal naturligvis vises ligemeget hvad.

Mit problem er at få lavet alt det her så let så muligt - jeg behøves ikke en færdig kode for hvordan det skal se ud, nogle hints burde kunne gøre det. ;)
Avatar billede woowii Nybegynder
09. december 2005 - 14:57 #1
Hvis det ikke fremgår tydeligt nok af mit første indlæg, er det altså checks om punktet skal vises eller ej jeg har problemer med. :)
Avatar billede udvikler Nybegynder
09. december 2005 - 15:02 #2
Du kan give dine admins samt brugere statuser, fx kan admin have status 1 og almindelige brugere 2 i databasen. Så kan du nemt tjekke dette:

<?
include "mysql.php";

if ($status == 1) {
mysql_query("Select from admin_menu (bla,bla,bla)")or die(mysql_error());
exit;
}else{
mysql_query("Select from normal_menu (bla,bla,bla)")or die(mysql_error());
}
?>

Sådan kan du for eksempel tjekke om administrator menuen skal vises..

Sig til hvis der er andet du skal vide !
Avatar billede woowii Nybegynder
09. december 2005 - 15:17 #3
Jeg kører ikke med brugerniveauerne på den der måde, det gør jeg på andre sider jeg har lavet og det virker til dels fint - men min plan er at køre med brugergrupper på den side jeg er ved nu, for at lave det hele mere dynamisk. :)
Jeg vil heller ikke lave to forskellige tabeller i databasen - det kan sagtens klares med if checks, problemet er bare at flette dem sammen. :)
Avatar billede udvikler Nybegynder
09. december 2005 - 15:21 #4
Forstår ikke helt hvordan du vil have det dynamisk ? - forklar lidt mere :)

Kan dog lave et forsøg mens du forklare, det vil virke hvis du bruger sessions, og det formoder jeg du gør :)

<?php
session_start();

$hent_data = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$_SESSION[brugernavn]' AND status = 'admin'") or die(mysql_error());
if(mysql_num_rows($hent_data) == "") {

if ($brugernavn == $admin) {
  mysql_query("Select from admin_menu (bla,bla,bla)")or die(mysql_error());
  exit;
  }
}
?>
Avatar billede udvikler Nybegynder
09. december 2005 - 15:28 #5
Ups forkert kode, taget fra mit eget system så undskyld for det, men istedet for at jeg rette det kan du bare forklare hvordan du vil have det skal være :)
Avatar billede woowii Nybegynder
09. december 2005 - 15:29 #6
Jeg vil stadig ikke dele min menu op i flere sql-tabeller.
En stor del af siden jeg laver består af forum - så med brugergrupper vil det give flere muligheder for at dele folk op (og så også for at udfordre mig selv lidt ;)). Men det har ikke noget med menuen at gøre, ville bare forklare hvorfor jeg skifter fra "1,2,3,4,5" brugerniveau-stilen til brugergrupper. :)
Avatar billede woowii Nybegynder
09. december 2005 - 15:32 #7
Prøver lige at forklare menuen lidt nærmere - kan være det hjælper.

Som sagt er der 2 niveauer i menuen, niveau 1 bliver vist hele tiden og nogle af punkter i niveau 1 laver dropdown menu som viser punkter fra niveau 2, hvor links fra niveau 2 passer til overpunktet fra niveau 1. Alle disse punkter (både niveau 1 og 2) kan have 4 betingelser for at blive vist: logget ind, ikke logget ind, logget ind som admin eller logget ind som brugergruppe admin.

Det jeg skal have hjælp til er sådan set "bare" at sætte de 4 check, så den kun viser menu punktet hvis den skal.
Avatar billede udvikler Nybegynder
09. december 2005 - 15:34 #8
Du behøver ikke at dele din menu op i flere sql-tabeller. Du tilføjer bare feltet status i den eksisterene tabel og skriver manuelt admin i feltet ud for admin og så kan du kan du tjekke om man er almindelig bruger ved at tjekke om feltet satus er tomt ? det er jo smart ;-)
Avatar billede woowii Nybegynder
09. december 2005 - 17:13 #9
Tror ikke helt jeg fik forklaret mig ordentligt - men har fundet en løsning nu. Ellers tak for hjælpen. :)
Avatar billede dustie Mester
09. december 2005 - 19:24 #10
Hvis du har fundet svaret et andet sted så kunne du da lige skrive løsningen eller i det mindste give lidt points som tak for den tid der blev brugt :)
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