DiscussionModel::addFilterSet PHP Method

addFilterSet() public static method

Adds a filter set to the allowed filters array.
public static addFilterSet ( string $setKey, string $setName = '', array $categoryIDs = [] )
$setKey string The key name of the filter set.
$setName string The name of the filter set. Appears in the UI.
$categoryIDs array The IDs of the categories that this filter will work on. If empty, filter is global.
    public static function addFilterSet($setKey, $setName = '', $categoryIDs = [])
    {
        if (!$setName) {
            $setName = sprintf(t('All %s'), t('Discussions'));
        }
        self::$allowedFilters[$setKey]['key'] = $setKey;
        self::$allowedFilters[$setKey]['name'] = $setName;
        self::$allowedFilters[$setKey]['categories'] = $categoryIDs;
        // Add a way to let users clear any filters they've added.
        self::addClearFilter($setKey, $setName);
    }

Usage Example

コード例 #1
0
 /**
  * Add new filters to the discussion model
  *
  * @param DiscussionModel $sender Sending controller instance.
  * @param array $args Event arguments.
  */
 public function discussionModel_initStatic_handler($sender, $args)
 {
     DiscussionModel::addFilterSet('prefix', 'Prefixes');
     DiscussionModel::addFilter('has-prefix', 'Has prefix', ['d.Prefix IS NOT NULL' => null], 'base-filter', 'prefix');
     DiscussionModel::addFilter('no-prefix', 'No prefix', ['d.Prefix IS NULL' => null], 'base-filter', 'prefix');
     $currentPrefixes = PrefixDiscussionPlugin::getPrefixes();
     unset($currentPrefixes['-']);
     $usedPrefixesResult = Gdn::sql()->select('Prefix')->from('Discussion')->where('Prefix IS NOT NULL')->get()->resultArray();
     foreach ($usedPrefixesResult as $row) {
         $prefix = $row['Prefix'];
         if (!isset($currentPrefixes[$prefix])) {
             $currentPrefixes[$prefix] = $prefix;
         }
     }
     natsort($currentPrefixes);
     foreach ($currentPrefixes as $prefix) {
         DiscussionModel::addFilter('prefix-' . $this->stringToSlug($prefix), $prefix, ['d.Prefix' => $prefix], 'prefix-filter', 'prefix');
     }
 }