Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe Ostern!

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Frage: eigenes Template System (wie MyBB)
#1
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]
Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten.
Zitieren
#2
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
Zitieren
#3
Du musst die eval-Zeile schon so machen, wie beim MyBB. Sonst geht es nicht.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#4
(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
Zitieren
#5
Wie lautet denn jetzt der gesamte Code?
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#6
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); 
Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten.
Zitieren
#7
So macht es schon eher Sinn. Wink
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren