Seite 1 von 1

phpBB Templateklasse - wie spreche ich verschachtelte Blöcke

Verfasst: 21.05.2003 11:58
von bloddy newbie
Ich programmiere sonst mit einer eigenen Templateklasse, aber für einen Forummod möchte ich nun mit der phpBB eigenen arbeiten. Dabei tritt folgendes Problem auf.
Ich habe in meinem Template verschachtelte Blöcke:

Code: Alles auswählen

<!-- BEGIN Links -->
{Links.Linkname}
   <!-- BEGIN Links_sub -->
   //Wie muß ich die Variable hier deklarieren?
   {Links_sub.Linkname} //oder
   {Links.Links_sub.Linkname} //???? oder etwa ganz anders?
   <!-- END Links_sub -->
<!-- END Links
und wie spreche ich dann die Variable des Blocks Links_sub an?

Code: Alles auswählen

//gesamten Block initialisieren
$template -> assign_block_vars("Links",array(
'Linkname' => "traalala", 
));

//ich denke so hier wird nun der Sub-Block deklariert
$template -> assign_block_vars("Links_sub",array(
'Linkname' => "traalala", //ist das korrekt? wenn nicht wie dann
));
danke für eure Hilfe :D

Verfasst: 21.05.2003 12:07
von bloddy newbie
hat sich soeben erledigt....habs durch probieren herausgefunden:

Template muß so aussehen:

Code: Alles auswählen

<!-- BEGIN Links --> 
{Links.Linkname} 
   <!-- BEGIN Links_sub -->
   {Links.Links_sub.Linkname}
   <!-- END Links_sub --> 
<!-- END Links 
PHP so:

Code: Alles auswählen

//gesamten Block initialisieren 
$template -> assign_block_vars("Links",array( 
'Linkname' => "traalala", 
)); 

//Sub-Block
$template -> assign_block_vars("Links.Links_sub",array( 
'Linkname' => "traalala", 
)); 
greetz bloddy

Verfasst: 10.06.2003 10:36
von M@ster
Ich bekomme leider ein Fehlermeldung:
Fatal error: Call to a member function on a non-object in...
Sie bezieht sich auf assign_block_vars.
Was muss ich vorher in der php Datei includen oder initialisieren?

Verfasst: 10.06.2003 10:42
von bloddy newbie

Code: Alles auswählen

<?
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//Header includen
include($phpbb_root_path . 'includes/page_header.'.$phpEx); 
//
//template laden
//
$template->set_filenames(array( 
'name' => 'irgendeinetemplatedatei.tpl') 
); 

Code: Alles auswählen

Dein Code

Code: Alles auswählen

//parsen
$template->pparse('name');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
am besten schaust du dir mal paar mods in codeform an ;-)

Verfasst: 10.06.2003 10:45
von M@ster
[ externes Bild ]
Ich danke dir!
Werde mich gleich mal ranmachen und rumtesten...