MyBB.de Forum

Normale Version: Frage: eigenes Template System (wie MyBB)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Abend,

was mir am MyBB besonders gut gefällt, ist das Template System.
Für ein Projekt ohne MyBB Anbindung, hätte ich allerdings auch gerne so ein Templatesystem. Allerdings komm ich da nicht ganz weiter und würd mich über Hilfe eurerseits freuen.
Hier sind mal die Funktionen, die ich bisher habe:
PHP-Code:
function get_template($template)
{
$pfad 'templates/';
$endung '.tpl';
$f file_get_contents($pfad.$template.$endung);
$f str_replace('"','\"',$f);
}
function 
insert($template)
{
echo 
$template;

Beim aufrufen hakts dann bei mir (also eval() ):
PHP-Code:
$template = eval (get_template('header')); 
insert($template);[/php]
Hi,
mit eval kannst du nicht auf die Variable $f aus der Funktion get_template() zurückgreifen. Versuche es mal lieber mit einem return-Wert:
PHP-Code:
<?php
function get_template($template){
  
$pfad 'templates/';
  
$endung '.tpl';
  
$f file_get_contents($pfad.$template.$endung);
  
$f str_replace('"','\"',$f);
  return 
$f;
}

function 
insert($template)
{
echo 
$template;
}

insert(get_template('header'));
?>

Viel Spaß dann noch mit deinem Templatesystem Smile
Sevil
Du musst die eval-Zeile schon so machen, wie beim MyBB. Sonst geht es nicht.
(24.01.2009, 13:48)Dragon schrieb: [ -> ]Du musst die eval-Zeile schon so machen, wie beim MyBB. Sonst geht es nicht.
Er will ja nur ein Templatesystem ähnlich dem vom MyBB aufbauen, nicht das ganze nachbauen (ansonsten wär der Ansatz mit den Templates auch schon falsch).
Frage an dich: warum sollte es nicht funktionieren? Ich habe mein Skript die Nacht getestet Wink

LG,
Sevil
Wie lautet denn jetzt der gesamte Code?
Also mein Code lautet:
PHP-Code:
function get_template($template)
{
$pfad 'templates/';
$endung '.tpl';
$f file_get_contents($pfad.$template.$endung);
$f str_replace('"','\"',$f);
return 
$f;
}
function 
insert($template)
{
echo 
$template;
}

eval(
$template .= get_template('header'););
insert_template($template); 
So macht es schon eher Sinn. Wink