Ich hab von dem mxBB- KB hier die Multipage-funktion "extrahiert" um diese Funktion auch in einem Standard-phpbb zu gebrauchen. Mann kann dann einen Beitrag mit mehreren Seiten und Inhaltsverzeichnis schreiben (Hier ein Bsp. wie sowas aussieht).
Der extrahierte code funktioniert auch super, nur bekomme ich das mit der Template ausgabe nicht richtig hin wenn ich in der viewtopic etwas anderes als den postrow verwende. Auserdem bekomme ich keinen neuen Switch zum funktionieren

Ich hab bereits Templateinfos hier in der KB gelesen, aber das funktioniert auch nicht (evtl. wegen neue Version?).
Hier meine gemodetten dateien, die auch bei einem sauberen phpbb funktionieren sollten.
viewtopic.txt
viewtopic_body.txt
Folgendes wurde geändert:
viewtopic.php
Code: Alles auswählen
#
# ------------ FIND
#
$post_subject = ( $postrow[$i]['post_subject'] != '' ) ?
$message = $postrow[$i]['post_text'];
#
#---------- replace with
#
// Begin multipage
$post_subject = ( $postrow[$i]['post_subject'] != '' ) ? $postrow[$i]['post_subject'] : '';
$is_page = 'n';
$art_pages = explode('[page]', $postrow[$i]['post_text']);
if ($art_pages != $postrow[$i]['post_text'])
{
$is_page = 'y';
$page_num = $HTTP_GET_VARS['page_num'] - 1;
if ( $page_num == -1 )
{
$page_num = 0 ;
}
$message = trim($art_pages[$page_num]);
$message = str_replace('[toc]', '', $message);
}
else
{
$message = $postrow[$i]['post_text'];
}
// End multipage
#
# ------------ FIND
#
$template->assign_block_vars('postrow', array(
'ROW_COLOR' => '#' . $row_color,
.
.
.
'U_POST_ID' => $postrow[$i]['post_id'])
);
#
# ------------ after add
#
// Begin Multipage
$page_link_toc = '';
$page_link_page = '';
$template->assign_block_vars('switch_multipage', array());
if( $is_page == 'y')
{
if( count($art_pages) > 1 )
{
$s = 0;
while( $s < count($art_pages) )
{
$page_number = $s + 1;
$art_split = explode('[toc]', $art_pages[$s]);
$article_toc = trim($art_split[0]);
$article_toc = preg_replace( "'\[[\/\!]*?[^\[\]]*?\]'si", "", $article_toc ); // Fixed
$article_toc = strip_tags($article_toc);
if( $page_num != $s )
{
$temp_url = append_sid("viewtopic.php?p=" . $postrow[$i]['post_id'] . "&mode=pagination&page_num=$page_number" );
$page_link_t = '<a href="' . $temp_url . '" class="nav">' . $page_number . ' - ' . $article_toc . '</a>';
}
else
{
$page_link_t = $page_number . ' - ' . $article_toc;
}
if( $s < count($art_pages) - 1 )
{
$page_link_t .= '<br />';
}
$page_link_toc = $page_link_toc .$page_link_t;
$s++;
}
}
//
// Formatting the TOC navigation/pagination
//
if( count($art_pages) > 1 )
{
$s = 0;
while( $s < count($art_pages) )
{
$page_number = $s + 1;
if( $page_num != $s )
{
$temp_url = append_sid("viewtopic.php?p=" . $postrow[$i]['post_id'] . "&mode=pagination&page_num=$page_number" . $xtra_dynamic);
$page_link_p = '<a href="' . $temp_url . '" class="nav">' . $page_number . '</a>';
}
else
{
$page_link_p = $page_number;
}
if( $s < count($art_pages) - 1 )
{
$page_link_p .= ', ';
}
$page_link_page = $page_link_page .$page_link_p;
$s++;
}
}
$template->assign_block_vars('multipage', array(
'TOC_ITEM' => $page_link_toc ,
'PAGE_LINK' => $page_link_page)
);
}
// End Multipage
Code: Alles auswählen
#
# ------------ FIND
#
<tr>
<td colspan="2"><hr /></td>
</tr>
<tr>
<td colspan="2"><span class="postbody">{postrow.MESSAGE}{postrow.SIGNATURE}</span><span class="gensmall">{postrow.EDITED_MESSAGE}</span></td>
</tr>
#
# ------------ before add
#
<!-- BEGIN switch_multipage -->
<tr>
<td class="row1" align="left" colspan="2"><br /><span class="topictitle">Inhalt</span><br /><hr /><span class="nav">
{multipage.TOC_ITEM}
</span></td>
</tr>
<!-- END switch_multipage -->
#
# ------------ after add
#
<!-- BEGIN switch_multipage -->
<tr>
<td class="row1" align="center" colspan="2"><span class="nav"><hr />{L_GOTO_PAGE}
{multipage.PAGE_LINK}
</span></td>
</tr>
<!-- END switch_multipage -->
Code: Alles auswählen
[b]Test article featuring pages and toc[/b] [toc]
This is a test article featuring pages and table of contents navigation (toc).
[page]
[b][size=18]First example page[/size][/b] [toc]
This is a example page, the first actually ;)
Some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text...
[page]
[b][size=18]Second example page[/size][/b] [toc]
This is a example page, the second...
Some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text...
[page]
[b][size=18]Third example page[/size][/b] [toc]
This is a example page, the third...
Some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text... some text...
2 Fragen
a) Wie bekomme ich den Switch (switch_multipage) zum funktionieren? Der switch soll sobald im text [page] vorkommt an sein.
b) wie kann ich die Infos weitergeben sodass ich es z.B. so {multipage.TOC_ITEM} in den tpl verwenden kann? Bei funktionierenden Switch könnte ich die 2 Infos (TOC_ITEM, PAGE_LINK) auch mit normalen postrow weitergeben, muss halt etwas verschieben dann.
Danke für eure Hilfe
QO