Extension:ValidUserEdit
ValidUserEdit Release status: beta |
|||
---|---|---|---|
Implementation | Tag, Hook | ||
Author(s) | Jörg-Sascha Heil (jsheiltalk) | ||
Latest version | 0.5 | ||
MediaWiki | 1.6 | ||
License | No license specified | ||
Download | Extension:ValidUserEdit#Code | ||
|
|||
|
|||
|
|||
Translate the ValidUserEdit extension if it is available at translatewiki.net |
|||
Check usage and version matrix; code metrics |
Entschuldigung! Bitte mal für mich übersetzen.
Contents
What can this extension do?[edit | edit source]
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.
Usage[edit | edit source]
Download instructions[edit | edit source]
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.
Installation[edit | edit source]
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;
Configuration parameters[edit | edit source]
- $egValidUserEditTag - definiert den Tag, voreingestellt ist "user"
- $egValidUserEditDefaultOk - gibt an ob ein Artikel bearbeitbar sein soll wenn kein oben genannter Tag gefunden wird
User rights[edit | edit source]
- $wgGroupPermissions["sysop"]["validusersuperedit"] = true;
Code[edit | edit source]
<?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 - [email protected] */ $egValidUserEditTag = "user"; $egValidUserEditDefaultOk = true; $wgGroupPermissions["sysop"]["validusersuperedit"] = true; $wgHooks["AlternateEdit"][] = "efValidUserEdit"; $wgExtensionCredits["other"][] = array( "name" => "ValidUserEdit", "author" => "Jörg-Sascha Heil - mailto:[email protected]", "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; } }