Hallo,
langsam bekomme ich graue Haare... Habe folgendes Problem, konnte dazu leider keine passende Lösung finden. Ich hoffe jemand kann mir helfen. Bin gerade dabei eine Website zu erstellen. Finde das Konzept von Templates recht praktisch weil habe zuvor alles in einem echo Mischmasch gecodet. So nun zu meinem Problem:
Ich habe eine index.php welche ein Template auf index.htm erzeugt. Dort habe ich das gesamte Layout der Seite festgellegt - mit Hilfe von Div Containern.
Wenn der User jetzt einen Link anklickt wird in der Index.php geschaut was er gemacht hat und dementsprechend ein anderes PHP File included. In den includeten Files hab ich wiederum neue Template Objekte.
So, wenn nun jemand sich zum Beispiel einloggen will, dann setzt er mir mit setvar die includierte PHP Datei nicht in die festgelegte {tmpl_var} in der index.htm sondern setzt es außerhalb der div Container. Ich dreh durch
Ich poste mal den Quellcode verständnishalber.
Das ist die index.php welche ein Templateobjekt von der index.htm erzeugt.<?
session_start();
include("includes/functions.php");
require_once("templates/vlib/vlibTemplate.php");
$tmpl = new vlibTemplate("templates/html/index.htm");
/** Buttons einfügen **/
$tmpl->setvar("news_link", "<a href=index.php?goto=news id=news></a>");
/** Unteres Menu **/
if(group_check($_SESSION["username"]) == "admin")
$tmpl->setvar("footer_menu", "admin");
else
$tmpl->setvar("footer_menu", "unregistered");
/** Verweise auf die Seiten **/
if($_GET["goto"] == "news"){
$tmpl->setvar("content","Currently no news available...<p>Try again later.");
}
if($_GET["goto"] == "login"){
$tmpl->setvar("content", require_once("login.php"));
}
else
$tmpl->setvar("content","Website launched. Currently im coding on the dynamic content so <br>
it will take some more time! <p>Stay tuned folks!");
/** Alles übernehmen **/
$tmpl->pparse();
?>
Das ist die Index.htm<html>
<head>
<title>Welcome to XXXXXXX.org</title>
<link href="../../styles/style_1.css" type="text/css" rel="stylesheet" >
<script type="text/javascript" src="../../includes/skripte.js"></script>
</head>
<body>
<div class="background">
<!-- Menu Box -->
<div class="menubox">
{ tmpl_var name=news_link escape=none}
</div>
<!-- Menu Box Ende -->
<!-- Inhalt Content -->
<div class="content">
{ tmpl_var name=content escape=none}
</div>
<!-- Ende Inhalt Content -->
<!-- Unteres Menu -->
<div class="footer">
<!-- unregistered -->
<tmpl_if name=footer_menu op=== value=unregistered>
<a href=index.php?goto=login id=footer>login</a>
</tmpl_if>
<!-- admin -->
</div>
<!-- Ende unteres Menu -->
</div>
</body>
</html>
und sobald ich auf login klicke, welches der folgende code darstellt<?
echo "
<form action= method=post>
<input name=login_name />
<input name=login_password />
<input type=submit name=submit value=login />
</form>
";
?>
setzt er mir das login an den Seitenanfang und nicht in den Div Container. Das gleiche Problem hatte ich mit dem login Link, welchen ich unter Frust schließlich direkt in die index.php eingebunden habe.
Ebenfalls wollte ich den Footer in eine eigene Datei coden, damit er eingebunden wird. Aber dann ist wie gesagt, der Login link nicht im Footer Container sondern am Anfang der Seite...
Eigentlich wollte ich separate Files für die Aufrufe erstellen. Was mache ich falsch? Ich danke schonmals für die Mühe sich den Kram durchzulesen