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. |
/** * 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'); } }