WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   navigation aus mysql datenbank über mehrere order ebenen (http://www.wcm.at/forum/showthread.php?t=165253)

Pulse-Seeker 06.05.2005 15:09

navigation aus mysql datenbank über mehrere order ebenen
 
ich steht vor folgendem problem:

bin grad dabei eine website zu basteln. die einträge für die navigation kommen aus einer mysql datenbank. das geschieht deshalb weil je nach benutzer (admin, user) verschiedene navigations-punkte sichtbar sind oder nicht.
die tabelle für in der db für die navigation ist folgendermaßen aufgebaut:

ID "..."
NAVIPUNKT "startseite"
LINK "start.php"
USER "true" //true oder false je nach berechtigung
ADMIN "true"

ein link sieht dann so aus:
das ganze geht solange gut solange ich keine unterordner habe. sobald es unter order gibt und ich diese in die db-tabelle eintrage funkts natürlich nicht mehr.

irgendwelche lösungs ansätze? ich steh nämlich komplett am schlauch :(

T.dot 06.05.2005 15:22

wo genau ist da jetzt das Problem?

schreib statt LINK "start.php"
LINK "ordner/start.php" rein.

Oder meinst du, du findest aus einem Unterordner nicht wieder zurück in den Hauptordner?

Pulse-Seeker 06.05.2005 15:30

genau da liegt das problem.
wennst einmal in einen unterordner bist kommst nicht mehr raus.

denn aus der db komm "ordner/start.php" und wennst im unterordner bist dann hat der link den href "ordner/ordner/start.php"

T.dot 06.05.2005 15:48

1. Möglichkeit:
mit absoluten URLs arbeiten

2. Möglichkeit:
- den aktuellen Pfad auslesen (mit getenv("SCRIPT_NAME") )
- Daraus auslesen in welchen Ordner du dich befindest/ob du dich einen Ordner befindest (durchsuchen des SCRIPT_NAME nach "/", Ordernamen, Skriptnamen, etc.)
- Hinzufügen von "../" vor die URL

mfg Thomas

Pulse-Seeker 06.05.2005 16:01

mit absoluten urls will ich nicht arbeiten weils das testen am localen server erschwert ;-)

den befehl getenv() hab ich bis jetzt noch nicht gebraucht, aber damit könnts funktionieren. werds am we testen und dann das ergebnis hier posten.

vorerst mal danke :)

T.dot 06.05.2005 16:10

Du könntest ja mit "pseudoabsoluten" (juhu, neues Wort) URLs arbeiten. Dh. du speicherst den Anfang der URL in irgendnen Config-File und speicherst nur wie gehabt den Ordner/Dateinamen in der Datenbank.

mfg Thomas

ps: Mehr Info zu getenv -> http://at.php.net

Pulse-Seeker 06.05.2005 16:18

das php manual ist eh fast mein bester freund, nur wennst net weißt wost zum suchen anfangen mußt hilfts dir halt auch net viel :D

Pulse-Seeker 08.05.2005 18:06

hab mir diese funktion geschrieben und damit funkts! danke für den tipp

PHP-Code:

function checkOrdnerEbene() {
    
$string "";
    
$pfad getenv('SCRIPT_NAME');
    
$aPfadteile explode("/",$pfad);
    
    for(
$i=0;$i<count($aPfadteile);$i++) {
        if(
$i<1){
            
$string .= "../";
        }
    }
    print(
$string);




Alle Zeitangaben in WEZ +2. Es ist jetzt 12:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag