14ff971beSsaggi-dw<?php 24ff971beSsaggi-dw/** 34ff971beSsaggi-dw * DokuWiki Plugin dwtimeline (Action Component) 44ff971beSsaggi-dw * 54ff971beSsaggi-dw * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html 64ff971beSsaggi-dw * @author saggi <saggi@gmx.de> 74ff971beSsaggi-dw */ 84ff971beSsaggi-dw 94ff971beSsaggi-dw// must be run within Dokuwiki 104ff971beSsaggi-dwif(!defined('DOKU_INC')) die(); 114ff971beSsaggi-dw 124ff971beSsaggi-dwclass action_plugin_dwtimeline extends DokuWiki_Action_Plugin { 134ff971beSsaggi-dw 144ff971beSsaggi-dw /** 154ff971beSsaggi-dw * Register the eventhandlers 164ff971beSsaggi-dw */ 174ff971beSsaggi-dw public function register(Doku_Event_Handler $controller) { 184ff971beSsaggi-dw $controller->register_hook('TOOLBAR_DEFINE', 'AFTER', $this, 'insert_button', array ()); 194ff971beSsaggi-dw } 204ff971beSsaggi-dw 214ff971beSsaggi-dw /** 224ff971beSsaggi-dw * Inserts the toolbar button 234ff971beSsaggi-dw */ 244ff971beSsaggi-dw public function insert_button(Doku_Event $event, $param) { 25*2ddb0813SSteffen Sagert 264ff971beSsaggi-dw $event->data[] = array ( 27*2ddb0813SSteffen Sagert 'type' => 'picker', 28*2ddb0813SSteffen Sagert 'title' => $this->getLang('tl-picker'), 29*2ddb0813SSteffen Sagert 'icon' => '../../plugins/dwtimeline/icons/timeline_picker.png', 30*2ddb0813SSteffen Sagert 'list' => array( 31*2ddb0813SSteffen Sagert array( 324ff971beSsaggi-dw 'type' => 'format', 334ff971beSsaggi-dw 'title' => $this->getLang('tl-button'), 344ff971beSsaggi-dw 'icon' => '../../plugins/dwtimeline/icons/timeline_marker.png', 35*2ddb0813SSteffen Sagert 'open' => $this->buildSkeleton('complete'), 364ff971beSsaggi-dw 'sample' => $this->getLang('ms-content'), 374ff971beSsaggi-dw 'close' => '\n</milestone>\n</dwtimeline title="'.$this->getLang('tl-end').'">', 38*2ddb0813SSteffen Sagert ), 39*2ddb0813SSteffen Sagert array( 40*2ddb0813SSteffen Sagert 'type' => 'format', 41*2ddb0813SSteffen Sagert 'title' => $this->getLang('ms-button'), 42*2ddb0813SSteffen Sagert 'icon' => '../../plugins/dwtimeline/icons/page_white_code.png', 43*2ddb0813SSteffen Sagert 'open' => $this->buildSkeleton('milestone'), 44*2ddb0813SSteffen Sagert 'sample' => $this->getLang('ms-content'), 45*2ddb0813SSteffen Sagert 'close' => '\n</milestone>', 46*2ddb0813SSteffen Sagert ), 47*2ddb0813SSteffen Sagert ) 484ff971beSsaggi-dw ); 494ff971beSsaggi-dw } 504ff971beSsaggi-dw 51*2ddb0813SSteffen Sagert private function buildSkeleton($skeletontype) { 5208c5c745SSteffen Sagert $skeleton = ''; 53*2ddb0813SSteffen Sagert switch ($skeletontype){ 54*2ddb0813SSteffen Sagert case 'complete' : 55*2ddb0813SSteffen Sagert $skeleton = '<dwtimeline align="'.$this->getConf('align').'" title="'.$this->getLang('tl-title').'" description="'.$this->getLang('tl-desc').'">\n'; 56*2ddb0813SSteffen Sagert $skeleton .= '<milestone title="'.$this->getLang('ms-title').'" description="'.$this->getLang('ms-desc').'" '; 57*2ddb0813SSteffen Sagert $skeleton .= 'data="'.$this->getLang('ms-data').'">\n'.$this->getLang('ms-content').'\n'; 58*2ddb0813SSteffen Sagert $skeleton .= '</milestone>\n'; 59*2ddb0813SSteffen Sagert $skeleton .= '<milestone title="'.$this->getLang('ms-title').'" description="'.$this->getLang('ms-desc').'" '; 60*2ddb0813SSteffen Sagert $skeleton .= 'data="02">\n'; 61*2ddb0813SSteffen Sagert break; 62*2ddb0813SSteffen Sagert case 'milestone' : 63*2ddb0813SSteffen Sagert $skeleton = '<milestone title="'.$this->getLang('ms-title').'" description="'.$this->getLang('ms-desc').'" '; 64*2ddb0813SSteffen Sagert $skeleton .= 'data="'.$this->getLang('ms-data').'" backcolor="'.$this->getLang('ms-backcolor').'">\n'; 65*2ddb0813SSteffen Sagert break; 66*2ddb0813SSteffen Sagert default : 67*2ddb0813SSteffen Sagert $skeleton = '<dwtimeline title="'.$this->getLang('tl-title').'" description="'.$this->getLang('tl-desc').'">\n'; 684ff971beSsaggi-dw $skeleton .= '<milestone title="'.$this->getLang('ms-title').'" description="'.$this->getLang('ms-desc').'" '; 694ff971beSsaggi-dw $skeleton .= 'data="'.$this->getLang('ms-data').'">\n'; 70*2ddb0813SSteffen Sagert break; 71*2ddb0813SSteffen Sagert } 724ff971beSsaggi-dw return $skeleton; 734ff971beSsaggi-dw } 744ff971beSsaggi-dw 754ff971beSsaggi-dw 764ff971beSsaggi-dw} 774ff971beSsaggi-dw 78