*/ if(!defined('DOKU_INC')) die(); if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); require_once(DOKU_PLUGIN.'action.php'); require_once(DOKU_INC.'inc/parserutils.php'); require_once(DOKU_INC.'inc/search.php'); require_once(DOKU_INC.'inc/parser/parser.php'); require_once('hider.php'); class action_plugin_wysiwyg extends DokuWiki_Action_Plugin { /** * return some info */ function getInfo(){ return array( 'author' => 'Luke Howson', 'email' => 'mail@lukehowson.com', 'date' => '2007-09-7', 'name' => 'WYSIWYG', 'desc' => 'Hides the WYSIWYG html from the DW editor.', ); } /* * Register its handlers with the dokuwiki's event controller */ function register(&$controller) { // hider: $controller->register_hook('IO_WIKIPAGE_READ', 'AFTER', $this, '_hideHTML'); $controller->register_hook('IO_WIKIPAGE_WRITE', 'BEFORE', $this, '_insertHTML'); // a javascript variable $controller->register_hook('TPL_METAHEADER_OUTPUT', 'AFTER', $this, '_insertID'); // page creation (for wysiwyg group members) $controller->register_hook('HTML_PAGE_FROMTEMPLATE', 'BEFORE', $this, '_createPage'); } function _insertID(&$event, $param) { echo ''; return; } function _hideHTML(&$event, $param) { if($_REQUEST['do'] == 'edit') { // hide the HTML $ret = load_wysiwyg($event->result); @session_start(); $_SESSION['wysiwyg'] = $ret['pickle']; @session_write_close(); $event->result = $ret['markup']; } return $event; } function _insertHTML(&$event, $param) { // replace the HTML (if missing) if ($event->data[3]) return $event; @session_start(); $event->data[0][1] = save_wysiwyg($_SESSION['wysiwyg'], $event->data[0][1]); $_SESSION['wysiwyg'] = null; @session_write_close(); return $event; } function isMemberOfwysiwyg() { global $INFO; // not logged in if(!is_array($INFO['userinfo']['grps'])) { return false; } // is a member of wysiwyg? $groups = $INFO['userinfo']['grps']; if(array_search("wysiwyg", $groups) ) { return true; } return false; } function _createPage(&$event, $param) { if(!$this->isMemberOfwysiwyg()) { return $event; } // create the new page $page = getID(); $newPage = wikiFN($page); $myTemplate = realpath(DOKU_PLUGIN."wysiwyg/defaultPage.txt"); io_makeFileDir($newPage); copy($myTemplate, $newPage); // redirect to the new page $this->redirect($page); exit(0); return $event; } function redirect($loc) { $myPath = getBaseURL(); $myServer = $_SERVER['HTTP_HOST']; echo ''; return; } } ?>