xref: /plugin/c3chart/action.php (revision c60ecea2d8c47dba277a8d7c1ab77c638518ea7e) !
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