*/ if(!defined('DOKU_INC')) die(); if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); require_once DOKU_PLUGIN.'action.php'; class action_plugin_vkeyboard extends DokuWiki_Action_Plugin { /** * Register its handlers with the DokuWiki's event controller */ function register(Doku_Event_Handler $controller) { $controller->register_hook('DOKUWIKI_STARTED', 'BEFORE', $this, 'setVKIcookie'); if(!isset($_COOKIE['VKB'])) return; $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, '_hookjs'); $controller->register_hook('TPL_ACT_RENDER', 'AFTER', $this, 'vki_start'); } /** * Hook js script into page headers. * * @author Myron Turner */ function _hookjs(&$event, $param) { global $conf; $lang = $conf['lang']; echo '\n"; $event->data['script'][] = array( 'type' => 'text/javascript', 'charset' => 'utf-8', '_data' => '', 'src' => DOKU_BASE . 'lib/plugins/vkeyboard/vkeyboard.js'); } function vki_start(&$event, $param) { echo ''; } function setVKIcookie(&$event, $param) { if(isset($_REQUEST['vkb']) && $_REQUEST['vkb']) { if($matches = preg_match('/(off)-(.*)/',($_REQUEST['vkb']))) { $expire = time()-(60*60*24); setcookie ('VKB',$matches[1], $expire, DOKU_BASE); } else { $expire = null; setcookie ('VKB',$_REQUEST['vkb'], $expire, DOKU_BASE); } } } }