register_hook('TOOLBAR_DEFINE', 'AFTER', $this, 'insert_button', array ()); $controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this, '_ajax_call'); } /** * Inserts the toolbar button */ function insert_button(Doku_Event $event, $param) { $event->data[] = array( 'type' => 'format', 'title' => 'Rowmove', 'icon' => '../../plugins/rowmove/images/toolicon.png', 'sample' => 'CHECK HELP', 'open' => '', 'close'=>'', 'insert'=>'', ); } function _ajax_call(Doku_Event $event, $param) { if ($event->data !== 'plugin_rowmove') { return; } //no other ajax call handlers needed $event->stopPropagation(); $event->preventDefault(); /* @var $INPUT \Input */ global $INPUT; #Variables $tablenr = $INPUT->int('index'); $index = $INPUT->int('idx_row'); $index2 = $INPUT->int('idx_row2'); /* @var $Hajax \helper_plugin_ajaxedit */ $Hajax = $this->loadHelper('ajaxedit'); $data=$Hajax->getWikiPage(); $zeilen = explode("\n",$data); $itable = -1; //Tabllen zähler $irow = 0; //Zeilenzähler $key1=array(); $key2=array(); $col_notclosed=0; $pagemod = 0; foreach($zeilen as $key=>$zeile) { //durchlaufen der Zeilen if( preg_match("/^[\|\^].*/",$zeile) || $col_notclosed) { //Am Anfang der Zeile ein "|" oder "^" heist Tablle if(preg_match("/^[\|\^].*/",$zeile) && !$pagemod && $col_notclosed) { //Doch am Anfang einer Zeile, aber nur wenn pagemod=aus und zeile nicht geschlossen $col_notclosed = 0; $irow++; } if($irow == 0 && !$col_notclosed) $itable++; //Tabellenanfang gefunden if(($itable == $tablenr && $irow == $index)) { $key1[]=$key; } //1. Zeile gefunden if($itable == $tablenr && $irow == $index2){ $key2[]=$key; } //2. Zeile gefunden if(!in_array(substr(trim($zeile),-1),array('|','^'))){ //kein Zeilenendezeichen vorhanden $col_notclosed = 1; if(substr_count($zeile,'pagemod')%2 == 1 && (strpos($zeile,'saveWikiPage($data,$summary,true); } }