|
|
Latest News |
Latest Threads |
|
 |
55.476 Posts & 4.945 Themen in 78 Foren |
|
|
|
 |
Forensuche |
|
Suchbegriff |
Benutzerauswahl |
Ergebnisse anzeigen |
 |
 |
template parser+content 29 Beiträge in diesem Thema |
|
|
 |
|
|
 |
|
 |
04.01.2008 - 18:49 Uhr |
|
|
|
Hallo allerseits.
Ich arbeite im Moment an einer Website welche mit templates aufgebaut wurde.
Dafür habe ich mich eine lange zeit durch das Web gesucht und einige funktionen gefunden.
Ich verwende dafür folgende funktion:
| PHP-Quelltext
// TEMPLATE PARSER FÜR DIE TEMPLATES.
function gettemplate($template,$endung="htm")
{
$templatefolder = "templates";
return str_replace("\"","\\\"",implode("",file($templatefolder."/".$template.".".$endung)));
}
function dooutput($template) {
echo $template;
}
| |  |
In meiner index.php verwende ich also die aufrufe für das ganze !!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | | PHP-Quelltext
<?php
session_start ();
include("funktions.php");
.
. Hier sind noch ein paar kleine Sachen wie mysql zugriff usw.
.
// Sql Abfrage für Daten der Hauptseite (Seitenbreite,Name,Copyright,Metatags).
$sql = "SELECT * FROM site_config";
$result = mysql_query($sql) OR die(mysql_error());
if(mysql_num_rows($result)) {
while( $row = mysql_fetch_assoc($result) ) {
$row = array_map('htmlspecialchars', $row);
$site_width = $row['site_width'];
$site_name = $row['site_name'];
$site_copy = $row['site_copy'];
$site_metatags = $row['site_metatags'];
}
}
if ($_SESSION['loggedin'] == TRUE) {
} else {
eval ("\$infobar = \"".gettemplate("infobar")."\";");
}
//jetzt der Aufruf, wo die Templates geholt wird und die Platzhalter ersetzt werden.
eval ("\$site_kopf = \"".gettemplate("s_kopf")."\";");
eval ("\$site_content = \"".gettemplate("content")."\";");
eval ("\$site_fuss = \"".gettemplate("s_fuss")."\";");
eval("dooutput(\"".gettemplate("site")."\");");
?> | |  |
Im content ist die variable $content eingebaut. Und genau an dieser Stelle soll nun per switch oder GET übergabe der richtige Content eingefügt werden.
Ich habe z.B. im Ordner Content mehrere Dateien liegen, wie z.B. die Userlist.php
In dieser datei sind die mysql abfrage für die ausgabe und die template ausgabe
| PHP-Quelltext
eval ("\$content .= \"".gettemplate("userlist")."\";");
| |
Aber mein Problem ist das ich erstmal noch ein switch bräuchte oder ähnliches um die Dateien zu wechseln.
Hoffe ihr könnt mir helfen!!
Mfg. Oliver
|
|
|
|
|
|
|
 |
|
 |
|
 |
06.01.2008 - 12:24 Uhr |
|
|
|
Gut ok
Klar is das machbar.
Musste doch eigentlich nur dein Template machen als "Box" machst ne tabelle
Titel usw. rein und dann den eigentichen kram
dann machste eval ("\$box= \"".gettemplate("start")."\";"); und baust sie so ein
Sollte doch eigentlich gehen. Weis zwar nich wie dein Code aussieht aber denke mal is machbar so.
|
|
|
|
|
|
|
 |
|
 |
06.01.2008 - 13:58 Uhr |
|
|
|
Ok danke, an sowas ähnlichem habe ich auch gedacht.
Also meine index.php ist ja oben beschrieben, allerdings ist jetzt noch
| PHP-Quelltext eval ("\$navigation_right = \"".gettemplate("navigation_right")."\";"); | |
dazugekommen. In meiner content.htm, dort wo der Inhalt liegt ist nun für die rechte navi | PHP-Quelltext $navigation_right | | eingefügt worden. Nun müsste ich ja im Prinzip eine Abfrage machen, ob jemand eingeloggt ist oder nicht. Wenn nicht, dann soll er das template mit dem loginformular anzeigen. Wenn doch, dann zeige mir das template mit der Schnellzugriffliste an z.B. Aber ich würde ja gerne mehrere "Boxen machen" Ich habe auch als template für navigation_right einen einfachen Quellcode verwendet:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | | PHP-Quelltext
<table border="0" cellspacing="0" cellpadding="0" width="140">
<table border="0" cellspacing="0" cellpadding="0" width="140">
<tr>
<td width="100%" height="25" style="background-image: url(images/navigation_top.png); background-repeat:no-repeat">$navigation_title</td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" width="140">
<tr>
<td width="8" style="background-image: url(images/left.png)"><img border="0" alt="0" height="6" width="8" src="images/blank.gif" /></td>
<td width="100%" valign="top">$navigation_body</td>
<td width="8" style="background-image: url(images/right.png)"><img border="0" alt="0" height="6" width="8" src="images/blank.gif" /></td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" width="140">
<tr>
<td width="140" height="25" style="background-image: url(images/navigation_foot.png); background-repeat:no-repeat"></td>
</tr>
</table>
</table>
| |
Ich würde jetzt gerne eine Abfrage aufbauen welche Boxen sozusagen in einer Datenbank speichert.
Dazu gebe ich eine ID anhand der man die box identifizieren kann, die Position, ob als 1. oder 2 oder... Box sowie dem Zugehörigen Inhalt. Das ganze soll dann den Inhalt $navigation_right füllen und als Grundtemplate die navigation_right.htm nutzen !! Nun meine Frage: Ich müsste das ja sozusagen "virtuell erstellen".
Im Prinzip einfach, mysql abfrage mit ID, Position, Inhalt. Wie könnte man denn eine einfache Abfrage realisieren ??
Mfg. Oliver
|
|
|
|
|
|
|
 |
|
 |
06.01.2008 - 14:51 Uhr |
|
|
|
Naja du machst halt ne Abfrage an die Datenbank und holst die Daten raus.
Mit ner While Schleife gibste dann alles aus und so kannste dann auch mehrere Boxen machen die dann der Reihe nach ausgegeben werden.
Ich weis nur leider nicht wie weit deine Kenntnisse reichen dazu 
Brauchste nur nen Denkanstoß oder Code?
|
|
|
|
|
|
|
 |
|
 |
06.01.2008 - 16:04 Uhr |
|
|
|
Naja, beides wäre nicht schlecht
Vielleicht lässt sich ja was zusammen entwickeln.
Die Hauptsache wäre erstmal überhaupt ein System zu haben.
Da es im prinzip dem des phpkit ähnich sein könnte denke ich mal vielleicht auf sowas zurückzugreifen !!
Aber erstmal schauen
Also meine PHP Kenntnisse reichen schonmal soweit aus dass ich mich mit dem einfachen "bereichen" auf jeden fall zurechtkommen kann. Alles was so "Profi" ist, da muss ich mich sehr lange durchlesen und oft beschäftigen !!
Mfg. Oliver
|
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von xlanhackerx - 06.01.2008 - 16:06 Uhr |
|
|
|
|
|
|
|
 |
|
 |
07.01.2008 - 15:35 Uhr |
|
|
|
Dann bleib doch beim Kit 
da haste alles was du brauchst ^^
|
|
|
|
|
|
|
 |
|
 |
07.01.2008 - 17:43 Uhr |
|
|
|
Ne genau das möchte ich ja nicht.. Vielleicht kannst du mir ja irgentwie nen simplen Code oder Tipp geben der mir weiterhelfen könnte. Ich habe bereits eine mysql datenbank mit dem tabellennamen: navigation!!
Dort sind die felder: (id,titel,position,content). Ich würde jetzt gerne eine abfrage erstellen welche schaut, ob ein Eintrag in der Datenbank steht: Also z.B. Title: Loginbox (dies erscheint im header des templates (navigation_right.htm) dann die ID des eintragen (1) sowie dem Content ($box = login). Dabei soll dann die Variable $box einem anfang der includeten Datei entsprechen also include('navigation/box/login.box.php) sein.
Ich hoffe ihr versteht mich !! Für andere Vorschläge bin ich gerne bereit !!
Mfg. Oliver
|
|
|
|
|
|
|
 |
|
 |
10.01.2008 - 21:13 Uhr |
|
|
|
Ja das hatte ich mir auch überlegt. Ich hab ja irgentwie nur ne angabe machen müssen, Position, content. Ok hab das geändert und es funzt eigentlich einwandfrei.. Allerdings muss ich noch ein bischen am Design usw Arbeiten, bin ja auch mehr am Anfang von allem !!
Wenn jemand schauen möchte, Seite (test)
PS: Bitte nix zur Userlist sagen, ich weiß die muss noch umgebaut werden, sowie der Aktivierungslink, da muss auch noch einiges gemacht werden.. einfach ohne aktivierungslink einloggen, geht auch, ist aber noch nix los..
Mfg. Oliver
|
|
|
|
|
|
|
 |
|
 |
11.01.2008 - 14:05 Uhr |
|
|
|
Das wird schon noch
Wenn du Probleme hast weiste ja wo du nachfragen musst 
|
|
|
|
|
|
|
 |
|
 |
11.01.2008 - 18:31 Uhr |
|
|
|
Danke, ich hab jetzt nur noch 2 Felder in meiner " navi datenbank". Position und content. Ich hab da jetzt mal noch ne andere frage, und zwar würde ich ja gerne den Login folgendermaßen realisieren:
index.php?login=1
Das heißt ich muss eine Abfrage machen mit if submit login und dann den Code zum checken und blablabla.
Aber ich muss auch noch ein Verstecktes input feld anlegen mit value="1" oder??
Im Moment leitet mich mein loginformular auf /login.php weiter, dort wird gecheckt und dann per header wieder auf index.php zurückgeleitet !! Ich würde auch gerne das gleiche mit logout machen, also index.php?logout=1
Warum ?? Weil ich dann templates verwenden könnte, allerdings ist da jetzt wieder ein neues Problem.
Da man ja im Prinzip schon auf der Seite ist, vielleicht schon ein bischen geklickt hat und dann sich einloggen möchte, wird man ja wieder auf die Startseite also index.php geleitet. Also müsste ich doch einfach statt dem normalen header ein urldecode einsetzen oder ?? Hoffe ich hab mich nicht zu undeutlich ausgedrückt
Mfg. Oliver
|
|
|
|
|
|
|
 |
|
|
 |
Ähnliche Themen |
|
|
|
|
|
|
|
|