RandomArea.php: Unterschied zwischen den Versionen

Aus DraWi
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
K (was vergessen)
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 12: Zeile 12:


  * @copyright 2006 Loki
  * @copyright 2006 Loki
 
                                                           
  * @licence http://creativecommons.org/licenses/by-nc-sa/2.5/
  * @licence http://creativecommons.org/licenses/by-nc-sa/2.5/
  */  
  */  
Zeile 35: Zeile 35:


function renderRandomArea( $input, $argv, $parser ) {
function renderRandomArea( $input, $argv, $parser ) {
    $parser->disableCache();
# init variables
$count = $argv['count'];
$count = 1;
if ($count < 0 || !$count) {
$nsPrefix = '';
$count = 1;
$raVorne  = '';
$raHinten = '';
$include  = '';
 
$parser->disableCache();
if (array_key_exists('count',$argv)) {
$count = $argv['count'];
if ($count < 0 || !$count) {
$count = 1;
}
}
if (array_key_exists('nsprefix',$argv)) {
$nsPrefix = $argv['nsprefix'];
}
if (array_key_exists('include',$argv)) {
$include = (bool) $argv['include'];
}
if (array_key_exists('ravorne',$argv)) {
$raVorne = $argv['ravorne'];
}
if (array_key_exists('rahinten',$argv)) {
$raHinten = $argv['rahinten'];
}
}
$nsPrefix = $argv['nsprefix'];
$include = (bool) $argv['include'];
    $wikiPrefix = $argv['wikiprefix'];
$values = explode("\n", $input);
$values = explode("\n", $input);
$valCount = count($values) - 1;
$valCount = count($values) - 1;
Zeile 65: Zeile 83:


if ($include) {
if ($include) {
if (strlen($wikiPrefix) > 0 ) {
if (strlen($raVorne) > 0 ) {
$randOut .= $wikiPrefix."{{:".$randOutTemp."}}\n";
                    if (strlen($raHinten) > 0 ) {
$randOut .= $raVorne."{{:".$randOutTemp."}}".$raHinten."\n";
} else {
$randOut .= $raVorne."{{:".$randOutTemp."}}"."\n";
}
}
}
else {
else {
Zeile 72: Zeile 94:
}
}
} else {
} else {
if (strlen($wikiPrefix) > 0 ) {
if (strlen($raVorne) > 0 ) {
$randOut .= $wikiPrefix.$randOutTemp."\n";
                    if (strlen($raHinten) > 0 ) {
$randOut .= $raVorne.$randOutTemp.$raHinten."\n";
} else {
$randOut .= $raVorne.$randOutTemp."\n";
}
}
}
else {
else {
Zeile 93: Zeile 119:
}
}


/**Wichtig keine Leerzeile oder Leerzeichen am Ende !!!
?>
?>
<noinclude>[[Kategorie:Vorlagen]]</noinclude>

Aktuelle Version vom 2. September 2009, 19:46 Uhr

<?php

/**

* 
* @package MediaWiki
* @subpackage Extensions
* @author Loki
* @copyright 2006 Loki
                                                           
* @licence http://creativecommons.org/licenses/by-nc-sa/2.5/
*/ 

if( defined( 'MEDIAWIKI' ) ) { define('RANDOM_AREA_VERSION', '1.0'); $wgExtensionFunctions[] = "ylRandomAreaExtension";

$wgExtensionCredits['other'][] = array( 'name' => 'Random Area' , 'version' => ( ' '.RANDOM_AREA_VERSION.' ' ) , 'author' => 'Loki' , );

function ylRandomAreaExtension() {

   global $wgParser;
   $wgParser->setHook( "randomArea", "renderRandomArea" );

}

function renderRandomArea( $input, $argv, $parser ) { # init variables $count = 1; $nsPrefix = ; $raVorne = ; $raHinten = ; $include = ;

$parser->disableCache(); if (array_key_exists('count',$argv)) { $count = $argv['count']; if ($count < 0 || !$count) { $count = 1; } } if (array_key_exists('nsprefix',$argv)) { $nsPrefix = $argv['nsprefix']; } if (array_key_exists('include',$argv)) { $include = (bool) $argv['include']; } if (array_key_exists('ravorne',$argv)) { $raVorne = $argv['ravorne']; } if (array_key_exists('rahinten',$argv)) { $raHinten = $argv['rahinten']; } $values = explode("\n", $input); $valCount = count($values) - 1; if ($valCount < $count) { return $parser->internalParse("Exception:
Array out of Bounce - > Only ".$valCount." items available, count = ".$count ); } $valueIndex = array(); $randOut = ""; $i = 0; while ($i < $count ) { $randVal = rand(0, $valCount); $randTemp = trim($values[$randVal]); if (strlen($randTemp) > 1 && !array_key_exists($randVal, $valueIndex)) {

if (strlen($nsPrefix) > 0) { $randOutTemp = $nsPrefix.$randTemp; } else { $randOutTemp = $randTemp; }

if ($include) { if (strlen($raVorne) > 0 ) {

                   if (strlen($raHinten) > 0 ) {

$randOut .= $raVorne."".$randOutTemp."".$raHinten."\n"; } else { $randOut .= $raVorne."".$randOutTemp.""."\n"; } } else { $randOut .= "".$randOutTemp.""; } } else { if (strlen($raVorne) > 0 ) {

                   if (strlen($raHinten) > 0 ) {

$randOut .= $raVorne.$randOutTemp.$raHinten."\n"; } else { $randOut .= $raVorne.$randOutTemp."\n"; } } else { $randOut .= $randOutTemp; } }

$valueIndex[$randVal] = true; $i++; } } return $parser->internalParse($randOut); }


} else {

   echo( "This is an extension to the MediaWiki package and cannot be run standalone.\n" );
   die( -1 );

}

/**Wichtig keine Leerzeile oder Leerzeichen am Ende !!! ?>