MediaWiki  1.34.4
DumpNamespaceFilter.php
Go to the documentation of this file.
1 <?php
31  public $invert = false;
32 
34  public $namespaces = [];
35 
41  function __construct( &$sink, $param ) {
42  parent::__construct( $sink );
43 
44  $constants = [
45  "NS_MAIN" => NS_MAIN,
46  "NS_TALK" => NS_TALK,
47  "NS_USER" => NS_USER,
48  "NS_USER_TALK" => NS_USER_TALK,
49  "NS_PROJECT" => NS_PROJECT,
50  "NS_PROJECT_TALK" => NS_PROJECT_TALK,
51  "NS_FILE" => NS_FILE,
52  "NS_FILE_TALK" => NS_FILE_TALK,
53  "NS_IMAGE" => NS_FILE, // NS_IMAGE is an alias for NS_FILE
54  "NS_IMAGE_TALK" => NS_FILE_TALK,
55  "NS_MEDIAWIKI" => NS_MEDIAWIKI,
56  "NS_MEDIAWIKI_TALK" => NS_MEDIAWIKI_TALK,
57  "NS_TEMPLATE" => NS_TEMPLATE,
58  "NS_TEMPLATE_TALK" => NS_TEMPLATE_TALK,
59  "NS_HELP" => NS_HELP,
60  "NS_HELP_TALK" => NS_HELP_TALK,
61  "NS_CATEGORY" => NS_CATEGORY,
62  "NS_CATEGORY_TALK" => NS_CATEGORY_TALK ];
63 
64  if ( $param[0] == '!' ) {
65  $this->invert = true;
66  $param = substr( $param, 1 );
67  }
68 
69  foreach ( explode( ',', $param ) as $key ) {
70  $key = trim( $key );
71  if ( isset( $constants[$key] ) ) {
72  $ns = $constants[$key];
73  $this->namespaces[$ns] = true;
74  } elseif ( is_numeric( $key ) ) {
75  $ns = intval( $key );
76  $this->namespaces[$ns] = true;
77  } else {
78  throw new MWException( "Unrecognized namespace key '$key'\n" );
79  }
80  }
81  }
82 
87  protected function pass( $page ) {
88  $match = isset( $this->namespaces[$page->page_namespace] );
89  return $this->invert xor $match;
90  }
91 }
DumpNamespaceFilter\pass
pass( $page)
Definition: DumpNamespaceFilter.php:87
NS_HELP
const NS_HELP
Definition: Defines.php:81
DumpNamespaceFilter
Definition: DumpNamespaceFilter.php:29
NS_TEMPLATE_TALK
const NS_TEMPLATE_TALK
Definition: Defines.php:80
NS_FILE
const NS_FILE
Definition: Defines.php:75
NS_TEMPLATE
const NS_TEMPLATE
Definition: Defines.php:79
NS_MAIN
const NS_MAIN
Definition: Defines.php:69
MWException
MediaWiki exception.
Definition: MWException.php:26
NS_PROJECT
const NS_PROJECT
Definition: Defines.php:73
NS_MEDIAWIKI_TALK
const NS_MEDIAWIKI_TALK
Definition: Defines.php:78
NS_CATEGORY
const NS_CATEGORY
Definition: Defines.php:83
NS_USER_TALK
const NS_USER_TALK
Definition: Defines.php:72
NS_PROJECT_TALK
const NS_PROJECT_TALK
Definition: Defines.php:74
DumpFilter
Definition: DumpFilter.php:31
DumpFilter\$sink
DumpOutput $sink
FIXME will need to be made protected whenever legacy code is updated.
Definition: DumpFilter.php:37
NS_HELP_TALK
const NS_HELP_TALK
Definition: Defines.php:82
DumpNamespaceFilter\$invert
bool $invert
Definition: DumpNamespaceFilter.php:31
DumpNamespaceFilter\__construct
__construct(&$sink, $param)
Definition: DumpNamespaceFilter.php:41
NS_USER
const NS_USER
Definition: Defines.php:71
NS_TALK
const NS_TALK
Definition: Defines.php:70
NS_MEDIAWIKI
const NS_MEDIAWIKI
Definition: Defines.php:77
DumpNamespaceFilter\$namespaces
array $namespaces
Definition: DumpNamespaceFilter.php:34
NS_FILE_TALK
const NS_FILE_TALK
Definition: Defines.php:76
NS_CATEGORY_TALK
const NS_CATEGORY_TALK
Definition: Defines.php:84