Forumsliste bzw. forumrow auf allen Seiten möglich?

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
modernist
Ehemaliges Teammitglied
Beiträge: 2202
Registriert: 12.01.2009 10:44

Forumsliste bzw. forumrow auf allen Seiten möglich?

Beitrag von modernist »

Hallo!

Ich möchte gern auf jeder Seite in einer Sidebar eine Liste aller vorhandenen Foren einblenden. Für die Sidebar auf der index.php ist das mit

Code: Alles auswählen

<!-- BEGIN forumrow --><!-- IF not forumrow.S_IS_CAT --><li class="row bg1"><a href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a></li><!-- ENDIF --><!-- END forumrow -->
recht einfach bewerkstelligt (auch wenn es etwas überflüssig ist, dort zweimal die gleiche Auflistung zu haben). Das funktioniert aber leider nicht, wenn man die index.php verlässt und z.B. über viewforum.php ein Forum aufruft.

Meine Idee war, es mal mit den Befehlen der Jumpbox zu versuchen. So etwas wie

Code: Alles auswählen

			<!-- BEGIN jumpbox_forums -->
<li class="row bg1"><a href="{jumpbox_forums.FORUM_NAME}">{jumpbox_forums.FORUM_NAME}</a></li>
			<!-- END jumpbox_forums -->
zeigt mir zwar eine entsprechende Liste an, allerdings gibt es da das Problem, daß die Links eben nicht die Forums-ID beinhalten, sondern nur den Namen des Forums tragen. So funktioniert es also nicht.

Was muß ich da einbauen, damit eine Forumsliste wirklich auf jeder Seite auftaucht, die Links nutzbar sind und auch Nutzerberechtigungen bei der Auflistung berücksichtgt werden? Oder wie kann man die forumrow-Sache für alle Seiten erlauben?
wolfman24
Mitglied
Beiträge: 892
Registriert: 25.09.2005 13:17

Re: Forumsliste bzw. forumrow auf allen Seiten möglich?

Beitrag von wolfman24 »

Dann benutze doch jumpbox_forums.FORUM_ID, welches die Foren ID ist, wie der Name ja auch schon sagt. Den Link mußt du dir dann noch selber zusammenbauen.
modernist
Ehemaliges Teammitglied
Beiträge: 2202
Registriert: 12.01.2009 10:44

Re: Forumsliste bzw. forumrow auf allen Seiten möglich?

Beitrag von modernist »

Die Idee ist nicht schlecht. Mit

Code: Alles auswählen

			<!-- BEGIN jumpbox_forums -->
<li class="row bg1"><a href="viewforum.php?f={jumpbox_forums.FORUM_ID}">{jumpbox_forums.FORUM_NAME}</a></li>
			<!-- END jumpbox_forums -->
bekomme ich auch eine korrekte Liste angezeigt, dabei ist das Problem allerdings, daß keine Session-ID übergeben wird und man dann ggf. automatisch ausgeloggt wird.

Wenn ich in der functions_content.php eine append_sid ergänze, dann stimmt die Syntax nicht mehr.

Code: Alles auswählen

		$template->assign_block_vars('jumpbox_forums', array(
			'FORUM_ID'		=> append_sid($row['forum_id']),
Herauskommt dann Murks wie .../viewforum.php?f=8?sid=XXX
Es sollte natürlich .../viewforum.php?f=8&sid=XXX herauskommen.
Vielleicht weiß da jemand eine Lösung? Oder einen Alternativvorschlag ohne auf die Jumpbox-Funktionen.
wolfman24
Mitglied
Beiträge: 892
Registriert: 25.09.2005 13:17

Re: Forumsliste bzw. forumrow auf allen Seiten möglich?

Beitrag von wolfman24 »

Die Idee mit dem append_sid und der FORUM_ID ist natürlich schlecht, da dann evtl. die JumpBox nicht mehr funktioniert. Du kannst evetuell dort, wo die Variablen für die JumpBox erzeugt werden (also FORUM_NAME und FORUM_ID) eine weitere Variable anlegen (z.B. U_FORUM_LINK) und in diese direkt den kompletten Link schreiben.
modernist
Ehemaliges Teammitglied
Beiträge: 2202
Registriert: 12.01.2009 10:44

Re: Forumsliste bzw. forumrow auf allen Seiten möglich?

Beitrag von modernist »

Da ich die Jumpbox derzeit eh deaktiviert habe -und sollte ich das so mit den Jumpbox-Funktionen umsetzen- würde ich den Include-Befehl eh aus den Templates entfernen, das wäre also egal, ob die Jumpbox dann noch funktioniert oder nicht.

Ich habe jetzt aber mal etwas konstruiert, bei dem ich die Forumlinks ins Sidebar-Template direkt eingefügt habe, das dürfte dann auch die Datenbankabfragen reduzieren.

Das sieht dann so aus:

Code: Alles auswählen

<li class="row bg1"><a href="{U_F3}">Forum F1</a></li>
<li class="row bg1"><a href="{U_F6}">Forum F2</a></li>
etc.
in den Funktionen der Sidebar.php habe ich dann noch

Code: Alles auswählen

'U_F1'    => append_sid("{$phpbb_root_path}viewforum.$phpEx", array('f' => 1)),
usw. eingefügt. Das klappt prima, für Foren, die nur bestimmte Nutzergruppen sehen sollen, habe ich einfach dies hier umgesetzt, jetzt brauche ich noch eine Abfrage, damit diese Liste nicht auf der index.php angezeigt wird. Weisst du zufällig eine passende If-Abfrage? Ich suche mir da gerade einen Wolf und finde nichts passendes.
modernist
Ehemaliges Teammitglied
Beiträge: 2202
Registriert: 12.01.2009 10:44

Re: Forumsliste bzw. forumrow auf allen Seiten möglich?

Beitrag von modernist »

Ah, gefunden!

Code: Alles auswählen

<!-- IF not FORUM_ID == 0 -->
bla bla
<!-- ENDIF -->
tut's, um die Liste auf Seiten anzuzeigen, die nicht die Forenübersicht sind.

Edit: Wobei das die Liste jetzt nicht mehr bei ucp.php, faq.php oder search.php angezeigt wird. Da muß ich noch etwas rumprobieren...grmpf
modernist
Ehemaliges Teammitglied
Beiträge: 2202
Registriert: 12.01.2009 10:44

Re: Forumsliste bzw. forumrow auf allen Seiten möglich?

Beitrag von modernist »

Jetzt aber!
Die bessere Lösung ist es, in der index.php im Root folgendes zu ergänzen:

Finde

Code: Alles auswählen

	'S_DISPLAY_BIRTHDAY_LIST'	=> ($config['load_birthdays']) ? true : false,
Danach einfügen:

Code: Alles auswählen

	'S_INDEX_PAGE'                => true, 
Und dann in der Sidebar

Code: Alles auswählen

<!-- IF  not S_INDEX_PAGE -->
bla bla
<!-- ENDIF -->
abzufragen. So weit ich das jetzt ausprobiert habe, funktioniert es, wie es soll. :grin:

Nachtrag: Und jetzt habe ich's auch online gestellt siehe Link im Miniprofil; danke auch an Frank1604 für die FW SideBar, die ich dann meinen Wünschen angepaßt habe.
Antworten

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