* @author Pike */ // 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'); class syntax_plugin_discussion_discuss extends DokuWiki_Syntax_Plugin { function getInfo(){ return array( 'author' => 'Pike', 'email' => 'pike@labforculture.org', 'date' => '2008-05-05', 'name' => 'Discussion Plugin (discuss component)', 'desc' => 'Counts number of comments on another page and prints link to discussion section there', 'url' => 'http://www.wikidesign.ch/en/plugin/discussion/start', ); } function getType(){ return 'substition'; } function getPType(){ return 'normal'; } function getSort(){ return 232; } function connectTo($mode){ //print "connecting"; $this->Lexer->addSpecialPattern('\[\[discuss>.+?\]\]', $mode, 'plugin_discussion_discuss'); } function handle($match, $state, $pos, &$handler){ global $ID; $subjid = substr($match, 10, -2); // strip [[discuss> from start and ]] from end //print "match $subjid"; return array($subjid); } function render($mode, &$renderer, $data){ list($subjid) = $data; if ($mode == 'xhtml'){ // prevent caching to ensure content is always fresh $renderer->info['cache'] = false; if ($my =& plugin_load('helper', 'discussion')) $html= $my->td($subjid); if ($html) { $renderer->doc .= "( $html )"; } return true; } return false; } }