Habe das gleiche Problem mit phpBB 2.0.4 und dem Mod v2.0.4.
Meiner Meinung nach steckt der Fehler in der "function get_auth_keys".
Wird in search.php hierfür gebraucht:
Code: Alles auswählen
//-- mod : categories hierarchy --------------------------------------------------------------------
//-- delete
// if ( $search_forum != -1 )
// {
// $is_auth = auth(AUTH_READ, $search_forum, $userdata);
//
// if ( !$is_auth['auth_read'] )
// {
// message_die(GENERAL_MESSAGE, $lang['No_searchable_forums']);
// }
//
// $auth_sql = "f.forum_id = $search_forum";
// }
// else
// {
// $is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata);
//
// if ( $search_cat != -1 )
// {
// $auth_sql = "f.cat_id = $search_cat";
// }
//
// $ignore_forum_sql = '';
// while( list($key, $value) = each($is_auth_ary) )
// {
// if ( !$value['auth_read'] )
// {
// $ignore_forum_sql .= ( ( $ignore_forum_sql != '' ) ? ', ' : '' ) . $key;
// }
// }
//
// if ( $ignore_forum_sql != '' )
// {
// $auth_sql .= ( $auth_sql != '' ) ? " AND f.forum_id NOT IN ($ignore_forum_sql) " : "f.forum_id NOT IN ($ignore_forum_sql) ";
// }
// }
//-- add
// get the object list
$keys = array();
$keys = get_auth_keys($search_where, true, -1, -1, 'auth_read');
$s_flist = '';
for ($i=0; $i < count($keys['id']); $i++)
{
if ( ($tree['type'][ $keys['idx'][$i] ] == POST_FORUM_URL) && $tree['auth'][ $keys['id'][$i] ]['auth_read'] )
{
$s_flist .= (($s_flist != '') ? ', ' : '') . $tree['id'][ $keys['idx'][$i] ];
}
}
if ($s_flist != '')
{
$auth_sql .= (( $auth_sql != '' ) ? " AND" : '') . " f.forum_id IN ($s_flist) ";
}
//-- fin mod : categories hierarchy ----------------------------------------------------------------
Ich habe schon versucht $auth_sql .= (( $auth_sql != '' ) ? " AND" : '') . " f.forum_id IN ($s_flist) "; dem alten Code anzupassen. Ohne Erfolg.
Bei mir funzt außerdem die Forum-Auswahl nicht. Es werden immer alle Beiträge aus allen Foren angezeigt.
NACHTRAG:
Ich habe private Unterforen in Unterkategorien, wobei hier Ansicht für 'Alle' erlaubt ist, aber lesen (auth_read)
nicht erlaubt.
Wenn ich in allen Foren oder in anderen Foren aus anderen Kategorien Suchen lassen, werden keine Beiträge aus dem privaten Subforum in den Ergebnissen angezeigt. Was richtig ist.
Wenn ich aber das private auswähle, spuckt er mir als 'Gast' die privaten Posts aus.
Das heisst ich müsste alle privaten Foren verstecken, also 'Ansicht' (auth_view) nur für 'Privat' einstellen.
Das habe ich nun gemacht:
Jetzt werden die privaten bei Beitrags-Suche in allen Foren ignoriert -> wieder Richtig.
Suche ich in der Kategorie über dem 'verstecktem, privatem' Forum (alle auth auf 'Privat'), bekomme ich immer noch die Beitrags-'Vorschau'.
Vielleicht ist das eine Hilfe für andere, die auch auf der Suche nach diesem Bug sind. Ich weis immo nicht weiter.
Habe bis der Fehler gefunden wird, die Forumauswahl im Such-Formular rausgenommen.