Seite 1 von 1

Neue Seite einfügen - Fehler bei Datei Suche

Verfasst: 11.09.2008 17:02
von Robbi der Forenfreak
Hallo!

Ich habe nach der deutschen Anleitung von wiki.phpbb.com eine neue Seite für phpBB 3 :) erstellt. Sie ist eigentlich richtig, nur wird eine Fehlermeldung angezeigt.

rules.php

Code: Alles auswählen

<?php
/**
*
* @author Original Autor Benutzername autor_email@domain.de - http://meine-seite.de
* @author Anderer Autor Benutzername andere_email@domain.de - http://domain.de
*
* @package {PACKAGENAME}
* @version $Id$
* @copyright (c) 2007 Dein Gruppen Name
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
* @ignore
*/
// Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Session auslesen und Benutzer-Informationen laden
$user->session_begin();  // Session auslesen
$auth->acl($user->data); // Benutzer-Informationen laden
$user->setup('mods/rules.php'); // Sprachvariablen aus eigener Sprach Datei laden
/*
* Nun folgt erst Dein PHP Code für die neue Seite, also:
* Variablen setzen, Datenbankabfragen, Einfügen und Entfernen von Einträgen usw...
*
* Dies ist nun ein sehr primitives Beispiel. 
* Es soll nur veranschaulichen wie es funktioniert.
*
*/
$example_variable = sprintf($user->lang['TIME_NOW'], $user->format_date(time()));
$google_logo = '<a href="http://www.google.com/"><img src="http://www.google.com/intl/en_ALL/images/logo.gif" alt="Google" /></a>';
// Ein typischer Gebrauch um Variablen an das Template zu senden.
$template->assign_vars(array(
    'EXAMPLE_VAR'    => $example_variable,
	'GOOGLE_LOGO'    => $google_logo,
	'MY_AVATAR'        => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
	));
/*
* Nun weisen wir ein paar statische Daten einem Array zu. 
* Alle Sprachvariablen werden normalerweise in der Sprach Datei zugewiesen, 
* dies dient hier nur zur DEMONSTRATION. 
*/
$some_array = array(
    array(        
	        'beispiel'        => 'Nur ein Beispiel 1',
	        'demonstration'    => 'Etwas zum zeigen',
	),    array(
	        'beispiel'        => 'Nur ein Beispiel 1',
			'demonstration'    => 'schon wieder etwas zum zeigen',    
	),
);
/* 
* Standard Beispiel um eine Block Variable fuer das Template zu fuellen. 
* Dies wird Dir ermöglichen einen Block oder ein Array im Template darzustellen 
* Dies ist nützlich um SQL Abfragen aus der Datenbank in das Template zu überführen. 
*/
foreach ($some_array as $row)
{
    $template->assign_block_vars('block_name', array(
	    'EXAMPLE'        => $row['beispiel'],
		'DEMO'            => $row['demonstration'],
     ))
;}
// Seiten Titel, diese Sprach Variable sollte in der Sprach Datei, 
// welche weiter oben genannt wurde, definiert sein.
page_header($user->lang['MEIN_TITEL']);
// Defniere nun den Dateinamen Deines Templates welches Du benutzen moechtest.
// Dies ist der Name von Deinem Template welches unter /styles/<style>/templates/ zu finden ist.
$template->set_filenames(array(
    'body' => 'rules.html',));
// Script vervollständigen und Seite anzeigen lassen.
page_footer();
?>
language/de/mods/rules.php

Code: Alles auswählen

<?php
/**
*
* groups [German]
*
* @author Mein Benutzername email@domain.de - http://meine-seite.de
*
* @package language
* @version $Id$
* @copyright (c) 2007 Deine Gruppe
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
* DO NOT CHANGE
*/
if (!defined('IN_PHPBB'))
{
    exit
;}
if (empty($lang) || !is_array($lang))
{
    $lang = array();
}
// DEVELOPERS PLEASE NOTE
//
// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
//
// Placeholders can now contain order information, e.g. instead of
// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
// translators to re-order the output of data while ensuring it remains correct
//
// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
// equally where a string contains only two placeholders which are used to wrap text
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
    'EXAMPLE'        => 'Beispiel',
	'DEMO'            => 'Demo',
	'TIME_NOW'        => 'Die aktuelle Zeit lautet %s',
	'MEIN_TITEL'    => 'Meine neuer Seiten Titel',
));
?>
styles/prosilver/template/rules.html

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->
<div>{MY_AVATAR}</div>
<div>{EXAMPLE_VAR}</div>
<div>{GOOGLE_LOGO}</div>
<table class="table1" cellspacing="1">
    <tr>        
	     <th>{L_EXAMPLE}</th>
		 <th>{L_DEMO}</th>    
	</tr>    
    <!-- BEGIN block_name -->    
	<tr class="<!-- IF block_name.S_ROW_COUNT is even -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
		<td>{block_name.EXAMPLE}</td>
		<td>{block_name.DEMO}</td>    
	</tr>    
	<!-- END block_name -->
</table>
<!-- INCLUDE overall_footer.html -->
Vielen Dank.

Edit: Ach ja die Fehlermeldung ist, das die Sprach datei rules.php.php (kA wieso zweimal) nicht gefunden wurde

Verfasst: 11.09.2008 17:14
von nickvergessen
Versuchs mal mit:

Code: Alles auswählen

$user->setup('mods/rules'); // Sprachvariablen aus eigener Sprach Datei laden

Verfasst: 11.09.2008 17:57
von Robbi der Forenfreak
Danke. Jetzt krieg ich allerdings folgenden Fehler:

Fatal error: Call to undefined function get_user_avatar() in /home/webpages/lima-city/robbmaster/html/phpBB/rules.php on line 39

ich weiß aber nicht was dort falsch ist.

Verfasst: 11.09.2008 19:08
von nickvergessen
Die Funktion die du benützen möchtest existiert nicht in deinem Code.
Du musst dazu die includes/functions_display.php einbeziehen:
finde:

Code: Alles auswählen

// Ein typischer Gebrauch um Variablen an das Template zu senden.
$template->assign_vars(array(
davor einfügen:

Code: Alles auswählen

include($phpbb_root_path . "includes/functions_display.$phpEx");

Verfasst: 14.09.2008 11:51
von Robbi der Forenfreak
Also. Es funktioniert. Ich wollte allerdings noch den Rest vom Footer haben und habe dann ein wenig Code aus der index_footer.html oder was das war kopiert. Mein Code in der Styleadatei sieht jetzt so aus:

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->
<div>{MY_AVATAR}</div>
<div>{EXAMPLE_VAR}</div>
<div>{GOOGLE_LOGO}</div>
<table class="table1" cellspacing="1">
    <tr>        
	     <th>{L_EXAMPLE}</th>
		 <th>{L_DEMO}</th>    
	</tr>    
    <!-- BEGIN block_name -->    
	<tr class="<!-- IF block_name.S_ROW_COUNT is even -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
		<td>{block_name.EXAMPLE}</td>
		<td>{block_name.DEMO}</td>    
	</tr>    
	<!-- END block_name -->
</table>
<!-- IF not S_USER_LOGGED_IN and not S_IS_BOT -->
	<form method="post" action="{S_LOGIN_ACTION}" class="headerspace">
	<h3><a href="{U_LOGIN_LOGOUT}">{L_LOGIN_LOGOUT}</a><!-- IF S_REGISTER_ENABLED -->&nbsp; &bull; &nbsp;<a href="{U_REGISTER}">{L_REGISTER}</a><!-- ENDIF --></h3>
		<fieldset class="quick-login">
			<label for="username">{L_USERNAME}:</label>&nbsp;<input type="text" name="username" id="username" size="10" class="inputbox" title="{L_USERNAME}" />  
			<label for="password">{L_PASSWORD}:</label>&nbsp;<input type="password" name="password" id="password" size="10" class="inputbox" title="{L_PASSWORD}" />
			<!-- IF S_AUTOLOGIN_ENABLED -->
				| <label for="autologin">{L_LOG_ME_IN} <input type="checkbox" name="autologin" id="autologin" /></label>
			<!-- ENDIF -->
			<input type="submit" name="login" value="{L_LOGIN}" class="button2" />
		</fieldset>
	</form>
<!-- ENDIF -->

<!-- IF S_DISPLAY_ONLINE_LIST -->
	<!-- IF U_VIEWONLINE --><h3><a href="{U_VIEWONLINE}">{L_WHO_IS_ONLINE}</a></h3><!-- ELSE --><h3>{L_WHO_IS_ONLINE}</h3><!-- ENDIF -->
	<p>{TOTAL_USERS_ONLINE} ({L_ONLINE_EXPLAIN})<br />{RECORD_USERS}<br /> <br />{LOGGED_IN_USER_LIST}
	<!-- IF LEGEND --><br /><em>{L_LEGEND}: {LEGEND}</em><!-- ENDIF --></p>
<!-- ENDIF -->

<!-- IF S_DISPLAY_BIRTHDAY_LIST and BIRTHDAY_LIST -->
	<h3>{L_BIRTHDAYS}</h3>
	<p><!-- IF BIRTHDAY_LIST -->{L_CONGRATULATIONS}: <strong>{BIRTHDAY_LIST}</strong><!-- ELSE -->{L_NO_BIRTHDAYS}<!-- ENDIF --></p>
<!-- ENDIF -->

<!-- IF NEWEST_USER -->
	<h3>{L_STATISTICS}</h3>
	<p>{TOTAL_POSTS} &bull; {TOTAL_TOPICS} &bull; {TOTAL_USERS} &bull; {NEWEST_USER}</p>
<!-- ENDIF -->

<!-- INCLUDE overall_footer.html -->
Wie aber auf http://robbmaster.lima-city.de/phpBB/rules.php zu sehen ist, fehlt die Legende und die Statistik. Was habe ich falsch gemachtß