/** * Main execution function * @param $par Parameters passed to the page */ function execute($par) { global $wgRequest, $wgOut, $wgMakeBotPrivileged, $wgUser; $this->setHeaders(); if ($par) { $this->target = $par; } else { $this->target = $wgRequest->getVal('target', wfMsg('rootcategory')); } $this->target = trim($this->target); #HACK for undefined root category if ($this->target == '<rootcategory>' || $this->target == '<rootcategory>') { $this->target = NULL; } $this->mode = $wgRequest->getVal('mode', CT_MODE_CATEGORIES); if ($this->mode == 'all') { $this->mode = CT_MODE_ALL; } else { if ($this->mode == 'pages') { $this->mode = CT_MODE_PAGES; } else { if ($this->mode == 'categories') { $this->mode = CT_MODE_CATEGORIES; } } } $this->mode = (int) $this->mode; $wgOut->addWikiText(wfMsgNoTrans('categorytree-header')); $wgOut->addHtml($this->makeInputForm()); if ($this->target !== '' && $this->target !== NULL) { CategoryTree::setHeaders($wgOut); $title = CategoryTree::makeTitle($this->target); if ($title && $title->getArticleID()) { $html = ''; $html .= wfOpenElement('div', array('class' => 'CategoryTreeParents')); $html .= wfElement('span', array('class' => 'CategoryTreeParents'), wfMsg('categorytree-parents')) . ': '; $ct = new CategoryTree(); $parents = $ct->renderParents($title, $this->mode); if ($parents == '') { $html .= wfMsg('categorytree-nothing-found'); } else { $html .= $parents; } $html .= wfCloseElement('div'); $html .= wfOpenElement('div', array('class' => 'CategoryTreeResult')); $html .= $ct->renderNode($title, $this->mode, true, false); $html .= wfCloseElement('div'); $wgOut->addHtml($html); } else { $wgOut->addHtml(wfOpenElement('div', array('class' => 'CategoryTreeNotice'))); $wgOut->addWikiText(wfMsg('categorytree-not-found', $this->target)); $wgOut->addHtml(wfCloseElement('div')); } } }
/** * Main execution function * @param $par array Parameters passed to the page */ function execute($par) { global $wgCategoryTreeDefaultOptions, $wgCategoryTreeSpecialPageOptions, $wgCategoryTreeForceHeaders; $this->setHeaders(); $request = $this->getRequest(); if ($par) { $this->target = $par; } else { $this->target = $request->getVal('target', wfMessage('rootcategory')->text()); } $this->target = trim($this->target); # HACK for undefined root category if ($this->target == '<rootcategory>' || $this->target == '<rootcategory>') { $this->target = null; } $options = array(); # grab all known options from the request. Normalization is done by the CategoryTree class foreach ($wgCategoryTreeDefaultOptions as $option => $default) { if (isset($wgCategoryTreeSpecialPageOptions[$option])) { $default = $wgCategoryTreeSpecialPageOptions[$option]; } $options[$option] = $request->getVal($option, $default); } $this->tree = new CategoryTree($options); $output = $this->getOutput(); $output->addWikiMsg('categorytree-header'); $this->executeInputForm(); if ($this->target !== '' && $this->target !== null) { if (!$wgCategoryTreeForceHeaders) { CategoryTree::setHeaders($output); } $title = CategoryTree::makeTitle($this->target); if ($title && $title->getArticleID()) { $output->addHTML(Xml::openElement('div', array('class' => 'CategoryTreeParents'))); $output->addHTML(wfMessage('categorytree-parents')->parse()); $output->addHTML(wfMessage('colon-separator')->escaped()); $parents = $this->tree->renderParents($title); if ($parents == '') { $output->addHTML(wfMessage('categorytree-no-parent-categories')->parse()); } else { $output->addHTML($parents); } $output->addHTML(Xml::closeElement('div')); $output->addHTML(Xml::openElement('div', array('class' => 'CategoryTreeResult'))); $output->addHTML($this->tree->renderNode($title, 1)); $output->addHTML(Xml::closeElement('div')); } else { $output->addHTML(Xml::openElement('div', array('class' => 'CategoryTreeNotice'))); $output->addHTML(wfMessage('categorytree-not-found', $this->target)->parse()); $output->addHTML(Xml::closeElement('div')); } } }