Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Bestimmes Include“

v36374

Noch nicht viel geschrieben

Hallo zusammen!

Ich habe momentan folgendes Problem:

Ich baue ein CMS, was ich mit einem selbstgebauten Templatesystem erstellt habe. Das CMS ist Datenbankbasiert und gibt dynamische Inhalte aus, die man im Browser als Admin jederzeit ändern kann (Ähnlich wie Joomla).

Jetzt habe ich jedoch eine statische Seiten erstellen müssen, z.B um News zu schreiben. Ich habe jetzt das Problem diese Seiten richtig einzubetten. Per include geht das leider nicht ganz, da ich die Templateplatzhalter per str_replace ersetze. Da wäre eine anweisung wie
PHP:
str_replace("{CONTENT}",include $site,$file);
fehl am Platze, weil die leider nicht funktioniert. In der Datei die ich einbetten will sind auch Funktionen, also einen String kann ich nicht gebrauchen ...

Wenn einer eine Idee hat wäre ich sehr dankbar!

Für alle (guten) Ideen danke ich im Voraus ;)
 
Zuletzt bearbeitet:

v36374

Noch nicht viel geschrieben

AW: Bestimmes Include

Okay und dann habe ich den Inhalt der Datei als String... soweit habe ichs geschafft...

Und wie kriege ich PHP dann dazu aus dem String die Funktionen auszuführen ?
 

sokie

Mod | Web

AW: Bestimmes Include

??
mit zB file_get_contents() bekommst du die 'ausgabe'der datei als string. da sind die ergebnisse etwahiger funktionen schon drin.
 

v36374

Noch nicht viel geschrieben

AW: Bestimmes Include

Doch nicht so ganz wie ich will ... Sorry

Also meine Source ist die hier:

news.php (class, abschnitt "write")
PHP:
function write() {
			if($_POST[action] == "write") {
				session_start();
				$title = htmlspecialchars($_POST[title]);
				$con = htmlspecialchars($_POST[con]);
				$mod = $_POST[mod];
				$autor = $_SESSION[id];
				$sql = 'INSERT INTO `'.MYSQL_PRE.'news` (`id`, `title`, `con`, `date`, `mod`, `hits`, `autor`) ' .
						'VALUES (NULL, \''.$title.'\', \''.$con.'\', NOW(), \'\''.$mod.'\'\', \'0\', \'\''.$autor.'\'\');';
				q($sql);
			} else {
				session_start();
				$h = fopen("admin/news_write.html", "r");
				$c = fread($h, filesize("admin/news_write.html"));
				fclose($h);
				return $c;
			}
		}

template.php (class, abschnitt "replace")
PHP:
function replace() {
			$t = str_replace("{PFAD}",$this->path."/",$this->read);
			if(isset($_GET[page])) {
				$q = q('SELECT * FROM `'.MYSQL_PRE.'site` WHERE (`id` = \''.$_GET[page].'\');');
				$d = mysql_fetch_assoc($q);
				$search = array('{PAGETITLE}','{TITLE}','{CONTENT}','{MOD}','{HITS}');
				$replace = array(PROJEKT_NAME,$d[site],nl2br($d[con]),$d[mod],$d[hits]);
				$t = str_replace($search, $replace, $t);
			} elseif(isset($_GET[site])) {
				$t = str_replace('{CONTENT}', file_get_contents("sites/".$_GET[site].".php"), $t);
			} else {
				$t = str_replace('{CONTENT}', '<img src="'.$this->path.'/start.jpg">', $t);
			}
			$q = q('SELECT * FROM `'.MYSQL_PRE.'site` ORDER BY `order` ASC;');
			$l = array();
			while($e = mysql_fetch_assoc($q)) {
				$l[] = $this->linkstyle($e);
			}
			$li = "";
			foreach($l as $key) {
				$li .= $key."<br>";
			}
			$t = str_replace('{LINKS}',$li,$t);
			$this->read = $t;
		}

Die Seite die ich mit index.php?site=news aufrufe:
PHP:
$news = new news();
	 $news->write();

Ausgabe im Template ist bei {CONTENT}

PHP:
write(); ?>

So wie es aussieht kommt das Programm nicht ganz mit der Klassenfunktion zurecht ...

Hoffe ihr könnt euch jetzt ein bisschen mehr Vorstellen!

Danke für die bisherigen Antworten!
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.158
Beiträge
2.581.872
Mitglieder
67.225
Neuestes Mitglied
Petra
Oben