Exemple #1
0
 /**
  * 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;
                     }
                 }
             }
         }
     }
 }