*/ // must be run within Dokuwiki if (!defined('DOKU_INC')) die(); if (!defined('DOKU_LF')) define('DOKU_LF', "\n"); if (!defined('DOKU_TAB')) define('DOKU_TAB', "\t"); if (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); require_once DOKU_PLUGIN.'syntax.php'; require_once DOKU_PLUGIN.'tagging/common.php'; class syntax_plugin_tagging extends DokuWiki_Syntax_Plugin { function getType() { return 'substition'; } function getPType() { return 'block'; } function getSort() { return 13; } function connectTo($mode) { $this->Lexer->addSpecialPattern('{{tagging::\w+(?:>[^}]+)?}}',$mode,'plugin_tagging'); } function handle($match, $state, $pos, &$handler){ $data = array(); $matches = array(); preg_match('/{{tagging::(\w+)(?:>([^}]+))?}}/', $match, $matches); $data['cmd'] = $matches[1]; switch($data['cmd']) { case 'user': if (count($matches) > 2) { $data['user'] = trim($matches[2]); } break; } return $data; } function render($mode, &$renderer, $data) { if ($mode !== 'xhtml') { return false; } $pte = tagging_get_pte($this); switch($data['cmd']) { case 'user': $renderer->info['cache'] = false; if (!isset($data['user'])) { $data['user'] = $_SERVER['REMOTE_USER']; } if (is_null($pte)) return; list($min, $max, $data_arr) = $pte->user_tagcloud($data['user'], 10); cloud_weight($data_arr, $min, $max, 10); $renderer->doc .= '