tempparser Prob

Headymaster

Erfahrenes Mitglied
Hallo!

Ich versuche momentan ein eigenes CMS zu schreiben für private Zwecke....
Es soll auf Templates basieren, aber darin bin ich noch voll der Anfänger.

Hier mal was ich verzapft habe:

index.php:
PHP:
<?php
include("inc/bbcode.php");
include("inc/parser.php");
?>


inc/bbcode.php:
PHP:
<?php
ob_start();
###########################
####FUNKTIONEN#############
###########################
// funktion um eine Verbindung mit der Datenbank herzustellen
function dbconnect()
{
	$connect = mysql_connect($dbhost, $dbuser, $dbpw);
	$selectdb = mysql_select_db($dbname, $connect);
	if (!$connect)
	{
		mysql_close($connect);
	}
	else
	{
		if (!$selectdb)
		{
			mysql_close($connect);
		}
	}
}
###########################
###Templatparser###########
###########################

// Index-Seite generieren
showtpl("index", array("title" => "Moinsen"));

ob_end_flush();
?>

inc/parser.php:
PHP:
<?php
function showtpl($template, $array)
{
  $tempdatei = "inc/templates/standard/".$template;
  
    if($fp = @fopen($tempdatei.".".html, "r"))
    {
      $template = fread($fp, filesize($tempdatei.".".html));
    }
    foreach($array as $inhalt => $code)
    {
        $template = str_replace("{".$inhalt."}", $code, $template);
    }
    return $template;
}
?>

inc/templates/standard/index.html
HTML:
<html>
<head>
<title>{Title}</title>
</head>
<body>
awdnjadnnajidwnianwdniawdnmjawdinmiawdn  	  	  
</body>
</html>

Mein Prob ist nun, das bei dem Test eine einfache Index seite zu laden, siehe bbcode.php, diese net geladen wird aber stattdessen dieser fehler kommt:

Fatal error: Call to undefined function showtpl() in K:\Webserver\xampp\htdocs\NilsonCMS\inc\bbcode.php on line 28

Habt ihr ne Idee, woran das liegen könnte oder ob der Templateparser so einen Sinn hat beziehungsweise noch was verbessert werden kann?


Würde mich über antworten freuen.

MFG Niels
 
PHP:
<?php
include("inc/bbcode.php");
include("inc/parser.php");
?>

da wird zuzerst bbcode.php includet, und alles was drinne steht kennt den inhalt nicht von parser.php ...

musst erst parser.php includen, dann bbcode.php ... oder den parser in bbcode.php
 
Also nun kommt kein fehler mehr....aber es wird auch net die datei index.html includet.....

Weil durch das aufrufen von echo showtpl($var1, $var2) müsste er ja, da ich für var1 index angegeben habe, duch den parser die inc/templates/standard/index.html öffnen, das tut er aber net, das Browserfenster bleibt bloß weiß

MFG Niels
 
PHP:
  $tempdatei = "inc/templates/standard/".$template;
  
    if($fp = @fopen($tempdatei.".".html, "r"))
    {
      $template = fread($fp, filesize($tempdatei.".".html));
    }
    foreach($array as $inhalt => $code)
    {
        $template = str_replace("{".$inhalt."}", $code, $template);
    }
    return $template;

ersetze das durch:
PHP:
  $tempdatei = "inc/templates/standard/".$template;
  
    if($fp = @fopen($tempdatei.".".html, "r"))
    {
      $template .= fread($fp, filesize($tempdatei.".".html));
    }
    foreach($array as $inhalt => $code)
    {
        $template .= str_replace("{".$inhalt."}", $code, $template);
    }
    return $template;

du hast bei dem $template = den punkt vergessen ;)
 
hmmm......aber Browserfenster bleibt immer noch leer :(
Also das doch blöde.....es ist doch eigentlich nur eine einfach anweisung, wo welche Datei mit welchem namen geladen werden soll und wie was wodurch ersetzt werden soll.....aber funktionieren tut es net ^^

MFG Niels
 
PHP:
$tempdatei = "inc/templates/standard/".$template;
  
    $template =implode("", file($tempdatei.".".html));
    foreach($array as $inhalt => $code)
    {
        $template .= str_replace("{".$inhalt."}", $code, $template);
    }
    return $template;

so sollte es aber gehen ...
 
Leider funktioniert es immer noch nicht .....
Ich versteh das nicht.....der Link stimmt....die datei existiert auch.....ich versteh es nicht :(

MFG Niels
 
supi jez geht es....muss wohl beim vielen hin und herändern entschwunden sein.....weil uhrsprünglich hatte ich es mit echo drinne.....kann ja auch nichts angezeigt werden....wenn das berechnete net ausgegeben wird^^...

Bigges thx für die Hilfe

MFG Niels

Nur das Prob ist noch dass der Inhalt doppelt ausgegeben wird :(
 
Zuletzt bearbeitet:
Zurück