protected function SelectByRank($Parameters) {
      $RankID = GetValue('RankID', $Parameters, NULL);
      if (!$RankID) return FALSE;
      
      // Check cache
      $SelectorRankCacheKey = "modules.promotedcontent.rank.{$RankID}";
      $Content = Gdn::Cache()->Get($SelectorRankCacheKey);
      
      if ($Content == Gdn_Cache::CACHEOP_FAILURE) {
      
         // Get everyone with this Role
         $UserIDs = Gdn::SQL()->Select('u.UserID')
            ->From('User u')
            ->Where('u.RankID', $RankID)
            ->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($SelectorRankCacheKey, $Content, array(
            Gdn_Cache::FEATURE_EXPIRY  => $this->Expiry
         ));
      }
      
      $this->Security($Content);
      $this->Condense($Content, $this->Limit);
      return $Content;
   }