Extension:Darnedodoser

From MediaWiki.org

Jump to: navigation, search

             

Manual on MediaWiki Extensions
List of MediaWiki Extensions
Crystal Clear action run.png
Darnedooser

Release status: beta

Darnedooser.png
Implementation  Tag, Special page
Description Randomizes text except first and last character
Author(s)  Hidalgo Rionda (HsilamotTalk)
Last Version  1.0.165 (03 Dec 2007)
MediaWiki  1.10.0
License No license specified
Download From Author's Site
Example  At "¿Sabias que..."

check usage (experimental)

[edit] What can this extension do?

Randomizes text except first and last character

[edit] Usage

Just put <darnedodoser>text here</darnedodoser>

Remember not put "," or "?" or "'", etc. That count as Characters too.

I suggest to do this:

<darnedodoser>You should know who i</darnedodoser>'<darnedodoser>m</darnedodoser>

[edit] Installation

Just unzip the content and add

require_once( "{$IP}/extensions/Darnedodoser/darnedodoser.php" );

To your LocalSettings.php.

[edit] Changes to LocalSettings.php

require_once("$IP/extensions/Darnedodoser/darnedodoser.php");

[edit] Code

Darnedodoser has three files:

darnedodoser.php

<?
if (!defined('MEDIAWIKI')) die();
# Not a valid entry point, skip unless MEDIAWIKI is defined
/**
 * Randomizes text except first and last character
 */
 
$wgExtensionCredits['parserhook'][] = array(
	'name' => 'Darnedodoser (1.0.165)',
	'author' => 'Hidalgo Rionda',
	'url' => 'http://www.mediawiki.org/wiki/Extension:Darnedodoser',
	'description' => 'Adds &lt;darnedodoser&gt;Text Here&lt;/darnedodoser&gt; and returns each word all randomized except first and last char',
);
 
$wgExtensionCredits['specialpage'][] = array(
	'name' => 'Darnedodoser (1.0.24)',
	'author' => 'Hidalgo Rionda',
	'url' => 'http://www.hsilamot.info/w/Extension:Darnedodoser',
	'description' => 'Adds Special:Darnedodoser wich returns each word all randomized except first and last char',
);
 
$wgExtensionFunctions[] = 'efDarnedodoserOldSetup';
 
function efDarnedodoserOldSetup() {
    global $wgParser;
    $wgParser->setHook( 'darnedodoser', 'efDarnedodoserOldRender' );
}
 
function efDarnedodoserOldRender( $input, $args, $parser ) {
	$Parsear = $input." ";
	$Siguiente = "";
	$Final = "";
	while (strlen($Parsear) > 0) {
		if ($Parsear{0} == " ") {
			$Final .= $Siguiente{0};
			$Siguiente = substr($Siguiente, 1);
			$Ultima = substr($Siguiente, -1);
			$Siguiente = substr($Siguiente, 0, -1);
			$AntiBucle = 0;
			while (strlen($Siguiente) > 0 && $AntiBucle < 50) {
				$AntiBucle = $AntiBucle + 1;
				$Caracter = rand(0,(strlen($Siguiente)-1));
				$Final .= $Siguiente{$Caracter};
				$Dale = ((strlen($Siguiente) - 1) - $Caracter);
				if ($Dale > 0) {
					$Siguiente = substr($Siguiente, 0, ($Caracter)).substr($Siguiente, -$Dale);
				}
				else {
					$Siguiente = substr($Siguiente, 0, ($Caracter));
				}
			}
			if (strlen($Parsear) > 1) {
				$Final .= $Ultima." ";
			}
			else {
				$Final .= $Ultima;			
			}
		}
		else {
			$Siguiente .= $Parsear{0};
		}
		$Parsear = substr($Parsear, 1);
	}
    return htmlspecialchars( $Final );
}
 
$wgAutoloadClasses['Darnedodoser'] = dirname(__FILE__) . '/darnedodoser_body.php';
$wgSpecialPages['Darnedodoser'] = 'Darnedodoser';
$wgExtensionFunctions[] = 'efLoadeaDarnedodoser';
 
 
function efLoadeaDarnedodoser() {
	global $wgLang, $wgMessageCache;
	$f= dirname( __FILE__ ) . '/darnedodoser.i18n.php';
	include( $f );
	foreach( efDarnedodoser() as $lang => $messagess ) {
		if ($wgLang->getCode() == $lang) {
			$wgMessageCache->addMessages( $messagess );
		}
	}
}

darnedodoser.i18n.php

<?php
if (!defined('MEDIAWIKI')) die();
function efDarnedodoser() {
	$messages = array(
		'en' => array(
			'darnedodoser' => 'Darnedodoser',
			'darnedodoser-welcome' => "Welcome, please write down the phrase to Darnedodoseate:",
			'darnedodoser-submit' => "Submit",
			'darnedodoser-result' => "Result:",
		),
		'es' => array(
			'darnedodoser' => 'Darnedodoser',
			'darnedodoser-welcome' => "Bienvenido, por favor escriba la frase a Darnedodosear:",
			'darnedodoser-submit' => "Enviar",
			'darnedodoser-result' => "Resultado:",
		),
	);
 
	return $messages;
}

darnedodoser_body.php

<?php
if (!defined('MEDIAWIKI')) die();
class Darnedodoser extends SpecialPage {
	function __construct() {
		SpecialPage::SpecialPage("Darnedodoser", '', true);
	}
	function execute( $par ) {
		global $wgRequest, $wgOut, $wgDarnedodoserTo;
		if (!$wgDarnedodoserTo) { $wgDarnedodoserTo = "/w/Special:Darnedodoser"; }
		$fname = "SpecialDarnedodoser::execute";
		$this->setHeaders();
		# Do stuff
		$wgOut->addWikiText( wfMsg( 'darnedodoser-welcome' ) );
		$wgOut->addHTML("<form method=\"POST\" action=\"".$wgDarnedodoserTo."\"><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"margin-left: auto; margin-right: auto;\"><tr><td style=\"border:none;\"><input type=\"text\" name=\"FText\" size=\"48\"><br /><input type=\"submit\" value=\"".wfMsg( 'darnedodoser-submit' )."\" name=\"ssr\"></td></tr></table></form>");
		if (isset($_POST["FText"]) == true) {
			$wgOut->addWikiText("\r\n\r\n");
			$wgOut->addWikiText(wfMsg( 'darnedodoser-result' ) . "\r\n\r\n");
			$wgOut->addHTML( efDarnedodoserOldRender( $_POST["FText"] , null , null) );
			$wgOut->addWikiText("\r\n\r\n");
		}
	}
}