Threadanordnung

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
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.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Threadanordnung

Beitrag von nickvergessen »

der IE zeigt leider mein Forum nicht mehr richtig an.
Er fügt die 0 bzw 1 für den neuen Beitrag vor die Tabelle ein.
daraus resultiert auch, dass hinten ein feld zuviel ist.
Weiß jemand wo der Fehler liegt?
Zuletzt geändert von nickvergessen am 15.10.2006 03:02, insgesamt 3-mal geändert.
kein Support per PN
Benutzeravatar
miccom
Mitglied
Beiträge: 5620
Registriert: 30.03.2003 23:53
Wohnort: Hamburg
Kontaktdaten:

Beitrag von miccom »

In deiner index_body.tpl wird ein </td nicht geschlossen -> </td>.

Liegt vermutlich daran, das du beim Mod-Einbau geschlampt hast, suche nach:

Code: Alles auswählen

</td	<td class="row2" align="center" valign="middle" height="50"><span class="gentblsmall">{catrow.forumrow.TOPICS}</span></td>
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

Wer kann mir sagen, was ich ändern muss, um meine Topics wie folgt zu sortieren:


bis jetzt sieht die sache so aus:

Ich finde das voll unübersichtlich.
Zuletzt geändert von nickvergessen am 15.10.2006 03:02, insgesamt 1-mal geändert.
kein Support per PN
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

*push*

das muss dohc jemand wissen!
kein Support per PN
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

So einfach ist das leider nicht, unmöglich aber auch nicht. Es sind ein paar Änderungen in diversen Dateien nötig.
Fangen wir mit der viewforum.php an:

Zunächst suche nach

Code: Alles auswählen

//
// Okay, lets dump out the page ...
//
Davor müssen 2 Variablen gesetzt werden:

Code: Alles auswählen

$type_has_changed = FALSE;
$type_of_row = 0;

Code: Alles auswählen

if( $topic_type == POST_ANNOUNCE )
		{
			$topic_type = $lang['Topic_Announcement'] . ' ';
		}
Ersetze dieses durch

Code: Alles auswählen

if( $topic_type == POST_ANNOUNCE )
		{
			$topic_type = $lang['Topic_Announcement'] . ' ';
$type_has_changed = $type_of_row == POST_ANNOUNCE ? FALSE : TRUE;
$type_of_row = POST_ANNOUNCE;
		}
Analog mit dieser Stelle:

Code: Alles auswählen

else if( $topic_type == POST_STICKY )
		{
			$topic_type = $lang['Topic_Sticky'] . ' ';
		}
=>

Code: Alles auswählen

else if( $topic_type == POST_STICKY )
		{
			$topic_type = $lang['Topic_Sticky'] . ' ';
$type_of_row = POST_STICKY;
$type_has_changed = $type_of_row == POST_STICKY ? FALSE : TRUE;
		}
Und ebenso die direkt darauf folgende

Code: Alles auswählen

else
		{
			$topic_type = '';		
$type_of_row = 0;
$type_has_changed = $type_of_row == 0 ? FALSE : TRUE;
		}
(Datei ist noch nicht fertig, aber ich mache das in nachvollziehbarer Reihenfolge)

Jetzt wissen wir schon mal was es ist, denn im Original wird diese Variable ja leider überschrieben mit dem Text des Themas, außerdem wissen wir ob es einen Wechsel gegeben hat (also ein anderer Typ als Vorher ausgegeben werden soll). Dies reicht aus, da die Themen ja sortiert aus der DB kommen. Bei jedem Wechsel können wir dann die Dummyzeile "einschieben". Gerade dieses Einschieben ist allerdings noch nicht vorgesehen, daher sind an dem Template für die Forenausgabe einige Änderungen nötig:
öffne die viewforum_body.tpl (Achtung ich habe keinen großen Wert auf eine "hübsche Darstellung" gelegt, wenn dir die eingefügte Zeile nicht passt musst du sie anpassen)
Suche nach

Code: Alles auswählen

<!-- BEGIN topicrow -->
Direkt danach musst du einfügen

Code: Alles auswählen

<!-- BEGIN topic_subheader -->
	<tr>
		<td colspan="6" class="catHead" align="center"><span class="cattitle">{topic_row.topic_subheader.DESCRIPTION}</span></td>
	</tr>
	<!-- END topic_subheader -->
Das ist später die zusätzliche Zeile in der Forumdarstellung.
Diese muss allerdings noch mit Text gefüllt werden.
Also wieder zurück zur viewforum.php:
nach dieser Stelle

Code: Alles auswählen

$template->assign_block_vars('topicrow', array(
			'ROW_COLOR' => $row_color,
			'ROW_CLASS' => $row_class,
			'FORUM_ID' => $forum_id,
			'TOPIC_ID' => $topic_id,
			'TOPIC_FOLDER_IMG' => $folder_image, 
			'TOPIC_AUTHOR' => $topic_author, 
			'GOTO_PAGE' => $goto_page,
			'REPLIES' => $replies,
			'NEWEST_POST_IMG' => $newest_post_img, 
			'TOPIC_TITLE' => $topic_title,
			'TOPIC_TYPE' => $topic_type,
			'VIEWS' => $views,
			'FIRST_POST_TIME' => $first_post_time, 
			'LAST_POST_TIME' => $last_post_time, 
			'LAST_POST_AUTHOR' => $last_post_author, 
			'LAST_POST_IMG' => $last_post_url, 

			'L_TOPIC_FOLDER_ALT' => $folder_alt, 

			'U_VIEW_TOPIC' => $view_topic_url)
		);
muss ein neuer Codeblock hinein:

Code: Alles auswählen

if($type_has_changed && $type_of_row == POST_ANNOUNCE)
{
$template->assign_block_vars('topicrow.topic_subheader',array('DESCRIPTION'=>preg_replace("#(<b>|</b>|:)#is",'',$lang['Topic_Announcement'])));
}
elseif($type_has_changed && $type_of_row == POST_STICKY)
{
$template->assign_block_vars('topicrow.topic_subheader',array('DESCRIPTION'=>preg_replace("#(<b>|</b>|:|!)#is",'',$lang['Topic_Sticky'])));
}
elseif($type_has_changed)
{
$template->assign_block_vars('topicrow.topic_subheader',array('DESCRIPTION'=>$lang['Topics']));
}
Falls die Überschriften um eine Position verrutscht sein sollten versuche mal stattdessen das ganze oberhalb des codeblocks einzufügen, vielleicht habe ich mich mit der Reihenfolge vertan.

Sollten sich in einem Forum nur normale Themen befinden gibt es auch keine Überschrift. Nur Themen eines anderen Typs werden nicht erkannt, ich denke aber das ist nicht tragisch.
Alternativ zu den preg_replace Befehlen (sollen nur die "Announcement" und "Sticky" Schriftzüge von den HTML Formatierungen und Doppelpunkten befreien) könntest du auch einfach $lang Variablen mit entsprechendem Inhalt anlegen.

Naja, so viele Dateien waren das jetzt doch nicht wie ich dachte.

Wichtig: Alle Dateien vor der Änderung sichern! Ich habe das nicht getestet und übernehme keine Garantie!
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

gn#36 hat geschrieben:Naja, so viele Dateien waren das jetzt doch nicht wie ich dachte.
Vllt doch. Hast du eine vergessen?
Weil so funktioniert es leider nicht :(
kein Support per PN
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Ok ich schau mir das noch mal an...
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Klitzekleiner Gewohnheits-tippfehler mit großer Wirkung:

im Template muss es nicht topic_row sondern topicrow heißen:

Code: Alles auswählen

<!-- BEGIN topic_subheader -->
	<tr>
		<td colspan="6" class="catHead" align="center"><span class="cattitle">{topicrow.topic_subheader.DESCRIPTION}</span></td>
	</tr>
	<!-- END topic_subheader -->
Ich hoffe das war der Fehler auch bei dir?
Bei mir klappt es ansonsten einwandfrei. Du musst das natürlich auch in alle Templates einbauen in denen du es haben willst. (wenn du es nicht haben willst kannst du es aber in beliebigen Templates auch einfach weglassen ;) )
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

immer noch nicht ganz...
jetzt hat er zwar Ankündigungen drüber geschrieben,
aber wichtig und normal sind immernoch nicht davon getrennt.
Wenn du dich überzeugen willst:
Zuletzt geändert von nickvergessen am 15.10.2006 03:02, insgesamt 1-mal geändert.
kein Support per PN
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Ok, eigentlich habe ich mich beim Einbau bei mir selbst an meine eigene Anleitung gehalten...
Hier noch mal die Geänderten Codeabschnitte aus meiner funktionierenden Datei (viewforum.php):

Code: Alles auswählen

$type_has_changed = FALSE;
$type_of_row = 0;
//
// Okay, lets dump out the page ...
//
if( $total_topics )
{
	for($i = 0; $i < $total_topics; $i++)
	{
		$topic_id = $topic_rowset[$i]['topic_id'];

		$topic_title = ( count($orig_word) ) ? preg_replace($orig_word, $replacement_word, $topic_rowset[$i]['topic_title']) : $topic_rowset[$i]['topic_title'];

		$replies = $topic_rowset[$i]['topic_replies'];

		$topic_type = $topic_rowset[$i]['topic_type'];

		if( $topic_type == POST_ANNOUNCE )
		{
			$topic_type = $lang['Topic_Announcement'] . ' ';
			$type_has_changed = $type_of_row == POST_ANNOUNCE ? FALSE : TRUE;
			$type_of_row = POST_ANNOUNCE; 
		}
		else if( $topic_type == POST_STICKY )
		{
			$topic_type = $lang['Topic_Sticky'] . ' ';
			$type_has_changed = $type_of_row == POST_STICKY ? FALSE : TRUE;
			$type_of_row = POST_STICKY; 
		}
		else
		{
			$topic_type = '';
			$type_has_changed = $type_of_row == 0 ? FALSE : TRUE;
			$type_of_row = 0; 		
		}
und

Code: Alles auswählen

$template->assign_block_vars('topicrow', array(
			'ROW_COLOR' => $row_color,
			'ROW_CLASS' => $row_class,
			'FORUM_ID' => $forum_id,
			'TOPIC_ID' => $topic_id,
			'TOPIC_FOLDER_IMG' => $folder_image, 
			'TOPIC_AUTHOR' => $topic_author, 
			'GOTO_PAGE' => $goto_page,
			'REPLIES' => $replies,
			'NEWEST_POST_IMG' => $newest_post_img, 
			'TOPIC_TITLE' => $topic_title,
			'TOPIC_TYPE' => $topic_type,
			'VIEWS' => $views,
			'FIRST_POST_TIME' => $first_post_time, 
			'LAST_POST_TIME' => $last_post_time, 
			'LAST_POST_AUTHOR' => $last_post_author, 
			'LAST_POST_IMG' => $last_post_url, 

			'L_TOPIC_FOLDER_ALT' => $folder_alt, 

			'U_VIEW_TOPIC' => $view_topic_url)
		);
		if($type_has_changed && $type_of_row == POST_ANNOUNCE)
		{
		$template->assign_block_vars('topicrow.topic_subheader',array('DESCRIPTION'=>preg_replace("#(<b>|</b>|:)#is",'',$lang['Topic_Announcement'])));
		}
		elseif($type_has_changed && $type_of_row == POST_STICKY)
		{
		$template->assign_block_vars('topicrow.topic_subheader',array('DESCRIPTION'=>preg_replace("#(<b>|</b>|:|!)#is",'',$lang['Topic_Sticky'])));
		}
		elseif($type_has_changed)
		{
		$template->assign_block_vars('topicrow.topic_subheader',array('DESCRIPTION'=>$lang['Topics']));
		}
Im Template sollte das hier sein:

Code: Alles auswählen

<!-- BEGIN topicrow -->
	<!-- BEGIN topic_subheader -->
	<tr>
		<td colspan="6" class="catHead" align="left"><span class="cattitle">{topicrow.topic_subheader.DESCRIPTION}</span></td>
	</tr>
	<!-- END topic_subheader -->
Aber das stimmt wohl schon, ansonsten würdest du überhaupt keine Anzeige bekommen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“