Ein-/ausblenden von Forenkathegorien je nach Board-Sprache

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Cairill
Mitglied
Beiträge: 1
Registriert: 26.01.2012 09:48

Ein-/ausblenden von Forenkathegorien je nach Board-Sprache

Beitrag von Cairill »

Ich hab ein paar Modifikationen vorgenommen, um bei Multilingualen-Foren, die Bereiche der "fremden" Sprachen unsichtbar zu Machen.
Dabei bin ich folgenden Weg gegangen...

- es gibt mehrere Kathegorien, die jeweils die Foren einer Sprache enthalten
- diese Kathegorien tragen in der Description das kürzel der jeweiligen Sprache
- in functions_display.php hab ich die Funktion display_forums modifiziert, sodass Foren mit Sprachkürzel in forum_desc die nicht mit der gewählten Sprache übereinstimmen, übersprungen werden

Das geschieht wie folgt, direkt nach dem SQL-Query

Code: Alles auswählen

		if (($row['forum_desc'] == "DE" && $user->lang['USER_LANG'] != "de") OR ($row['forum_desc'] == "EN" && $user->lang['USER_LANG'] == "de"))
		{
			continue;
		}

Das ist im prinzip die selbe vorgehesweise die PHPBB nutzt um Forem auszublenden für die keine Berechtigung vorliegt und soweit funktioniert das auch, jedoch bleibt ein unschönes Problem, wenn das erste Forum des Boards diesem Filter zum Opfer fällt.
Das erste Forum meines Boards ist die deutsche Nachrichten-Kathegorie, und wird natürlich herausgefiltert, wenn ein User Englisch als Sprache gewählt hat. Allerdings wird in der Forenübersicht statt "gar nichts" eine leere Kathegorie angezeigt.


Edit: nachdem es mir keine Ruhe gelassen hat hab ich mir das Array $template->_tpldata['forumrows'] doch noch mal genauer angeschaut, und bin selbst drauf gekommen.
Da ich wie oben zwar Kathegorien "überspringe" aber nicht deren Unterforen, werden mit dieser ForenID Werte für "Anzahl Beiträge", "Letzter Beitrag" usw geschrieben, was den unerwünschten Effekt hervorruft.

Lösung: die unterforen auch überspringen

Code: Alles auswählen

		if (($row['forum_desc'] == "DE" && $user->lang['USER_LANG'] != "de") OR ($row['forum_desc'] == "EN" && $user->lang['USER_LANG'] == "de"))
		{
			$skipped_forum = $forum_id;
			continue;
		}
		if ($row['parent_id'] == $skipped_forum) continue;
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“