Template Datei


  • Snip3r
  • 2280 Aufrufe 7 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Template Datei

    Morgen,

    ich hab mir ein freies Template (Freeware) runtergeladen.
    Das ist mit Tabellen erstellt und mit CSS formatiert. Also:

    Banner (oben)
    Menü (links)
    2. Menü (rechts)
    Footer (unten)
    Content Bereich (mittendrin)

    Meine Frage jetzt dazu: wie kann ich in diesem Template in den Content Bereich was einfügen?
    Mit php am besten, also include ("xyz.php");
    aber wenn der User jetzt auf ein anderen Link im Menü geht, zum Beispiel Members, soll im Content Bereich die members.php eingefügt werden.
    Mit Frames wäre das ja ziemlich einfach zu verwirklichen (<a href="members.php" target="frame1">Members</a>)

    Hoffe ihr versteht was ich meine... :D

    mfg
    Snip3r

    //EDIT: gegoogelt hab ich schon und die SuFu hat mir auch nicht geholfen! ;)
    Rechteübersicht * Forenregeln * F.A.Q. * Lexikon
    Suchfunktion * Chat * User helfen User
    Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten. (Bertrand Russell)
  • Es wäre möglich das ganze mit inlcudes zu machen:

    PHP-Quellcode

    1. <?
    2. include_once('header.php');
    3. //erlaubte Seiten
    4. $allowed = array('xyz.php');
    5. //Prüfen ob erlaubt
    6. if(in_array($_GET['site'], $allowed)) {
    7. include_once($_GET['site']);
    8. } else {
    9. echo $_GET['nSeite'].' ist nicht erlaubt!';
    10. }
    11. include_once('footer.php');
    12. ?>
    Alles anzeigen


    Dann kannst du es mit meinserver/index.php?site=xyz.php aufrufen

    ich würde dir aber empfehlen für jede Seite eine eigene php Datei zu machen wo du immer header und footer und dazwischen den gewünschten Inhalt inkludierst!
  • Danke für deine Antwort.
    Der o.g. Code kommt dann praktisch in eine config.php? Die auf der index.php includet wird.

    Du meinst also ich sollte dieses "Template" einfach x-mal kopieren, jedes anders nennen, also members.php, history.php Und dies dann verlinken.
    Aber dauert das nicht etwas lange ohne DSL um die Pics jedes mal neu zu laden?

    Wie machen es andere Webmaster?

    mfg
    Snip3r
    Rechteübersicht * Forenregeln * F.A.Q. * Lexikon
    Suchfunktion * Chat * User helfen User
    Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten. (Bertrand Russell)
  • Hallo Snip3r,

    es ist etwas anders gemeint. Es geht in dem Beispiel darum immer nur die index.php aufzurufen mit verschiedenen GET- Paramtern, die dann jeweils verschiedene php- Dateien includieren.

    Ich habe jetzt etwas Zeit also wenn Du es nicht hinbekommst, schreibe mal eine PN. Ich übergebe für kleine Seiten den Links allgemeine Parameter für die index.php die ausgewertet und im Maincontent eine angepasste Content Datei z.B. mit file() laden.

    bye
    Guardian
  • Hallo Sn!per,
    also, zu deiner Frage, die ja schon beantwortet wurde hier noch eine alternative:
    1) Die links im Menü sehen so aus,wie gebi84 es geschrieben hat:
    h**p://www.deine-seite.de/index.php?cat=HIER_DIE_KATEGORIE (z.B. guestbook)
    2) In dem bereich, wo der content stehen soll, machst du eine switch anweisung:
    $cat = $_GET['cat'];
    switch ($cat)
    {
    case 'guestbook':
    include('guestbook.php');
    break;

    case 'impressum':
    include('impressum.php');
    break;

    default:
    include('startseite.php');
    break;
    }
    durch den letzten punkt, default, wird festgelegt, was eingebunden wird, wenn die cat= einen inhaltspunkt hat, der nicht vergeben ist.

    Nachteil dieser Lösung:
    Bei vielen unterseiten wird sie ziemlich ausführlich und lang...

    Andere alternative:
    du übergibst als cat einfach den dateinamen:
    also sowas wie cat=guestbook

    dann machste
    $cat = $_GET['cat'];
    if (file_exists($cat.'.php'))
    { require_once($cat.'.php'); }
    else
    { require_once('startseite.php'); }

    das ist eine lösung, wo du nachträglich nichts mehr einfügen musst... also du kannst dann eine neue seite erstellen, im menü eintragen, und sie sollte sofort erreichbar sein

    Vorteil von den includes ist: Du mußt nur in deinem Template etwas ändern (z.B. das 2. Menü rechts zu löschen) und es gilt für alle anderen seiten....
    Würdest du für jede Datei, die du anfordert, immer wieder eintragen, wie das auszusehen hat, also header, footer,menü .... etc.... müßtest du es auch in allen anderen datein löschen...
  • Hallo friedensstift,

    danke für deine Antwort!

    Zur ersten Lösung, die vesteh ich im Gegensatz zur zweiten Lösung ;)

    Kann ich auch ein File namens, z.b. content.php erstellen und dies da rein schreiben? Kann ich statt $cat auch $site schreiben? und halt alles auf site umändern?
    Und wie sieht dann ein Link aus? meineseite.eu/index.php?site=members.php ?
    :D

    mfg
    Snip3r
    Rechteübersicht * Forenregeln * F.A.Q. * Lexikon
    Suchfunktion * Chat * User helfen User
    Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten. (Bertrand Russell)
  • hallo Sn!per,
    also, die wahl deiner variablen ist dir überlassen
    ob du index.php?schaf=mempers.php oder ?site=members.php verwendest, ist jacke wie hose
    aber du mußt dementsprechend $cat = $_GET['cat'] verändern

    also, noch ein tipp: nicht ?site=members.php sondern: ?site=members
    ohne das .php

    zu der zweiten lösung:
    $cat = $_GET['cat']; //Holt sich die variable, die per get übergeben wird

    if (file_exists($cat.'.php')) //Überprüft, ob die datei, (in deinem Bsp. members.php) vorhanden ist

    { require_once($cat.'.php'); } //require oder include... ist jacke wie hose, was du nimmst

    else //ist die angeforderte datei nicht vorhanden
    { require_once('startseite.php'); } //dann nimm die standarddatei, die immer eigebunden werden soll... so a la default

    Vorteil:
    Du mußt nicht bei jedem neuen Menüpunkt,den du einfügst, auch einen neuen case in der switch anweisung einfügen

    Nachteil:
    So ist jede Datei mehr oder weniger auf dem Server ausführbar