示例#1
0
                        $result = $db->sql_query($sql, 3600);
                        $forum_name = $db->sql_fetchfield('forum_name', 0, $result);
                        $db->sql_freeresult($result);
                        get_subforums($forum_ids[0], $forum_ids);
                    } else {
                        $only_cats = true;
                        $subforums = array();
                        for ($i = 0; $i < ($size = sizeof($forum_ids)); $i++) {
                            $sql = 'SELECT forum_type
								FROM ' . FORUMS_TABLE . '
								WHERE forum_id = ' . $forum_ids[$i];
                            $result = $db->sql_query($sql, 3600);
                            $forum_type = $db->sql_fetchfield('forum_type', 0, $result);
                            $db->sql_freeresult($result);
                            if ($forum_type == FORUM_CAT) {
                                get_subforums($forum_ids[$i], $subforums);
                            } else {
                                if ($only_cats) {
                                    $only_cats = false;
                                }
                            }
                        }
                        $forum_ids = $subforums;
                    }
                }
            }
        }
        // remove those without permissions or ask for login
        check_forum_ids($forum_ids);
        if (!sizeof($forum_ids)) {
            trigger_error('SYNDICATION_DISABLED');
示例#2
0
/**
* get all subforums of a specified forum
*/
function get_subforums($forum_id, &$forums)
{
    global $auth, $db;
    $sql = 'SELECT forum_id, forum_type, left_id, right_id
		FROM ' . FORUMS_TABLE . "\n\t\tWHERE parent_id = {$forum_id}\n\t\t\tAND forum_type <> " . FORUM_LINK;
    $result = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($result)) {
        // postable forum and sufficent permissions
        if ($row['forum_type'] == FORUM_POST && $auth->acl_get('f_read', $row['forum_id']) && $auth->acl_get('f_syndication', $row['forum_id'])) {
            $forums[] = (int) $row['forum_id'];
        }
        if ($row['right_id'] - $row['left_id'] > 1) {
            get_subforums($row['forum_id'], $forums);
        }
    }
    $db->sql_freeresult($result);
}