Callback Funktion, nach include Title setzen ?
Chrisi
- programmiertechnik
0 Tom0 Chrisi
Hallo zusammen,
ich suche nach einer Möglichkeit den Title meiner Webseiten Dynamisch festzulegen.
Dazu muss gesagt sein:
Es gibt eine index.php in der das betreffende Modul das über die URL mitgeliefert wurde includet wird.
index.php?modul=testseite
Nun möchte in in jedem Modul, wie hier z.B. "testseite", festlegen welcher Title verwendet werden soll.
Das Problem ist das der Title der Webseite in der index.php festgelegt wird bevor das Modul geladen wird.
Ich benötige nun eine Technik die es ermöglicht den Title nachträglich festzulegen, habt Ihr da vieleicht eine Idee ? (Quasie eine Kommunikation zwischen modul & index).
Ich weiss nicht ob sowas überhaupt geht würde mich aber über Tipps freuen ;-)
Leider basiert die Webseite nicht auf Templates, dann hätte ich damit keine Probleme ...
Viele Grüße und danke,
Chrisi
Hello,
Das Problem ist das der Title der Webseite in der index.php festgelegt wird bevor das Modul geladen wird.
Das ist die falsche Vorgehensweise.
Irgendwo im Forumsarchiv findest Du bestimmt 30 Psaotings von mir zum Thema "Section".
Und wahrscheinlich wirst Du ach ca. 6000 Postings von Anderen finden ;-)
Also such mal nach "HTML Output" "HTML Ausgabe" oder so...
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
Also such mal nach "HTML Output" "HTML Ausgabe" oder so...
http://aktuell.de.selfhtml.org/tippstricks/php/variablen/index.htm#beispiel
Also ich habe dieses Beispiel gefunden, ist das soetwas wie du meinst ?
Hast du vieleicht einen direkten Link zu einem Deiner Postings ?
Ich habe keine Ahnung wonach ich da überhaupt suche und will mich da nicht in etwas verrennen das ich nacher bereue ;-)
(( ganze seite umgebaut, hätte aber auch anders geklappt ))
Viele Grüße und danke, ( auch für deine Hilfe von gestern )
Chrisi
Hallo Chrisi,
Eine Moeglichkeit waere zum Beispiel so:
Datei mit dem Inhalt der Seite, sagen wir inhalt.inc.php
$title = "Mein Titel";
$text = "Hier steht der Inghalt der Seite";
Du includest die Datei in index.php wie gehabt;
Anstatt <title>Titel der Index-Seite</title>
schreibst du <title><?php print $title ?></title>
An der stelle wo der Inhalt hinsoll, schreibst Du <?php print $text ?>
Das ist zumindest das Prinzip, include wird also hier nicht benutzt um Text zu importieren, der sofort ausgespuckt wird, sondern um 2 Variablen zu starten, die dann bei Bedarf benutzt werden.
Dieter
Hello,
der Fehler steckt doch im "Include-Wahn"
Ich weiß nicht, werd das eigentlich mal aufgebracht hat.
include() ist nicht das gleiche, wie SSI.
Strukturiere Deine Scripte:
Konstanten und Scriptvariablen deklaiern und initialisiern
generelle includes durchführen
Funktionen definieren
Datenübernahme aus POST, GET, etc
Datenverarbeitung, Datenbankabfragen und -manipilationen
Ausgabe berechen
Ausgabe durchführen
Das ist so grob der Aufbau.
Man fängt mit dem Training am besten an, indam man keinerlei Echos mehr in Funktionen oder includes vornimmt. Echos finden nur noch im HTML-Ausgabeteil statt
Dort werden nur noch vorberechnete Variabeln ausgegeben, keine einzige Entscheidung mehr getroffen. Wunschvorstellung, denn ein <?php if (!empty $irgendwas) echo $irgendwas; ?> sollte gerade noch erlaubt sein. Aber auch nicht mehr!
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo Tom,
Ich geb Dir da mehr als Recht, aber ich hatte den Eindruck, das wuerde Chrisi im Moment ueberfordern.
Dieter
Hi Tom,
der Aufbau der Webseite ist nicht veränderbar, da würde ich in Wochen noch sitzen und das lohnt nicht.
I.d.R. trenne ich auch Code (Classen) von Output (Templates), leider war ich bei dem Projekt aber nicht von Anfang an dabei.
Viele Grüße und danke,
Chrisi
Hello,
der Aufbau der Webseite ist nicht veränderbar, da würde ich in Wochen noch sitzen und das lohnt nicht.
I.d.R. trenne ich auch Code (Classen) von Output (Templates), leider war ich bei dem Projekt aber nicht von Anfang an dabei.
Das kneift dann bestimmt bei jeder Änderung im Magen. Kenne ich auch. Fasse ich das jetzt an, oder lasse ich es lieber?
Da hilft dann nur die totale Verschlimmbesserung.
Leichte Variante: ob_start() ganz am Anfang und dann dannmal irgendwann den Buffer freigeben
Oder als eine der letzten Zeilen im Script:
$title = "Schmuddelprogrammierung";
echo "<script type="text/javascript">document.getElementsByTagName('title')[0].value="$title";</script>";
So oder so ähnlich jedenfalls und dann beten, dass der user JavaScript eingeschaltet hat.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
Das kneift dann bestimmt bei jeder Änderung im Magen. Kenne ich auch. Fasse ich das jetzt an, oder lasse ich es lieber?
Genauso siehts aus, am liebsten würde ich das alles umschmeissen aber denke am Ende lohnt das einfach nicht.
Da hilft dann nur die totale Verschlimmbesserung.
Leichte Variante: ob_start() ganz am Anfang und dann dannmal irgendwann den Buffer freigeben
Das wäre eine Lösung.
Mit JS werde ich da nicht rumfummeln ;-)
Viele Grüße und danke,
Chrisi
Hello,
Mit JS werde ich da nicht rumfummeln ;-)
Klappt auch irgendwi nicht so, wie eben gescherieben. Allerdings bin ich mir ganz sicher, dass ich da mal ausprobiert hatte. Der <title>-Tag ließ sich in den meisten Browsern noch nachträglich ändern.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi Dieter,
Das ist zumindest das Prinzip, include wird also hier nicht benutzt um Text zu importieren, der sofort ausgespuckt wird, sondern um 2 Variablen zu starten, die dann bei Bedarf benutzt werden.
Ja, das klingt verständlich und hält die Arbeit in grenzen ;-)
Danke ...
Chrisi