function get_tool_html($tool_id, $ns = '', $title_str = '') { global $wgUser; if ($title_str == '') { $title_str = $this->mv_interface->article->mvTitle->getStreamName(); } if ($ns == '') { $ns = MV_NS_STREAM; } switch ($tool_id) { case 'stream_page': global $wgOut, $wgParser; // render the wiki page for this stream $title = Title::newFromText($title_str, $ns); $curRevision = Revision::newFromTitle($title); // @@todo in the future a deleted Stream means // remove stuff from stream table,mvd etc and return "missing Stream" if ($curRevision == null) { $wgOut->addWikiText(wfMsg('noarticletext')); $this->innerHTML = $wgOut->getHTML(); } else { $sk =& $wgUser->getSkin(); // empty out the categories $wgOut->mCategoryLinks = array(); // run via parser to add in Category info: $parserOptions = ParserOptions::newFromUser($wgUser); $parserOptions->setEditSection(false); $parserOptions->setTidy(true); $parserOutput = $wgParser->parse($curRevision->getText(), $title, $parserOptions); $wgOut->addCategoryLinks($parserOutput->getCategories()); $wgOut->addHTML($parserOutput->mText); $wgOut->addHTML($sk->getCategories()); // empty out the categories $wgOut->mCategoryLinks = array(); // $wgOut->addWikiTextWithTitle( $curRevision->getText(), $tile) ; $this->innerHTML = $wgOut->getHTML(); } break; case 'mang_layers': $this->innerHTML = $this->get_mang_layers_page($title_str); break; case 'search': $title = Title::newFromText($title_str, MV_NS_STREAM); // render search box $this->innerHTML = '<h3>Search Stream: ' . htmlspecialchars($title_str) . '</h3>'; $MvSearch = new MV_SpecialMediaSearch(); $MvSearch->setupFilters('stream', array('stream_name' => $title->getDBkey())); $this->innerHTML .= $MvSearch->dynamicSearchControl(); break; case 'navigate': // render full stream navigation $this->innerHTML = $this->get_nav_page($title_str); break; case 'export': $this->innerHTML = $this->get_export_page($title_str); break; case 'embed': // display embed code: $this->innerHTML = 'embed page'; break; case 'overlay': // display overlay options $this->innerHTML = 'overlay page'; break; case 'menu': $this->innerHTML = $this->getToolsListing(); break; default: $this->status = 'error'; $this->innerHTML = wfMsg('mv_tool_missing', $tool_id); break; } return $this->return_obj(); }