Seite 2 von 2

Verfasst: 01.10.2004 22:50
von Mungo
Die "template.php" kannst du so verwenden wie sie ist. Dann benötigst du noch die Funktion "phpbb_realpath", die findest du in der "functions.php".

Code: Alles auswählen

function phpbb_realpath($path)
{
	global $phpbb_root_path, $phpEx;

	return (!@function_exists('realpath') || !@realpath($phpbb_root_path . 'includes/functions.'.$phpEx)) ? $path : @realpath($path);
}
Vielleicht lagerst du die auch in eine "functions.php" aus.
Dann erstellst du eine "irgendwas.php" mit folgendem Inhalt:

Code: Alles auswählen

<?php
$phpbb_root_path = './'; //muss am Anfang jeder Seite stehen (Pfad ggf. anpassen)
$phpEx = "php"; //kann auch in eine Datei ausgelagert werden.

include('functions.php');
include('template.php');

$template = new Template("template");

$template->set_filenames(array(
	'body' => 'irgendwas_body.tpl')
);

$template->assign_vars(array(
	'FOO' => 'BAR')
);

$template->pparse('body');
?>
Jetzt erstellst du in dem Verzeichnis in dem die "irgendwas.php" liegt einen Ordner "template".
Dort kommen jetzt alle tpl-Dateien und css-Dateien rein.
Außerdem benötigst du in diesem Verzeichnis noch eine tempalte.cfg und theme_info.cfg mit folgendem Inhalt.

template.cfg

Code: Alles auswählen

<?php

define(TEMPLATE_CONFIG, TRUE);

$current_template_images = "/images";

// $images[''] = "";
// Hier kannst du Bilder definieren (siehe subSilver.cfg), was aber unnötig
// ist, wenn du nur ein Template verwenden willst ;)
?>
theme_info.cfg

Code: Alles auswählen

<?php
$template[0]['template_name'] = "template";
$template[0]['style_name'] = "template";
$template[0]['head_stylesheet'] = "template.css";
?>
Eine tpl-Datei sieht genauso wie beim phpBB aus.

Natürlich kannst du die Variablen umbennen und die Pfade ändern, wenn du willst. Probier es einfach mal aus. Es wird auch nur dieses eine Template verwendet.

Verfasst: 03.10.2004 22:30
von Lord_Femto
danke erst einmal für deine umfangreiche hilfe. genau das wollte ich haben. bin dir zu großen dank verpflichtet.

nun habe ich aber ein anderes problem. ich habe nun ein functions.php in einem ordner includes vorhanden und include die mit einer common.php und diese wird dann zu den jeweiligen dateien z.b. news.php includet. doch aus irgendeinem unerfindlichen grund macht er nischt mit den funktionen.

so sieht sie aus.

Code: Alles auswählen

function setup_style($style)
{
	global $db, $template, $inu_root_path;

	$sql = "SELECT *
		FROM " . THEMES_TABLE ;
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(CRITICAL_ERROR, 'Could not query database for theme info');
	}

	if ( !($row = $db->sql_fetchrow($result)) )
	{
		message_die(CRITICAL_ERROR, "Could not get theme data for themes_id [$style]");
	}

	$template_path = 'templates/' ;
	$template_name = 'inuyasha' ;

	$template = new Template($inu_root_path . $template_path . $template_name);

	if ( $template )
	{
		$current_template_path = $template_path . $template_name;
		@include($inu_root_path . $template_path . $template_name . '/' . $template_name . '.cfg');
	}
	return $row;
}

function phpbb_realpath($path)
{
	global $inu_root_path, $phpEx;

	return (!@function_exists('realpath') || !@realpath($inu_root_path . 'includes/functions.'.$phpEx)) ? $path : @realpath($path);
}
muss ich noch irgendetwas beachten? irgendwie wird die nicht includet bzw. verwendet, obwohl die pfade richtig sind.

danke im voraus.

Verfasst: 04.10.2004 13:47
von Lord_Femto
es kommt auch immer dieser fehler, wenn euch das weiterhilft.
Parse error: parse error, unexpected $end in c:\homepage\server\includes\template.php(127) : eval()'d code on line 225

Parse error: parse error, unexpected '=' in c:\homepage\server\includes\template.php(127) : eval()'d code on line 13
aber komischerweise habe ich nichts an der template.php verändert

Verfasst: 04.10.2004 19:48
von Mungo
Die Funktion setup_style() brauchst du nicht, die kannst du aus der functions.php löschen.

Du hast einen Fehler in deiner tpl-Datei. Da wird ein BEGIN/END nicht stimmen/fehlen. Wenn du den Fehler nicht findest, dann verlink mal die tpl-Datei.

Verfasst: 09.10.2004 14:48
von Lord_Femto
Hi...

Soweit läuft alles gut.

Außer ein paar sachen. die laufen noch nicht so, wie ich will ;)

zuerst habe ich die funktion von message_die() von phpbb übernommen.
sie läuft auch so weit ganz gut, außer, dass sie, wenn in der common.php board_disable aktiviert, folgender fehler kommt:
message_die() was called multiple times. This isn't supposed to happen. Was message_die() used in page_tail.php?
ich bin auch nach der anleitung der knowledge base gegangen doch ohne erfolg. die .cfg und .css sind alle korrekt. und install und contrib habe ich ja eh nicht.
eine normale GENERAL_MESSAGE oder CRITICAL_MESSAGE läuft. nur halt bei board_disable nicht.
woran kann das liegen?

ein anderes problem ist, dass ich wissen möchte, wo phpbb sein $template = new Template hat

einmal doch in der message_die() funktion und doch einmal in der setup_style() funktion oder?
meine functions.php sieht so aus: hier
es wird bei mir aber nicht die $template = new Template.... von der setup_style() funktion genommen, sondern muss diese immer über die page_header.php angeben. woran liegt das, dass die funktion nicht aufgerufen wird?

vielen dank im voraus.

Verfasst: 10.10.2004 14:49
von Lord_Femto
keiner eine idee? kommt schon. ihr seid doch hier die profis...