/** * Constructor * @since Version 3.0.1 * @version 3.0.1 * @param object $db */ public function __construct() { parent::__construct(); // If memcache is enabled, check there first $mckey = "railpage:forums.index"; if ($this->categories = $this->getCache($mckey)) { // Do nothing } else { // Grab the index from the database $query = "SELECT * FROM nuke_bbcategories ORDER BY cat_order"; if ($this->db instanceof \sql_db) { if ($rs = $this->db->query($query, true)) { while ($row = $rs->fetch_assoc()) { $result[] = $row; } foreach ($result as $row) { $this->categories[$row['cat_id']]['title'] = $row['cat_title']; $this->categories[$row['cat_id']]['order'] = $row['cat_order']; } } else { trigger_error("phpBB_index : Could not fetch list of categories"); } } else { foreach ($this->db->fetchAll($query) as $row) { $this->categories[$row['cat_id']]['title'] = $row['cat_title']; $this->categories[$row['cat_id']]['order'] = $row['cat_order']; } } $this->setCache($mckey, $this->categories, strtotime("+2 hours")); } }
/** * Constructor * @since Version 3.2 * @version 3.2 * @param object $db * @param object $user */ public function __construct($user = false) { if (!$user || !$user instanceof \Railpage\Users\User) { throw new \Exception("Cannot instantiate " . __CLASS__ . "::" . __FUNCTION__ . " - no \$user object given"); return false; } parent::__construct(); $this->user = $user; $query = "SELECT * FROM nuke_bbforums"; if ($this->db instanceof \sql_db) { if ($rs = $this->db->query($query)) { while ($row = $rs->fetch_assoc()) { $forum =& $this->forums[$row['forum_id']]; foreach ($row as $key => $val) { $forum[$key] = $val; } } // Get group permissions for user $query = "SELECT * FROM nuke_bbauth_access WHERE group_id IN (SELECT group_id FROM nuke_bbuser_group WHERE user_id = " . $this->db->real_escape_string($this->user->id) . " AND user_pending = 0)"; if ($rs = $this->db->query($query)) { while ($row = $rs->fetch_assoc()) { foreach ($row as $key => $val) { if (strstr($key, "auth_")) { // This is a permission, so let's check it $forum_perm =& $this->forums[$row['forum_id']][$key]; if ($val > 0 && $forum_perm < $val) { $forum_perm = $val; } } } } } } else { trigger_error("phpBB User permissions : Unable to fetch forum list"); trigger_error($this->db->error); trigger_error($query); } } else { foreach ($this->db->fetchAll($query) as $row) { $forum =& $this->forums[$row['forum_id']]; foreach ($row as $key => $val) { $forum[$key] = $val; } } $query = "SELECT * FROM nuke_bbauth_access WHERE group_id IN (SELECT group_id FROM nuke_bbuser_group WHERE user_id = ? AND user_pending = 0)"; foreach ($this->db->fetchAll($query, $this->user->id) as $row) { foreach ($row as $key => $val) { if (strstr($key, "auth_")) { // This is a permission, so let's check it $forum_perm =& $this->forums[$row['forum_id']][$key]; if ($val > 0 && $forum_perm < $val) { $forum_perm = $val; } } } } } }