X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22suivi_revisions%22%2C%22id_auteur=%24connecte%22%29%20.%20%22?a=blobdiff_plain;f=includes%2Fchanges%2FChangesListFilterGroup.php;h=3e2c464aafa479df7e0f26a149d713c6c2eb755c;hb=aa54a4caa3d592bcae9f44549a46cd655388b79b;hp=e9140da20975b0b137d0c714903edd43bcdab4e0;hpb=a203d4a1b46039aa7058875cca430e6efd19c92c;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/changes/ChangesListFilterGroup.php b/includes/changes/ChangesListFilterGroup.php index e9140da209..3e2c464aaf 100644 --- a/includes/changes/ChangesListFilterGroup.php +++ b/includes/changes/ChangesListFilterGroup.php @@ -18,7 +18,6 @@ * http://www.gnu.org/copyleft/gpl.html * * @file - * @license GPL 2+ * @author Matthew Flaschen */ @@ -27,6 +26,8 @@ // What to call it. FilterStructure? That would also let me make // setUnidirectionalConflict protected. +use Wikimedia\Rdbms\IDatabase; + /** * Represents a filter group (used on ChangesListSpecialPage and descendants) * @@ -221,8 +222,7 @@ abstract class ChangesListFilterGroup { * (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*. * - * @param ChangesListFilterGroup|ChangesListFilter $other Other - * ChangesListFilterGroup or ChangesListFilter + * @param ChangesListFilterGroup|ChangesListFilter $other * @param string $globalKey i18n key for top-level conflict message * @param string $forwardKey i18n key for conflict message in this * direction (when in UI context of $this object) @@ -253,8 +253,7 @@ abstract class ChangesListFilterGroup { * * Internal use ONLY. * - * @param ChangesListFilterGroup|ChangesListFilter $other Other - * ChangesListFilterGroup or ChangesListFilter + * @param ChangesListFilterGroup|ChangesListFilter $other * @param string $globalDescription i18n key for top-level conflict message * @param string $contextDescription i18n key for conflict message in this * direction (when in UI context of $this object) @@ -326,14 +325,6 @@ abstract class ChangesListFilterGroup { return isset( $this->filters[$name] ) ? $this->filters[$name] : null; } - /** - * Check whether the URL parameter is for the group, or for individual filters. - * Defaults can also be defined on the group if and only if this is true. - * - * @return bool True if and only if the URL parameter is per-group - */ - abstract public function isPerGroupRequestParameter(); - /** * Gets the JS data in the format required by the front-end of the structured UI * @@ -449,4 +440,34 @@ abstract class ChangesListFilterGroup { } ) ); } + + /** + * Modifies the query to include the filter group. + * + * The modification is only done if the filter group is in effect. This means that + * one or more valid and allowed filters were selected. + * + * @param IDatabase $dbr Database, for addQuotes, makeList, and similar + * @param ChangesListSpecialPage $specialPage Current special page + * @param array &$tables Array of tables; see IDatabase::select $table + * @param array &$fields Array of fields; see IDatabase::select $vars + * @param array &$conds Array of conditions; see IDatabase::select $conds + * @param array &$query_options Array of query options; see IDatabase::select $options + * @param array &$join_conds Array of join conditions; see IDatabase::select $join_conds + * @param FormOptions $opts Wrapper for the current request options and their defaults + * @param bool $isStructuredFiltersEnabled True if the Structured UI is currently enabled + */ + abstract public function modifyQuery( IDatabase $dbr, ChangesListSpecialPage $specialPage, + &$tables, &$fields, &$conds, &$query_options, &$join_conds, + FormOptions $opts, $isStructuredFiltersEnabled ); + + /** + * All the options represented by this filter group to $opts + * + * @param FormOptions $opts + * @param bool $allowDefaults + * @param bool $isStructuredFiltersEnabled + */ + abstract public function addOptions( FormOptions $opts, $allowDefaults, + $isStructuredFiltersEnabled ); }