172bea084SJason Xun Xu<?php 272bea084SJason Xun Xu/** 372bea084SJason Xun Xu * DokuWiki Plugin c3chart (Action Component) 472bea084SJason Xun Xu * 572bea084SJason Xun Xu * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html 672bea084SJason Xun Xu * @author Jason Xun Xu <dev@jasonxu.net> 772bea084SJason Xun Xu */ 872bea084SJason Xun Xu 972bea084SJason Xun Xu// must be run within Dokuwiki 1072bea084SJason Xun Xuif(!defined('DOKU_INC')) die(); 1172bea084SJason Xun Xu 1272bea084SJason Xun Xuclass action_plugin_c3chart extends DokuWiki_Action_Plugin { 1372bea084SJason Xun Xu 1472bea084SJason Xun Xu /** 1572bea084SJason Xun Xu * Registers a callback function for a given event 1672bea084SJason Xun Xu * 1772bea084SJason Xun Xu * @param Doku_Event_Handler $controller DokuWiki's event controller object 1872bea084SJason Xun Xu * @return void 1972bea084SJason Xun Xu */ 2072bea084SJason Xun Xu public function register(Doku_Event_Handler $controller) { 2172bea084SJason Xun Xu 220a6338aaSJason Xun Xu $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'handle_tpl_metaheader_output'); 2372bea084SJason Xun Xu 2472bea084SJason Xun Xu } 2572bea084SJason Xun Xu 2672bea084SJason Xun Xu /** 2772bea084SJason Xun Xu * [Custom event handler which performs action] 2872bea084SJason Xun Xu * 2972bea084SJason Xun Xu * @param Doku_Event $event event object by reference 3072bea084SJason Xun Xu * @param mixed $param [the parameters passed as fifth argument to register_hook() when this 3172bea084SJason Xun Xu * handler was registered] 3272bea084SJason Xun Xu * @return void 3372bea084SJason Xun Xu */ 3472bea084SJason Xun Xu 3572bea084SJason Xun Xu public function handle_tpl_metaheader_output(Doku_Event &$event, $param) { 360a6338aaSJason Xun Xu $event->data["script"][] = array ( 370a6338aaSJason Xun Xu "type" => "text/javascript", 384041bac4SJason Xun Xu "src" => $this->get_asset('url_yaml'), 3995442404SJason Xun Xu "_data" => "", 4095442404SJason Xun Xu ); 4195442404SJason Xun Xu $event->data["script"][] = array ( 4295442404SJason Xun Xu "type" => "text/javascript", 434041bac4SJason Xun Xu "src" => $this->get_asset('url_d3'), 440a6338aaSJason Xun Xu "_data" => "", 450a6338aaSJason Xun Xu ); 460a6338aaSJason Xun Xu $event->data["script"][] = array ( 470a6338aaSJason Xun Xu "type" => "text/javascript", 484041bac4SJason Xun Xu "src" => $this->get_asset('url_c3'), 490a6338aaSJason Xun Xu "_data" => "", 500a6338aaSJason Xun Xu ); 510a6338aaSJason Xun Xu $event->data["link"][] = array ( 520a6338aaSJason Xun Xu "type" => "text/css", 530a6338aaSJason Xun Xu "rel" => "stylesheet", 544041bac4SJason Xun Xu "href" => $this->get_asset('url_c3_css'), 550a6338aaSJason Xun Xu ); 5672bea084SJason Xun Xu } 5772bea084SJason Xun Xu 5839ea6861SJason Xun Xu private function get_asset($asset) { 5939ea6861SJason Xun Xu $u = $this->getConf($asset); 6039ea6861SJason Xun Xu if(!preg_match('#^(?:(?:https?:)?/)?/#', $u)) { 61*c60ecea2SJason Xun Xu $info = $this->getInfo(); 62*c60ecea2SJason Xun Xu $u = DOKU_BASE."lib/plugins/".$info['base']."/assets/".$u; 6339ea6861SJason Xun Xu } 6439ea6861SJason Xun Xu return $u; 6539ea6861SJason Xun Xu } 6639ea6861SJason Xun Xu 6772bea084SJason Xun Xu} 6872bea084SJason Xun Xu 6972bea084SJason Xun Xu// vim:ts=4:sw=4:et: 70