*/
// must be run within Dokuwiki
if (!defined('DOKU_INC')) die();
if (!defined('DOKU_LF')) define('DOKU_LF', "\n");
if (!defined('DOKU_TAB')) define('DOKU_TAB', "\t");
if (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN', DOKU_INC . 'lib/plugins/');
require_once DOKU_PLUGIN . 'syntax.php';
class syntax_plugin_signavio extends DokuWiki_Syntax_Plugin
{
public function getType()
{
return 'substition';
}
/**
public function getPType() {
return 'block';
}
**/
public function getSort()
{
return 999;
}
function connectTo($mode)
{
$this->Lexer->addEntryPattern('(?=.*?)', $mode, 'plugin_signavio');
}
function postConnect()
{
$this->Lexer->addExitPattern('', 'plugin_signavio');
}
function handle($match, $state, $pos, &$handler){
switch ($state) {
case DOKU_LEXER_ENTER :
break;
case DOKU_LEXER_MATCHED :
break;
case DOKU_LEXER_UNMATCHED :
$span = '
*/
if(trim($match) != ""){
$begin = $span;
$end = '
}
';
$sigData = explode(':',$match);
if(empty($sigData[1])){
return array($state, 'Parameter do not match, expacted someURLId:SomeAuthTokenId');
}
return array($state, array($begin, $sigData[0], $sigData[1], $end));
}
break;
case DOKU_LEXER_EXIT :
break;
case DOKU_LEXER_SPECIAL :
break;
}
return array();
}
/*
* @public
* @see handle()
*/
function render($mode, &$renderer, $data) {
if($mode == 'xhtml'){
if($data[0] == DOKU_LEXER_UNMATCHED){
if(!is_array($data[1])){
$renderer->doc .= $data[1];
return true;
}
$text = $data[1][0];
$text .= '
url:
"http://academic.signavio.com/p/model/'.$data[1][1].'",
authToken:
"'.$data[1][2].'",
overflowX: "fit",
overflowY: "fit",
zoomSlider: true,
linkSubProcesses: false
';
$text .= $data[1][3];
$renderer->doc .= $text; // ptype = 'normal'
return true;
}
}
return false;
}
}
// vim:ts=4:sw=4:et: