Extension:RequireCategory
From MediaWiki.org
|
Release status: experimental |
|||
|---|---|---|---|
| Implementation | Page action | ||
| Description | Requires pages to be placed at least to one category. | ||
| Author(s) | Hendrik BrummermannTalk | ||
| Last Version | 1.0 | ||
| MediaWiki | 1.7+ | ||
| License | CC-BY, GPL | ||
| Download | see below | ||
|
|||
|
check usage (experimental) |
|||
This extension will force all pages to be put in at least one category. Otherwise you are not able to save.
Notice, it will prompt for category especially if editing fragment of the page, it does not detect yet the categories defined in the whole page (only in edited text).
[edit] Installation
- copy the code to a file called RequireCategory.php in your mediawiki/extensions folder
- add this line at the bottom to your LocalSettings.php:
require_once($IP.'/extensions/RequireCategory.php');
[edit] Code
<?php if ( ! defined( 'MEDIAWIKI' ) ) die(); /** * Requires all edited pages to be at least in one category * * @author Hendrik Brummermann * @version 1.0 */ $wgExtensionFunctions[] = 'requireCategorySetup'; $wgHooks['EditFilter'][] = 'editFilterRequireCategory'; function requireCategorySetup() { global $wgMessageCache; $wgMessageCache->addMessage('category_required', "'''NOTICE''': There '''must''' be at least one <nowiki>[[Category:</nowiki>''something'']] link.<br/>" ." Right click on the link and select ''\"Open in a new window\"'' to get a " ."[{{SERVER}}{{LOCALURL:Special:Allpages|namespace=14}} list of all categories]" ); } function editFilterRequireCategory ( $editpage, $textbox, $section, &$error) { global $wgTitle, $wgContLang; if ($wgTitle->getNamespace() != NS_MAIN) { return true; } preg_match_all( "/Category:/im", $textbox, $list, PREG_SET_ORDER ); if( count($list) == 0) { $localCategory = $wgContLang->getNsText( NS_CATEGORY ); preg_match_all( '/'.$localCategory.':/im', $textbox, $list, PREG_SET_ORDER ); if( count($list) == 0) { $error .= wfMsg( 'category_required'); } } return true; } $wgExtensionCredits['other'][] = array( 'name' => 'RequireCategory ', 'version' => '1.0', 'author' => 'Hendrik Brummermann', 'url' => 'http://www.mediawiki.org/wiki/Extension:RequireCategory', 'description' => 'all saved pages must be in at least one category' ); ?>
[edit] Customization
Remember to go to the Special:Allmessages on YOUR wiki and search for something - you will find the message you want to alter for users, to suit your wiki language, design and style.