protected function SelectByRole($Parameters) {
      if (!is_array($Parameters)) {
         $RoleID = $Parameters;
      } else {
         $RoleID = GetValue('RoleID', $Parameters, NULL);
      }
      
      // Lookup role name -> roleID
      if (is_string($RoleID)) {
         $RoleModel = new RoleModel();
         $Roles = explode(',', $RoleID);
         $RoleID = array();
         foreach ($Roles as $TestRoleID) {
            $TestRoleID = trim($TestRoleID);
            $Role = $RoleModel->GetByName($TestRoleID);
            if (!$Role) {
               continue;
            } else {
               $Role = array_shift($Role);
               $RoleID[] = GetValue('RoleID', $Role);
            }
         }
      }
      
      if (empty($RoleID) || !sizeof($RoleID)) return FALSE;
      
      // Check cache
      $SelectorRoleCacheKey = "modules.promotedcontent.role.{$RoleID}";
      $Content = Gdn::Cache()->Get($SelectorRoleCacheKey);
      
      if ($Content == Gdn_Cache::CACHEOP_FAILURE) {
      
         // Get everyone with this Role
         $UserIDs = Gdn::SQL()->Select('ur.UserID')
            ->From('UserRole ur')
            ->Where('ur.RoleID', $RoleID)
            ->GroupBy('UserID')
            ->Get()->Result(DATASET_TYPE_ARRAY);
         $UserIDs = ConsolidateArrayValuesByKey($UserIDs, 'UserID');
         
         // Get matching Discussions
         $Discussions = Gdn::SQL()->Select('d.*')
            ->From('Discussion d')
            ->WhereIn('d.InsertUserID', $UserIDs)
            ->OrderBy('DateInserted', 'DESC')
            ->Limit($this->Limit)
            ->Get()->Result(DATASET_TYPE_ARRAY);

         // Get matching Comments
         $Comments = Gdn::SQL()->Select('c.*')
            ->From('Comment c')
            ->WhereIn('InsertUserID', $UserIDs)
            ->OrderBy('DateInserted', 'DESC')
            ->Limit($this->Limit)
            ->Get()->Result(DATASET_TYPE_ARRAY);
         
         $this->JoinCategory($Comments);
         
         // Interleave
         $Content = $this->Union('DateInserted', array(
            'Discussion'   => $Discussions, 
            'Comment'      => $Comments
         ));
         $this->Prepare($Content);
         
         // Add result to cache
         Gdn::Cache()->Store($SelectorRoleCacheKey, $Content, array(
            Gdn_Cache::FEATURE_EXPIRY  => $this->Expiry
         ));
      }
      
      $this->Security($Content);
      $this->Condense($Content, $this->Limit);
      return $Content;
   }