Bestimmte Box nur auf index.php anzeigen - wie?

Hallo alle zusammen!

Habe hier eine Webseite mit einem kleinem Template-System.
Da gibt es für die Templates eine general.html - in dieser html-Datei wird der Grundaufbau mit den einzelnen Komponenten für die ganze Webseite festgelgt. Die restlichen Template-Dateien sind alle *.php

Nun möchte ich eine bestimmte Box (für Newsletter) nur auf der Startseite anzeigen lassen, sonst niergends - aber wie mache ich das?

Hätte folgendes versucht, leider erfolglos:
[html]
{if basename($_SERVER[‚PHP_SELF‘]) == ‚index.php‘}
HIER DER HTML-CODE FÜR DIE BOX
{/if}
[/html]

Denn alles was in dieser general.html deffiniert ist, wird auf allen Unterseiten agezeigt, denn in den jeweiligen Dateien für die Unterseiten, steht nur rein der Text drin, sonst nichts.

Mmh, du könntest bei den ganzen Komponenten setzen:

[php]

$filename = „index.php“;

[/php]

und dann noch folgendes eingeben:

[php]

if ( isset ($filename) AND $filename=„index.php“ )
{
//HTML Code
}

[/php]

Thx - aber deinen Code kann ich nicht in eine HTML-Datei einbinden, und hier gehts ja um eine HTML-Datei.

In den PHP-Template Dateien ist ja kein Code drinne, da steht nur der direkte Text, den kann man drin abändern.

ist doch nun egal, ob das ding HTML oder PHP heißt…

Nils aka XraYSoLo

Hä???
Ich kann in eine HTML-Datei nicht $filename = „index.php“; einfügen

ja und?

Nils aka XraYSoLo

Was ja und?

wo siehst du jetzt ein problem, anstatt einer HTML- eine PHP-datei zu erstellen?

Nils aka XraYSoLo

Nö das ist nicht möglich - diese Template-Datei muss html bleiben, wenn ich sie am Server umbenenn auf php dann funzt nichts mehr.

Aber kann mit diesem Code auch nichts anfangen, verstehe davon ja nichts. Am besten bitte ein konkretes Beispiel reinschreiben, danke.

Ich möchte nichts weiter, als wie eine bestimmte Stelle einer html-Datei nur auf der Startseite ausgeben lassen, auf den Unterseiten nicht.

also geht das nur mit php und wenn dein server das nicht unterstützt, gehts eben nicht.

Nils aka XraYSoLo

Sag mal, kannst du vielleicht bitte so reden, dass man dich verstehen kann?
Sicher unterstützt mein Server php.

:shock: Natürlich kannste das in HTML einfügen:

[php]<?php $filename='index.php'; ?>[/php]

Das sollte man aber schon wissen,

Ich kann php-Code in eine HTML-Datei einfügen? Aha - danke für die Info!
Gut, jetzt soll ich diese Zeile reinschreiben? Das bringt mir aber nichts.

Ich versuchs mal besser zu erklären, also:
In der general.html steht zb.

zwischen dem HTML-Code.
Dies ist der Platzhalter für die Datei zeile1.php - In dieser Datei steht dann der Text der hier ausgegeben wird.

-.- Manche hier haben manchmal Problemchen

In der index.php IRGENDWO setzen:
[php]<?php $filename = "index.php"; ?>[/php]

In der general.html da setzen, wo die Box hinsoll:

[php]<?php

if ( isset ($filename) AND $filename == „index.php“ )
{
//HTML-Code
}

?>[/php]

Ich denke mal mehr kann dir nicht geholfen werden.

Also,

ich habe das jetzt vllt. richtig verstanden …

Dein Problem ist, das Du genau gegensätzlich zu anderen TemplateSystemen arbeitest! Deine „Startseite“ bzw. „Designseite“ ist die general.html. Schön und gut … aber Du müsstest eine php Seite haben, die diese „Designseite“ includet und parset…

Dann müsstest Du in der general.html einen Platzhalter machen, an der Stelle wo auch die „News Box“ entstehen soll.

z.B.

<!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">
    <head>
        <title>cms</title>
        <meta http-equiv="Content-Type" content="text/xhtml; charset=ISO-8859-1" />
    </head>
    <body>
        <p>
            {newsBox}
        </p>
    </body>
</html>

Und nun parset Du und setzt an die Stelle „{newsBox}“ eine weitere html Templatedatei ( die Newsbox ).

Nen paar Tips bzw. nen Tut findest Du hier…

http://tut.php-q.net/template.html

Hoffe ich konnte Dir helfen bzw. habe es richtig verstanden :wink:

Gruss der Onkel

Hallo Netztschleicher!

Vielen Dank für deine Gedild mit mir! :slight_smile:

Habe das nun exakt genau so gemacht wie du gesagt hast - geht aber nicht :frowning:

In der index.php habe ich folgendes eingefügt, am Ende der Datei:

<?php $filename = "index.php"; ?> Und in der general.html habe ich folgendes eingefügt:

[code]

<?php if ( isset ($filename) AND $filename == "index.php" ) { } ?>

[/code]Das geht aber nicht, denn nun wird mir der PHP-Code den ich in die .html-Datei eingefügt habe, direkt auf der Webseite angezeigt, sonst passiert nichts, nur der Code steht da wie Text.

@boehseronkel[B]:

[/B]Das ist richtig - es gibt eine php-Datei in der die general.html includiert wird.
Einen Platzhalter in der html gibt es ja bereits, wie oben erwähnt: [B] Genau das ist ja der Platzhalter.

[/B]Für diesen Platzhalter gibt es dann jeweils eine weitere php-Datei, in der ist dann entweder reiner Text, oder so wie hier der html-Code für diese Box.

2 Tage später…Sorry wenn ich nochmals störe.
Aber kann mir denn wirklich niemand helfen? Schade.
Nun hätte ich die Fakten schon so genau geschildert.

Mod-Edit: Doppelpost zusammengeführt - Ist Regellesen so schwer? (XraYSoLo)