MediaWiki  master
ChangesListFilter Class Reference

Represents a filter (used on ChangesListSpecialPage and descendants) More...

Inheritance diagram for ChangesListFilter:

Public Member Functions

 __construct (array $filterDefinition)
 Creates a new filter with the specified configuration, and registers it to the specified group. More...
 
 activelyInConflictWithFilter (ChangesListFilter $filter, FormOptions $opts)
 Check if the conflict with a filter is currently "active". More...
 
 activelyInConflictWithGroup (ChangesListFilterGroup $group, FormOptions $opts)
 Check if the conflict with a group is currently "active". More...
 
 applyCssClassIfNeeded (IContextSource $ctx, RecentChange $rc, array &$classes)
 Add CSS class if needed. More...
 
 conflictsWith ( $other, $globalKey, $forwardKey, $backwardKey)
 Marks that the given ChangesListFilterGroup or ChangesListFilter conflicts with this object. More...
 
 displaysOnStructuredUi ()
 Checks whether the filter should display on the structured UI This refers to the exact filter. More...
 
 displaysOnUnstructuredUi ()
 Checks whether the filter should display on the unstructured UI. More...
 
 getConflictingFilters ()
 Get filters conflicting with this filter. More...
 
 getConflictingGroups ()
 Get groups conflicting with this filter. More...
 
 getDescription ()
 
 getGroup ()
 
 getJsData ()
 Gets the JS data required by the front-end of the structured UI. More...
 
 getLabel ()
 
 getName ()
 
 getPriority ()
 
 isFeatureAvailableOnStructuredUi ()
 Checks whether an equivalent feature for this filter is available on the structured UI. More...
 
 isSelected (FormOptions $opts)
 Checks whether this filter is selected in the provided options. More...
 
 setAsSupersetOf (ChangesListFilter $other)
 Marks that the current instance is (also) a superset of the filter passed in. More...
 
 setDefaultHighlightColor ( $defaultHighlightColor)
 
 setUnidirectionalConflict ( $other, $globalDescription, $contextDescription)
 Marks that the given ChangesListFilterGroup or ChangesListFilter conflicts with this object. More...
 

Public Attributes

const RESERVED_NAME_CHAR = '_'
 

Protected Member Functions

 getCssClass ()
 Gets the CSS class. More...
 
 getSiblings ()
 Get filters in the same group. More...
 

Protected Attributes

 $conflictingFilters = []
 Array of associative arrays with conflict information. More...
 
 $conflictingGroups = []
 Array of associative arrays with conflict information. More...
 
 $cssClassSuffix
 CSS class suffix used for attribution, e.g. More...
 
 $defaultHighlightColor
 
 $description
 i18n key of description for structured UI More...
 
 $group
 Group. More...
 
 $isRowApplicableCallable
 Callable that returns true if and only if a row is attributed to this filter. More...
 
 $label
 i18n key of label for structured UI More...
 
 $name
 Filter name. More...
 
 $priority
 Priority integer. More...
 
 $subsetFilters = []
 Array of associative arrays with subset information. More...
 

Private Member Functions

 hasConflictWithFilter (ChangesListFilter $filter)
 
 hasConflictWithGroup (ChangesListFilterGroup $group)
 

Detailed Description

Represents a filter (used on ChangesListSpecialPage and descendants)

Since
1.29

Definition at line 29 of file ChangesListFilter.php.

Constructor & Destructor Documentation

◆ __construct()

ChangesListFilter::__construct ( array  $filterDefinition)

Creates a new filter with the specified configuration, and registers it to the specified group.

It infers which UI (it can be either or both) to display the filter on based on which messages are provided.

If 'label' is provided, it will be displayed on the structured UI. Thus, 'label', 'description', and sub-class parameters are optional depending on which UI it's for.

Parameters
array$filterDefinitionChangesListFilter definition
  • $filterDefinition['name'] string Name of filter; use lowercase with no punctuation
  • $filterDefinition['cssClassSuffix'] string CSS class suffix, used to mark that a particular row belongs to this filter (when a row is included by the filter) (optional)
  • $filterDefinition['isRowApplicableCallable'] Callable taking two parameters, the IContextSource, and the RecentChange object for the row, and returning true if the row is attributed to this filter. The above CSS class will then be automatically added (optional, required if cssClassSuffix is used).
  • $filterDefinition['group'] ChangesListFilterGroup Group. Filter group this belongs to.
  • $filterDefinition['label'] string i18n key of label for structured UI.
  • $filterDefinition['description'] string i18n key of description for structured UI.
  • $filterDefinition['priority'] int Priority integer. Higher value means higher up in the group's filter list.

Definition at line 142 of file ChangesListFilter.php.

References name.

Member Function Documentation

◆ activelyInConflictWithFilter()

ChangesListFilter::activelyInConflictWithFilter ( ChangesListFilter  $filter,
FormOptions  $opts 
)

Check if the conflict with a filter is currently "active".

Parameters
ChangesListFilter$filter
FormOptions$opts
Returns
bool

Definition at line 468 of file ChangesListFilter.php.

References as, getSiblings(), and isSelected().

◆ activelyInConflictWithGroup()

ChangesListFilter::activelyInConflictWithGroup ( ChangesListFilterGroup  $group,
FormOptions  $opts 
)

Check if the conflict with a group is currently "active".

Parameters
ChangesListFilterGroup$group
FormOptions$opts
Returns
bool

Definition at line 444 of file ChangesListFilter.php.

References ChangesListFilterGroup\anySelected(), as, getSiblings(), and isSelected().

◆ applyCssClassIfNeeded()

ChangesListFilter::applyCssClassIfNeeded ( IContextSource  $ctx,
RecentChange  $rc,
array &  $classes 
)

Add CSS class if needed.

Parameters
IContextSource$ctxContext source
RecentChange$rcRecent changes object
array&$classesNon-associative array of CSS class names; appended to if needed

Definition at line 348 of file ChangesListFilter.php.

References getCssClass(), and null.

◆ conflictsWith()

ChangesListFilter::conflictsWith (   $other,
  $globalKey,
  $forwardKey,
  $backwardKey 
)

Marks that the given ChangesListFilterGroup or ChangesListFilter conflicts with this object.

WARNING: This means there is a conflict when both things are shown (not filtered out), even for the hide-based filters. So e.g. conflicting with 'hideanons' means there is a conflict if only anonymous users are shown.

Parameters
ChangesListFilterGroup | ChangesListFilter$other
string$globalKeyi18n key for top-level conflict message
string$forwardKeyi18n key for conflict message in this direction (when in UI context of $this object)
string$backwardKeyi18n key for conflict message in reverse direction (when in UI context of $other object)

Definition at line 193 of file ChangesListFilter.php.

References null, and setUnidirectionalConflict().

◆ displaysOnStructuredUi()

ChangesListFilter::displaysOnStructuredUi ( )

Checks whether the filter should display on the structured UI This refers to the exact filter.

See also isFeatureAvailableOnStructuredUi.

Returns
bool Whether to display

Definition at line 306 of file ChangesListFilter.php.

References null.

Referenced by isFeatureAvailableOnStructuredUi().

◆ displaysOnUnstructuredUi()

ChangesListFilter::displaysOnUnstructuredUi ( )
abstract

Checks whether the filter should display on the unstructured UI.

Returns
bool Whether to display

Referenced by getDescription().

◆ getConflictingFilters()

ChangesListFilter::getConflictingFilters ( )

Get filters conflicting with this filter.

Returns
ChangesListFilter[]

Definition at line 428 of file ChangesListFilter.php.

References $conflictingFilters.

Referenced by hasConflictWithFilter().

◆ getConflictingGroups()

ChangesListFilter::getConflictingGroups ( )

Get groups conflicting with this filter.

Returns
ChangesListFilterGroup[]

Definition at line 414 of file ChangesListFilter.php.

References $conflictingGroups.

Referenced by hasConflictWithGroup().

◆ getCssClass()

ChangesListFilter::getCssClass ( )
protected

Gets the CSS class.

Returns
string|null CSS class, or null if not defined

Definition at line 333 of file ChangesListFilter.php.

References $cssClassSuffix, ChangesList\CSS_CLASS_PREFIX, and null.

Referenced by applyCssClassIfNeeded(), and getJsData().

◆ getDescription()

ChangesListFilter::getDescription ( )
Returns
string i18n key of description for structured UI

Definition at line 289 of file ChangesListFilter.php.

References $description, and displaysOnUnstructuredUi().

Referenced by getJsData().

◆ getGroup()

ChangesListFilter::getGroup ( )
Returns
ChangesListFilterGroup Group this belongs to

Definition at line 275 of file ChangesListFilter.php.

References $group.

Referenced by getSiblings(), ChangesListStringOptionsFilter\isSelected(), and setAsSupersetOf().

◆ getJsData()

ChangesListFilter::getJsData ( )

Gets the JS data required by the front-end of the structured UI.

Returns
array Associative array Data required by the front-end. messageKeys is a special top-level value, with the value being an array of the message keys to send to the client.

Definition at line 365 of file ChangesListFilter.php.

References $defaultHighlightColor, $output, $priority, $subsetFilters, as, getCssClass(), getDescription(), getLabel(), getName(), and isSelected().

◆ getLabel()

ChangesListFilter::getLabel ( )
Returns
string i18n key of label for structured UI

Definition at line 282 of file ChangesListFilter.php.

References $label.

Referenced by getJsData().

◆ getName()

◆ getPriority()

ChangesListFilter::getPriority ( )
Returns
int Priority. Higher value means higher up in the group list

Definition at line 324 of file ChangesListFilter.php.

References $priority.

◆ getSiblings()

ChangesListFilter::getSiblings ( )
protected

Get filters in the same group.

Returns
ChangesListFilter[]

Definition at line 493 of file ChangesListFilter.php.

References $filter, and getGroup().

Referenced by activelyInConflictWithFilter(), activelyInConflictWithGroup(), and ChangesListBooleanFilter\isSelected().

◆ hasConflictWithFilter()

ChangesListFilter::hasConflictWithFilter ( ChangesListFilter  $filter)
private

Definition at line 484 of file ChangesListFilter.php.

References getConflictingFilters().

◆ hasConflictWithGroup()

ChangesListFilter::hasConflictWithGroup ( ChangesListFilterGroup  $group)
private

Definition at line 457 of file ChangesListFilter.php.

References getConflictingGroups().

◆ isFeatureAvailableOnStructuredUi()

ChangesListFilter::isFeatureAvailableOnStructuredUi ( )

Checks whether an equivalent feature for this filter is available on the structured UI.

This can either be the exact filter, or a new filter that replaces it.

Returns
bool

Definition at line 317 of file ChangesListFilter.php.

References displaysOnStructuredUi().

◆ isSelected()

ChangesListFilter::isSelected ( FormOptions  $opts)
abstract

Checks whether this filter is selected in the provided options.

Parameters
FormOptions$opts
Returns
bool

Referenced by activelyInConflictWithFilter(), activelyInConflictWithGroup(), ChangesListFilterGroup\anySelected(), and getJsData().

◆ setAsSupersetOf()

ChangesListFilter::setAsSupersetOf ( ChangesListFilter  $other)

Marks that the current instance is (also) a superset of the filter passed in.

This can be called more than once.

This means that anything in the results for the other filter is also in the results for this one.

Parameters
ChangesListFilter$otherThe filter the current instance is a superset of

Definition at line 252 of file ChangesListFilter.php.

References getGroup(), and getName().

◆ setDefaultHighlightColor()

ChangesListFilter::setDefaultHighlightColor (   $defaultHighlightColor)
Parameters
string$defaultHighlightColor

Definition at line 505 of file ChangesListFilter.php.

References $defaultHighlightColor.

◆ setUnidirectionalConflict()

ChangesListFilter::setUnidirectionalConflict (   $other,
  $globalDescription,
  $contextDescription 
)

Marks that the given ChangesListFilterGroup or ChangesListFilter conflicts with this object.

Internal use ONLY.

Parameters
ChangesListFilterGroup | ChangesListFilter$other
string$globalDescriptioni18n key for top-level conflict message
string$contextDescriptioni18n key for conflict message in this direction (when in UI context of $this object)

Definition at line 222 of file ChangesListFilter.php.

Referenced by conflictsWith().

Member Data Documentation

◆ $conflictingFilters

array ChangesListFilter::$conflictingFilters = []
protected

Array of associative arrays with conflict information.

See setUnidirectionalConflict

Definition at line 89 of file ChangesListFilter.php.

Referenced by getConflictingFilters().

◆ $conflictingGroups

array ChangesListFilter::$conflictingGroups = []
protected

Array of associative arrays with conflict information.

See setUnidirectionalConflict

Definition at line 81 of file ChangesListFilter.php.

Referenced by getConflictingGroups().

◆ $cssClassSuffix

string null ChangesListFilter::$cssClassSuffix
protected

CSS class suffix used for attribution, e.g.

'bot'.

In this example, if bot actions are included in the result set, this CSS class will then be included in all bot-flagged actions.

Definition at line 45 of file ChangesListFilter.php.

Referenced by getCssClass().

◆ $defaultHighlightColor

string ChangesListFilter::$defaultHighlightColor
protected

Definition at line 109 of file ChangesListFilter.php.

Referenced by getJsData(), and setDefaultHighlightColor().

◆ $description

string ChangesListFilter::$description
protected

i18n key of description for structured UI

Definition at line 73 of file ChangesListFilter.php.

Referenced by getDescription().

◆ $group

ChangesListFilterGroup ChangesListFilter::$group
protected

Group.

ChangesListFilterGroup this belongs to

Definition at line 59 of file ChangesListFilter.php.

Referenced by getGroup().

◆ $isRowApplicableCallable

callable ChangesListFilter::$isRowApplicableCallable
protected

Callable that returns true if and only if a row is attributed to this filter.

Definition at line 52 of file ChangesListFilter.php.

◆ $label

string ChangesListFilter::$label
protected

i18n key of label for structured UI

Definition at line 66 of file ChangesListFilter.php.

Referenced by getLabel().

◆ $name

string ChangesListFilter::$name
protected

Filter name.

Definition at line 35 of file ChangesListFilter.php.

Referenced by getName().

◆ $priority

string ChangesListFilter::$priority
protected

Priority integer.

Higher value means higher up in the group's filter list.

Definition at line 103 of file ChangesListFilter.php.

Referenced by getJsData(), and getPriority().

◆ $subsetFilters

array ChangesListFilter::$subsetFilters = []
protected

Array of associative arrays with subset information.

Definition at line 96 of file ChangesListFilter.php.

Referenced by getJsData().

◆ RESERVED_NAME_CHAR

const ChangesListFilter::RESERVED_NAME_CHAR = '_'

Definition at line 111 of file ChangesListFilter.php.


The documentation for this class was generated from the following file: