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);
		}
	}