PRobleme im Umgang mit Template Klasse

Alles zu Styles, Templates, Icons und Smilies für phpBB 2.0, sowie allgemeine Designfragen zur Integration von phpBB in bestehende Websites.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
mAx\\
Mitglied
Beiträge: 4
Registriert: 29.09.2003 22:01

PRobleme im Umgang mit Template Klasse

Beitrag von mAx\\ »

Er gibt das Template xw_body korrekt ohne jegliche Fehlermeldung aus. Auch der "Block" wird der while entsprechend wiederholt jedoch ersetzt er die Platzhalter nicht sprich die Funktion assign_block_vars geht nicht so wie ich will. Wo liegt mein Fehler, was mach ich falsch? :)

Code:

Code: Alles auswählen

<?
define('IN_PHPBB', true); 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 
$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata); 
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

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

if (xw_access($userdata["user_id"])) { 
	$result = mysql_query("SELECT id FROM phpbb_xw_spieler WHERE name='$spieler'");
	$spieler = mysql_fetch_array($result);
	if ($spieler) {
		$result = mysql_query("SELECT * FROM phpbb_xw_planeten WHERE besitzer='$spieler[id]'");
		while ($planeten = mysql_fetch_array($result)){
			$template->assign_block_vars('planrow', array(
				'XW_GAL' => $planeten[galaxie],
				'XW_SYS' => $planeten[system],
				'XW_PLAN' => $planeten[planet],
				'XW_SPIELER' => $spieler[name])
			);
		}
	}

} 
else { message_die(GENERAL_MESSAGE, "Nichts für dich"); }
$template->pparse('xw_body');

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
Template:

Code: Alles auswählen

<table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline">
<tr> 
	<th class="thCornerL" height="25" nowrap="nowrap">&nbsp;Gal&nbsp;</th>
	<th class="thTop" nowrap="nowrap">&nbsp;Sys&nbsp;</th>
	<th class="thTop" nowrap="nowrap">&nbsp;Plan&nbsp;</th>
	<th colspan="2" class="thCornerR" nowrap="nowrap">&nbsp;</th>
</tr>
<!-- BEGIN planrow -->
<tr> 
	<td class="row2" align="center" valign="middle" width="20" height="25"><span class="gensmall">{XW_GAL}</span></td>
	<td class="row2" align="center" valign="middle" width="20" nowrap="nowrap"> <span class="gensmall">{XW_SYS}</span></td>
	<td class="row2" align="center" valign="middle" width="20"><span class="gensmall">{XW_PLAN}</span></td>
	<td class="row1"><span class="forumlink">&nbsp;<a href="viewxwdb.php?spieler={XW_SPIELER}" class="forumlink">{XW_SPIELER}</a>&nbsp;</span></td>
</tr>
<!-- END planrow -->
</table>
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Die Variablen in den Blocks müssen jeweils mit dem Namen des Blocks beginnen. Also statt

Code: Alles auswählen

{XW_PLAN}

Code: Alles auswählen

{planrow.XW_PLAN}
Entspricht zumindest dem besten Wissenstand - einfach mal probieren :-)

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
mAx\\
Mitglied
Beiträge: 4
Registriert: 29.09.2003 22:01

Beitrag von mAx\\ »

Leider nicht, Beispiel aus der index.php:

Code: Alles auswählen

$template->assign_block_vars('catrow', array(
	'CAT_ID' => $cat_id,
	'CAT_DESC' => $category_rows[$i]['cat_title'],
	'U_VIEWCAT' => append_sid("index.$phpEx?" . POST_CAT_URL . "=$cat_id"))
);
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Tja, dann war das wohl der falsche Weg. Kann aber derzeit nicht auf meine Testumgebung zugreifen :-(
Versuch mal folgendes:
statt

Code: Alles auswählen

            'XW_GAL' => $planeten[galaxie], 
            'XW_SYS' => $planeten[system], 
            'XW_PLAN' => $planeten[planet], 
            'XW_SPIELER' => $spieler[name]) 

Code: Alles auswählen

            'XW_GAL' => 'a', 
            'XW_SYS' => 'b', 
            'XW_PLAN' => 'c', 
            'XW_SPIELER' => 'd') 
Gruß, Philipp

BTW: das in den eckigen Klammern sind übrigens String-Werte und keine Konstanten: immer schön in Anführungszeichen setzen:

Code: Alles auswählen

$planeten['galaxie']
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
mAx\\
Mitglied
Beiträge: 4
Registriert: 29.09.2003 22:01

Beitrag von mAx\\ »

Führt auch so nicht zum gewünschten Erfolg :(
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

So, jetzt habe ich nochmals in den Code geschaut. Das was ich mit dem Prefix gesagt habe, war richtig. Natürlich nur im Template.
Zu dem von dir genannten Beispiel heißt der Template-Code nämlich:

Code: Alles auswählen

  <!-- BEGIN catrow -->
  <tr> 
	<td class="catLeft" colspan="2" height="28"><span class="cattitle"><a href="{catrow.U_VIEWCAT}" class="cattitle">{catrow.CAT_DESC}</a></span></td>
	<td class="rowpic" colspan="3" align="right">&nbsp;</td>
  </tr>
...
Versuch doch bitte mal, die Änderung am Template durchzuführen. Wenn's immer noch nicht will, weise den Variablen zusätzlich testweise feste Werte zu. (siehe mein letztes Beispiel)

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
mAx\\
Mitglied
Beiträge: 4
Registriert: 29.09.2003 22:01

Beitrag von mAx\\ »

Vielen Dank, nun klappt es bestens das hab ich wohl glatt übersehen.
Antworten

Zurück zu „phpBB 2.0: Styles, Templates und Grafiken“