diff options
Diffstat (limited to 'www/wiki/includes/changes/ChangesListStringOptionsFilter.php')
-rw-r--r-- | www/wiki/includes/changes/ChangesListStringOptionsFilter.php | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/www/wiki/includes/changes/ChangesListStringOptionsFilter.php b/www/wiki/includes/changes/ChangesListStringOptionsFilter.php new file mode 100644 index 00000000..930ba128 --- /dev/null +++ b/www/wiki/includes/changes/ChangesListStringOptionsFilter.php @@ -0,0 +1,30 @@ +<?php + +/** + * An individual filter in a ChangesListStringOptionsFilterGroup. + * + * This filter type will only be displayed on the structured UI currently. + * + * @since 1.29 + */ +class ChangesListStringOptionsFilter extends ChangesListFilter { + /** + * @inheritDoc + */ + public function displaysOnUnstructuredUi() { + return false; + } + + /** + * @inheritDoc + */ + public function isSelected( FormOptions $opts ) { + $option = $opts[ $this->getGroup()->getName() ]; + if ( $option === ChangesListStringOptionsFilterGroup::ALL ) { + return true; + } + + $values = explode( ChangesListStringOptionsFilterGroup::SEPARATOR, $option ); + return in_array( $this->getName(), $values ); + } +} |