tutorials.de Buch-Aktion 05/2012
  • [PHP] Webseiten ohne Frames und per link wechselbarem design ( skins )

    Skill: Einsteiger


    Dieses Tutorial beschreibt, wie man ganz einfach mit PHP eine Website ohne die herkömmlichen Frames erstellen, und ausserdem skinfähig machen kann, d.h. ohne großen Aufwand das Design zu ändern, ohne großartig den Inhalt anpassen zu müssen. Ausserdem beschreibe ich hier wie man die verschiedenen Layouts (skins) per Link ändern kann.

    Also fangen wir an. Was brauchen wir ?
    Zunächst müssen wir erstmal unser Layout fertigstellen und in html umsetzen.
    Als Beispiel nehmen wir eine typische "links-oben-navigation", d.h. daß sich das Navigationsmenü auf der linken Seite befindet und weitere Grafiken, etc. oben angebracht sind.

    Statt Frames benutzen wir diesmal ganz normle Tabellen.
    Erstellt also eure grafiken, etc. ganz normal mit eurem Grafikeditor
    und zerschneidet diese, um sie in HTML umzusetzen.

    Startet euren HTML-Editor und erstellt euer Tabellen "frame"-set.
    Das heist ihr erstellt eine tabelle auf der linken Seite, eine Header Tabelle und eine Haupttabelle wo später der Inhalt eingefügt (included) wird.
    Natürlich könnt ihr die Tabellen auch ganz anders positionieren, die Gestaltung liegt voll und ganz bei euch.

    Nun kommen wir zum etwas komplizierteren Teil:
    Als erstes erstellt ihr in eurem Websiten-Hauptverzeichnis den Ordner "includes". In diesem Ordner werden später die einzelnen PHP-Dateien kopiert. In dem Ordner "includes" erstellt ihr für jedes einzelne Template einen Ordner, und gebt ihm einen Namen (z.B. für ein
    blaues design "blue")
    Kopiert alles was bis zum anfang der Haupttabelle steht (alles einschliesslich des "<td>" tags )
    in eine txt-Datei und nennt diese um in "kopf.php".
    Das selbe macht ihr mit dem Rest eures codes, nur diesmal kopiert ihr alles ab dem ENDE der Tabelle ( einschl. des </td> tags ). Fügt es in eine NEUE txt-Datei ein und nennt diese um in "fuss.php".

    Die soeben erstellten Dateien kopiert ihr in den ordner "blue" den ihr zuvor erstellt habt.


    Nach dem wir alle vorbereitenden Maßnahmen getroffen haben, geht es nun an den php code.

    Um Dateien in eine andere Datei einzufügen benötigt man den Befehl "require" bzw. "include".
    Wir erstellen als erstes eine Datei mit dem Namen main.php.
    Nun schreiben wir in den html code folgendes:

    PHP-Code:

    <?php
    include ("includes/".$skin."/kopf.php"); 
    ?>

    <?php 
    include($go.".php"); 
    ?> 

    <?php
    include ("includes/".$skin."/fuss.php"); 
    ?>
    Das sieht recht wirr aus, also nehmen wir das mal ausseinander:

    PHP-Code:
    <?php
    include ("includes/".$skin."/kopf.php"); 
    ?>
    "include" steht wie zuvor schon beschrieben dafür eine bestimmte datei "einzufügen"
    "$skin" Dies ist die Variable die wir später per Link verändern können (main.php?skin=blue)
    somit wird an der Stelle wo $skin steht "blue" eingefügt...welches der Name eures Verzeichnisses ist, wo sich der "blue" skin drin befindet. ( includes/blue/kopf.inc.php ) .

    PHP-Code:
    <?php 
    include($go.".php"); 
    ?>
    der include-Befehl dürfte mittlerweile bekannt sein.
    Nun haben wir aber eine neue variable namens "$go". Diese Variable bestimmt, welcher "Inhalt", also welche Unterseite, aufgerufen werden soll. Das "php" steht für die dateiendung der includierten Datei. Setzen wir diese Variable also auf z.B. "inhalt1" (main.php?skin=blue&go=inhalt1), so wird automatisch die Datei inhalt1.php eingfügt.

    PHP-Code:
    <?php
    include ("includes/".$skin."/fuss.php"); 
    ?>
    Das ist das selbe wie oben nur diesmal wird nicht die Kopfdatei (kopf.php), sondern die Datei fuss.php eingefügt.

    Wie belegen wir nun unsere links ?

    Wenn wir zB. die news anzeigen wollen, und diese sich in der Datei news.php befinden, muss der Link folgendermaßen aussehen:

    main.php?skin=blue&go=news


    Ich habe mal schnell ein kleines Beispiel geschrieben, an dem ihr sehen könnt, daß es funktioniert.

    HIER


    Im zweiten Teil werde ich euch zeigen, wie ihr einen Button zum switchen der skins einbaut, ohne das sich der inhalt ändert, ausserdem wie man einen zufälligen skin auswählt.

    So hier der Nachtrag zum Tutorial:
    Der "change skin" link
    falls ihr nur 2 verschiedene skins habt könnt ihr einfach per link zwischen den beiden hin und her switchen...
    falls ihr allerdings mehrere skins verwendet empfiehlt es sich
    ein formular menü zu machen...dazu komm ich auch noch ... aber hier erstmal der skin-switch-link

    PHP-Code:

    <?php
    if ($skin=="blue") {
        echo 
    "<a href=\"main.php?skin=brown&go=$go\">change skin</a>";
    }
        else {
        echo 
    "<a href=\"main.php?skin=blue&go=$go\">change skin</a>";
    }
    ?>

    ps falls ihr so einen link einbaut müsst ihr natürlich eure navigationslinks ändern ! da wenn ihr das blaue template festlegt und jemand changet den skin er sobald er auf nen link klickt wieder den ursprünglichen skin bekommt...
    aber dem ist abhilfe geschaffen:

    eure links dürften ja jetzt folgendermaßen aussehen:

    PHP-Code:

    <a rel="nofollow" href="http://www.tutorials.de/main.php?skin=blue&go=inhalt2"
    ändert das in:

    PHP-Code:

    <a rel="nofollow" href="http://www.tutorials.de/main.php?skin=<?php echo "$skin"?>&go=inhalt2">

    somit wird der aktuelle skin immmer "mitgeschleppt" da die variable ja im browser gesetzt wird

    So und hier per Menü:
    fügt das in euren <head>
    <script type="text/javascript">
    //<![CDATA[

    window.google_analytics_uacct = "UA-1691844-1";


    //]]>
    </script>
    </head> bereich ein:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    <SCRIPT language="JavaScript">
    function linkwin(formName, popupName, target) {
        var popup = document[formName].elements[popupName];
        if (popup.options[popup.selectedIndex].value != "") {
            window.open(popup.options[popup.selectedIndex].value, target);
            popup.selectedIndex=0;
        }}
    </SCRIPT>



    PHP-Code:

    form name="changeskin" onChange="linkwin('favs','changeskin','_self')">
      <select name="skinchange">
        <option selected>Choose Skin</option>
        <option value="main.php?skin=blue&go=<?php echo "$go"?>">
    Freaky Blue</option>
        <option value="main.php?skin=brown&go=<?php echo "$go"?>">
    Funky Brown</option>
      </select>
    </form>

    Bei fragen.... PM oder EMAIL !
    ICQ fragen beantworte ich grundsätzlich NICHT
     


    Kommentare Kommentar schreiben

    Klicke hier, um dich anzumelden

    Was ist grün und kann quaken?