Extension:TitleBlacklist/zh

使用标题黑名单扩展，维基管理员可以以若干条正则表达式的形式来设立一个标题黑名单. 如果一个页面的标题与黑名单中的规则相匹配，用户将不能创建此页面、上传文件至此页面，或将其他页面移动至此页面. 此外，该扩展程序还能设立用户名黑名单，阻止用户创建特定名称的新用户.

配置

 * 標題黑名單來源的陣列.
 * 應該採用 array( 名稱 => 來源描述 ) 的格式. 默认为空数组.
 * 應該採用 array( 名稱 => 來源描述 ) 的格式. 默认为空数组.


 * 設定可作為使用者名稱過濾器的來源.
 * 「*」為全部；false為停用全部.
 * 如果要將其限制為特定的來源，請使用 array( 來源名稱1, 來源名稱2 ). This may be useful when you have shared account creation system in order to avoid blacklist fragmentation.
 * 如果要將其限制為特定的來源，請使用 array( 來源名稱1, 來源名稱2 ). This may be useful when you have shared account creation system in order to avoid blacklist fragmentation.


 * 如果為true，則在Special:Log/titleblacklist上記錄所有與黑名單匹配的本地帳戶建立嘗試. 默认为 . 請注意即使禁用此選項，具有 權限的使用者群組仍可見到該日誌.
 * 如果為true，則在Special:Log/titleblacklist上記錄所有與黑名單匹配的本地帳戶建立嘗試. 默认为 . 請注意即使禁用此選項，具有 權限的使用者群組仍可見到該日誌.




 * 也禁止與黑名單匹配的帳戶自動建立. 預設為.
 * 也禁止與黑名單匹配的帳戶自動建立. 預設為.


 * 多个封鎖名單来源:

標題封鎖名單可以從本地訊息以為的多個來源收集而來，要配置封鎖名單來源，請使用以下代碼：

参见问题T113864以获取详细信息

封鎖名單
標題封鎖名單可在MediaWiki:Titleblacklist頁面找到.

該頁面由正規表達式組成，每個正規表達式單獨一行. Each of them forbids the creation of pages whose titles match it. For example:

 Foo  #This page name is not allowed [Bb]ar #No one should create article about it .*pandora.* #This word is not allowed in any part of a page name

每個項目還能包含可選的屬性，並包在 內，以 分隔.
 * autoconfirmed - 允許自動確認使用者執行此類操作
 * casesensitive - 檢查標題是否被列入封鎖名單時不要忽略大小寫
 * noedit - also forbid editing the page (if it already exists)
 * moveonly - 禁止移動但允許普通建立 (rev:35163)
 * newaccountonly - 禁止建立匹配的使用者名稱，但允許建立頁面 (rev:38977)
 * reupload - 允許重新上傳現在被列入封鎖名單的檔案 (rev:33656)
 * errmsg - 應該顯示的訊息名稱，而不是標準名稱

如果已安裝擴充功能，您還能使用屬性.

What is referred to here as regular expressions are not proper regular expressions, but rather subpatterns that are inserted into a hard-coded regular expression. i.e. the subpattern Foo from above would create a regular expression like /^Foo$/usi.

Underscores (" ") in regular expressions will be converted to spaces by the extension, because titles are matched against its text form ("Page title" instead of "Page_title").

安全名单
There is also a safe list at MediaWiki:Titlewhitelist. The block list is applied first, then the safe list. So user input that matches an entry on the block list is blocked, except if it matches an entry on the safe list. You don't have to configure anything in LocalSettings.php in order to use the safe list. Some of the optional attributes listed above, for the block list, also work for the safe list, e.g. casesensitive.

自定义

 * 警告消息

When an attempt to create a page is blocked due to a title being listed on the block list, a warning message is shown to the user. This can be customized via system messages
 * MediaWiki:Titleblacklist-forbidden-edit: for page creation and editing,
 * MediaWiki:Titleblacklist-forbidden-move: for page moves,
 * MediaWiki:Titleblacklist-forbidden-upload: for image uploads.
 * MediaWiki:Titleblacklist-forbidden-new-account: for new accounts

Custom messages can be defined by using the  attribute.

概念概览
The username for new accounts will be regarded by this extension differently to the way it regards new articles. This extension will prepend "User:" (or its localized equivalent) to the string that a user enters at  on the create account page. So when this extension is performing matches with your Regex's, as found on MediaWiki:Titleblacklist or MediaWiki:Titlewhitelist, it will match against "User:" +.

For example, imagine you want to block "jill" as a new user. Imagine you had a block list regex "jill.* " and a user enters "jill" as the username on the create account page. This will pass as the comparison this extension will make will be between "jill.*" (the regex) and "User:jill" (the constructed input string). These don't match and so "jill" is allowed (and you probably didn't intend this). To effect the intended block use a regex like ".*jill.* " or "User:jill.* " on MediaWiki:Titleblacklist.

If you want to block all users except for all those that do match a regex then block all users in MediaWiki:Titleblacklist and write the permissible regex in the MediaWiki:Titlewhitelist.

如何使用
If you would like to force all usernames, during account creation, to consist of exactly two names, space separated, with each name capitalized then do the following:

1. 安装TitleBlacklist.

2. 将以下内容添加至您的

3. 在https://www.example.com/mywiki/MediaWiki:Titleblacklist中添加

4. 在https://www.example.com/mywiki/MediaWiki:Titlewhitelist中添加

5. 在https://www.example.com/mywiki/MediaWiki:Titleblacklist-forbidden-new-account edit中编辑

 The user name "$2" has been blocked from creation. It matches the following block list entry:.

Please use a real name for the user name. User names need to be comprised of two names separated by a space. Each name must be capitalized.

E.g.:
 * "Mary Smith". OK.
 * "MarySmith". Invalid.
 * "Mary smith". Invalid.
 * "marysmith". Invalid.

User name creation (and article creation) blocking rules are controlled by MediaWiki:Titleblacklist and MediaWiki:Titlewhitelist. This message can be customized at MediaWiki:Titleblacklist-forbidden-new-account

Testing for matches
The API module action=titleblacklist can be used to test a title and action (e.g. edit, create, new-account) against the block list. Users with the 'tboverride' right should be sure to supply the  parameter.

For example, if the block list contained the filter:

.*(.)\1{10}.*  # Disallows eleven or more of the same character repeated in usernames

you could use an API request like {{ApiEx ",       "message": "titleblacklist-forbidden-new-account-invalid",        "line": ".*(.)\1{10}.* &lt;newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid&gt; # Disallows eleven or more of the same character repeated in usernames"    } } }}
 * p1=action=titleblacklist
 * p2=tbtitle=AAAAAAAAAAA
 * p3=tbaction=new-account
 * p4=tbnooverride=1
 * result=

If Scribunto is installed, this extension allows for testing if particular titles and actions will match an entry in the block list using the  function. If a match is found, the details for the matched entry are returned.

For example, if the block list contained the filter:

.*(.)\1{10}.*  # Disallows eleven or more of the same character repeated in usernames

running the function:

would return the following table containing details about the matched entry:

Resources on regular expressions

 * Brief Introduction to Regular Expressions
 * https://web.archive.org/web/20050213032350/http://etext.lib.virginia.edu/services/helpsheets/unix/regex.html
 * The 30 Minute Regex. Tutorial
 * http://www.codeproject.com/Articles/9099/The-Minute-Regex-Tutorial
 * PHP: PCRE regex syntax, the syntax of regular expressions used by PHP &mdash; and therefore this extension
 * https://php.net/reference.pcre.pattern.syntax

参见

 * Combating spam and combating vandalism.