Announcement

Collapse
No announcement yet.

Moderne Navigation (Technik)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Moderne Navigation (Technik)

    Hallo,

    ich bin jetzt gut ein Jahr dabei und schreibe Webseiten in HTML/PHP + diverse Datenbanken (Oracle, MSSQL, MySQL). Allerdings fehlt es mir an know-how was den grundsätzlichen Aufbau und die Technik der Seitennavigation anbelangt und wurde auch mit google nicht richtig fündig.

    Am Anfang habe ich das so gemacht: Auf jeder HTML-Seite kommt auch der komplette Inhalt für Banner und Navigation. Dadurch sind die Daten jedoch redundant.

    Danach kam die Methode:Eine hauptseite die 3 Frames beinhaltet (Navigation, Banner und Inhalt). Dadurch sind die Daten nicht mehr redundant, jedoch sind Frames veraltet.

    Nun, da hab ich mir folgende Methode ausgedacht: Es gibt wieder eine Hauptseite, wo mittels PHP der Banner, Navigation und Content mit @include_once eingefügt wird. Jeder Link ist in wirklichkeit ein Button (Mit CSS sehen sie hübsch aus). Ich frage nach dem Klick mit PHP ab, welcher Button gedrückt wurde und erhalte so, welche seite ich mit @include_once in den content einbinde. Dadurch habe ich weder Frames noch redundante Daten in den Seiten.

    Nun, nachteil ist natürlich das ich nicht direkt zu einer Seite springen kann, da die Hauptseite ja immer index.php bleibt. Deswegen habe ich mir gedacht, das es schlauere Methoden geben muss. Ich benutze z.b. auch CMS wie Joomla 1.5, jedoch verstehe ich die Technik dahinter noch nicht so ganz.
    Hinzu kommt, das mir keine Datenbank für die Webseiten zu verfügung stehen. Die Datenbanken, von denen ich gesprochen habe, sind Produktivdatenbanken für externe Daten.

    Vielen Dank
    acillus
    Zuletzt editiert von acillus; 01.10.2009, 11:55.

  • #2
    verstehe ich die Technik dahinter noch nicht so ganz.
    Die Seite wird immer neu gerendert mit den aktuellen Daten aus der DB. Es gibt keine/wenige statische Seiten. Die Erzeugung einer Seite erfolgt dynamisch mit allen Inhalten -> Navigation, Kopf- und Fusszeile usw.
    Christian

    Comment


    • #3
      Originally posted by Christian Marquardt View Post
      Die Seite wird immer neu gerendert mit den aktuellen Daten aus der DB. Es gibt keine/wenige statische Seiten. Die Erzeugung einer Seite erfolgt dynamisch mit allen Inhalten -> Navigation, Kopf- und Fusszeile usw.
      verstehe. So was in der Art hab ich vermutet. Habe natürlich vergessen zu erwähnen das mir keine Datenbank für die Webseiten zu verfügung stehen. Die Datenbanken, von denen ich gesprochen habe, sind Produktivdatenbanken für externe Daten.

      Comment


      • #4
        Hallo,
        Originally posted by acillus View Post
        ...Nun, nachteil ist natürlich das ich nicht direkt zu einer Seite springen kann, da die Hauptseite ja immer index.php bleibt. Deswegen habe ich mir gedacht, das es schlauere Methoden geben muss.
        warum soll man nicht auch Unterseiten anspringen können?. Die Verwendung dynamischer Seiten setzt nicht unbedingt die Verwendung einer Datenbank voraus, das geht auch mit (mehr oder weniger) statischen (php) Seiten.

        Ein kleines Bsp. soll das verdeutlichen. Es gibt eine Datei für das Menü (menu.tpl.php), verschiedene Dateien für den Inhalt contentname.tpl.php, eine index.php die alles managed und verschiedene Dateien als Wrapper für die einzelnen Menüpunkte menüpunktname.php.

        index.php:
        PHP Code:
        <?php
          
        if (!defined('APPL_SEITE')) {
            
        define('APPL_SEITE''home');
          };
         
        ?>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
        <head>
          <title>Titel der Seite</title>
          <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
        </head>
        <body>
          <?php include 'menu.tpl.php'?>
          <?php include APPL_SEITE.'.tpl.php'?>
        </body>
        </html>
        menu.tpl.php
        PHP Code:
        <?php defined('APPL_SEITE') or die('Kein direkter Zugriff erlaubt!'?>
        <ul>
          <li><a href="erster_menuepunkt.php">Erster Menüpunkt</a></li>
          <li><a href="zweiter_menuepunkt.php">Zweiter Menüpunkt</a></li>
        </ul>
        erste_seite.tpl.php / zweite_seite.tpl.php
        PHP Code:
        <?php defined('APPL_SEITE') or die('Kein direkter Zugriff erlaubt!'?>
        <p>Das ist die erste / zweite Seite</p>
        erster_menuepunkt.php / zweiter_menuepunkt.php
        PHP Code:
        <?php
          define
        ('APPL_SEITE''erste_seite'); // define('APPL_SEITE', 'zweite_seite');
          
        include 'index.php';
        ?>
        Die Dateien für die Menüpunkte (erster_menuepunkt.php / zweiter_menuepunkt.php) dienen lediglich als Wrapper und wären verzichtbar, indem man immer die index.php mit Parametern aufruft. Aber so hat man sprechende Namen und weniger Ärger mit der Validierung von Parameter.

        Gruß Falk
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment


        • #5
          Vielen Dank Falk. Das hat mir weitergeholfen

          Comment

          Working...
          X