Seite 1 von 1

Jumpbox-Problem was eigentlich gar keins ist

Verfasst: 04.04.2007 18:48
von GRABO
Ich habe mir soeben mehrere Stunden den Kopf zerbrochen und möchte dem nächsten der auf dieses Problem stösst die Denkarbeit ersparen...

Zielgruppe:
Alle die mit speziellen Forenberechtigungen arbeiten und sich darüber wundern, dass viele oder gar alle Foren nicht in der Jumpbox auftauchen

Folgendes Phenomän:
Ein frisch installiertes Forum, zunächst ohne Berechtigungseinstellungen, funzt wunderbar. Nach etlichen mods und noch mehr Einstellungen und Berechtigungskonfigurationen stellt man plötzlich fest, das trotz mehreren Kategorien und Foren, in der Jumpbox nur ein einziger Eintrag(oder zu wenige Einträge) auftaucht (auftauchen).

Lösung:
Für die Generierung der Jumpbox gibt es in "includes/functions.php" die Funktion "function make_jumpbox($action, $match_forum_id = 0)".
In Zeile 249 etwa findet ihr:

"if ( $forum_rows[$j]['cat_id'] == $category_rows[$i]['cat_id'] && $forum_rows[$j]['auth_view'] <= AUTH_REG )"

Die Teilbedingung "$forum_rows[$j]['auth_view'] <= AUTH_REG" bestimmt darüber, welche Foren in der Jumpbox auftauchen sollen.
AUTH_REG ist eine Konstante aus "includes/constants.php" sie hat den Wert 1. Alle Foren bei denen auf der Berechtigungsseite
eine höhere Stufe als "Reg" eingestellt wurde haben den Wert 2 oder höher (im Datenbankfeld "auth_view"). Wenn man möchte, dass auch die Foren
mit speziellen Rechten (Privat also Wert 2) in der Jumpbox angezeigt werden sollen, dann kann man einfach "AUTH_REG" in
"AUTH_ACL"(=2) ändern. Allerdings werden dann nicht berechtigte User diese Foren, die sie ja so nicht sehen, in der Jumpbox sehen können.
Zugriff erlangen sie dadurch jedoch nicht.

Verfasst: 04.04.2007 21:31
von Ron_Berlin
Danke für den Hinweis!

Habe es bei mir anders gelöst. Mich hat gestört, daß
Gäste in der Jumpbox Foren sehen können, von deren
Existenz sie jedoch nichts wissen sollen (Interna).
In der Version 22 ist eine If-Abfrage auskommentiert,
die die Prüfung auf die individuellen User-Rechte
vornimmt. Reaktiviert man sie und kommentiert
zugleich die aktuelle if-Abfrage aus, können Gäste
nur noch die allgemeinen Foren sehen.

Habe bei der Gelegenheit auch gleich die Selektions-
liste angepasst. Anstelle der Zeilen mit option "-1" ist
die Verwendung der "optgroup"-Labels empfehlenswert.

Gruß Ron

Verfasst: 05.04.2007 10:55
von GRABO
Deine Lösung ist noch besser (die auskommentierten Zeilen habe ich auch in Version 2.17 gefunden). Habs direkt mal getestet. Die kleine Änderung mit optgroup hatte ich auch schon drinne. Hier nochmal in Kurzform die Änderungen in der Funktion "make_jumpbox" in "inludes/functions.php" damit man das entsprechend in seinem eigenen Forum realisieren kann.

Code: Alles auswählen

// 	$is_auth = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata);
zu

Code: Alles auswählen

 	$is_auth = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata);
ändern

Code: Alles auswählen

					if ( $forum_rows[$j]['cat_id'] == $category_rows[$i]['cat_id'] && $forum_rows[$j]['auth_view'] <= AUTH_REG )
					{

//					if ( $forum_rows[$j]['cat_id'] == $category_rows[$i]['cat_id'] && $is_auth[$forum_rows[$j]['forum_id']]['auth_view'] )
//					{
zu

Code: Alles auswählen

//					if ( $forum_rows[$j]['cat_id'] == $category_rows[$i]['cat_id'] && $forum_rows[$j]['auth_view'] <= AUTH_ACL )
//					{

					if ( $forum_rows[$j]['cat_id'] == $category_rows[$i]['cat_id'] && $is_auth[$forum_rows[$j]['forum_id']]['auth_view'] )
					{
ändern

und für die Verschönerung des Jumpboxinhalts folgenden Mod einbauen

Code: Alles auswählen

##############################################################
## MOD Title: Redesigned Jumpbox
## MOD Author: BeeV < bee.veer+phpbb@gmail.com > (Bas Veerman) http://www.wizzzzzzzz.nl/alles/
## MOD Description: This little mod redesigns the jumpbox,
##                  and uses the HTML 4.0 optgroup tag.
##                  This saves some of the jumpbox length
##                  and makes category names unselectable.
## MOD Version: 1.0.0
##
## Installation Level: Easy
## Installation Time: 3 minutes
## Files To Edit: includes/functions.php
## Included Files: N/A
## License: http://opensource.org/licenses/gpl-license.php GNU General Public License v2
##############################################################
## For security purposes, please check: http://www.phpbb.com/mods/
## for the latest version of this MOD. Although MODs are checked
## before being allowed in the MODs Database there is no guarantee
## that there are no security problems within the MOD. No support
## will be given for MODs not found within the MODs Database which
## can be found at http://www.phpbb.com/mods/
##############################################################
## Author Notes: Please be carefull when installing this mod,
## else you will be likely to create errors.
##
## When using some of the templates created by Cyberalien, you
## don't need to install this. The template redesigns the jumpbox
## when eXtreme Styles is installed too.
##############################################################
## MOD History:
##
##   2005-11-10 - Version 1.0.0
##
## This is the very first version. Removed spaces and added optgroup.
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################

#
#-----[ OPEN ]------------------------------------------
#
includes/functions.php
#
#-----[ FIND ]------------------------------------------
#
               $boxstring .= '<option value="-1">&nbsp;</option>';
               $boxstring .= '<option value="-1">' . $category_rows[$i]['cat_title'] . '</option>';
               $boxstring .= '<option value="-1">----------------</option>';
#
#-----[ REPLACE WITH ]------------------------------------------
#
               $boxstring .= '<optgroup label="' . $category_rows[$i]['cat_title'] . '">';
#
#-----[ FIND ]------------------------------------------
#
               $boxstring .= $boxstring_forums;
#
#-----[ AFTER, ADD ]------------------------------------------
#
               $boxstring .= '</optgroup>';
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM