Extension:ValidUserEdit
|
ValidUserEdit Release status: beta |
|||
|---|---|---|---|
| 220px | |||
| Implementation | Tag, Hook | ||
| Description | |||
| Author(s) | Jörg-Sascha Heil (jsheilTalk) | ||
| Last version | 0.5 | ||
| MediaWiki | 1.6 | ||
| License | No license specified | ||
| Download | Extension:ValidUserEdit#Code | ||
|
|||
|
|||
|
|||
|
Check usage (experimental) |
|||
Entschuldigung! Bitte mal für mich übersetzen.
Contents |
[edit] What can this extension do?
Diese Erweiterung ermöglicht das Sperren der Bearbeitung und der Ansicht des Quelltextes durch nichtautorisierte Nutzer. Es bestehen zwei Möglichkeiten zur Autorisation:
- Eintragung in den Gruppenrechten -> $wgGroupPermissions["sysop"]["validusersuperedit"] = true;
- Einfügen eines Tags im Text des Artikels -> <user>NutzerName</user>
- das Einfügen von <user>*</user> ermöglicht allen Nutzern das Bearbeiten
Ist $egValidUserEditDefaultOk = true; so kann jede Seite in der kein '<user>'-Tag enthalten ist von jedem Nutzer bearbeitet werden. Enthält der Text einen entsprechenden Tag so kann die Seite nur noch von diesem Nutzer bearbeitet werden. Es ist möglich beliebig Nutzer einzutragen. Ist $egValidUserEditDefaultOk = false; so ist die Seite auch ohne '<user>'-Tag gesperrt.
[edit] Usage
[edit] Download instructions
Please cut and paste the code found below and place it in $IP/extensions/ValidUserEdit.php. Note: $IP stands for the root directory of your MediaWiki installation, the same directory that holds LocalSettings.php.
[edit] Installation
To install this extension, add the following to LocalSettings.php:
require_once("$IP/extensions/ValidUserEdit.php"); #add configuration parameters here $egValidUserEditTag = "user"; $egValidUserEditDefaultOk = true; #setup user rights here $wgGroupPermissions["sysop"]["validusersuperedit"] = true;
[edit] Configuration parameters
- $egValidUserEditTag - definiert den Tag, voreingestellt ist "user"
- $egValidUserEditDefaultOk - gibt an ob ein Artikel bearbeitbar sein soll wenn kein oben genannter Tag gefunden wird
[edit] User rights
- $wgGroupPermissions["sysop"]["validusersuperedit"] = true;
[edit] Code
<?php /** * Diese Erweiterung ermöglicht das Sperren der Bearbeitung durch nichtautorisierte Nutzer. * Es bestehen zwei Möglichkeiten zur Autorisation: * 1. Eintragung in den Gruppenrechten -> $wgGroupPermissions["sysop"]["validusersuperedit"] = true; * 2. Einfügen eines Tags im Text des Artikels -> <user>NutzerName</user> * 3. das Einfügen von <user>*</user> ermöglicht allen Nutzern das Bearbeiten * * $egValidUserEditTag - definiert den Tag, voreingestellt ist "user" * $egValidUserEditDefaultOk - gibt an ob ein Artikel bearbeitbar sein soll wenn kein oben genannter Tag gefunden wird * * @author Jörg-Sascha Heil - sascha@jsheil.de */ $egValidUserEditTag = "user"; $egValidUserEditDefaultOk = true; $wgGroupPermissions["sysop"]["validusersuperedit"] = true; $wgHooks["AlternateEdit"][] = "efValidUserEdit"; $wgExtensionCredits["other"][] = array( "name" => "ValidUserEdit", "author" => "Jörg-Sascha Heil - mailto:sascha@jsheil.de", "url" => "http://www.mediawiki.org/wiki/Extension:ValidUserEdit", "version" => "0.5", "description" => "<br> Ermöglicht das sperren von Artikeln für die Bearbeitung. <br>". "Bearbeitung ist nur möglich wenn man als Superuser eingetragen ist oder eingetragener Nutzer ist.<br>", ); if ( defined( 'MW_SUPPORTS_PARSERFIRSTCALLINIT' ) ) { $wgHooks['ParserFirstCallInit'][] = 'efValidUserEditParserInit'; } else { // Otherwise do things the old fashioned way $wgExtensionFunctions[] = 'efValidUserEditParserInit'; } function efValidUserEditParserInit() { global $wgParser, $egValidUserEditTag; $wgParser->setHook( $egValidUserEditTag , 'efValidUserEditRender' ); return true; } function efValidUserEditRender( $input, $args, $parser ) { return ""; } function efValidUserEdit(&$editpage) { global $wgOut, $wgUser, $EditFilterSuperUser, $egValidUserEditTag, $egValidUserEditDefaultOk; $text = $editpage->mArticle->getContent(); $tag = preg_quote($egValidUserEditTag); $user = preg_quote( $wgUser->getName() ); // Seite sperren wenn <user>-Tag gefunden if ($egValidUserEditDefaultOk) { $ok = preg_match("/<$tag/i",$text) == 0; } else { $ok = false; } // Freigeben wenn Nutzer eingetragen $ok = $ok || preg_match("/<\s*$tag\s*>\s*$user\s*<\/\s*$tag\s*>/",$text) > 0; // Freigeben wenn * als Nutzer eingetragen ist $ok = $ok || preg_match("/<\s*$tag\s*>\s*\*\s*<\/\s*$tag\s*>/",$text) > 0; // Freigeben wenn Superuser $ok = $ok || $wgUser->isAllowed("validusersuperedit"); if ($ok) { return true; } else { $title = $editpage->mTitle->getPrefixedText(); $wgOut->setPageTitle( wfMsg( "ValidUserEditPageTitle",$title ) ); $wgOut->setHTMLTitle( wfMsg( "ValidUserEditHTMLTitle",$title ) ); $wgOut->setRobotPolicy( "noindex,nofollow" ); $wgOut->setArticleRelated( false ); $wgOut->enableClientCache( false ); $wgOut->mRedirect = ""; $wgOut->mBodytext = ""; $wgOut->addWikiText( wfMsg( "ValidUserEditMessage",$title ) ); $wgOut->returnToMain( "" , $title ); return false; } }
