XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   CSS (http://xhtmlforum.de/forumdisplay.php?f=73)
-   -   Redundanter Inhalt durch CSS -> PHP? (http://xhtmlforum.de/showthread.php?t=46690)

smartens 04.07.2007 01:21

Redundanter Inhalt durch CSS -> PHP?
 
Hi,

es kommt durch reine Nutzung von CSS und XHTML ja zu einigem Code, der auf allen Seiten vorhanden ist, so dass dieser jedes mal neugeladen werden muss und es auch Zeit kostet in jedem Dokument etwas zu ändern zu müssen. Ich habe da zwar ein Tool, das in mehreren Dokumenten Text ersetzt, aber das ist schon ziemlich nervig.

Deshalb meine Frage:

Gibt es hier die Möglichkeit diesen quasi doppelten Code irgendwie zu umgehen? Z.B. mit PHP?

Ich war mir nicht sicher, ob es hier thematisch reinpasst, aber hoffe hier eine kompetente Antwort zu finden, da hier sicher einige CSS-Tüftler davon Ahnung haben.

Gruß,
Stefan

o_anonym 04.07.2007 01:47

Ja, mit der include-Funktion von php geht das (sehr einfach).

ArcVieh 04.07.2007 01:56

Dieses Thema gehört eher in Serveradministration. ;)
Du machst einfach einen HTML Code fertig und den Rest machst Du über PHP Variablen. Wie z.B. $menu, $content etc. Die Funktionalität lagerst Du am besten in eine config.inc.php aus. Das ganze kannst Du über $_GET abwickeln, so das Du wirklich nur eine index.php und config.inc.php hast.

In der config.inc.php kannst Du dann, je nachdem wie z.B. $_GET['page'] ist, die Variable $content ändern.
PHP-Code:

<?php
    $get 
$_GET['page'];
    
//Array mit den Menü Elementen?
    
if($get 'home'){ //Foreach o. switch-case?
        
$content "Willkommen auf meiner Seite"//Datenbank Abfrage?!
    
} elseif {
     
//...
    
}
    
//Menü generieren
?>

PHP-Code:

<?php require_once('config.inc.php'); ?>
<!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>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Meine Seite</title>
    </head>
    <body>
        <h1>Meine Seite</h1>
        <?= $menu ?>
        <div id="content"><?= $content ?></div>
    </body>
</html>


smartens 04.07.2007 09:31

danke - wie mit include?
 
danke für die anschauliche Erklärung ArcVieh.
Ole meinte es ginge mit der include-Funktion ebenfalls und das sehr einfach - wie würde das ablaufen?

o_anonym 04.07.2007 09:51

Du schreibst z.B. Deine Navigation in eine Datei namens nav.inc.php (Besteht nur aus dem HTML der Navigation) und in Deiner Hauptdatei bindest Du sie per
PHP-Code:

<?php include("nav.inc.php"); ?>

ein. Diese Navigation kannst Du so auf beliebig vielen Seiten nutzen. Du kannst auch noch Variablen übergeben und so weiter ... eins nach dem anderen ;)

Die Methode von ArcVieh hat auch seine Reize, aber man bekommt so nicht so schöne URLs hin, denke ich und suchmaschinenfreundlich ist es wohl auch nicht.

EDIT: Da die include-Variante eigentlich sehr oft benutzt wird, sollte sich darüber auch was über die Suche oder bei Google finden lassen.

heiko_rs 04.07.2007 10:27

Zitat:

Zitat von Ole Staack (Beitrag 339556)
Die Methode von ArcVieh hat auch seine Reize, aber man bekommt so nicht so schöne URLs hin, denke ich und suchmaschinenfreundlich ist es wohl auch nicht.

Ich setze diese Methode auch ein, da sie der einfachen include-Variante deutlich überlegen ist, und für die URLs gibt's mod_rewrite ;)

Übrigens ist ein Includen von immer derselben Navi nicht sinnvoll, da sich die "aktiven" Menüpunkte nicht kenntlich machen lassen.

o_anonym 04.07.2007 11:00

Zitat:

Zitat von heiko_rs (Beitrag 339559)
Ich setze diese Methode auch ein, da sie der einfachen include-Variante deutlich überlegen ist, und für die URLs gibt's mod_rewrite ;)

mod_rewrite ist für den Anfänger denke ich nur bedingt geeignet, oder (zähle mich dazu ;) )?

Zitat:

Zitat von heiko_rs (Beitrag 339559)
Übrigens ist ein Includen von immer derselben Navi nicht sinnvoll, da sich die "aktiven" Menüpunkte nicht kenntlich machen lassen.

Dies lässt sich ja durch Variablen ganz einfach lösen. Ich gebe der Datei immer ein $section mit und beim aktiven Navigationselement wird dann der Link entfernt und das Element z.B. mit strong hervorgehoben.

@smartens: Ich werde mich mal mit ArcViehs Lösung und mod_rewrite auseinandersetzen - vielleicht solltest Du das auch tun... :)

smartens 04.07.2007 11:33

supi
 
jo, gut zu wissen - das wäre meine nächste frage nämlich gewesen - von SEO habe ich zumindest theoretisch nämlich sehr viel ahnung ;)

das sollte mit rewrite dann kein problem sein - ich fürchte ich hab mir das falsche php buch aus der bib ausgeliehen. das ist eines dieser bücher in denen erstmal die sprache von vorne bis hinten in der theorie erklärt wird und zum schluss erst ein wenig auf die praxis eingegangen wird.

Danke für die zahlreichen Antworten!

Maxefix 04.07.2007 11:51

Die Variante mit der einen index.php und den Variablen für das Menü und den Content hat einen großen Nachteil: Man kannn keinen PHP-Code in eine Seite einfügen. Zumindestens habe ich es nicht geschafft...
Zitat:

Zitat von Ole Staack (Beitrag 339570)
mod_rewrite ist für den Anfänger denke ich nur bedingt geeignet, oder (zähle mich dazu ;) )?

Naja, ist wohl recht einfach zu lernen, wenn man es denn will. :) Sieht zwar etwas kryptisch aus, aber so kompliziert ist es glaub gar nicht.
Zitat:

Zitat von Ole Staack (Beitrag 339570)
Dies lässt sich ja durch Variablen ganz einfach lösen. Ich gebe der Datei immer ein $section mit und beim aktiven Navigationselement wird dann der Link entfernt und das Element z.B. mit strong hervorgehoben.

Gute Idee, Danke für den Tipp. Ich hab bis jetzt immer den Dateipfad kontrolliert, war die aktuell aufgerufene Datei bspw. im Verzeichnis "fotos" wurde auch der entsprechende Navigationspunkt geh-highlight-ed (dummes Wort...).

Gruß

Max

ArcVieh 04.07.2007 16:59

Zitat:

Zitat von Maxefix (Beitrag 339579)
Die Variante mit der einen index.php und den Variablen für das Menü und den Content hat einen großen Nachteil: Man kannn keinen PHP-Code in eine Seite einfügen. Zumindestens habe ich es nicht geschafft...

Inwiefern? Im Grunde wird doch dem Client eh alles als HTML ausgeliefert, d.h. Du kannst in der config.inc.php deine zusätzlichen Funktionen anlegen, die auf die $content Variable unter bestimmten Umständen greifen.

Man kann auch nur eine index.php machen und da den ganzen Code reintippen, allerdings bevorzuge ich eher, die Daten in einer Variable zu speichern.

Hier ein Beispiel, vllt. für Grobmotoriker. :D
PHP-Code:


ob_start
(); //Output Buffering starten
echo "hello world";
for(
$i=0$i<=10$i++){
echo 
$i;
}
$content ob_get_contents();
ob_end_clean();
echo 
$content//Erst hier wird alles zwischen ob_start & ob_end ausgegeben
//Ausgabe: Hello world12345678910 

BTW: Für Navi includen usw. würde ich auch
PHP-Code:

requirer_once() 

empfehlen. Die Datei kann nur einmal eingebunden werden und wenn Sie nicht eingebunden werden kann, bricht das Script ab. ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:17 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023