Пример #1
0
 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();
 }