<?php
/**
 * MD5 Password Tool
 *
 * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
 * @author     Jan Rocho <jan@gesternwarnichtheute.de>
 */

// must be run within Dokuwiki
if(!defined('DOKU_INC')) die();
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once(DOKU_PLUGIN.'syntax.php');

/**
 * All DokuWiki plugins to extend the parser/rendering mechanism
 * need to inherit from this class
 */
class syntax_plugin_md5gen extends DokuWiki_Syntax_Plugin {

    function getInfo(){
      return array(
        'author' => 'Jan Rocho',
        'email'  => 'jan@gesternwarnichtheute.de',
        'date'   => '2008-10-18',
        'name'   => 'MD5 Generator Plugin',
        'desc'   => 'MD5 Generator Plugin, usage: ~~md5gen~~',
        'url'    => 'http://www.dokuwiki.org/plugin:md5gen'
      );
    }

    function getType()  { return 'container'; }
    function getPType() { return 'block'; }
    function getSort()  { return 319; }

    function connectTo($mode)
    {
      $this->Lexer->addSpecialPattern('~~md5gen~~', $mode, 'plugin_md5gen');
    }

    function handle($match, $state, $pos, &$handler){
	}

	function render($mode, &$renderer, $data) {
        if($mode == 'xhtml'){
            $renderer->doc .= $this->_md5gen($data);
            return true;
        }
        return false;
    }


    function _md5gen($data){

  		global $ID;
		$buffer.="<form action='".script()."' method='POST'>";
		$buffer.="<input type='hidden' name='id' value='".$ID."' />";
		$buffer.="String to Encode: <input type='password' name='q'>&nbsp;<input type='submit' value='Get MD5'>";
		$buffer.="</form><br /><br /> ";

		if($_POST['q']!=""){

			// Remove HTML / PHP
			$_POST['q']=strip_tags($_POST['q']);

    		$result=md5(trim($_POST['q']));

            $buffer .= "MD5: ".$result;
    		
		}
		
		return $buffer;
     }

} ?>
