[ Index ]

PHP Cross Reference of MyBB 1.6.5

title

Body

[close]

/inc/ -> functions_modcp.php (source)

   1  <?php
   2  /**
   3   * MyBB 1.6
   4   * Copyright 2010 MyBB Group, All Rights Reserved
   5   *
   6   * Website: http://mybb.com
   7   * License: http://mybb.com/about/license
   8   *
   9   * $Id: functions_modcp.php 5297 2010-12-28 22:01:14Z Tomm $
  10   */
  11  
  12  /**
  13   * Check if the current user has permission to perform a ModCP action on another user
  14   *
  15   * @param int The user ID to perform the action on.
  16   * @param int the moderators user ID
  17   * @return boolean True if the user has necessary permissions
  18   */
  19  function modcp_can_manage_user($uid)
  20  {
  21      global $mybb;
  22  
  23      $user_permissions = user_permissions($uid);
  24  
  25      // Current user is only a local moderator or use with ModCP permissions, cannot manage super mods or admins
  26      if($mybb->usergroup['issupermod'] == 0 && ($user_permissions['issupermod'] == 1 || $user_permissions['cancp'] == 1))
  27      {
  28          return false;
  29      }
  30      // Current user is a super mod or is an administrator
  31      else if($user_permissions['cancp'] == 1 && ($mybb->usergroup['cancp'] != 1 || (is_super_admin($uid) && !is_super_admin($mybb->user['uid'])))) 
  32      {
  33          return false;
  34      }
  35      return true;
  36  }
  37  
  38  function fetch_forum_announcements($pid=0, $depth=1)
  39  {
  40      global $mybb, $db, $lang, $announcements, $templates, $announcements_forum, $moderated_forums;
  41      static $forums_by_parent, $forum_cache, $parent_forums;
  42  
  43      if(!is_array($forum_cache))
  44      {
  45          $forum_cache = cache_forums();
  46      }
  47      if(!is_array($parent_forums) && $mybb->user['issupermod'] != 1)
  48      {
  49          // Get a list of parentforums to show for normal moderators
  50          $parent_forums = array();
  51          foreach($moderated_forums as $mfid)
  52          {
  53              $parent_forums = array_merge($parent_forums, explode(',', $forum_cache[$mfid]['parentlist']));
  54          }
  55      }
  56      if(!is_array($forums_by_parent))
  57      {
  58          foreach($forum_cache as $forum)
  59          {
  60              $forums_by_parent[$forum['pid']][$forum['disporder']][$forum['fid']] = $forum;
  61          }
  62      }
  63  
  64      if(!is_array($forums_by_parent[$pid]))
  65      {
  66          return;
  67      }
  68  
  69      foreach($forums_by_parent[$pid] as $children)
  70      {
  71          foreach($children as $forum)
  72          {
  73              if($forum['active'] == 0 || !is_moderator($forum['fid']))
  74              {
  75                  // Check if this forum is a parent of a moderated forum
  76                  if(in_array($forum['fid'], $parent_forums))
  77                  {
  78                      // A child is moderated, so print out this forum's title.  RECURSE!
  79                      $trow = alt_trow();
  80                      eval("\$announcements_forum .= \"".$templates->get("modcp_announcements_forum_nomod")."\";");
  81                  }
  82                  else
  83                  {
  84                      // No subforum is moderated by this mod, so safely continue
  85                      continue;
  86                  }
  87              }
  88              else
  89              {
  90                  // This forum is moderated by the user, so print out the forum's title, and its announcements
  91                  $trow = alt_trow();
  92                  
  93                  $padding = 40*($depth-1);
  94                  
  95                  eval("\$announcements_forum .= \"".$templates->get("modcp_announcements_forum")."\";");
  96                      
  97                  if($announcements[$forum['fid']])
  98                  {
  99                      foreach($announcements[$forum['fid']] as $aid => $announcement)
 100                      {
 101                          $trow = alt_trow();
 102                          
 103                          if($announcement['enddate'] < TIME_NOW && $announcement['enddate'] != 0)
 104                          {
 105                              $icon = "<img src=\"images/minioff.gif\" alt=\"({$lang->expired})\" title=\"{$lang->expired_announcement}\"  style=\"vertical-align: middle;\" /> ";
 106                          }
 107                          else
 108                          {
 109                              $icon = "<img src=\"images/minion.gif\" alt=\"({$lang->active})\" title=\"{$lang->active_announcement}\"  style=\"vertical-align: middle;\" /> ";
 110                          }
 111                          
 112                          $subject = htmlspecialchars_uni($announcement['subject']);
 113                                  
 114                          eval("\$announcements_forum .= \"".$templates->get("modcp_announcements_announcement")."\";");
 115                      }
 116                  }
 117              }
 118  
 119              // Build the list for any sub forums of this forum
 120              if($forums_by_parent[$forum['fid']])
 121              {
 122                  fetch_forum_announcements($forum['fid'], $depth+1);
 123              }
 124          }
 125      }
 126  }
 127  
 128  ?>


Generated: Sun Dec 11 14:16:27 2011 Cross-referenced by PHPXref 0.7.1