Eigene Erweiterung entwerfen/Auswertung
Zur Navigation springen
Zur Suche springen
<?php
/**
* MediaWiki extension: ExtAuswertung
* ==================================
*
* To activate, edit your LocalSettings.php,
* save this code as 'ExtAuswertung.php' and copy the file into the subdirectory ExtAuswertung of your extensions-directory and add
* require_once("$IP/extensions/ExtAuswertung/ExtAuswertung.php");
*/
# User Settings
# require_once("$IP/extensions/ExtAuswertung/ExtAuswertung.php");
# Parameter
# derzeit keine
# End User Settings
# diese Erweiterung ruft eine Vorlage mit Parametern zum Auswerten auf
# das Tag wird in der Seite gespeichert <auswertung />
# für die Anwendung wird die Seite folgendermaßen aufgerufen: Auswertung?vorlage=xxx&name=was_soll_ausgewertet_werden
# es erfolgt auch eine Auswertung der im Tag enthaltenen Parameter
# da diese später ausgewertet werden, überschreiben sie evtl. über die URL übergebene Paramter
define("AUSWERT_NAME", "auswertung"); # Name of tag
define("AUSWERT_IDENTIFIER", "sendAuswertung"); # Name of POST identifier flag
define("AUSWERT_HOOK", "hookAuswertung"); # Name of hook
if ( !defined( 'MEDIAWIKI' ) ) {
die( "This is not a valid entry point.\n" );
}
$wgExtensionCredits['parserhooks'][] = array(
'path' => __FILE__,
'name' => 'ExtAuswertung',
'version' => '0.9',
'author' => $extension_AUTH,
'url' => "$wgServer$wgScriptPath/index.php/Extension:ExtAuswertung",
'description' => 'wertet eine Vorlage mit Parametern aus'
);
$wgExtensionFunctions[] = 'wfExtAuswertung';
/*
* Setup ExtAuswertung extension.
* Sets a parser hook for <auswertung></auswertung>.
*/
function wfExtAuswertung()
{
new ExtAuswertung();
}
class ExtAuswertung
{
public function __construct()
{
global $wgParser;
$wgParser->setHook(AUSWERT_NAME, array(&$this, AUSWERT_HOOK));
}
public function hookAuswertung($input, $argv, $parser)
{
global $IP, $wgServer, $wgScriptPath, $wgUploadPath, $wgHooks, $wgParser, $wgHtml5, $wgScript;
$output = 'Vorlagenauswertung';
global $wgUploadDirectory, $wgArticlePath, $wgTmpDirectory;
$vorlage = $was = $liste = "";
foreach ( $_REQUEST as $arg => $val )
{
$$arg = $val; # die Variablen erhalten den Namen der Parameter
if ($arg != 'vorlage') $liste .= "|$arg=$val";
}
foreach ( $argv as $arg => $val )
{
$$arg = $val; # die Variablen erhalten den Namen der Parameter
if ($arg != 'vorlage') $liste .= "|$arg=$val";
}
$output = "{{" . $vorlage . $liste . "}}";
if (empty($vorlage)) $output="{{Bluetitel|1=Diese Seite enthält eine Anwendung der [[Extension:OraAuswertung|{{Taste|Erweiterung ExtAuswertung}}]]}}"
. "{{Absatz2}}"
. "Der Aufruf soll folgendermaßen erfolgen: In einer Wikiseite {{Taste|seitenname}} das Tag <nowiki><auswertung /></nowiki> speichern, "
. "{{Absatz2}}"
. "die Seite folgendermaßen aufrufen {{Taste|1=seitenname?vorlage=xxx&name=was_soll_ausgewertet_werden}}";
return $wgParser->recursiveTagParse($output);
}
}