21 if ( !is_numeric( $value ) ) {
22 throw new \InvalidArgumentException(
"Watchlist label must be numeric" );
28 public function evaluate( stdClass $row, $value ): bool {
29 if ( !$row->wlm_label_summary ) {
32 return in_array( (
string)$value, explode(
',', $row->wlm_label_summary ),
true );
38 ->select(
'wlm_label' )
39 ->from(
'watchlist_label_member' )
40 ->where( [
'wlm_item=wl_id' ] )
41 ->buildGroupConcatField(
',' );
42 $query->
fields( [ self::LABEL_IDS => $subquery ] );
48 [ $required, $excluded ] = $this->getUniqueValues();
49 if ( $required === [] ) {
51 } elseif ( $required ) {
53 $query->
joinForConds(
'watchlist_label_member' )->reorderable();
54 $query->
where( $dbr->
expr(
'wlm_label',
'=', $required ) );
55 if ( count( $required ) > 1 ) {
58 } elseif ( $excluded ) {
61 ->on( $dbr->
expr(
'wlm_label',
'=', $excluded ) );
62 $query->
where( $dbr->
expr(
'wlm_label',
'=',
null ) );
if(!defined('MW_SETUP_CALLBACK'))