Seiteninhalt ändern - Was ist "state of the art"?

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

  • Seiteninhalt ändern - Was ist "state of the art"?

    Guten Morgen erstmal,

    mein erster Beitrag hier im Forum und ich hoffe, ich bin im richtigen Bereich gelandet. Ich habe folgendes Problem: Ich möchte ein kleines bis mittelgroßes Datenbankprojekt erstellen. Wie bei jeder anderen HTML/PHP-basierten Oberfläche soll es natürlich verschiedene Unterseiten geben. Hierbei soll die Navigation natürlich immer zu sehen sein und es soll sich nur der Inhaltsbereich ändern.

    Wie bau ich jetzt am besten meine Navigation, meinen Inhalt und andere Teile der Seite zusammen?
    Die einfachste Lösung wären natürlich Frames, aber die sind ja im allgemeinen nicht mehr akzeptiert und alle, die halbwegs etwas von Webdesign verstehen, meiden diese wie der Teufel das Weihwasser.
    Dann gäbe es noch die Möglichkeit, eine einzige index.php zu haben, die als "Gerüst" dient, und den Inhalt über eine GET-Variable in den Inhaltsbereich zu laden und vielleicht mittels einer Switch-Anweisung die jeweiligen Fälle zu unterscheiden. Aber auch das stößt irgendwann an seine Grenzen und wird unübersichtlich oder lieg ich da falsch?
    Die Variante, jede Seite für sich zu erstellen, wo dann jedesmal der Code für die Navigation neu drin steht missfällt mir irgendwie, wenn ich daran denke, irgendwann mal was an der Seite ändern zu müssen.

    Was ist hier der aktuelle Stand der Technik?

    Eventuell gibt's dafür auch irgendwo Tutorials? Ich hab bisher noch nix gefunden.

    Vielen Dank schonmal im Voraus!

    Grüße aus dem Thüringer Wald
    Zuletzt geändert von sfischer; 28.05.2010, 10:26.

  • #2
    Hallo und willkommen im Forum,

    wie wäre es mit sowas in der Art? Home page

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Hey, danke für die schnelle Antwort!

      Das heißt also, ich erstelle für jede Inhaltsseite eine eigene Datei und setze dort, wo die Navigation stehen soll dein Script ein? Und ich bestimme meine Struktur im Prinzip nur durch das Array am Anfang?

      Wenn ich das richtig verstanden hab, ist das glaube ich genau das, was ich gesucht habe...

      Vielen vielen Dank!

      Kommentar


      • #4
        Aufgerufen wird in diesem Falle immer das eine Script. Darin kannst du dann aber im body-Element den eigentlichen Seiteninhalt aus einem anderen Script einbinden. Die URLs lassen sich dann ggf. mit mod_rewrite wieder verschönern.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Wie meinst du das mit "verschönern"? Ich glaub das is alles noch zu viel für mich

          Ich bin dafür, dass Peter mal ein Tutorial schreibt, dann versteh ich das sogar :P

          Auf die Gefahr hin unverschämt zu werden: Wie wäre denn das Script für den Aufruf des Seiteninhalts?

          Grüße

          Kommentar


          • #6
            Zitat von sfischer Beitrag anzeigen
            Wie wäre denn das Script für den Aufruf des Seiteninhalts?
            Z. B.:

            PHP-Code:
                ...
                <body>
                    <h1><?php echo(getTitle($sitemap)); ?></h1>
                    <ul><?php echo(createNavigation($sitemap)); ?></ul>
            <?php
                
            if (/* prüfen, ob der Pfad legal und nicht manipuliert ist */) {
                    include(
            dirname(__FILE__) . "/pages" $_GET["path"] . ".inc.php"); 
                }
            ?>
                </body>
                ...
            Zitat von sfischer Beitrag anzeigen
            Wie meinst du das mit "verschönern"?
            Z. B.
            http://example.com/projects/aqua/
            statt
            http://example.com/index.php?path=/projects/aqua/
            Zuletzt geändert von AmicaNoctis; 28.05.2010, 11:17.
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Klingt logisch. Ich versuch das mal einzubauen und meld mich dann wieder

              Das mit dem Verschönern der Links lass ich erstmal, da das Projekt eh von keiner Suchmaschine erfasst wird und nur in nem Intranet läuft.

              Bis denne

              Kommentar


              • #8
                Hallo sfischer,

                Dein Vorhaben scheint etwas zu groß angelegt zu sein, um es auf diese Weise anzugehen. Klingt so als würdest Du alles von Grund auf selbst implementieren wollen.

                Sieh Dir am besten mal die PHP-Frameworks "Symfony 1.4" oder "Zend 1.10" an.

                Du solltest Deine Anwendung (immerhin eine mittelgroße) in logisch zusammengehörige Module (inkl. zugehöriger Aktionen) aufspalten. Für jedes Modul und ggf. Aktion kannst definierst Du Dein Layout und generierst sonstige dynamische HTML-Inhalte. Beim Klicken auf bestimmte Menüpunkte wird der Benutzer dann an die entsprechenden Module weitergeleitet, wo die jeweiligen Aktionen auszugeführt werden. Z.B.: Registrierungsmodul (Aktionen: registrieren, ent-registrieren), Authentifizierungsmodul (Aktionen: login, logout), u.s.w.

                Die o.g. Frameworks unterstützen diese Strukturierung (Modul/ Aktion) und bringen sämtliche Funktionalitäten, die man dafür benötigt mit (z.B. Controller, Router, View, Filter, DB-Adapter, ...). Auch wenn der Einstieg in PHP-Frameworks Anfangs etwas schleppend verläuft, lohnt es sich bei größeren Projekten umso mehr.

                Zu Deiner Ausgangsfrage:

                Du benötigst ein Layout-Template für Deine gesamte Anwendung, in dem Header, Footer und ggf. Menü eingebunden werden. Der eigentliche Inhalt ist in Form eines Platzhalters im Layout-Skript enthalten.

                Code:
                [FONT=Courier New]+------------------------------------+
                | Header                             |
                [/FONT][FONT=Courier New]+------------------------------------+
                [/FONT][FONT=Courier New]+------+ +---------------------------+
                [/FONT][FONT=Courier New]| Menü | | Content                   |
                [/FONT][FONT=Courier New]|      | | (Inhalt variabel)         |
                [/FONT][FONT=Courier New]|      | |                           |
                [/FONT][FONT=Courier New]|      | |                           |
                [/FONT][FONT=Courier New]|      | |                           |
                [/FONT][FONT=Courier New]|      | |                           |
                [/FONT][FONT=Courier New]|      | |                           |
                [/FONT][FONT=Courier New]|      | |                           |
                [/FONT][FONT=Courier New]+------+ +---------------------------+
                [/FONT][FONT=Courier New]+------------------------------------+
                [/FONT][FONT=Courier New]| Footer                             |
                [/FONT][FONT=Courier New]+------------------------------------+
                [/FONT]
                Formatiert wird heutzutage mit DIV- und SPAN-Elementen, die absolut oder relativ zueinander positioniert werden (keine TABLE-Elemente!). Beispiel:

                <div style="width:100px; height:100px; background-color:red;">Test</div>

                erzeugt einen roten 100x100 pixel Bereich mit dem Inhalt "Test". Du kannst mit DIV-Elementen Layout-technisch beinahe alles bewerkstelligen, sofern Du mit CSS vertraut bist.

                Viel Spass beim Tüfteln!
                Zuletzt geändert von tr-oo-per; 30.05.2010, 03:24.

                Kommentar


                • #9
                  Danke für deine Antwort tr-oo-per!

                  Ich schau mir diese PHP-Frameworks mal an. Stellt sich bloß die Frage, in wie weit man diese auch kommerziell kostenlos nutzen darf. Symfony scheint nur für nicht kommerziellen Gebrauch zu sein bei Zend hab ich noch nichts darüber gefunden.

                  Mit div- und span-Tags arbeite ich bereits.

                  Grüße
                  Zuletzt geändert von sfischer; 30.05.2010, 10:04.

                  Kommentar


                  • #10
                    Also vielleicht bin ich zu blöd dafür aber ich komm mit der Installation von diesem Zend Frameworks überhaupt nicht zurecht. Und wenn ich mich mit der Installation schon mehrere Stunden beschäftigen muss, dann kann ich den ganzen Kram für mein Projekt auch händisch programmieren.

                    So long

                    Kommentar


                    • #11
                      Hi sfischer,

                      beide PHP-Frameworks dürfen für kommerzielle Zwecke benutzt werden!

                      Ich denke, dass Du aufgrund des Mangels an Zeit lieber Symfony benutzen solltest. Da gibt es ein Sandbox-Paket, dass Du einfach in Deinen Web-Ordner kopierst und das dann prinzipiell schon läuft.

                      The symfony framework Installation | symfony | Web PHP Framework

                      Wenn es Probleme mit der Bilder-Anzeige, liegt es an der Einstellung in Deiner httpd.conf -- Apache Host-Konfiguration. Sollte der folgende Link nicht helfen, schreib einfach hier noch mal etwas.

                      Getting Started with symfony | Web Server Configuration | symfony | Web PHP Framework

                      Nachdem Symfony läuft, arbeitest Du Dich durch das Jobeet-Tutorial (nicht auf Deutsch verfügbar) und solltest ziemlich schnell begreifen wie der Hase läuft.

                      Practical symfony | Day 1: Starting up the Project | symfony | Web PHP Framework

                      Falls Du Probleme mit Englisch hast, kannst Du auf das Askeet-Tutorial ausweichen (für Symfony-Version 1.0), wobei einige Punkte im Zusammenhang mit Symfony 1.4 nicht funktionieren werden. Aber das Gros sollte klappen.

                      The Askeet Tutorial | Symfony Adventskalender Tag 1: Ein Projekt beginnen | symfony | Web PHP Framework

                      Gruß,
                      tr-oo-per

                      Kommentar


                      • #12
                        Zitat von AmicaNoctis Beitrag anzeigen

                        wie wäre es mit sowas in der Art? Home page

                        Gruß,

                        Amica
                        Ich hätte zu diesem Script nochmal ne Frage:

                        Wozu ist diese Bedingung, bzw was bewirkt sie?

                        PHP-Code:
                        $subPages $subPages "<ul>" $subPages "</ul>" ""
                        Wenn ich das richtig verstanden hab, ist das ja das gleiche wie

                        PHP-Code:
                        if ($subPages $subPages)
                                    
                        $subPages "<ul>" $subPages "</ul>";
                                else
                                    
                        $subPages ""
                        Ist die Bedingung für das if nicht immer TRUE? $subPages = $subPages

                        Kommentar


                        • #13
                          Zitat von sfischer Beitrag anzeigen
                          Wozu ist diese Bedingung, bzw was bewirkt sie?
                          Das bewirkt, dass wenn $subpages leer ist, keine leere Liste erzeugt wird (<ul></ul>), sondern gar nichts. Die if-Entsprechung dafür sähe übrigens so aus:

                          PHP-Code:
                          if ($subPages) {
                              
                          $subPages "<ul>" $subPages "</ul>";

                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar


                          • #14
                            Erstmal danke für die schnelle Antwort. Ich würde das ganze gern noch so verändern, dass die Subpages nur angezeigt werden, wenn man sich im entsprechenden Teil des Menüs befindet. Ich versuchs mal so darzustellen:

                            Meine Menüstruktur sieht so aus:

                            Code:
                            Startseite
                              Artikel verwalten
                                Artikel anlegen
                                Artikel suchen
                                Artikelliste anzeigen
                              Projekte verwalten
                                Projekte anlegen
                                Projekte suchen
                                offene Projekte anzeigen
                            .
                            .
                            .
                            Was ich jetzt gern möchte ist, dass wenn man auf der Startseite ist, nur die Menüpunkte Artikel verwalten und Projekte verwalten zu sehen sind. Also so:

                            Code:
                            Startseite
                              Artikel verwalten
                              Projekte verwalten
                            Klickt man dann auf Artikel verwalten, sieht es so aus:

                            Code:
                            Startseite
                              Artikel verwalten
                                Artikel anlegen
                                Artikel suchen
                                Artikelliste anzeigen
                              Projekte verwalten
                            Klickt man auf Projekte verwalten, dann so:

                            Code:
                            Startseite
                              Artikel verwalten
                              Projekte verwalten
                                Projekte anlegen
                                Projekte suchen
                                offene Projekte anzeigen
                            Ich hab schon ein paar Anläufe gemacht, aber es kam nie etwas gescheites dabei raus. Eigentlich müsste man ja nur sagen: "Wenn Kindpunkt ein Unterpunkt von Elternpunkt ist, dann zeig mir den Kindpunkt an". Aber irgendwie krieg ichs nicht gebacken...

                            Kommentar


                            • #15
                              Dann erweiterst du einfach die Funktion createNavigation um eine Bedingung und gehst nur dann in die foreach-Schleife, wenn die erfüllt ist.
                              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                              Super, danke!
                              [/COLOR]

                              Kommentar

                              Lädt...
                              X