Frage zum Codeaufbau bei einer HP

Dieses Thema im Forum "Webentwicklung" wurde erstellt von torsKen, 3. September 2006 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 3. September 2006
    Hi!
    Habe mit photoshop eine HP designt und anschliesend mit css gecodet. Klappt alles wunderbar. Jetzt wollte ich natürlich, dass wenn ich in meiner Navi auf "News" klicke im content Bereich auch die News erscheinen. Das habe ich dann mit php include gemacht, und zwar so, dass bei den links in der navi zB "News" dann immer noch "?section=news" angehängt wird. So wird bei mir wirklich immer nur der content neu included, sowie es eigentlich auch ist wenn ich etwas in ein iframe lade.
    Jetzt habe ich aber etwas herumgelesen und viele machen das irgendwie umgekehrt, nämlich dass sie sozusagen immer eine datei mit dem content haben (zB news.php) und darin dann navi, header und footer includen. Warum machen das so viele so? Oder wie löst ihr das Problem, weil eigentlich ist es so wie ich es mache viel einfacher ?! Hat das irgendwelche Nachteile??
    Hoffe ihr könnt mir helfen
    -
    mfg
    torsKen
     
  2. 3. September 2006
    ich mach meist

    index.php
    includes/footer.inc.php
    includes/header.inc.php
    includes/navi.inc.php
    content/news.php
    content/blubb.php

    und lass durch die index.php alles includen. hat den vorteil, dass die einzelnen "module" (news, blubb, ...) auch mal alleine aufgerufen werden können, um bestimmte sachen zu testen. im prinzip isses dir aber selbst überlassen - hauptsache, du steigst durch deine struktur jederzeit durch.
     
  3. 3. September 2006
    €: Dies war ein Dummer Beitrag.


    Ich denke, es kommt einfach auf die Vorliebe drauf an, außer man arbeitet mit Templates.
     
  4. 4. September 2006
    denke viele machen das weil man sowas sich einfacher merken kann als ?lalablubb=xyz für einen normalsterblichen ist das total unverständlich und er wird nie wissen was das bedeutet aber ein einfacher dateiname geht da klar

    zudem meckern einige xhtml valiatoren über & in urls so kann man sich dann auch zB zuviele variablenübergaben über die url sparen

    was aber das sinnvollste ist musst du für dich selbst klären ich bevorzuge auch so wie von dir beschrieben die variante dass man alles in ne index packt hat dann den vorteil dass man neue elemente in eine hauptdatei schreibt und nicht extra in viele dateien oder es totalunpassend in eine datei die in jeder dieser dateien bereits included wurde

    ist wie gesagt aber alles vorliebe

    kann auch daran liegen dass einige sich nicht umstellen wollen von ihren html einstiegsseiten da man dort alles in speperate dateien kopiert hat wenn man nicht grad frames genutzt hat ;P
     
  5. 4. September 2006
    AW: Frage zum Codeaufbau bei einer HP

    Erstmal mach ich natürlich erstmal eine Datei, die dann möglich auch perfekt sein sollte.

    Dann gehe ich an die einzelnden Seiten und include meist erst den oberen Quelltext aus dem Original, schreib dann in HTML den jeweiligen Content und include danach den unteren Quelltext.

    Bin nicht so der Variablen-Fan, wenn es nicht sein muss. Hab dann lieber die einzelnden Dateiein, ist auch für Google besser aufzurufen als nur die index.php mit ?show=irgendwas .

    Ist aber natürlich jedem selbst überlassen, wie er/sie/es es dann macht.

    Frames hab ich am Anfang, als ich noch kein PHP konnte, benutzt.
    Aber vergisst man irgendwo ein target oder wird eine Seite über nen externen Link geöffnet ist alles im A****.

    hansi
     
  6. 4. September 2006
    AW: Frage zum Codeaufbau bei einer HP

    Hi, ich kann die zwar nicht zu deinem Problem helfen, aber wollte fragen, ob vielleicht einer mal für mich so ein Beispiel für einen Include hat. Habe den Beitrag aufmerksam gelesen und würde mich auch gerne an dei Include Variante drantesten. Arbeite zur Zeit noch mit Frames. Und wie oben schon von Hans-pedda erwähnt, die sind echt fürn A*****.

    Danke
     
  7. 4. September 2006
    AW: Frage zum Codeaufbau bei einer HP

    Hier mal ein Beispiel
    Wenn du nochmehr Seiten hinzufügen willst, einfach diese kleinen Absätze kopieren und abändern.

    PHP:
    <? php
        
    if(isset( $_GET [ 'go' ])) {
            switch(
    $_GET [ 'go' ]) {

                               case 
    "start" :
                    include 
    "content/start.php" ;
                    break;
                                case 
    "aktuell" :
                    include 
    "content/aktuell.php" ;
                    break;
                                case 
    "vita" :
                    include 
    "content/vita.php" ;
                    break;
                                case 
    "uebers" :
                    include 
    "content/uebers.php" ;
                    break;
                                case 
    "ital" :
                    include 
    "content/uebers.php#ital" ;
                    break;
                                case 
    "span" :
                    include 
    "content/uebers.php#span" ;
                    break;
                                case 
    "franz" :
                    include 
    "content/uebers.php#franz" ;
                    break;
                                case 
    "publi" :
                    include 
    "content/publi.php" ;
                    break;
                                case 
    "verlage" :
                    include 
    "content/verlage.php" ;
                    break;
                                case 
    "rezens" :
                    include 
    "content/rezens.php" ;
                    break;
                                case 
    "proben" :
                    include 
    "content/proben.php" ;
                    break;
                                case 
    "kollegen" :
                    include 
    "content/kollegen.php" ;
                    break;
                                case 
    "links" :
                    include 
    "content/links.php" ;
                    break;
                                case 
    "werkstatt" :
                    include 
    "content/werkstatt.php" ;
                    break;
                                    
                default:  
    // Wenn eine ungültige go angegeben wurde
                        // sollen die News gezeigt werden
                    
    include  "content/start.php" ;
                    break;
            }     
        } else {
            
    // wenn go nicht angegeben wurde
            // sollen die News angezeigt werden.
            
    include  "content/start.php" ;
        }
    ?>
    Die Seiten werden dann z.b. mit index.php?go=aktuell aufgerufen
    Kann auch nicht nur auf der Startseite verwendet werden, muss also nicht index.php heissen.

    Wenn garnichts oder eine ungültige "go"-Variable angegeben wird, wird "content/start.php" includet.
    Sollte man unbedingt verwenden, da http://meinedomain.com ja meist auf die index.php ohne irgendwelche Variable weiterleitet.

    hansi
     
  8. 4. September 2006
    AW: Frage zum Codeaufbau bei einer HP

    Cool Danke! Werde ich mir mal genauer anschauen und ausprobieren.
     
  9. 7. September 2006
    AW: Frage zum Codeaufbau bei einer HP

    hier eine kleinere Lösung als die mit switch:

    PHP:
    <? php
        
    // Prüfung ob "go" gesetzt ist und das "go" nicht leer ist
        
    if(isset( $_GET [ 'go' ]) and  $_GET [ 'go' ] !=  "" ) {
            
    // Prüfung ob die aufgerufene Datei auch existiert
            
    if( file_exists ( "content/" . $_GET [ 'go' ]. ".php" )){
                
    // Logisch folgende include
                
    include( "content/" . $_GET [ 'go' ]. ".php" );
            }
            
    // Wenn die Datei nicht existiert News anzeigen
            
    else{
                include(
    "content/start.php" );
            }
        }
        
    // Wenn "go" nicht gesetzt ist oder leer dann News anzeigen
        
    else{
            include(
    "content/start.php" );
        }
    ?>
     
  10. 7. September 2006
    AW: Frage zum Codeaufbau bei einer HP

    Hi,
    eine weitere aber sehr komplexe Lösung wäre das ganz mit Funktionen zulösen.

    Das ganze wäre dann wie folgt aufgebaut:
    1. Index wird aufgerufen z.B. mit index.php?action=news
    2. Es wird in einem array nach der Aktion news gesucht; Das Array enthält Informationen darüber was getan werden soll wenn die Aktion news aufgerufen wird. In diesem Fall soll z.B. die Datein /includes/news.php eingebunden werden und in dieser Datei die function show_news() aufgerufen werden.
    3. Die Funktion show_news() ruft dann alle Informationen ab die notwendig sind um die News anzuzeigen und speichert sie in einer globalen Variable. Am Ende ruft sie die Funktion lade_template('News') auf.
    4. Die Funktion lade_template bindet das "index.template.php" ein wo alle Informationen enthalten sind, die statisch sind. (z.B. die Navi) Durch den Übergebenen Parameter wird dann die Datei "News.template.php" integriert und in ihr die Funktion "template_main" aufgerufen welche aus der globalen Variable alle Informationen ausließt um sie entsprechend auf den Bildschirm zubringen.

    Das ganze lohnt sich erst wenn man subactions und subtemplates nutzts. So können dann z.B. in der Datei /includes/news.php alle Funktionen enthalten sein, die mit News zutun haben (Erstellen, Ändern, Anzeigen) und in der News.template.php alle Funktionen zum Anzeigen. Desweiteren ist hier schon ein template System integriert. Sprich durch ein Änderung in der lade_template Funktion (oder einer Variable) werden die templates z.B. aus einem anderem Verzeichniss genommen. (Für ein anderes Design; die Inhalte bleiben ja identisch, da sie in der includes/News.php "erzeugt werden")

    Auch bringt der ganze Spaß einpaar Sicherheitsvorteile. Direktes Aufrufen der templates/includes (im Browser) bringt nichts, da die Funktionen die sie enthält ja nicht aufgerufen werden.

    ..puh ich hoffe, dass es halbwegs verständlich ist. Hab das ganze Verfahren mal etwas gekürzt und hoffentlich nix wichtiges vergessen.^^

    greetz blackbone
     
  11. 7. September 2006
    AW: Frage zum Codeaufbau bei einer HP

    Warum kleiner ?
    Dein Code ist von den Zeilen her schon kleiner, aber nur weil du nur 1 Beispiel und nicht 14 genommen hast ^^

    Wil ja keinen Streit anfangen, aber mit "meiner" Lösung braucht 3 Zeilen, und bei deiner "nur" 2.
    Son großer Unterschied ist da garnicht, schon ziemlich gleich.

    hansi
     
  12. 8. September 2006
    AW: Frage zum Codeaufbau bei einer HP

    @hans-pedda,

    sein Code-Vorschlag ist allerdings handlicher und besser.
    Falls man den Dateinamen im Verzeichnis ändert, muss man diesem im Quellcode ebenfalls korrigieren und das ist schonmal ein Minuspunkt, wenn es darum geht, flexible Scripte zu programmieren.

    Das optimale für eine Homepage wäre die Verwendung von Template-Systemen (http://smarty.php.net).

    Template-Systeme haben den riesigen Vorteil, dass man den Code vom Design trennt und dass man nicht zick tausende Dateien wieder ändern muss, wenn man die Schriftfarbe anders haben will.
    Zudem kannst du mit einem solchen Template-Systemen Inhalte viel einfacher und komfortabler ausgeben.
    Und dazu wäre optimal noch ein eigenes CMS (Content Managment System).
    Somit hast du deinen eigenen Homepage-Baukasten und kannste Seiteninhalte usw bequem via Administrationspanel hinzufügen.

    Aber es führen viele Wege nach Rom...^^


    Mfg
    Yuri
     
  13. 8. September 2006
    AW: Frage zum Codeaufbau bei einer HP

    Dafür gibts ja die .css-Datei


    hansi
     
  14. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.