コード例 #1
0
/**
 * Entry point for the <categorytree> tag parser hook.
 * This loads CategoryTreeFunctions.php and calls CategoryTree::getTag()
 */
function efCategoryTreeParserHook($cat, $argv, $parser = null, $allowMissing = false)
{
    global $wgOut;
    if ($parser) {
        $parser->mOutput->mCategoryTreeTag = true;
        # flag for use by efCategoryTreeParserOutput
    } else {
        CategoryTree::setHeaders($wgOut);
    }
    $ct = new CategoryTree($argv);
    $attr = Sanitizer::validateTagAttributes($argv, 'div');
    $hideroot = isset($argv['hideroot']) ? CategoryTree::decodeBoolean($argv['hideroot']) : null;
    $onlyroot = isset($argv['onlyroot']) ? CategoryTree::decodeBoolean($argv['onlyroot']) : null;
    $depthArg = isset($argv['depth']) ? (int) $argv['depth'] : null;
    $depth = efCategoryTreeCapDepth($ct->getOption('mode'), $depthArg);
    if ($onlyroot) {
        $depth = 0;
    }
    return $ct->getTag($parser, $cat, $hideroot, $attr, $depth, $allowMissing);
}
コード例 #2
0
/**
 * Entry point for the <categorytree> tag parser hook.
 * This loads CategoryTreeFunctions.php and calls CategoryTree::getTag()
 */
function efCategoryTreeParserHook($cat, $argv, &$parser)
{
    global $wgCategoryTreeDefaultMode;
    $parser->mOutput->mCategoryTreeTag = true;
    # flag for use by efCategoryTreeParserOutput
    static $initialized = false;
    $divAttribs = Sanitizer::validateTagAttributes($argv, 'div');
    $style = isset($divAttribs['style']) ? $divAttribs['style'] : null;
    $mode = isset($argv['mode']) ? $argv['mode'] : null;
    if ($mode !== NULL) {
        $mode = trim(strtolower($mode));
        if ($mode == 'all') {
            $mode = CT_MODE_ALL;
        } else {
            if ($mode == 'pages') {
                $mode = CT_MODE_PAGES;
            } else {
                if ($mode == 'categories') {
                    $mode = CT_MODE_CATEGORIES;
                }
            }
        }
    } else {
        $mode = $wgCategoryTreeDefaultMode;
    }
    $hideroot = isset($argv['hideroot']) ? efCategoryTreeAsBool($argv['hideroot']) : null;
    $onlyroot = isset($argv['onlyroot']) ? efCategoryTreeAsBool($argv['onlyroot']) : null;
    $depthArg = isset($argv['depth']) ? $argv['depth'] : null;
    $depth = efCategoryTreeCapDepth($mode, $depthArg);
    if ($onlyroot) {
        $depth = 0;
    }
    $ct = new CategoryTree();
    return $ct->getTag($parser, $cat, $mode, $hideroot, $style, $depth);
}