Multipage anpassen [erledigt]

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
QO
Mitglied
Beiträge: 304
Registriert: 21.02.2006 12:59
Kontaktdaten:

Multipage anpassen [erledigt]

Beitrag von QO »

Hi

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	

viewtopic_body.tpl

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 -->
Hier ein Müsstertext den man im Beitrag als Bsp. eingeben kann.

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
Zuletzt geändert von QO am 07.09.2006 16:11, insgesamt 1-mal geändert.
Benutzeravatar
QO
Mitglied
Beiträge: 304
Registriert: 21.02.2006 12:59
Kontaktdaten:

Beitrag von QO »

:D Habs hinbekommen. Die KB auf der .com-Seite ist wesentlich ausführlicher und da in meinem Obrigen Bsp. ein Switch inerhalb einem anderen ist, war die deutsche version nicht sehr hilfreich.

Zur Template-KB auf phpbb.com gehts hier

QO
Antworten

Zurück zu „Coding & Technik“