Template Dateien

Pheonix_Strike

Grünschnabel
Ich weiss das es bereits einen Thread von Quakenets Template Systemen existiert.
Ich habe das Problem einfach mit den Templates, beim Newssystem und beim Adminbereich.
Da die Endungen alle .tpl also Smarty sind weiss ich nicht wirklich ob es funktioniert.
Auf jeden fall, bin ich ein begeisterter Php/MySql Programmierer jedoch kenn ich mich mit
Templates, mit .tpl überhaupt nicht aus.
Das Newssystem habe ich auch bereits zu ende geschrieben jedoch zeigt er mir nichts an
einfach nichts noch nicht mal einen Fehler oder sonst was.
Vielleicht kann mir ma jemand erklären wie ich diese Template Dateien, die auf Quakenet
sind, verstehen muss. :S

Hab auch bereits 10000 alles rauf und runter einstudiert :D

Währe nett wenn sich da ma jemand bereit erklärt mir zu helfen :)

also beim nachrichtensystem ist es ja so das man eine main site hat, wo man mittels array die einzelnen dateien hinein inkludiert.
jedoch ist es jetzt so das die dateien die inkludiert werden ebenfalls etwas inkludieren und das sind die .tpl dateien und ab genau dem zeitpunkt weiss ich nicht weiter also von der logik zumindest.
muss ich mir smarty runterladen oder sonst was und wenn ja wie habe ich es zu konfigurieren ********? neeed help D:
 
Zuletzt bearbeitet von einem Moderator:
Auf welches Tutorial beziehst du dich genau?

Grundsätzlich sagt die Endung .tpl erstmal gar nix aus. Das kann ein Smarty-Template sein, muss aber nicht. Von daher wäre ein bisschen mehr Info in Form von Links oder Code recht hilfreich.
 
hmm warum krieg ich dann eine leere Seite als Ausgabe -.-'
genau so wie du es gesagt hast habe ich es auch vorher gemacht.
Bei den inkludierten Dateien befinden sich im Kopfteil, wie du bereits gemerkt haben solltest, Variablen die eine Seite zugewiesen bekommen.

Nur warum zeigt er mir eine blank Seite an hmm
 
Zuletzt bearbeitet:
Ich habe das Tutorial mal überflogen und nirgends einen Hinweis darauf gefunden, das dort Smarty verwendet wird, auch das Wort "Smarty" ist dort nirgends zu funden (Google-Suche). Das eingesetzte Template-System ist Plain-PHP. Insofern verstehe ich deine Frage nicht. Wie schon geschrieben, die Endung .tpl sagt nichts über das eingesetzte Template-System aus, jeder kann die Endung für sich hernehmen. Hier mal eine kurze Erklärung:

Der Befehl include() bindet jede Datei ein, die du als Parameter angibst. Die Datei muss nicht die Endung .php haben. Sie kann jede beliebige Endung haben (.html, .phtml, .phpx oder auch .tpl). Den PHP-Parser interessiert nur, ob er in der Datei, die er includen soll, PHP-Code drin vorkommt, den er verarbeiten soll. Der PHP-Code wird durch die PHP-Tags gekennzeichnet. Nur der Teil, der zwischen

PHP:
<?php
// Alles hier drinnen ist PHP-CODE!
?>

vorkommt, wird als PHP-Code angesehen. Alles andere lässt der PHP-Parser unangetastet.

Deswegen kann man auch folgendes machen:

Datei: index.php
PHP:
<?php

/** Haupt-Datei für unserer Mini-Web-Applikation
 *
 * - Bindet ein paar Dateien ein
 * - Rechnet ein bisschen rum
 * - Gibt das alles an den Webserver zurück, damit er das ausliefern kann
 ******************************************************************/

// Konfiguration für den Datenbankzugriff
include 'config/database.config.php';

// Hier drinnen liegt unserere Klasse für den einfachen Datenbank-Zugriff
include 'libs/database/mysql.php';

// Hier sind die Keywords für Meta-Tags drinnen
include 'config/application.keywords.ini';

// Der Webseiten-Kopf (HTML)
include 'templates/header.tpl';

echo "Hallo Welt!<br/>";

echo "Vier plus fünf ist " . (4+5) . "<br/>";

// Der Webseiten-Fuß (HTML)
include 'templates/footer.tpl';
?>

Datei templates/header.tpl

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="keywords" content="<?php echo $meta_keywords;?>" />
<meta http-equiv="pragma" content="no-cache" />
<base href="./" />
<title>Eine Web 2.0-Applikation</title>
<script type="text/javascript" src="javascripts/jquery.js"></script>
</head>
<body>

Datei templates/footer.tpl

PHP:
<!-- Footer -->
</body>
</html>

Datei config/application.keywords.ini

PHP:
<?php
$meta_keywords = 'Irgend ein Schnulli.... Das kommt halt in die Meta-Tag Keywords';
?>

Wie du siehst, interessiert sich der PHP-Parser einen feuchten, wie die Endung der Datei ist. Er bindet es ein und versucht es zu parsen. Wenn er <?php und ?> findet, parst er den PHP-Code in HTML oder Plain-Text oder Binär-Datei (oder was auch immer) und gibt es an den Aufrufer zurück.

Es gibt also keinen Grund bei quakenet für eine Erklärung von Smarty, weil es dort nicht verwendet wird.
 
hmm warum krieg ich dann eine leere Seite als Ausgabe -.-'
genau so wie du es gesagt hast habe ich es auch vorher gemacht.
Bei den inkludierten Dateien befinden sich im Kopfteil, wie du bereits gemerkt haben solltest, Variablen die eine Seite zugewiesen bekommen.

Nur warum zeigt er mir eine blank Seite an hmm
 
Auch mal in den HTML-Source des Browsers geschaut, ob da irgendwas drin ist?

Hast du auch mal das error_reporting und display_errors aktiviert?
 
Diese Variante mit *.tpl ist alles andere als zu empfehlen, sollte jemand dahinter kommen, kann er sich diese Dateien komplett durchlesen. Denn Standard mäßig wird der Zugriff auf solche Ressourcen weder gesperrt, noch wird sie durch den PHP Interpreter verarbeitet.

Das bedeutet wenn in diesen Dateien Zugangsdaten oder andere vertrauliche Informationen stehen sind diese frei zugänglich.
 
ein weisses bild und das wars und ich weiss ja auch nicht wo ich die ganzen hintergrund sachen reinpacken soll.
in der Datei wo ich die ganzen seiten mittels array inkludiere oder bei den inkludierten seiten :S
irgendwas ist hier fail :D
 
Wie Saftmeister schon sagte, schallte dir Fehlerausgabe ein.
Vermutlich hast du irgendwo einen Fehler der die Skriptausführung abbricht. Dadurch hast du nichts weiter als eine Weiße Seite. Das ist die default Einstellung des Apache für den produktiven Einsatz.
 
Zurück