Extension:Darnedodoser

From MediaWiki.org

Jump to: navigation, search
Manual on MediaWiki Extensions
List of MediaWiki Extensions
Darnedooser

Release status: beta

Implementation Tag, Special page
Description Randomizes text except first and last character
Author(s) Hidalgo Rionda (Hsilamot Talk)
Version 1.0.165 (03 Dec 2007)
MediaWiki 1.10.0
Download From Author's Site
Example At "¿Sabias que..."

[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");
                }
        }
}
Personal tools