PHP Wie im CMS Template die Funktion "include_once" ausführen lassen?

digiTALE

Lt. Junior Grade
Registriert
Juli 2004
Beiträge
270
Hallo,

über ein "Parser" lasse ich den Inhalt von der Datenbank in das Template einfügen.

Das Problem: Wie kann ich im Template selbst eine externe PHP-Datei "menue.php" (generiert das Menü) einbinden?
Im Template selbst kann ich kein PHP-Codes "<?php include_once "menue.php"; ?> einfügen, ohne das der Code ignoriert und sichtbar wird.

Also wie kann ich eine externe Datei an einer beliebigen Stelle im Template einbinden?

index.php
PHP:
[...]

include_once "parser.php";

$var_array = array(
	"CMX_HEADLINE" => "Ueberschrift",
	"CMX_CONTENT" => "Sehr viel Inhalt",
	"CMX_DESCRIPTION" => "kurze Beschreibung",
	"CMX_KEYWORDS" => "einige Schluesselwoerter",
	"CMX_MENUE" => require_once "menue.php" <-- Wie am besten integrieren?
);

$template = "template.php";

$tpl = new parser($template, $var_array);

[...]


parser.php
PHP:
Class parser {
	var $template;
	var $temp_content;
	function parser($template, $var_array)
	{
		$this->template = $template;
		$this->temp_content = file($this->template);
		$parsed = $this->rplc($var_array);
		echo(implode("", $this->temp_content));
	}
	function rplc($var_array)
	{
		foreach($var_array as $key => $value)
		{
			$regex['var_name'] = "#{[[:space:]]*?(".strtoupper($key)."){1,}?[[:space:]]*?}#si";
			$this->temp_content = preg_replace($regex['var_name'], $value, $this->temp_content);
		}
	}
}


template.php
HTML:
[...]

<div id="menue">

	<ul>{CMX_MENUE}</ul> <-- hier soll die menue.php eingebunden werden

</div>

[...]


Danke im vorraus.
 
Guck mal in die Doku vom CMS, ob du darüber nicht Includes machen kannst. Bei silverstripe geht das zB.
 
"CMX_MENUE" => require_once "menue.php" <-- Wie am besten integrieren?

Das ist doch bullshit ;)

ob_start();
require_once "menue.php";
$buffer = ob_get_flush();

Und nu haste in $buffer n String mit der Ausgabe von menue.php, kA ob dir das jetzt was hilft ^^ Aber so sollte das ausehen was du afaik da oben gedreht hast ;)
 
Zuletzt bearbeitet:
Sollte es statt
PHP:
<?php require_once "menue.php"; ?>
nicht
PHP:
<?php require_once('menue.php'); ?>
heißen? o_O

lg, innu
 
Geht beides.
 
Zurück
Oben