Ankündigung

Einklappen
Keine Ankündigung bisher.

Navigationsscript - Unterseiten zur aktuellen Seite

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Navigationsscript - Unterseiten zur aktuellen Seite

    Hallo zusammen,

    Einige kennen vielleicht schon mein [URL=http://www.homepage-forum.de/showthread.php?t=33489]Navigationsscript[URL].
    Dieses Script liest alle Seiten aus einer Datenbank aus und gibt sie dann aus. Es gibt eine oberste ebene, eine zweite ebene usw. Name ist logischerweise der Name der Seite, id die id der seite, top id ist die id der übergeordneten seite und history ist die ebene auf der sich die Seite befindet (1 = zuoberst, 2 = zweitoberst usw.).
    Die Datenbankstruktur sieht in etwa so aus:
    Code:
    Name       || ID || top_id || history(ebene)
    =================================
    Startseite || 1  || -1       || 1
    Sub1        || 2  || 1        || 2
    Sub1A      || 3  || 2        || 3
    Sub1A 2   || 4   || 2       || 3
    Top         || 5   || -1      || 1
    Mein Script sieht so aus(die Kommentare dürften alles erklären):
    (Das Script steht unter folgender Lizenz: http://creativecommons.org/licenses/...eiz%20Lizenz/)
    PHP-Code:
    <div class="navigation">
    <ul class="navigationitems">
    <?php
    $naviqd 
    'SELECT * FROM `blophoweso_navi` ORDER BY `history`'/* Verbindung */
    $naviquery mysql_query($naviqd); /* Query */
    $tago 0/* Wiviele Tags sind geöffnet(...und müssen anschliessend wieder geschlossen werden). */

    while($navi mysql_fetch_object($naviquery)) {
    if(
    $navi->history == 1) { /* Erste ebene ganz normal ausgeben. */
    echo '<li><a href="index.php?api='.$navi->id.'" title="'.$navi->title_alternative.'">'.$navi->title.'</a></li>';
    } else {
    if(isset(
    $oldhis)) { /* Wenn eine Variable mit der angabe über die Ebene des vorherigen durchlaufs existiert. */
    if(($navi->history <= $oldhis)) { /* Wenn die Ebene  immer noch die selbe ist. */
    if(($navi->top_id <= $api) OR ($navi->id == $api)) { /* PROBLEMSTELLE: Wenn die top id/die id der Seite kleiner oder gleich die aktuelle Seite ist. */
    echo '<li><a href="index.php?api='.$navi->id.'" title="'.$navi->title_alternative.'">'.$navi->title.'</a></li>'/* Ja: ausgabe auf der selben ebene. */
    }
    } else { 
    /* Das ganze entspricht nicht mehr der aktuellen ebene. */
    if(($navi->top_id <= $api) OR ($navi->top_id == $api)) {
    $tago++; /* Ein Tag mehr muss geöffnet werden(neue ebene). */
    $oldhis++; /* Der Ebenenwert wird hochgeschraubt.
    echo '<li><ul>'; /* Tags ausgeben. */
    echo '<li><a href="index.php?api='.$navi->id.'" title="'.$navi->title_alternative.'">'.$navi->title.'</a></li>';
    }
    }
    } else {
    if((
    $navi->top_id <= $api) OR ($navi->id == $api)) {
    $tago++; /* Die Variable oldhis existiert nicht(= erster durchlauf). */
    $oldhis $navi->history/* Variable definieren. */
    echo '<li><ul>'/* Tags ausgeben. */
    echo '<li><a href="index.php?api='.$navi->id.'" title="'.$navi->title_alternative.'">'.$navi->title.'</a></li>';
    }
    }
    }
    $ownid++;
    }
    if(isset(
    $oldhis)) {
    $i 1;
    while(
    $i <= $tago) { /* Tags wieder schliessen. */
    echo '</ul></li>';
    $i++;
    }
    }
    ?> 
    </ul>
    </div>
    Nun habe ich aber ein Problem. Dieses liegt bei den if abfragen die checken ob die Seite denn auch eine unterseite der aktuellen Seite ist. Ich möchte gerne alle vorherigen Seiten ausgeben + eine ebene vorwärts(also so etwas wie eine "Du bist hier: " anzeige). Darum überpfüe ich ob der Wert kleiner oder gleich die aktuelle ID der aktuellen seite ist. Da es aber auch Seiten gibt die eine höhere ID als die aktuelle haben, aber in der ebene weiter oben wären, werden diese nicht angezeigt(bei meiner beispieldatenbank das Item "Top").

    Ich bin sehr ratlos. Hat jemand eine Idee wie man das lösen könnte?

    Ich währe ab jeder Antwort extrem Dankbar!!!

    MFG
    [ASTERIX]

  • #2
    AW: Navigationsscript - Unterseiten zur aktuellen Seite

    erstmal >

    aus unübersichtlich macht übersichtlich:

    PHP-Code:
    while($navi mysql_fetch_object($naviquery))
    {
        if(
    $navi->history == 1)
        {
            
    /* Erste ebene ganz normal ausgeben. */
            
    echo '<li><a href="index.php?api='.$navi->id.'" title="'.$navi->title_alternative.'">'.$navi->title.'</a></li>';
        }
        else 
        {
            if(isset(
    $oldhis)) 
            {
                
    /* Wenn eine Variable mit der angabe über die Ebene des vorherigen durchlaufs existiert. */
                
    if(($navi->history <= $oldhis)) 
                {
                    
    /* Wenn die Ebene  immer noch die selbe ist. */
                    
    if(($navi->top_id <= $api) OR ($navi->id == $api))
                    {
                        
    /* PROBLEMSTELLE: Wenn die top id/die id der Seite kleiner oder gleich die aktuelle Seite ist. */
                        
    echo '<li><a href="index.php?api='.$navi->id.'" title="'.$navi->title_alternative.'">'.$navi->title.'</a></li>'/* Ja: ausgabe auf der selben ebene. */
                    
    }
                } 
                else
                {
                    
    /* Das ganze entspricht nicht mehr der aktuellen ebene. */
                    
    if(($navi->top_id <= $api) OR ($navi->top_id == $api))
                    {
                        
    $tago++;         /* Ein Tag mehr muss geöffnet werden(neue ebene). */
                        
    $oldhis++;         /* Der Ebenenwert wird hochgeschraubt.
                        echo '<li><ul>';     /* Tags ausgeben. */
                        
    echo '<li><a href="index.php?api='.$navi->id.'" title="'.$navi->title_alternative.'">'.$navi->title.'</a></li>';
                    }
                }
            }
            else
            {
                if((
    $navi->top_id <= $api) OR ($navi->id == $api))
                {
                    
    $tago++;             /* Die Variable oldhis existiert nicht(= erster durchlauf). */
                    
    $oldhis $navi->history;     /* Variable definieren. */
                    
    echo '<li><ul>';         /* Tags ausgeben. */
                    
    echo '<li><a href="index.php?api='.$navi->id.'" title="'.$navi->title_alternative.'">'.$navi->title.'</a></li>';
                }
            }
        }
        
    $ownid++;
    }

    if(isset(
    $oldhis))
    {
        
    $i 1;
        while(
    $i <= $tago)
        {
            
    /* Tags wieder schliessen. */
            
    echo '</ul></li>';
            
    $i++;
        }

    muss ich mir mal ankucken, wenn ich mehr zeit hab....
    AC/DC Fanpage www.ifyouwantblood.de
    Nein zur Zensur im Internet und anderswo - Anonymous

    Kommentar


    • #3
      AW: Navigationsscript - Unterseiten zur aktuellen Seite

      Hallo,

      Danke! Hat sonst niemand Ideen?

      MFG
      [ASTERIX]

      Kommentar

      homepage-forum.de - Hilfe für Webmaster! Statistiken

      Einklappen

      Themen: 56.941   Beiträge: 431.267   Mitglieder: 28.754   Aktive Mitglieder: 70
      Willkommen an unser neuestes Mitglied, Kullerauge.

      Online-Benutzer

      Einklappen

      251 Benutzer sind jetzt online. Registrierte Benutzer: 4, Gäste: 247.

      Mit 3.502 Benutzern waren am 23.01.2020 um 17:20 die meisten Benutzer gleichzeitig online.

      Die neuesten Themen

      Einklappen

      • daniel5959
        Antwort auf Website gegen Bezahlung erstellen
        Hallo,

        folgende 3 Punkte sollte man beachten, um Haftungsrisiken bei der Webseitenerstellung zu minimieren:

        1) Den Kunden auf die rechtliche Dinge hinweisen (Muster dafür gibt es z.B. bei Rechtsanwälten).

        2) Dem Kunden kostenpflichtige Wege aufzeigen (z.B. Mitgliedschaft...
        23.10.2021, 20:51
      • arnego2
        Antwort auf Website gegen Bezahlung erstellen
        Tja nur was macht man wenn man den Kunden darauf hinweist das ein Impressum fehlt als Beispiel und der Kunde sagt dazu: Das ist mir wurscht?...
        23.10.2021, 19:47
      • daniel5959
        Antwort auf Website gegen Bezahlung erstellen
        Hallo,

        Antworten dazu gibt es hier ...



        Eine kurze Zusammenfassung des verlinkten Artikels:

        Die Rechtssprechung geht erstmal davon aus, dass die Agenturen bzw. die selbstständigen Webdesigner mehr über die Rechtslage bei Webseiten wissen als der...
        23.10.2021, 17:20
      • arnego2
        Antwort auf Website gegen Bezahlung erstellen
        Das heißt im Klartext der Kunden ist fein raus und hat 0 Verantwortung für fehlerhafte Informationen?...
        23.10.2021, 12:56
      • Nightland Driver
        Antwort auf Php Funktion nach update fehlerhaft.
        Hatte ich zuvor wie oben geschrieben schon gemacht, hat nicht funktioniert.
        Ich habe das ganze jetzt erneut umgeschrieben, jetzt klappt es.
        22.10.2021, 21:43

      Die neuesten Beiträge

      Einklappen

      • ST747
        Antwort auf Website gegen Bezahlung erstellen
        hallo,

        nach meiner info kannst du als rentner soviel verdienen wie du willst. die grenze 450 betrifft hauptsächlich die sozialversicherungen, besonders Krankenkasse.da muss man aufpassen, dass man die einnahmen angibt.

        als rentner muss man heute auch steuern zahlen, es zählen...
        Heute, 20:07
      • Frank_R
        Website gegen Bezahlung erstellen
        Hallo, das Thema ist zwar etwas OT aber hier ist ja der eine oder andere Rechtskundige unterwegs und vielleicht interessiert es auch andere:

        Ich wurde gefragt, ob ich gegen Bezahlung eine Website erstellen würde. Die Bedingung dabei, die mich etwas stört ist, daß ich dafür eine Quittung...
        22.10.2021, 18:40
      • daniel5959
        Antwort auf Website gegen Bezahlung erstellen
        Hallo,

        folgende 3 Punkte sollte man beachten, um Haftungsrisiken bei der Webseitenerstellung zu minimieren:

        1) Den Kunden auf die rechtliche Dinge hinweisen (Muster dafür gibt es z.B. bei Rechtsanwälten).

        2) Dem Kunden kostenpflichtige Wege aufzeigen (z.B. Mitgliedschaft...
        23.10.2021, 20:51
      • arnego2
        Antwort auf Website gegen Bezahlung erstellen
        Tja nur was macht man wenn man den Kunden darauf hinweist das ein Impressum fehlt als Beispiel und der Kunde sagt dazu: Das ist mir wurscht?...
        23.10.2021, 19:47
      • daniel5959
        Antwort auf Website gegen Bezahlung erstellen
        Hallo,

        Antworten dazu gibt es hier ...



        Eine kurze Zusammenfassung des verlinkten Artikels:

        Die Rechtssprechung geht erstmal davon aus, dass die Agenturen bzw. die selbstständigen Webdesigner mehr über die Rechtslage bei Webseiten wissen als der...
        23.10.2021, 17:20
      • arnego2
        Antwort auf Website gegen Bezahlung erstellen
        Das heißt im Klartext der Kunden ist fein raus und hat 0 Verantwortung für fehlerhafte Informationen?...
        23.10.2021, 12:56
      • Nightland Driver
        Php Funktion nach update fehlerhaft.
        Hey,

        ich möchte eine alte Webseite von mir erneuern und habe dort ein Personalausweis Prüfer drin. Dieser funktioniert nun nicht mehr, und ich bekomme ihn nicht mehr ans laufen.
        Der folgende Fehler erscheint beim aufrufen der Seite ab php v.7+:
        Code:
        [B]Fatal error[/B]: Array and string offset
        ...
        22.10.2021, 17:52
      • Nightland Driver
        Antwort auf Php Funktion nach update fehlerhaft.
        Hatte ich zuvor wie oben geschrieben schon gemacht, hat nicht funktioniert.
        Ich habe das ganze jetzt erneut umgeschrieben, jetzt klappt es.
        22.10.2021, 21:43
      • daniel5959
        Antwort auf Website gegen Bezahlung erstellen
        Hallo,

        vom Gewerberechtlichen und Steuerlichen mal abgesehen besteht auch ein Haftungsrisiko, siehe



        Also aufgepasst und sich vom "schnellen Geld" nicht blenden lassen.

        daniel5959 ...
        22.10.2021, 20:46
      • Localfu
        Antwort auf Php Funktion nach update fehlerhaft.
        Moin Nightland Driver,
        mir sind die geshweiften Klammern auch aufgefallen, diese musst du bei dem ersten Fehler durch eckige Klammern ersetzen um auf den Indexwert zugreifen zu können.
        PHP-Code:
        $return->geb->tag$splits[1]{4} . $splits[1]{5}; 
        PHP-Code:
        $return->geb->tag$splits[1][4] . 
        ...
        22.10.2021, 19:33
      Lädt...
      X