eigene php-Seite funzt nicht

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

eigene php-Seite funzt nicht

Beitrag von Gumfuzi »

Hallo!

Ich möchte gerne eine eigene Seite (einzelne Seite) erstellen mit dem Header und Footer aber eben mit eigenem Inhalt.

Ich habe mir die leere Seite aus der KB genommen und die mit einer Testvariable "belegt", um zu sehen, ob das ganze überhaupt funzt.

Negativ.

Hier die zwei Dateien:

zocker.php:

Code: Alles auswählen

<?php 
//Benötigte Dateien und Variablen von phpBB 
define('IN_PHPBB', true); 
$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 


//Session auslesen und Benutzer-Informationen laden 
$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata); 


//Dieser Block kann weggelassen werden, wenn du nur den die Userdaten brauchst und auf den phpBB-Header verzichen möchtest 
$page_title = 'Die besten Spieler'; 
include($phpbb_root_path . 'includes/page_header.'.$phpEx); 

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


/***** Inhaltsbereich ******/ 
			$template->assign_vars('zocker', array(
				'TITEL' => $page_title,
			);


$template->pparse('body');


//Footer - nur dann weglassen, wenn du auch den Header weglässt 
include($phpbb_root_path . 'includes/page_tail.'.$phpEx); 
?>
und die zocker.tpl:

Code: Alles auswählen

<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
	<tr>
		<td align="left" class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a></td>
	</tr>
</table>

<table class="forumline" width="100%" cellspacing="1" cellpadding="3" border="0" align="center">
	<tr>
		<th class="thHead">{TITEL}</th>
	</tr>
	<tr>
		<td class="row1">hallo
		</td>
	</tr>
	<tr>
		<td class="catBottom" height="28">&nbsp;</td>
	</tr>
</table>

<br clear="all" />
wenn Ich nun die geuppte zocker.php aufrufe, dann kommt eine leere (weisse) Seite.

Was mache ich falsch, wo habe ich hier einen Denkfehler?
Bitte um Hilfe! Danke!!!
Du kannst niemals alle mit deinem Tun begeistern. Selbst wenn du über's Wasser laufen kannst, kommt einer daher und fragt, ob du zu blöd zum Schwimmen bist.
https://www.deskmodder.de
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

soweit ich dieses komische Templete System begriffen habe darfst du nur Array zu weisen:

Code: Alles auswählen

$template->assign_vars('zocker', array( 
            'TITEL' => $page_title, 
         );
Nach diesem Code stellt sich die Frage warum zocker
a) überhaupt geschrieben wurde.
b) dieses vor array ist?

Zocker entfernen + , .....
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Leuchte »

Wenn schon, denn schon

Code: Alles auswählen

$template->assign_vars(array(
'TITEL' => $page_title)
);
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Leuchte hat geschrieben:Wenn schon, denn schon

Code: Alles auswählen

$template->assign_vars(array(
'TITEL' => $page_title)
);
Du bist sooo fies das hätte er auch machen können :D
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag von Gumfuzi »

:oops: danke!!!

Was ist genau der Unterschied, ob ich vor dem "array" noch einen Namen vergebe ("zocker") - wird das nur in Schleifen verwendet? oder dient das rein der Übersichtlichkeit, damit die Variablen "gruppiert" sind?
Du kannst niemals alle mit deinem Tun begeistern. Selbst wenn du über's Wasser laufen kannst, kommt einer daher und fragt, ob du zu blöd zum Schwimmen bist.
https://www.deskmodder.de
Benutzeravatar
MrMind
Mitglied
Beiträge: 464
Registriert: 29.11.2003 17:14
Wohnort: Darmstadt/Odw
Kontaktdaten:

Beitrag von MrMind »

Gumfuzi hat geschrieben::oops: danke!!!

Was ist genau der Unterschied, ob ich vor dem "array" noch einen Namen vergebe ("zocker") - wird das nur in Schleifen verwendet? oder dient das rein der Übersichtlichkeit, damit die Variablen "gruppiert" sind?

Nein, das ganze steht auch in der KB.

Aber ich erkläre es dir nochmal, manchmal sind Texte in Tutorials nicht immer klar verständlich (damit will ich net den Verfasser des Tutorials angreifen):

assign_vars(array)

assign_vars() erwartet ein Array als übergabe, das wie folgt aussehen sollte:

Code: Alles auswählen

array('INDEX' => $zuweisung)
Erläuterung:

INDEX stellt hier das Arrayindex her, das dann wie folgt aufgerufen werden kann: $array['INDEX']
Außerdem stellt es auch den Namen der Variable wie sie in der Tpl-File steht:

Code: Alles auswählen

<h1>{INDEX}</h1>
$zuweisung ist für den Inhalt der TPL-Variable verantwortlich.


assign_block_vars(Blockname,array)

assign_block_vars() benötigt als ersten Parameter einen Blocknamen, der auch in der TPL-File sein muss:

Code: Alles auswählen

<!-- BEGIN Blockname -->
//HTML-Code
<!-- END Blockname -->
das array ist wiederum genauso aufgebaut wie bei assign_vars(), aber in der TPL-File muss nun anderster vorgegangen werden:

Code: Alles auswählen

<!-- BEGIN Blockname -->
  <h1>{Blockname.VARNAME}</h1>
<!-- END Blockname -->
Hier wird nun die Variabe in der TPL mit der Syntax Blockname. gefolgt von dem Varibalennamen wie oben zum Beispiel INDEX.


So nun die Frage warum assign_vars und assign_block_vars() gibt:

assign_vars() ist bevorzugt da, um allgemeine Variablen zu definieren, wie den Title der Seite, infos etc.

assign_block_vars() wird für zwei Sachen bevorzugt genutzt:

1.) Für Schleifen, da der HTML-Block zwischen den zwei HTML-Kommentaren bei jeder Schleifendurchlauf wieder neu produziert wird.
2.) Für bestimmte IF-Anweisungen, wie zum Beispiel das Login beim phpBB:

Code: Alles auswählen

if( $user_data['user_id'] == ANONYMUS )
{
    $template->assign_block_vars('switch_user_login', array());
}
Das ist net der genaue Code, aber es soll das Schema darstellen.
Wenn der User nicht registriert oder angemeldet ist, wird die UserLogIn Box auf der Seite unten angezeigt, ansonsten wird assign_block_vars() nicht definiert und somit auch net angezeigt.

Noch eins zu assign_block_vars():
Die Variablen müssen nicht zwingend mit Blockname. definiert werden, können auch normal ( z. B. {INDEX} ) heißen, aber dann müssen sie via assign_vars() defniert sein. Dies wird meistens dann gemacht, wenn Sprachvariablen verwendet wird und auf der Seite diese meist nochmals verwendet werden.

Am besten einfach mal testen und selber herausfinden.

Ich hoffe ich habe es nun verständlich rüber gebracht.

Mfg
MrMind
Selbst ist der Coder
Coder unter Linux
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

assign_vars(); ist nicht so blöd....Wenn man überlegt man geht ein Mehrdim Array durch (Array Key ist dabei Templateeinfügemarke) und im Arrayindex des Arrays steht die Ersetzung dann ist es nicht schlecht....
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag von Gumfuzi »

@MrMind: danke für die perfekte Erklärung, jetzt blicke ich wieder etwas mehr durch.
Du kannst niemals alle mit deinem Tun begeistern. Selbst wenn du über's Wasser laufen kannst, kommt einer daher und fragt, ob du zu blöd zum Schwimmen bist.
https://www.deskmodder.de
Benutzeravatar
MrMind
Mitglied
Beiträge: 464
Registriert: 29.11.2003 17:14
Wohnort: Darmstadt/Odw
Kontaktdaten:

Beitrag von MrMind »

Gumfuzi hat geschrieben:@MrMind: danke für die perfekte Erklärung, jetzt blicke ich wieder etwas mehr durch.
Hab ich doch gerne gemacht ;)

Wenn du in der Hinsicht weitere Fragen hast, kannste auch ruhig mal im ICQ anklopfen.

Habe ein halbes Jahr gebraucht, bis ich die Templates-Klasse auch nur annähernd verstanden habe ;)

Mfg
MrMind
Selbst ist der Coder
Coder unter Linux
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag von Gumfuzi »

Danke für das Angebot. Ich werde es mal mit den Links in Blutgerinsel's Sig probieren, wenn ich da nicht weiterkomme, melde ich mich wieder ;)
Du kannst niemals alle mit deinem Tun begeistern. Selbst wenn du über's Wasser laufen kannst, kommt einer daher und fragt, ob du zu blöd zum Schwimmen bist.
https://www.deskmodder.de
Antworten

Zurück zu „Coding & Technik“